これはyuriacatsアドベントカレンダー2日目の記事です
プログラマーが知るべき97のこと1「学び続ける姿勢」でも述べられている
「達人プログラマ」を読み、学んだことを実践してみる。本の教えに従い、毎年1つ新しい言語を学ぶ。たとえ言語が無理でも、少なくとも毎年1つは新しい技術、ツールについて学ぶ。そうして未知のものに触れることは、新たな発想の元になる。
この教えにしたがい、新しい言語を学ぼうと考えていた。当初はRustやGoなどの最近流行りの言語をやろうと思っていたが
- オブジェクト指向に対する直感が湧かなかった
- 型タグではない「型付き言語」を学んだことがなかった
- C#オタクが近くにいた
上記の理由からちょっと触ってみようかなという感覚でC#の学習を始めた。文法を一通り洗って再帰下降パーサーを作るくらいまではやった。C#を活かせるコードが書けるレベルではないくらいなのはご了承ください。
使った教科書
やったこと
上記の教科書をよむ。数ヶ月後に8時間くらいペアプロ?をしながら再帰下降パーサーを書いてみた。
1日1時間前後とって1ヶ月ほどで読了。
感じたメリット
- オブジェクト指向プログラミングって手法よりも今では言語機能に近いものも多いのだなということを実感できました
- 型に対する意識が高まった。
- プロパティなどを書いてバリデーションするということを意識してコーディングをするようになった。
個人的な考えとしては、ツールというのは初めから出来合いのものをうまく使っているだけだと「なぜ」そのツールが使われているかということを意識せずに使うことができ、「困った状態」になるという発想すら起こらない場合もある。古くからある言語を学ぶことは、何で困って今使っている言語ができているかを見つめ直すいいきっかけになりました。
個人的、実用性としては高くないが学んでおくと良さそうな言語
- C# もしくは Java (オブジェクト指向を見たい時に)
- Elm (Reactに影響を与えた言語)
- C (メモリ周りのつらさを知る)
- Haskell (関数型プログラミング)
-
無料公開されているようです:https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/ ↩