この記事を読むのに必要な時間は約 7 分です。
プログラミングスキルを身に着けたいという人は、エンジニアに限らずたくさんいます。
ただ、プログラミング学習を始めるにあたって、こちらのようなお悩みを持つ方がほとんどではないでしょうか。
何度も挫折してるし、やっぱりプログラミングの独学は無理なのかな?
ただでさえ忙しいのに、勉強量に見合うメリットが独学で得られるか不安、、、
実際、初心者のプログラミング独学は挫折も多く、本業エンジニアの間でもいろんな意見があり論争気味です。
文系卒の社会人(マーケ担当)だった私が、0から独学でプログラミングを学び、
エンジニアへとキャリアチェンジした経験からこの論争に結論を出したいと思います。
【結論】プログラミング独学が無理かどうかは「目的」次第です
プログラミング学習のよくある失敗パターンは、なんとなく今の仕事などに不満があって、現状を打破するためにプログラミングに飛びつくケースです。
なんとなくで独学を始める前にゴール設定を明確にしましょう。
目的が変われば、達成の難易度は大きく変わってきます。
そもそもプログラミングスキルで得たいすべての目的対して、独学が等しく適切なわけ無いですよね。
目的に応じてケース分けをしつつ、独学でいけるかどうか考えていきましょう。
ケース①:現在の業務を改善したい→OK
ちょっとした作業を効率化したい場合は独学で十分カバー可能です。
すぐ成果に繋げられるので、モチベーションも維持しやすいと思います。
私自身、プログラミングを独学し始めたのは、元々担当していたマーケティングの仕事に活かしたいと思ったからでした。
具体的には社内のデータベースからSQLで情報をとってきたい、流行りのRPAのようなルーティン作業を自動化したいというものです。
excelでマクロを組んだりするのもケース①に該当します。
ケース②:エンジニアとして就職したい→OK
プログラミングを独学する目的の中では、「エンジニアとしての就職」が最も現実的なラインになりそうです。
必勝法はポートフォリオを作ることをプログラミング独学のゴールに設定し、未経験OKの求人などを狙い撃って応募していくことです。
自分で手を動かしてアウトプットしているのであれば、多分それほど苦労することなくエンジニア就職が実現できると思います。
私が未経験からエンジニアにキャリアチェンジした際のプロセスも貼っておきますので、
具体的なやり方が知りたい方は参考にしてみてください。
ケース③:オリジナルアプリを作りたい→条件付きOK(お金にするのは厳しい)
「できたこと」をLINE から気軽に記録できるアプリ「どやログ」を作りました!
こちらから友達登録して、お気軽に使ってみてください。https://t.co/UsP49VAnlj
使い方の詳細は以下のブログ記事に書きましたので、よろしければご覧ください。https://t.co/8DmYUk6Yuc
— へびぺん (@a3iuk2s) 2019年2月9日
自分や周囲の人に使ってもらうことを想定した簡易的なアプリであれば、独学の範囲でも十分開発することが出来ると思います。
一方、一定規模のアプリケーションを(インフラからフロントまで一通り自分で動かす)には、例のような技術スタックが必要となります。
Web
・フロント:React、html、css
・サーバー:Ruby、RoR
・DB:MySQL
・インフラ:AWS、GCP
App
・Kotlin(Android)、Swift(ios)、Flutter(ios/android)、Unity(ios/android)
ぱっと見ただけでも、就業後や週末の独学でこれをやり切るのが難しいことは、素人でもわかるかと思います。
ケース④:フリーランスになって自由に働きたい→NG
100%無理だとは言いませんが、独学でのスキルアップは効率が悪いのでおすすめできません。
ケース②で企業づとめを経由してスキルを磨き、フリーランスを目指すのが常套手段です。
どうしてもひとっ飛びにフリーランスになりたいのであれば、
少しお金を投資してみて、プログラミングスクールに通ってみるのも良いかと思います。
TECH::CAMP
おすすめプログラミング勉強法【学習サイト/本】
目的はいずれにしろ、独学では期間の設定が重要です。
ここでは開始からの3ヶ月間を一つの目安に、おすすめの学習ツールなどをご紹介します。
プログラミング学習サイト
新しい動画系のプログラミング学習支援サービスが始まったみたい。お得なベータ版の無料公開中にLinuxの勉強をしてみようと思います。https://t.co/jfDBH426gT
— ターバン@エンジニア転身 (@turban_marke) 2019年3月5日
新しい動画系のプログラミング学習支援サービスが始まったみたい。お得なベータ版の無料公開中にLinuxの勉強をしてみようと思います。
https://proglus.jp
プログラミング学習の領域では日々新しいサービスが生まれています。
動画やブラウザで練習問題が解けるもの、チュートリアルなど様々なスタイルで学習ができます。
Udemy 
動画系はエンジニアリングの思考プロセスや、文字では割愛されるポイントも逃さないので初学者向けです。
Udemyはコンテンツ量が多いので、自分にあったものが探しやすいと思います。
Progate
初学者にとっては鉄板の学習サービスです。
つまづきがちな環境構築を省き、手を動かしながら学ぶことができるのがポイントです。
paizaラーニング
動画+ブラウザ上での練習問題を解いていくことでスキルアップができます。
特徴は入門系コンテンツのレパートリーが幅広く、AWS入門や機械学習・AI入門など、実際に体験する機会がなかなか無い分野も学ぶことができます。
チュートリアルも充実しているのでおすすめです。
プログラミング学習書籍
ネットでまかなうことができますが、技術書での学習も必須です。
調べ物をしたりポストイットでマーキングしたりと、辞書的な使い方をするのがおすすめです。
HTML/CSSやSQL系の書籍はリファレンスとして1冊持っておけばすぐに仕事で役に立てることができます。
自分が学びたい言語のオライリー系の書籍を一冊持っておくと辞書的に使えていいと思います。