こんにちは。皆さんはWeb制作やプログラミングを学ぶときに、どんな教材を使っていますか?
ここ数年、各種言語に関してはWebだけでも相当いろんな教材や記事が見られるようになりました。
昔からあるもので言えばprogateさんやドットインストールさんなどがあり、最近良く耳にするもので言えば、デイトラさんなどがありますね。
これだけ充実していると「本はもういらないのでは?」と思う方もいるでしょう。
しかし、個人的には必ずしも本がいらないとは思っていません。本とWebの情報の特徴を改めて押さえつつ、それぞれどのような使い方をしていけばいいかを考えていきましょう。特に独学で学ぼうと思っている方は情報源の精査は重要です。
情報の特徴、傾向
まずは本とWebの情報のおおよその傾向を見ていきましょう。
結論から言えば、見出しにもある通り
- 本は情報は遅いが正確で網羅性も高い
- Webは情報は早いが正確性や網羅性にやや難がある
ということです。それともう一つ、更新性の有無は大きいですね。
本|遅いが正確で、網羅性も高い
本は、それが出版されるまでの工程によって一定の情報の信頼性は担保されていると言えます。
以下、幻冬舎さんのサイトから引用します。
一方で書籍は、出版社が事業として刊行するものであり、編集者、校閲者といった多くのプロの手を介し、その責任のもとで制作されるため、情報源として十分信頼できるものという社会的な共通認識があります。さらに書籍を出したことがある方というのはなかなかいません。著者という信頼性は貴重なものなのです。
https://www.gentosha-mc.com/faq/detail80/
ここにある通り、本が出版されるまではそれなりの人数の目を通っています。また、誰でも本を出版できるわけでありません。本を出すこと自体にある程度のハードルがあることによる信頼性の担保という側面もあるでしょう。
しかし、上記の工程を経るということはその分出版までには時間がかかります。また、基本的に一度買った本はアップデートされません。変化の激しい領域の情報を得るには向いていなさそうです。
Web|早いが正確性や網羅性にやや難がある
Webの特性は、書籍のそれとは逆と言えます。多くの発信者、媒体が日々さまざまな情報をインターネット上に公開しています。皆さんも新しい情報やトレンドはたいていWebから得ているのではないでしょうか。
一方で、誰でも発信が出来るわけですからその信頼性は非常に怪しいと言えます。情報を個別的に見ると、言ってしまえばただの個人の意見に過ぎません。しかもその個人というのも一体どこの誰なのか、どういう立場からものを言っているのか、全く不明だったりします。
また、そういったWebでの情報は必ずしも網羅的なものとは限りません。やはりTips的なものが多数です。
その中から質の高い情報に辿り着くには、情報を探している自分自身の目も要求されます。
しかし、公式的な立場のサイトの場合は情報の早さ、信頼性、網羅性、どれをとっても高評価と言えそうです。
まとめ
ここまでをまとめると、以下のようになります。
メリット | デメリット | |
本 | 信頼性が高い 網羅性が高い | 情報が遅い 更新性が低い |
Web | 情報が早い 更新性が高い | 信頼度が低いものもある 網羅性が低いものが多い 良い情報を見つけるのが難しい |
次のセクションで詳しく説明していきますが、変化の激しい領域ほどWebが向いていると言えそうです。具体的にはフロントエンド領域です。
また、日経ナレッジさんに情報収集のコツや、媒体による違いをまとめた記事がありましたのでこちらもご参考にしてください。(https://nkbb.nikkei.co.jp/km/usage/column-information-gathering/)
プログラミングを学ぶ上での相性
では、プログラミングを学ぶ上で本とWebという媒体をどう使っていくのが良いでしょうか。
これは学ぶ領域、対象によって変わってくると思いますが、大枠としては以下の方針かと思います。
- 勉強の中心はWebの教材、記事
- 本はなるべく網羅性、正確性の高いものを選び、辞書的に使ったり概念に触れることを中心にする
少し前はある程度分かりやすく噛み砕いて解説している本も一つの選択肢としてアリだったと思いますが、そのレイヤーは今ならWebの情報でまかなえると思っています。であれば、本を買うならなるべく抜け漏れのない分厚い本を一冊買っておくのがいいんじゃないかというのが僕の意見です。また、本の役割は各言語、技術の公式サイトでも良いでしょう。
言語、ライブラリレベル
まず、皆さんが「プログラミングを学ぶ」という言葉から連想するのはおそらくプログラミング言語を学ぶことかと思います。Pythonを勉強するだとか、JavaScriptを勉強するとかです。フロントエンドではそこにReact/Vueなどのライブラリも含まれるでしょうか。これらを学ぶときについて見ていきましょう。
本
自分が勉強している言語の本は一冊持っていても良いと思っています。一度その言語について網羅的に触れる機会があると、その時すぐに理解できなくても後から調べたりするときのフックが頭の中に残ります。
各言語の本を買うなら上述のようになるべく網羅性の高いものの方が良いので、個人的にはオライリーさんから出版されているものがおすすめです。
特にバックエンドの言語は難易度が高かったり、そもそも本などで順序立って勉強しないと発想すら難しい機能などが多く存在します。
しかし、フロントエンドに関しては技術の変化のサイクルが激しく本ではすぐに古くなってしまうデメリットが目立ちます。よってフロントエンドに関しては本よりは公式サイトの情報を見たり、良くまとめられた記事を読むことを重視した方が良いかなと思っています。
Web
Webにおける教材サイトや記事は、言ってしまえば好みで決めて良い部分かなと思います。自分にとって取り組みやすい、分かりやすいものを選ぶことが大切です。
もう一つの観点としては、「なるべく低リスクで始めて自分に合った領域を見極める」という点です。
例えばWeb制作とWeb開発はやることが異なりますし、フロントエンド/バックエンドもかなり好みが分かれると思います。
その辺を詳しく知りたい方はこちらもあわせて読んでいただければと思います。
というわけで、以下はお手軽に始められる順に教材を紹介してみようと思います。
Progate
もはや説明するまでもないですが、ブラウザ上でコードを書きながら学ぶことができるサービスです。
ドットインストール
こちらは動画でプログラミングを学べるサービスです。個人的にとても好きなサービスです。学び初めの頃は大変お世話になりました。
上記2つのサービスは値段的にもかなりリーズナブルに始められますから、いろいろなコースを試してみて好きなものに目星をつけましょう。方向性が決まり、続けて学習する上で上記のサービスではどうしても不十分だと感じた場合は以下のサービスを試してみましょう。
Udemy
こちらも動画教材です。各種言語においていろいろな方が教材を販売しています。セール時であれば1つ数千円以内で購入できます。ただ、いい教材を探すのがやや難しいのは否めないでしょう。
デイトラ
こちらは立て付けとしてはオンラインスクールなのですが、内部の教材に閲覧に関する期限がないので教材として紹介します。最近僕の周りで利用している方が多いです。また一般的なスクールに比べれば安価ということで、上記の教材とスクールの中間的な形で利用するのが良さそうです。
とはいえ価格はあくまでスクールよりは安いものの、約10万円ほどと結構値は張ります。
どうしても上の教材で足りないという場合に検討してみてはいかがでしょうか。
基盤技術レベル
さて、言語やライブラリに関しては本でもWebでも数多く情報が存在していることはわかりました。
さあ、そこから一歩深いところを学ぶとなるとどうでしょう。例えばコンピューターそのものの仕組みやWebにおけるhttp通信がどのように行われているか、あるいは設計の話などです。
本しかない
これらの領域に関してはWebで学ぶというのはなかなか難しいと思っています。
こういったものは本で学ぶしかないでしょう、僕も本で学んできました。
以下に僕が読んだことのあるものを紹介していきます。Webに寄っていますがご了承ください。
httpの教科書
http通信の仕組みを体系的に学ぶことができます。Webを主戦場にするなら間違いなく使う技術ですから、絶対に理解しておきたい領域です。
Webを支える技術
こちらはhttpのみならず、そもそもURLの仕組みやWebサービスの設計概念(REST APIなど)についても触れられています。その分各セクションはそれぞれの専門書よりはあっさり目です。
プログラムはなぜ動くのか
コンピュータはなぜ動くのか
上記2つは実際のコードを書く部分からはかなり離れていますが、そのコードが動く裏側にはいろんな技術が積み重なっているということが書かれています。これら自体を理解するというよりは、そういうものがあることを認識することが大事です。もし深く知ろうとした時に、言葉を知っていれば検索することもできますね。
良いコードを書く技術
これは設計に近い話です。単純に動くコードを書くところから、保守性や継続的な開発をしやすいコードが書けるようになると周りのコーダー/エンジニアに差をつけることができます。
手前味噌ですが、僕も本を書いています。
さて、技術的な本やWebの情報は様々あります。一方で実案件に即した情報というのはなかなか出回っていないように思います。まあ普通で行けば案件に関する知識・知恵は会社に入ってから身についていく部分ですからね。
しかし近年はフリーランスとして働きたい方が増え、言ってしまえば素人が市場に解き放たれるような状態になってきました。本当にそれでいいのでしょうか?
もちろんそういった人や、特にこの記事を読んでくださっている方はクライアントに迷惑をかけたいとは思っていないはずです。であればどこかで案件で必要な知識・知恵を補う必要があります。そんな状況に向けて、僕もフリーランス7年間で培ってきたものをなるべく外出ししていこうと本の執筆を進めています。どうか一度は読んでみてください。
現在、
- JavaScript学習ロードマップ+頻出UIパーツの作り方
- コーディングスピード向上ガイド
- 案件でよく使うこー〜ディングテクニック集
を公開しております。絶対にみなさんの役に立つと信じています。
まとめ
長々とプログラミングを学ぶ上で本、Webの情報との相性を考えてきました。改めてまとめると以下のような形になるでしょう。
本 | web | |
各種言語、ライブラリ | 辞書的なものを一冊買う ただしフロントエンド関係は変化が激しいので注意 | いろんなサービスを試しながら自分に合うものを探す |
基盤技術 | 本をメインに学ぶ | あまりない |
総括
というわけで、プログラミングを学ぶ上で本は本当にいらないのかを書いてみました。
やはり深いところを学ぼうとするほど書籍に頼ることになるだろうと思います。Webで検索できるものだけが全てだとは思わないでください。
本当にエンジニアとして生きていくなら、転職してからも新しい技術について学んだり、どんどん知識を深めていく必要があります。良い情報をどのように得たら良いのか、今のうちから訓練しておきましょう。
コメント