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

まとめ

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

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

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

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

技術書、紙の本で読むか、電子書籍で読むか?

Twitterに書こうかと思ったけど、明らかに字数オーバーするのでブログに書きます。

タイトルの通り、技術書を紙の本で読むか、電子書籍で読むか、という話です。
結論からいうと、僕は基本的に紙の本を選びます。

紙の本のメリット3つ(+1つ)

1. 自分にプレッシャーをかけられる

一番の理由は、机の上に置いて「最後まで読め」と自分にプレッシャーをかけられるからです。

f:id:JunichiIto:20200611082116j:plain

上の写真のように、いやでも目に付く場所に常時置いておくことで、思い出す機会や手に取る機会を増やすことができます。
これが電子書籍だと姿形(すがた・かたち)が見えなくなるので、強い意志を持っていないと「積ん読」のまま終わってしまう可能性が高くなります。

参考:ちなみに今読んでいる本はこれです↓

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発

  • 作者:Boris Cherny
  • 発売日: 2020/03/16
  • メディア: 単行本(ソフトカバー)

2. 残りページをフィジカルに把握できる

あと、読みながら「残りページはこれぐらい」っていうのが手で持ったときの感覚と、視覚でわかるのも良いです。
「よし、半分まで来た」とか、「あともう一息!」という情報が伝わると、「頑張って最後まで読むぞ!」というモチベーションが沸きます。
電子書籍も機能として「何割ぐらい読み進んだか」というのが分かるようになっていますが、フィジカルに情報が伝わる紙の本に比べると情報量が少ないです。

JavaScript Primer 迷わないための入門書

JavaScript Primer 迷わないための入門書

3. パラパラ読みができる

最後に、紙の本は「パラパラ読みができる」というメリットも大きいと思います。
あとで読み返したりするときに、「えーっとあの話はどこに載ってたっけ?」という検索を紙の本ならパラパラとページをめくりながら探すことができます。

電子書籍だとキーワード検索とかで代用できそうですが、「電子書籍のキーワード検索」と「紙の本のパラパラ目視検索」って感覚的に全然違うんですよね。
うまく言葉で説明するのは難しいですが、パラパラ検索の方が心理モデル(っていうのかな?)にうまくフィットする気がします。

また、紙の本でも巻末の索引を使って電子書籍のキーワード検索に近いことができます。
むしろ索引の方が「初出ページ」や「詳しく解説しているページ」だけをピックアップしてくれるので、「検索結果:53件」みたいなことになりがちな電子書籍のキーワード検索より実用的かもしれません。

(おまけ)古本屋に売れる

おまけとして、紙の本なら古本屋に売れるというメリットもあります。
僕自身も「プロを目指す人のためのRuby入門」という本の著者なので、「自分が書いた本が古本屋に売られる著者の気持ち」を考えると古本屋に売るときは少し後ろめたい気持ちがありますが、まあそれはそれ、これはこれ、という感じで読まなくなった本は古本屋に持っていきます😅

電子書籍のメリット3つ

もちろん、電子書籍にもメリットはあります。

1. すぐ手に入る

まず、電子書籍ならすぐ手に入れることができます。
購入してダウンロードすれば読み始められるので、今すぐ読みたい!というときは便利です。
また紙の本と違って「在庫切れ or 絶版なので買えない」という心配もありません。
特に海外の技術書などは、届くまで時間がかかることも多いので、そういう場合は電子書籍を選びます。

2. お風呂で読んだり、ちょっとした待ち時間に読んだりできる

あと、スマホに入れておけば、お風呂の中で読んだり、外出時のちょっとした待ち時間に読み進めたりすることができます。
(スマホさえ持っていれば)いつでもどこでも読める、という点は電子書籍のメリットです。

3. 何冊買っても場所を取らない

最後に、読み終わったあとに物理的に場所を取らないというのもメリットです。
紙の本は読んでいる最中は良いのですが、読み終わると「場所を取る」というデメリットの方が大きく感じられます。
電子書籍は何冊買っても場所を取らないので、「邪魔だから泣く泣く捨てる」というような問題は発生しません。

2020.8.5追記:「紙の本は読みながらコードを書くのが大変!」という場合

「紙の本は押さえていないとすぐ閉じちゃうから嫌い!」という人は書見台(読書台)を買うといいかもしれません。
最近は100均でも売ってるみたいですね。

actto BST-02 ブックスタンド

actto BST-02 ブックスタンド

  • メディア: エレクトロニクス

まとめ

このようにどちらにもメリット・デメリットはあるのですが、買って満足して終わりがちな電子書籍よりも、積ん読を防止しやすい紙の本の方がメリットが大きいと判断して、どちらか選択できる場合は紙の本を選ぶようにしています。

