のっかーのエンジニア日記

新人SEの日記です。

私とプログラミングの出会い~大学時代~

今、私は社会人2年目です。今回は、私とプログラミングとの出会いを振り返りたいと思います。

初めての出会いは大学の授業

私がプログラミングと出会ったのは、大学1年生のプログラミングの授業です。 私の専攻は情報系ではなく、土木系でした。そのため、土木系でよく使用されているFortranという言語を学びました。 Fortranは非常に長い歴史のある言語で、知る人ぞ知る言語です。

当時の私は、プログラミングに対して、「高度でカッコよくて、アプリとか何でも作れる技術」というイメージを抱いていました。 私は目をキラキラさせて授業を受け始めたのですが、思ったよりもFortranでのプログラミングは地道でした。 そもそもFortranは科学計算用の言語で、アプリ開発向けの言語ではなかったのです。 「プログラミングを勉強したら、すぐに自分のアプリを作れるようになる」と思っていた私は、早々に挫折してしまいました。 アプリを作れるようになるまでの道のりが遥か遠くに感じられて、気力を失ってしまったのです。

挫折感を味わった私ですが、まだ自分のアプリを作れるようになりたいという思いを捨てきれずにいました。 でも結局、どうしたら自分のアプリを作れるのかはわからないままでした。 図書館で、XAMPによるアプリ開発の本を見つけて借りてみたのですが、持ち前の継続力のなさを発揮してしまい、10ページほど読んで返却してしまいました。

挫折からの心機一転

挫折しまくりの私でしたが、大学院への進学を機に意識が変わります。 奨学金で借金をして大学院まで行くのだから、しっかりと目標を立てて大学院生活を過ごしたいと強く思うようになったのです。

私が立てた目標は2つです。

  1. プログラミング言語Pythonを使えるようになる。
  2. 英語力を高める。

今振り返ってみると、良い目標だったのではないかなと思います。 結局、研究者の道に進むことはなかったのですが、大学院で自主的に勉強したプログラミング言語と英語は、今の仕事でも役立っています。 (ただ、プログラミング言語については完全に独学だったため、今思えば、もっと効率よく学習すべきだったと反省しています。)

プログラミング言語Pythonに決めた理由は、研究室で使用する解析ソフトがPythonに対応していたためです。 当時はあまりPythonの情報が豊富ではなく、むしろRubyの方が人気でした。 しかし、科学計算ならPythonの方が得意とのことだったので、プログラミング言語Pythonに決めました。

恥を忍んで子ども向け教材からスタート

私は豊富な挫折実績があったので、恥を忍んで、超カンタンそうな本から学習をスタートすることにしました。

たのしいプログラミング Pythonではじめよう! https://www.amazon.co.jp/dp/4274069443/www.amazon.co.jp

この本は、子ども向けのPython入門書で、とても読みやすかったです。 ただ、この難易度でも途中で何度も心が折れかけました(笑) 最後の方は飛ばし飛ばしでしたが、辛うじて読み切りました。

この本で、リストや辞書といった基本的なPythonの文法を身に着けることができました。

実際に使用しながら学ぶ

Pythonの基本を身に着けたので、次は実際に自分の研究課題で使用してみることにしました。 一通りの基本はわかっていたので、不足している知識をググりながら、簡単な計算プログラムを自分で書くように努めました。 この時期にプログラム力が一番伸びたように思います。 自分で書くことで、理解が深まり、また新たな疑問が湧いてくるようになりました。

クラスの存在意義に戸惑う

自分でプログラムを書く中で、クラスの存在意義に疑問を抱くようになりました。 「関数があれば、クラスはいらないのではないか」という疑問です。 この疑問に対する答えは、実際に自分でクラスを使ったプログラムを書く過程で得ることができました。

その答えというのは、
"クラスを使うことで、関連のある「データ(メンバ変数)」と「関数(メソッド)」を一まとまりにして扱える"
というものです。 (クラスには他にも、ポリモーフィズムカプセル化などのメリットがあるのですが、当時はそこまでは理解できていませんでした。) クラスの存在意義がわかったことで、クラスを使ってプログラムを書くようになりました。 新しい概念を使ってプログラミングすることに、とてもワクワクしていました。

もっとキレイなプログラムを書きたい

簡単なプログラムを自分で書けるようになり、次は、もっと読みやすい、キレイなプログラムを書きたいと願うようになりました。 そこで、キレイなプログラムを書くための原則を本で勉強しました。

https://www.amazon.co.jp/dp/4798046140/www.amazon.co.jp

私にとって、この本と出会ったのはとてもよいタイミングでした。 当時は、ある程度自分でプログラムを書いてきて、ちょうど我流になりかけていた段階だったのです。 私はこの本を通して、我流ではない「普遍的なプログラミングの原則」を学ぶことができました。 独学の私にとってこの本は、正しい道を示すメンターのような存在でした。 この本を読みながら自分の書いたプログラムを書き直してみることで、プログラミングの原則に対する理解を深めることができました。 もしもプログラミングを書く経験が不足している段階だったら、この本が言いたいことを全く理解できなかったと思います。 その意味でも、ちょうどよいタイミングだったと思います。

以上が、私がプログラミングと出会った大学時代の話です。就活時代の話も含めようと思ったのですが、結構分量が多くなってまとまりが悪くなってしまいそうだったので、割愛しました。またいつか、機会があれば書きたいと思います。ここまで読んでいただきありがとうございました。