758n妻
ナゴヤん(経験者)
・大学は経済学部経済学科
ナゴヤん
想定読者は
・プログラミングに興味ある人
・数学が苦手だった人
結論、
目次
文系出身SEだった経験から
新卒から4年間
情報システム会社(今でいうIT系企業)に入ってSE(システムエンジニア)しながらプログラミングしてた
同期も文系学部出身者がほとんどだった
(院卒2人だけ情報系学部で一応理系だった)
プログラミング言語はCOBOLだった
事務処理用のプログラミング言語
大規模システムで多く採用され安定稼動しやすく保守性も高い
・行政システム
・ガス電気などの公益事業系システム
などで多く採用
動かすコンピュータも汎用機とかホストとか動かす(動作確認テストする)だけでコストがかかるようなでかいコンピュータで動く言語
無意識的に多くの国民がお世話になっているライフライン系基幹系システムで、大事な箇所で稼動しているプログラミング言語
今も普通に動いていて完全にはなくならないと言われているプログラミング言語(リプレースが大変)
難易度も高くない
英語やローマ字に苦手意識が無ければ問題ない
そういう意味では文系向きなプログラミング言語(今の若い人が学ぶプログラミング言語ではないと言われている、需要はまだあるんだけどね)
IT登竜門的な資格で国家資格の基本情報技術者試験(旧:第二種情報処理技術者試験)のプログラミング言語として長い間(2019年まで)採用されていた★2020年からはPython(パイソン)
実務で経験した他の言語
C言語(難易度はやや高め)
ハンディ(プリンタ付き)を動かす機械系(組み込み系)のプログラミング言語
メーターを読む検針システムで採用されていた
(ハンディのデータをオフコン経由で専用回線を用いてホストコンピュータに飛ばす仕組みだったかと)
(プログラムを更新するときもバージョン番号をみて自動更新する仕組みだった)
一般的には
・自動車製品のパーツ
・ロボット
・産業機械
などで多く採用
テストもしやすく、会社のロゴが画面に浮き出るようにC言語で開発したりしてCOBOLより面白く好きだった記憶がある(難易度高い箇所は時期尚早でさわらせてもらえなかったかも)
COBOLを先に実務で使っていたためか、読解(どんな処理を書いてあるのかどこを変更追加すべきか)も何とかできていた
C++(オブジェクト指向言語)
C#(マイクロソフトの開発環境が使える言語)
Objective-C(iOSアプリの開発言語)
Python(AIや統計解析などで活用される1番人気の言語)
Java(ライブラリが豊富で用途が多い言語)
JavaScript(ブラウザで動作するメジャー言語)
PHP(ウェブサービス開発用で人気言語)
Perl(強力なテキスト処理を搭載した言語)
1つ言語を習得すれば派生言語だから他も習得しやすいと思う(理論上)
兎にも角にも仕事は普通に何とかこなせた
(時任三郎の「24時間働けますか」のCMが許される時代だったので毎日平気で22時まで会社にいた)
(時にはトラブルで会社の仮眠室で寝泊まりしたことも)
文系でもプログラミングできる理由
ナゴヤん
758n妻
はい、次の理由へ
英語っぽいから
中学生レベルの英語が読めればプログラミング言語の習得に役立つ
COBOLなど1つ難易度の低い言語を修得できれば難易度が高くなっていっても都度対応できるはず(今ならCOBOLよりVBとかpythonとかかな)
複雑なアルゴリズムは使わないから
ナゴヤん
SE(システムエンジニア)が単元ごとと言うかパーツごとに分解して設計する
・設計段階で処理を単純化しパーツをいくつか作る(プログラミングできるまで落としこむ)
この考え方がわかっていればプログラミングも学びやすいと思う
いきなり複雑な処理(解法)を考え、コンピュータにのせる必要性はない
(複雑化は保守性も悪くなる)
(高速化・守秘性など特別な理由が無ければ他のSEやプログラマーがみてもなるべくわかりやすくコーディングするはず)
文系とか理系とかあまり関係ないのでは?
(今思えばだけど)
処理を単純化して分解できるかどうかだけ(先輩たちから学んだり良いコーティングをみたり経験と慣れの世界)
単純化分解できればプログラムもベーシックでわかりやすい
若い人の考えや文系出身者の考えが聞きたい
よく上司から
上司
と言われてた
IT企業は特にそういった土壌はあると思う
たぶん同じ理屈で
「文系出身者の意見を聞いてみたい、能力を活用したい」
と思っているIT企業系の上司や先輩方はいると思う
何か革新的な意見をと意気込まなくていい
自分のケースで(意見ではないが)ある企画のドキュメントをなぜか頼まれ、作成して会議に出席したとき
上司や先輩
と先輩や上司に賞賛されたことがある
(問われた企画のコンセプトがいまいち抽象的だったので勝手に部分部分を狭めてわかりやすくしたのが運よく当たった感じ)
経験ある先輩方も自分の考えに固まらないようにいろいろな考え方や方法論を取り入れようとしていた
意見や仕事をふられたら文系脳でも何でも使えるものはフル活用して、期待以上のアウトプットを心がけてみよう
ナゴヤん
まとめ:【プログラミング】文系出身でも問題なし!逆に文系の優位性で勝負しよう!
- 文系出身者でIT企業に進む人は案外多い
- 最初は難易度の低いプログラミング言語を学ぶのがベスト
- プログラミング言語は1つ学べば派生言語も多く応用がききやすい
- プログラミング言語は英語っぽいから大丈夫
- IT企業の先輩や上司は優しく知的な人が多い→文系出身者でも働きやすい
もう少し深掘り(おまけ)
758n妻
文系以外に他に大事と思うことはある?
ナゴヤん
人に教える能力
文系のほうが有利かも
「人に教える」
という能力・わかりやすく伝える能力は文系脳の方が向いてると思う
理路整然と無駄なく説明できる能力(理系っぽい)も素晴らしいがどこか教科書的だ
・よりわかりやすい言い回し
教えられる側は理解するために欲しかったりする
と言ったり
・データを引っ張ってくる
などの表現は感覚に近いもので違和感なく受け入れられる
入社初期にデフォルトという言葉が仕事中に飛び交っていた
意味を聞いてみると「省略値」だよと返された
確かに調べると省略値と書いてある
「入力をしなくてもいいように
だいたいこの流れだとこの値でしょ、だから
あらかじめ入れとくよ」
という意味(説明するとまわりくどくなる)だとおいおいわかる
省略値だよと言われてもわかりづらい
デフォルトの方が言いやすいのでまかり通っていると思うが、初めて聞く場合や利用者(エンドユーザー)にはわかりにくい
デフォルトは「怠ける」が語源だそうだ
むしろ経済用語としての方が一般的でメジャーだ
「借金を返せない」
「返せなくなった」
という意味
ニュースでよく使われる
【ギリシャがデフォルトか!?返済期限が近づく】
借金返済を怠ける→借金を返せなくなる→悪い意味
省略値→あらかじめ値が入っている→入力しなくていい→怠けることができる→ラクができる→早い便利→良い意味
経済界とIT業界では全く正反対の意味で使われていた
文系脳だからか非常におもしろく感じた
たぶんデフォルトの意味は一生忘れない
人に教えるときにも役立つと思う
758n妻
料理好きな人はプログラミングが得意?
料理は下ごしらえ(データ加工)が大事
思うとおりの美味しい料理(アウトプット)
そのためには、
ランダムな材料(入力データ)を要領よく捌(さば)かないと(適切なタイミングで順番に加工処理)いけない
うまくいかなかったら調味料や料理テクでリカバリーして何とか美味しくする
(予期せぬデータが入ってきたら適切なエラー処理で正しいデータを入力するように仕向けたり関数やライブラリやモジュールを呼び出して思い通りのアウトプットにする流れに持っていく)
イメージしておくことは大事(自分の勝手なプログラミングのイメージ)
【発展】プログラミングの次は?
ナゴヤん
自分の属性もあるが文系だから考えはじめた気がする
プログラミング言語を習得したあと
何を考えた?
・金融機関系システムなら銀行業務
・行政のシステムなら公務員の仕事
・ガスや電気なら検針メーターシステムや調定・異動・収納の仕事
仕事の知識(業界知識)が先でプログラミング言語は後からで大丈夫
プログラミングを学んで余裕ができたから腹に落ちてわかる感覚
業務知識を持ってる方がより上流工程で仕事ができるようになる
(全体をみて1から民間会社のシステムを開発したいという意欲が出てくる)
ナゴヤん
758n妻
若いときは何か自信満々で、何でもできそうな気がしてた(若いってホント素晴らしい!)
過去の自分に負けないようチャレンジを常に心がけ、やりたいことを見つけて人生豊かにしたい
ナゴヤん