ちょっと前までは「これからの時代、紙の本よりも電子書籍でしょう!」と思っていた時期もあったのですが、「電子書籍は買ってもストレージの肥やしになるだけで終わることが多い気がする」ということが経験的にわかってきたので、最近はまた紙の本に戻ってきました。

みなさんは好みはどちらですか?Twitter等でご意見を投稿してもらえると嬉しいです!😄

2020.6.12追記:Twitterでアンケートとりました

紙と電子、どっちが好みか、アンケートを採ってみました!
結果はご覧のとおり、「紙の本」派が半数を超えました。


参考情報

僕が今までに買った本はブクログにまとめています。(積ん読になってる本も多数ありますが・・・w)
booklog.jp

僕が毎月課金しているサブスクサービスあれこれ

はじめに

最近はだんだんと月額課金のサブスクリプションサービス(いわゆるサブスク)が増えてきました。
僕自身もいろいろとサブスクサービスを利用しています。

「じゃあいったい今はどれくらいのサブスクサービスを利用してるんだろう?」ということがふと気になったので、ここで一回棚卸ししてみたいと思います。
あまり珍しいものはないかもしれませんが、「へ〜、伊藤さんはこんなサービスを使ってるのね」と思ったものがあれば、みなさんも内容をチェックしてみてください!

【もくじ】

僕が個人で利用しているサービス

ATOK Passport ベーシック(月額330円)

Macの日本語入力IMEとしてATOKを愛用しています。
Google日本語入力なども試しましたが、個人的にはATOKが一番しっくりきます。
どんなときでも完璧!というわけにはいきませんが、それなりに賢く変換してくれると思います。

www.atok.com

Evernoteプラス(月額360円)

EvernoteはTODO管理や簡単な議事メモを保存したりする目的で使っています。
無料版だと同期可能なデバイスが最大2つなので、デバイス数に制限のない有料版を使っています。

evernote.com

なお、僕が使っている「プラスプラン」は現在はなくなってしまっているようです。(参考)。

G Suite Basic(月額680円)

メールアドレスを独自ドメインで使いたい&Gmailのインターフェースが使い慣れてるし便利、という理由でG Suiteを契約しています。
(メアド以外は「G Suiteならではの機能」はほとんど使ってないですね・・・)

gsuite.google.com

はてなブログ Pro(2年コース、月額600円)

みなさんが今見ているこのブログが、はてなブログです。
Proにすると独自ドメインが使えたり、広告が消せたりするのでPro版を使っています。
厳密には2年で14400円なので、14400÷24=月額600円です。

hatenablog.com

家族で利用しているサービス

YouTube Premium(ファミリープラン、月額1780円)

頻繁に差し込まれる宣伝がうざい&うさんくさい宣伝を見たくない、という理由でYouTube Premiumを使っています。
スマホで見たときはアプリを閉じても再生を続けてくれるところが嬉しいですね。

www.youtube.com

ちなみに、iPhoneのYouTubeアプリからPremiumを申し込むと無駄に高い月額料金を取られるので要注意です。


Spotify Premium Family(月額1480円)

音楽好きなので、世界中の音楽が無限に聴けるSpotifyも愛用しています。
YouTubeやAmazonでも音楽系ストリーミングサービスは提供されていますが、なんとなく老舗のSpotifyが安心して使える気がしてます。(食わず嫌いなだけかもしれませんが)

www.spotify.com

Amazon Prime(月額408円)

厳密には年間4900円=月額408円です。
「お急ぎ便」があるから、という理由でPrimeを使っていますが、昔に比べると翌日に届かない商品も増えてきたので「ちょっと微妙だな〜」と思うところが無きにしも非ずです。

www.amazon.co.jp

Nintendo Switch Online(ファミリープラン、月額375円)

厳密には年間4500円=月額375円です。
僕はゲームをほとんどしないのですが、子どもたちがオンライン対戦をやりたがるので任天堂にお布施しています。

www.nintendo.co.jp

まとめ:合計すると・・・?

上に挙げたサブスクサービスの月額料金を合計してみると、6013円になりました。
1年=12ヶ月なので12倍すると、年間で合計72,160円になります。

こうやって改めて計算してみると「結構払ってるなあ」と思いますが、費用に見合う価値が得られているのであればOKとします!

みなさんも「私はこんなサブスクサービスを利用しています!」という耳寄り情報があれば、ぜひ教えてください〜😘

2020.5.29 追記:サブスクリプション管理アプリ「PreBill」がいいかも!

サブスクのブログを書いた直後に、ちょうどこんないいWebサービスを見つけました。

prebill.me

自分が今登録しているサブスクサービスを管理できるサービスです。
僕もこのブログに載せたサブスクサービスを登録してみました!

f:id:JunichiIto:20200529074302p:plain:w350

開発者の id:shoynoi さんが開発の経緯をブログにまとめているので、こちらも参考にどうぞ。
shoynoi.hatenablog.com