
今回はエンジニアがプログラミング初学者にいう上記のようなワードについて。真意をより深掘りしてお伝えします。
この記事の目次
「何か作れ」という言葉の真意
例えば、現役エンジニアに「プログラミングができるようになるにはどうしたらいいと思いますか?〇〇さんはどうやって身につけましたか?」と質問したとしたら。
十中八九「入門教材をやったら、何か作ってみろ」、「経験、とにかくコードを書きまくることが大事」というざっくりした答えが返ってくるはず。
「それだけ?」と思うかも知れませんが「何か作るのが大事」と言う言葉の中には本当に大事な概念が詰まっています。
勉強ではなく、実践しなければ開発スキルは身につかない
前節のように「プログラミングを習得したければまず、何かアプリなりシステムなりを作った方が良い」と言われてもプログラミング初学者の方は
「いやいや。そりゃあ自分で何か作れるなら勉強になるだろうけど。それができたら苦労はしないよ!今の自分では何か作れる知識も技術もないから困ってるんじゃないか。。。」
と思うはず。
しかし、そう思ったままで終わらせないで欲しいです。
学習中の未経験者に知識も技術もないのは承知の上、プログラミング学習では
知識がついてから何か作る
ではなく
何か作るから知識がつく
という流れが正解です。
このことを現役のエンジニアは身を持って知っているからこそ
「インプットとしての学習はほぼ無意味、何かを作りながら学んでいくほうが良い」
と考えています。
分からないことを調べて考えて、何とか作った過程が血肉になる
現在第一線で活躍しているエンジニアは程度の違いはあれどたくさんの修羅場を経験してきています。
順風満帆に経験を積んでこられたという人のほうが少ないんじゃないですかね、
ほとんどのエンジニアは経験が少ない状態でも案件に参画させられ、先輩もつきっきりで指導する余裕はないので基本的には自分で調べながら業務を進めます。
「知識はないけどシステムを完成させるしかない!」、「やれるかどうかじゃなくてやるしかない!」という経験をしてきていると思います。
自社サービス開発の会社でない限り、エンジニアは基本的には顧客となる企業との契約でシステムやアプリ開発、システムの保守等の仕事を請け負います。
「ウチならできます!」という約束で仕事を請け負ったのですから、当然いつまでに完成品を納品するという期限があります。
その仕事をまっとうするにはたとえ知識がなかろうが経験がなかろうが自分で調べてなんとかするしか無いわけです。(さすがに経験が少ないエンジニアの作ったものをそのまま納品するのは危険ですから先輩エンジニアがチェックする工程はありますが)
プログラミングスクールのメンターが優しく教えてくれたり、市販の教材に答えが用意されているわけでもないので、自分で納品するシステムを完成させるために必要なことを考えて、調べて作り上げる。
こういった経験を何度も重ねてきているので、そりゃあ知識もスキルもつくし、わからないことでも自分で解決する力が身につきますよね。
仕事に近い形で学習することは誰にでもできる
当然、実際に仕事として開発を行ってきたエンジニアと、まだ職業としてのプログラマではない人とでは状況は違うでしょう。
会社でなら実際の業務で揉まれながらもスキルは身につきますが、未経験で学習中であればIT企業の後ろ盾もないので仕事を請けることはできませんよね。
本物の仕事を請けることはできませんが、そのかわりにオリジナルで開発することはパソコンがあるならできるはずです。
なにも画期的なオリジナルサービスを作る必要はなく、勉強なんだからありふれたもので構いません。
「何か作ればいい」というのは、「書いてある通りにするだけでアプリを作れる」教材をやるだけではダメです。
ググったり、本で調べるのはOKですが一から作るものを自分で考えて、それを実現するためには何が必要か洗い出しましょう。
これをするだけでも初心者のうち上位数%に入れると思います。
「Progateは一周でいい」という言葉の真意
「プログラミングを理解するためにはProgateを何回もやりまくろう!」なんて言ってるエンジニアはいないと思います。(もし言ってる人がいるなら失礼ですがよっぽどの低レベルエンジニアか、まともに開発職に就いてないかだと思います。)
ほとんどの現役エンジニアは「Progateは一周でいい」と言っています。
そもそも「Progateはやらなくてもいい派」もいます。
ですが、実際にはProgateを一周でやめられない人は多いはず。
その理由について詳しく分析したいと思います。
Progate離れできない理由:「普通の人は一周で理解できるかも知れないが、自分は特別理解度が足りない」と思っている
「Progateのコースをなんとかクリアしてみたものの、ヒントや答えも見てしまったし全然理解できてる気がしない。プログラミングの入門であるProgateすらこんなに苦戦してるようではダメだ。もう一回やろう」
これがProgate離れできない理由として一番多いんじゃないですかね。
僕も3年前(2017年)は同じようなことを思っていました。気持ちは凄くわかるのですが、この考えは全く的外れでした。
Progateでは「プログラミングの雰囲気を体験してみる」だけで十分、基礎は入門書や動画教材で学ぼう
そもそもProgateを何周やっても開発に必要なスキルは身につきません。
あくまでブラウザ上で問題を解くだけのProgateで学べるのは「プログラミングっぽいもの」だけであり、プログラミング本体を学ぶことはできません。
また内容についてもプログラミング言語の機能のごく一部のみで、開発に必要な重要な知識がかなり省かれています。
こう言うとディスってるように聞こえるかも知れませんがそうではありません。
Progateは間違いなく良いサービスです。
それは、初心者でもプログラミングの雰囲気を体験することができるからです。
初心者のうちは、自分のPCにプログラミングを実行する準備(環境構築)をするだけも難しいです。
この手間を省いてブラウザ上のエディタで気軽にコードを打ち込めて学習を進められるのは大きいです。
スペルミスをするとエラーが出る、コードを変更してブラウザを更新すると画面に反映される。
また、基本的な用語もスライドで噛み砕いて説明されるので頭に入りやすいです。
もう一度言いますが、Progateでは開発で絶対に押さえておきたい知識が抜けていたり、また初心者には難しい内容が入っていたりと内容が偏っています。
実際の文法や開発の仕方については別途入門書やUdemyの動画教材等で学ぶ必要があります。
なのでProgateをやる段階では「プログラミングを学ぶ」のではなく「プログラミングの雰囲気を感じてみる」だけで十分なのです。
個人的にはProgateをやるのは必須ではなく、心の準備の問題だと思っているので早く習得したい場合はいきなり入門書や動画教材を初めても何も問題ありません。
動画教材であればUdemyやSkillHacksのように作成者に質問ができるタイプのものがおすすめですね。
【サーバーサイド言語Rubyを学ぶなら↓】
最短・最速で脱プログラミング初心者|Skill Hacks(スキルハックス)
【フロントエンド言語を学ぶなら↓】
Udemy 【HTML,CSS,JS】超豪華!フロントエンド完全版 〜1ヶ月でWebプログラマーへ!〜
不安なら、期限を決めて徹底的にProgateをやりまくってみるといい
ここまで言っても、一定数どうしてもProgateをヤメられない方はいると思います。
どうしても不安であれば1ヶ月、2ヶ月と期限を決めてProgateをやりまくってみるといいと思います。
そうするとProgateをやりこんでも自分が何も作れるようになっていないことに気がつくはず。
人に言われてやることと自分で納得してやることとはまた違うので、そのときは「やっぱり何か作り始めないとダメだ!」と心から実感していただけるんじゃないかと思います。
まとめ:実践しながら学ぼう
しつこいくらい繰り返しになるかもしれませんが、仕事としてプログラミングをやりたいのであれば「実際に目標物を作る」という過程が必須です。
必要な知識は作りながらその都度学べばOKです。
私の知り合いでも酷い場合、一年以上Progateの世界から出てこない人もいます。
申し訳ないですがこれだと完全に時間の無駄ですね。
「こう書けば動くことが保証されている教材」を何周やっても理解度はほぼ上がりません。
申し訳ないですがその学び方を続けている限りは仕事としてエンジニアをやっていくのは難しいでしょう。
プログラミングに限らず、実践をしながら学んでいくことが新しい物事を習得していく最短ルートだと思うので。
ぜひ今回の内容を実践してみてください。