文系学生私「プログラミングの勉強って必要?」
これは「Funds Advent Calendar 2023」10日目の記事です。
はじめに
こんにちは!
ファンズ株式会社でOpsを担当しております、梶原と申します!
今年1月に入社し、早いもので1年が経とうとしております。
それにしても「1年が 『年齢分の1』 のスピードで過ぎ去っていく」を初めに言い始めた方は偉大ですね。
津々浦々でこすられまくっているセリフであろうにも関わらず、鋭さは衰えることなくむしろ年々威力が上がっているように感じます。
さてはつるぎのまいを使っているな。
気になったので調べてみましたが、相対的に時間の流れが速くなるように感じるのは、19世紀の哲学者 ポール・ジャネが発見した ジャネーの法則 と呼ばれる現象らしいです。
ふーん、200年くらい前から言われてるんだ。すごいジャネーの。
ファンズへ転生する前のお話
元気よく滑ったところで、簡単にファンズに入社する前までの職歴のお話いたします。
前職はSE(システムエンジニア)としてお仕事をしておりました。
しかし情報工学やプログラミングを学んでいたわけではなく、しがない文系学生でした。
それまでプログラミングのプの字も知らない人生を歩んでいましたので、
「プログラミング?なにそれおいしいの???」
「難しそうだし、パソコンが好きで詳しい人しか理解できなさそう」
のマインドでおりました。
ところが就職活動を始めてしばらく経ったある日、初任給や諸手当が(当時の私にとっては)大変魅力的なSI企業の求人票が目に入りました。
たしかに未経験な私にとっては難しそう。
でもできないなんて諦めていいのか。
短い人生だし、チャレンジするならなるべく早いうちがいいっしょ。
求人票をみて0.1秒ほどでいままでのマインドをぶん投げ、速攻で手のひらを反して選考へエントリーし、無事に内定をいただいたことから、未経験ド文系SEとしてのファーストキャリアがスタートしました。
そんな私の就職当時、文系出身者がSEとしてお仕事することはすでに目新しいことではありませんでした。
新卒で入社した会社では、文系出身ながらゴリゴリにコードを書いて大きなプロジェクトを取り仕切る、まさに獅子奮迅の勢いで活躍される先輩はいらっしゃいました。
同期入社の顔ぶれも文系理系が半々だったので、「学生時代までのバックグラウンドはあまり重要じゃなくて、センスと熱量と根気強さ次第でエンジニアとして十分に活躍できるんだなー」と難しすぎる新人研修が半分入っていなかった頭でぼんやりと思っていました。
ここまで読んでくださった察しがいいそこのあなたはお気づきだと思いますが、私はSEとしてのお仕事センスも熱量も根気強さも一定の水準を満たさなかったことを悟ってドロップアウトした身です(˘ω˘) ムネン
それでも経験できてよかった
とはいえエンジニアとしての過程で得た経験や知識は、今のお仕事においても生かすことができていると感じています。
就職活動を始めたころに「私って文系だしプログラミングなんて難しそうなことはちょっと、、」と嫌厭せずに、お金に目がくらんで エンジニアの世界に飛び込んでくれた当時の私には感謝でいっぱいです。
そんな お金大好きな 過去の自分へ、感謝の気持ちとして気前よく100,000,000円を振り込んであげたいです。
そのためには先立つものとして、私の年収は100,000,000,000円くらい必要になる見込みです。
この記事を読んでいる当社の偉い大人の皆さま、来年の私のお給金につきまして、ご検討のほどよろしくお願いします。
前置きが長くなりましたが、私が感じている「プログラミングを勉強してみる」ことの意義をお伝えできればと思います。
期待値調整のために先に申し上げると、類似した記事は世の中にあふれかえっており、いちショボSEだった私からは特に斬新で画期的な鋭い意見などはございません (´・ω・`) ゴメンネ
文系の私がプログラミングを勉強してみてよかったと感じたこと
論理的思考が身についた
「ああああムリムリ!プログラミングとかの話題でよく見かける!RONRITEKISHIKOU!いかにも難しそう!」
そう思ったそこのあなた、安心してください。
最終的にカレーライスの話になります(ネタバレ)
ところで「論理的思考」ってなんやねんと私はいまだに思っておりますが、個人的に以下のように解釈しています。
難しいことをシンプルにする
曖昧なことを具体的にする
道筋たてて意見や考えを伝える
ではプログラミングを介してどのように「論理的思考」を身に着けられるのか、具体的にお話してみます。
世の中にあふれるいろんな問題を解決したり目標を達成したりするためにシステムが開発されます。
そのシステムを開発するうえで必要なプログラムコード(よくみる呪文の羅列のようなあれ)を書くためにプログラミングを行います。
そしてプログラミングにおいて、実現したい機能の計算方法や処理方法のことをアルゴリズムと呼びます。
「論理的思考」はこのアルゴリズムを考えることが肝だと考えております。
おいしいカレーライスの作り方、教えてください
突然ですが、皆さんはカレーライスを作る際、どのように作りますか。
たとえば小学生の子(仮名:Aちゃん)にこんな風に説明してみましょう。
「材料を切って、材料を鍋に入れて、煮込んで、お皿によそってみたらいい感じに出来上がるよ。」
カレーライスを作った経験がある方であれば、まあそうだよねと感じるかもしれません。
ではこの指示でAちゃんは無事にカレーライスができあがるか、シミュレーションしてみましょう。
まずどんな材料を用意すべきか明示的な指示がありませんので、お豆腐とカレールーのみを用意する可能性があります。その場合、「カレー味のお豆腐スープ」が錬成されるかもしれません。
またジャガイモの芽や皮の青い部分にはみなさんご存じ「ソラニン」などの有害物質が含まれるので、芽や皮の青い部分があれば除去する必要があります。その工程をスキップすると、食中毒と仲良くお手洗いデートするルートへの分岐が発生しかねません。
味付けのタイミングも指示されていませんので、煮込んだ野菜とお肉をお皿によそったあとにルーを投入することもありえます。お料理としては「野菜とお肉の炊いたん(白湯味)」ができあがります。
おいしいカレーライスの作り方はむずかしい
「カレーライスの作り方を知らない人においしいカレーライスを作ってもらうことはこんなにも大変なことなのか」
思わず膝から崩れ落ちそうになる方もいるかもしれません。
指示を出す相手を小学生の子、と仮設定しましたが、プログラミングする場合はコンピューターに指示を出すことになります。
コンピューターは「行間を読んでプログラマーが意図するアウトプットをよしなに提供する」ことはしません。
あくまで「指示されたとおりに実行する」のみです。意図したとおりのアウトプットが出るか否かは、アルゴリズム次第といっても過言ではありません。
プログラミングにおいて一番時間をかけるのは実はよくイメージされる「プログラムコードを書くこと」ではなく、「アルゴリズムを考えること」だったりします。(私はいつもウンウンうなりながら考えていましたし、同僚もそんな方が多かったです)
つまりAちゃんにおいしいカレーライスを作ってもらえるように、「①わかりやすく②かつ具体的に③正しい順番」で指示を出す必要がありました。
私がおいしいカレーライスの作り方(アルゴリズム)を考える場合、以下のことを意識するようにしています。
難しいことをシンプルにする
「1口の大きさにカットしつつ、ジャガイモの場合はソラニン除去に気を配る」などの複雑な手順だと伝わりにくい。なるべく1工程1文章にするなどわかりやすくできているか。
曖昧なことを具体的にする
材料の個数、煮込む時間、火を止める目安などを数値化できているか。
道筋たてて意見や考えを伝える
作業の順番に「玉ねぎを切りながらジャガイモの皮をむく」などのムリや、「玉ねぎに火が通った後に人参を加えて柔らかくなるまで煮込む」などのムダがないか。
普段は意識しなくても、カレーライス作りにはたくさんの手順が含まれているので、わかりやすくて具体的で正しい順番を提示することはなかなか難しいものです。
さらにカレーライスは作り手によって作り方が異なることと同じように、同じ仕様のシステム機能であっても、エンジニアによってはいろんなアルゴリズムが生まれ出でます。
「絶対にこれが正解!」といったものはありませんので奥が深く、とても深い沼で、そして難しいものなのです。
(カレーライスの作り方もいろんな流派があり、その意味でも正解が様々ですので、「わたしのかんがえたさいきょうのカレーライスの作り方」は今回は割愛させていただきます(˘ω˘))
アルゴリズムを初めて学ぶ方向けに「カレーライスの作り方」を用いた説明はよく使われている題材かと思います。
「よっしゃ!華麗なカレーライスの作り方教示にいっちょ挑戦してみっか!カレーだけに!」と思っていただいた方、ぜひお試しいただけますと幸いです。
カレーライスよりも難易度易しめなお題だと「おにぎりの作り方」もおすすめです。
「分かりやすくておいしいカレーライスの作り方」を制する者は、アルゴリズムを、そして論理的思考を制する(極論)
さいごに
本記事が過去の私と同じように「文系出身だし、難しいことはわからないし、プログラミングはできる人ができていればそれでいい」派の方に、何か響くものがあれば幸いです。
「難しそうなことなんか分からなくてもいいけど、そこまで言うなら少しくらい気になっちゃう・・・ハッ!べ、別にあんたに言われたからじゃないんだからね!」なんて思っていただけますと最高です。
ツンデレかわいい。
最後までお読みいただきありがとうございました!
来年は年収が100,000,000,000円になるかもしれない私がお送りしました!
お約束のA.R.E.
(当社エンジニアチームのnoteでよく見る憧れのアレを僭越ながらマネします!)
ファンズではさまざまなポジションで一緒にお仕事してくださる方を大絶賛募集中です!
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?