プログラミング初学者、Go言語にトライする(初日)
2月からプログラミングスクールでHTML、CSS、Ruby、JavaScriptを一通り触って、興味本位でReactを触り、最近まではRailsでオリジナルアプリを作っていた、30代サラリーマンです。
Rubyは初学者にとても優しい言語で、高速でWebアプリを構築していくのに向いています。実際この5ヶ月で簡単なアプリを5〜6個は作ったはずです。
しかし、プログラミング=Ruby という固定観念が出来上がってしまうのもなんか嫌だったので、ここいらで新しい言語も触っちゃおう。ということになりました(自分の中で決まりました)。
なんでGoなの?
今回Go言語に手を出してみようと思った理由はおもに2点。
1. Rubyと特性が違うものに触れたかった
人気のPythonでは無いの?と思わなくもないですが、ここは明確に考えて決めました。
PythonはRubyと同じ動的型付け/インタープリタ ということで、割と「作法とか感覚・考え方みたいなもの」が近い部分がある…気がしたんですよね。なんとなく。
そこで、あえてRubyから少し離れた特性(静的型付け、コンパイル)を持つGoがいいんじゃないか?と思いました。
2. サーバーサイド・バックエンド寄りの技術・手札を増やしたい
いろいろとアプリを作ってきて、個人的にはフロントエンドよりサーバーサイドの方が向いていると感じています。
それは、プログラムによる自動化→人類が楽をすること に対するモチベーションがあるからだと自己分析しています。
で、サーバーサイドエンジニアとしてやっていくと仮定したとき、高速な並列処理を特徴とするGo言語に興味を持った、という経緯です。
上記を考えるにあたって、参考にするためにClaudeさんに「Python, Ruby, Goの違い」を列挙してもらいました。
初日にやったこと1 「読書」
『Go言語プログラミングエッセンス』を読み始めた
都内の大きめの書店に行き、プログラミング本のコーナーをさんざんウロウロして、店員さんに怪しまれながら何冊も取っ替え引っ替えしながら選んだ本。
本を選ぶときに気にしたこと
選ぶときに注意したのは以下。
(はじめてなので正しいかはわからないですが)
環境構築の手順から載っている入門書であること
言語の全体像→具体的な記述方法まで触れられていること
出版されて日が浅いこと(情報が新しいこと)
余白が大きすぎず、イラストや装飾が多過ぎないこと(個人的に目が滑るので装飾過多はしんどい)
読んでみた結果
→いきなり読んでも「ふーん」という感じ。なんというか、説明書みたいな感じ。
たとえば、家電の説明書を熟読しても便利さはわからないし、使うかどうかわからない機能を暗記しても意味がないという感覚があったので、基本文法のところだけ読んで一旦離脱。
たぶんですが「ちょっとだけ実践で書いてから読んだらめっちゃわかる本」だと感じたので、まずは1回コード書いてから読もうかな。って思っています。
初日にやったこと2 「A Tour of Go」
初日という状況に限って言えば、こっちが正解でした。
オンラインでGoを使って基礎的なことが学べるサイトです。
Reactのチュートリアルも充実していましたが、こちらもベイビーステップでいろいろ学べてわかりやすいです。
プログラミングを1ミリも知らないと厳しいかも
Rubyで「仮引数」とか「関数に引数を渡す」みたいな経験をひととおりやっていたから、すんなり理解できてる。という感じがします。
そういう意味では、Rubyをちゃんとスクールで学んでよかったです。
例えるなら、「服を買いにいくための服を手に入れた」って感じです。
取り組み方:手書きで写経+自分で解説
これはRubyとJavaScript→Reactを学んだときのノウハウが活きるところですが、何はともあれ初めて触れる言語は「手書き」がベストです。
特に自然言語ではないプログラミングにおいては、「ごく自然に読み飛ばしたコロンとかカンマがめっちゃ大事」みたいなことが普通に起きます。
そこで、手書きで1文字1文字、1記号1記号しっかり噛み締めつつ書く。最初はこれに限ります。
手書きでコードを書いていると、「おぉ!型宣言やないか!オマエそんなとこにおったんか!」みたいなことが普通にあります。画面上で読んでいたら気づいてなかったんですね。
もう少し学習が進んで長いコードを書くころになると、「手書きのメリットよりも、手書き時間のデメリットが勝つ」ときが来てしまいます。だからこそ、「最初の数行を学ぶときに手書きでしっかり噛み締め・噛み砕いておく」ことが大事です。
初日まとめ
初日、およそ7時間くらいかけてGoの基礎をかじってきました。
新しい言語を学ぶのはとても楽しいので、近々Go言語でも簡単なアプリを作ってみたいと思っています。
スクールはもうすぐ卒業なのですが、スクールで学んだ範囲はRPGでいうと「レベル5」くらいまでだと思っています。
ようやくこれからフィールドに出て、自分でレベリングできるかどうか…の段階。
レベル1の段階では、「フィールドに出て戦ってレベルアップ」することもなかなか出来ないわけで、そう考えたら半年でレベル5まで来れたのは良かった点です。
今日はここまで。最後までお読みいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?