どうも、フリーランスエンジニアのまっきー(@nobita_x009)です。
最近ちょくちょくブログ経由で学生さんや未経験の方からご連絡を頂くことが増えてきました。
いつもブログを読んで頂いてありがとうございます!
そこでちょっと相談されたのが、

ってことでした。
そこで、いろいろ聞いてみたところ、どうも「Webサービスがどうやって動くか」の理解がなさそうでした。
そもそも、その理解が無いと、いくら言語の書き方を理解したところでWebサービスを作ることができません。
フレームワークは便利!だけど弊害も?
最近だどRuby on Railsなんかが有名ですが、フレームワークの成長がめざましいんです。
僕のエンジニア歴は10年にも満たないですが、最初の頃はデータベースに接続するのも接続文字列とか書いてたし、データ登録するのもSQLをバリバリ書いてました。
いまだとその辺意識せずともデータ操作できちゃうし、ある程度のセキュリティ対策もフレームワークが吸収してくれちゃったり。とにかくすごい。(語彙力)
ただ、その弊害と言っていいのか、1からプログラムが組めないエンジニアが増えているなんて話も聞きました。
プログラムをゼロから作れないプログラマーが話題になっていますが、フレームワークが便利になりすぎたことも影響しているかもしれませんね。難しいコアな部分は全部フレームワークが吸収してくれますから。何も考えずにフレームワークの作法に習ってコーディングすればそれなりに作れてしまうので。
— 米村歩@日本一残業の少ないIT企業社長 (@yonemura2006) March 29, 2018
未経験からの場合、フレームワークの習得が先になって、迷走しているかも。
Railsの書き方とか構文はわかる、だけどどうやったらWebサービスが作れるの?って状態の人。
そんな人はそもそもWebサービスがどうやって動いているのかが抜け落ちているかもしれません。
- Webサービスがどうやって動くのか?(httpとは、RequestやResponseとは?)
- 動くために使われている技術はなに?(クライアントサイド、サーバーサイド言語って?とか)
- それを便利にする「フレームワーク」ってなにもの?
上記のような流れでフレームワークの使い方を理解していくのがわかりやすいと思うのですが、いきなりフレームワークの使い方を習得しようとしてしまっている人が多いように感じます。
フレームワークを学ぶのは、プログラミングの楽しさにもつながるので全然OKですが、行き詰まってしまったら、一旦Webの技術ってなんだっけ?に立ち返ってみるのをオススメします。
本で学ぶ場合は、以下の本がわかりやすくてオススメです。