give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

IT業界に入ってからの一番最初の勉強法(もしくはプログラミングの勉強について新人さんに伝えたいこと)

はじめに

僕が勤めているソニックガーデンで、新入社員向けに以下のような話をしてほしい、という依頼がありました。

「IT業界に入ってからの一番最初の勉強法を教えてください」
IT業界に入って右も左もわからなかった頃にどうやって勉強をしたか、勉強を進める上で苦労したことや工夫したこと、また当時の自分にアドバイスをするとしたらなにを伝えるかなど、若い時のご自分を思い出して語っていただきたいです!

もともと簡単なスライドを作ってほしい、というお願いだったのですが、ブログで書く方が得意なのでブログにします。
あと、社内限定にする話でもないので、そのまま公開します。

僕がIT業界に入った頃の時代背景

僕がこの業界に入ったのは2003年の1月です。(新卒ではなく中途入社でした)
当時の社会を振り返ってみると、

  • Twitterはまだなかった(Twitterの誕生は2006年)
  • Qiitaもなかった(Qiitaのサービス公開は2011年)
  • もちろんProgateのようなオンライン教育サービスもなかった
  • Yahoo!とGoogleはあった
  • ネット上のコミュニケーションツールはメールや掲示板(BBSと呼ばれたりしていた)が中心

という感じです。

今みたいにSNS上で新人プログラマ同士がつながる、ということはなかったですし、今みたいにネット上でプログラミングが勉強できる、というような環境ではありませんでした。

一番最初の勉強法はこれ

じゃあ、どうやって勉強していたのかというと、「本を読む」というのがメインでした。
最初に入ったSIerで「入社前にこれ読んで勉強してこい」と言われたのが以下の3冊です。

ちゃんとプログラミングに入門したのはこのときが初めてで、たしかこの本の解説をなぞりながらVisual Basicでブロック崩しゲームを作ったことを覚えています・・・みたいな昔話、聞きたいですか?
今どきの新人さんにこんな話をしてもあまり役に立たない気がしてきました😅

なので、最初の依頼事項にあった以下の3点について適当に回答していくことにします。

  • 右も左もわからないときにどうやって勉強すればいいか?
  • 勉強を進める上で苦労したことや工夫したことは?
  • 当時の自分にアドバイスをするとしたらなにを伝えるか?

右も左もわからないときにどうやって勉強すればいいか?

この質問、難しいですねえ。本人が右も左も分からないなら、何が正しくて何が正しくないかを判断するのが難しいと思うので。

とりあえず、僕は行き当たりばったりで勉強するよりも、体系的に勉強する方が効率が良いと考えています。

もう少し具体的にいうと、「困ったらそのつどネットで検索」とするよりも、「技術書を買って読んだり、信頼のおける教育カリキュラムを受けた方が良い」ということです。(いくらネットが発展した現代社会であっても!)

体系的な勉強法には以下のようなメリットがあります。

  • 漏れなくダブりなく、必要な技術知識を手に入れられる
  • 簡単な内容から難しい内容へ、順を追ってステップアップしていける

これとは反対に、「困ったらネットでそのつどネットで検索」というようなスタイルだと、手に入る情報にムラができたり、簡単な内容ばかりをぐるぐる回ったりすることになりがちです。

ソニックガーデンの新入社員は新人研修の一環としてフィヨルドブートキャンプでプログラミングの勉強ができるので、「体系的に勉強する」というポイントはしっかりクリアできていると思います!!👍

bootcamp.fjord.jp

ちなみに僕自身がフィヨルドブートキャンプでメンターやってます!(ステマだと言われないように自己申告w)

勉強を進める上で苦労したことや工夫したことは?

プログラミングの勉強に限定して言えば、苦労したことってあまり記憶にないんですよね〜。
最初から今までずっと「プログラミングって面白い!」と思いながら勉強できている気がします。
特に僕の場合はオブジェクト指向プログラミングや、コードの良し悪しが分かるようになってきてからは、加速度的にプログラミングの勉強が楽しくなってきました!

「あまり苦労した記憶がない」という話はその昔こちらのブログに書きました。(苦労したエピソードも少しだけ入ってます)
blog.jnito.com

ちなみに僕はストレングスファインダーの分析で「学習欲」が1番の強みになっていたので、勉強に苦労していないのはそのせいかもしれませんw

あと、工夫というわけではないんですが、苦労を苦労と感じないように、自分自身を「不安」や「退屈」のゾーンではなく、「フロー」の状態にうまく持っていくことが大事かなと思ったりします。
フロー状態についてはこちらのエントリで紹介しています。
blog.jnito.com

「なんかしんどいな」とか「自分はこの業界に向いてないんじゃないか?」と心が折れそうになったときは、このフロー状態のグラフを思い出して、自分自身の立ち位置を不安のゾーンからフローのゾーンへ一段押し下げてやりましょう。(つまり、あまり無理をしすぎないのが大事!)

当時の自分にアドバイスをするとしたらなにを伝えるか?

僕は本を読んで勉強するのが好きなんですが、この勉強法の弱点は「本を読んだだけで賢くなったつもりになってしまうこと」です。
でも実際は自分の手と頭を動かしてコードを書かないと、自分の血と肉にはならない、つまり、本当の技術力は身に付きません。

一時期僕は本だけ読んで「コードが書けるようになったつもり」になっていた時期があるので、当時の自分には「本を読んだだけで満足するな、ちゃんとコードも書け」と伝えたいです。

それと、これは僕の話ではないのですが、技術書を読むときに「隅から隅まで全部理解しなきゃいけない」と思う人もときどきいるようです。
これだとすごく時間がかかるし、最後まで読むのがしんどくなるので、「難しい内容は頭の中にインデックスだけ作っておいて、あとで読み返せるようにする」というのが、僕のお勧めの読書法です。
詳しい話は以下のエントリに書いています。
blog.jnito.com

まとめ

というわけで、このエントリではプログラミングの勉強について新人さんに伝えたいことをあれこれ書いてみました。
ざっくりまとめると、

  • ネットで行き当たりばったりに勉強するな、体系的に勉強しろ
  • 常に自分をフロー状態において、楽しく勉強できるようにしろ
  • 本を読むだけじゃなく、自分の手と頭を動かせ(コード書け)

と、こんな感じでしょうか。

まあ、人それぞれ自分に合った勉強法があると思うので、あくまで参考情報ということで。
他のいろんな先輩の話を聞いたり、自分なりの勉強法を模索したりしてみてください〜!