※ 本記事にはプロモーションが含まれています。
こんにちは! ねこです。
私、今は 40 過ぎの会社員ゲームエンジニアですが、もともと印刷のデザイナーでした。
そこから、フリーランスのデザイナー時代に、独学でプログラミングを覚えたんですよね。
それまでは、完全に未経験です。
今は、その独学で覚えたスキルを活かして、プログラミングのお仕事をさせていただいています。
今回は、その経験をもとに、初心者が独学でプロになれる、プログラミング学習のロードマップを書いてみました。
是非、参考にしてみてください!
20 代後半でプログラムを独学
その前に、まず私の最初のプログラミング学習の内容を簡単に説明します。
当時は、Web のインタラクティブなコンテンツ、といえば Flash でした。
その Flash のプログラミングを独学で覚えて、実際に仕事を受注していました。
むしろ、ある程度触って「できるだろう」で、受注しています。
そのために、死にそうになった経験もありますが 笑。
当時の年齢は、20 代後半です。
その経験から、プログラミングは独学でも可能で、仕事も個人で受注できることを体感として知っています。
というわけで、今からプログラミングを覚えたい人向けの独学方法を説明していきたいと思います。
プログラミング 独学ロードマップ
まずは、概要を目次形式でお伝えします。
これらは、だいたい半年くらいのロードマップで考えています。
学習に必要な時間は、可能なら 1 日 1 時間くらいとれるのが理想です。
しかし、続けていれば必ずたどり着く目標でもありますので、あまり無理せず、進めていきましょう。
目次
- まずは、具体的な目標を決めよう
Web サービスを作りたい? ゲーム? 自分のなりたい目標を決めてみよう。 - 実際に使用する技術を調べてみよう
目標を決めたら、それに必要な技術について調べてみよう。 - 良質なサイト・本を見つけて、同じことをしてみよう
自分にあった教材を見つけて、まずは同じようにやってみよう。 - 実際に動くオリジナル作品を作ってみよう
ある程度理解できたら、今度は自分のオリジナル作品を調べながらつくってみよう。 - 色々な人から、依頼を受けてみよう
やはり、仕事は、誰かの役に立ってなんぼ。人の困りごとなんかを解決してみよう。
学びの基本は、守・破・離
プログラミングに限らず、ですが、学びの基本は、目標となるものを忠実にまねすることです。
最初は、なぜ、どうして? という疑問がたくさん湧くと思います。
独学なら、特にプログラミングなら、なおさらですよね。
でも、真似をしていくと、パズルのピースがカチッとハマるように、腹落ちするタイミングがあるはずです。
真似ができるようになってくると、アレンジができるようになります。
最終的には、オリジナルを 1 から構築できるようになっているはずです。
人に教えるのも、学びになる
月並みな言い方になりますが、勉強はアウトプットが大事です。
特に、人に教えることをしてみると、すごく自身の学びになります。
教えられるということは、その周りの周辺情報や理由も、わかってないとできないですからね。
だから、教えあえる友人を作ると、勉強が捗ります。
人にじゃなくても、例えば、私みたいに、ブログでアウトプットするのもいいですね。
まずは、具体的な目標を決めよう
もちろん、このページを読んでいただけるくらいですので、興味や意欲は十分にありますよね。
ただ、注意。
あたりまえですが、プログラミングはあなたの夢をかなえる手段です。
覚えることそのものが目的ではないはずですよね?
ですので、まず、あなたが何になりたいのか、何をしたいのかを考えてください。
プログラミング学習は、時間がかかる
というのも、プログラミング学習って、時間がかかるんですよね。
また、一番挫折しやすいのも、最初のタイミングです。
ですので、ちゃんと目標を決めておかないと、ぶれてしまいます。
とはいえ、20 代であれば、3 か月~半年で、プログラミングで就職したり、お金を稼ぐところまではいけると思います。
もちろん、年齢が上になると、未経験での就職の窓口が減っていくと思います。
しかし、別に頭脳が衰えてるわけではありません。それに、色々な仕事の方法はあります。
頑張ってください!
私の場合は …
私がプログラミングを覚えた理由は単純でした。
当時は、フリーランスのデザイナーでした。
ただ、なかなか大変で、試行錯誤の連続でした。
そんな中、仕事に幅を持たせたかったんですね。
それで思ったのは、仕事でインタラクティブなコンテンツを作る技術を手に入れよう。ということでした。
それから、3 か月くらいで、受託で最初の仕事にありつけました。
その時は、実際にモノになるのか? 食べていけるか? という不安がありました。
でも、今になって思うのは、やってみてよかったとということです。
実際に使用する技術を調べてみよう
どんな人になりたいか、それを決めたら、具体的にそれを形にする方法を調べていきましょう。
どんな言語を覚えればいいか、そのための必要なツールはなにか。
転職サイトや、興味がある会社の求人ページに書かれてある、求める技術を見てもいいですね。
トレンドに乗るもの大事
言語にもトレンドがありますので、同じことができる言語を比較することも大事です。
言語のユーザー数や、平均収入などを調べると、だいたいわかると思います。
私の場合は …
当時の私の時代は、インタラクティブなコンテンツ制作は、Flash というツールを使うのがトレンドでした。
その中の ActionScript という、Java の構造に似た言語。
それを覚えることが、私のエンジニア人生のスタートになりました。
しかし、2020 年 Flash の Web プレイヤーのサポートは完了しました。
ですので、現在は、Flash コンテンツ制作で仕事を行うことはできなくなりました。
とはいえ、一度体系的に言語を覚えると、その後の移行はかんたんです。
私は、その後ゲームエンジンの Unity(C#)でのゲーム開発に、これまた独学で移行しています。
良質なサイト・本を見つけよう
覚えたい、言語や技術を固めたら、今度は実際に勉強を始めていきましょう。
最初は、良質な本や入門サイト、チュートリアルを参考にまったく同じことをするのが、上達の近道です。
ですので、まずはその良質な教材を探すところから始めてみましょう。
最初はとにかく、簡単なものを選ぼう
探すコツは、とにかく簡単なものを見つけることです。
そして、ツールのセットアップから、開発まで、順序だてて書かれてあるものがいいですね。
一番いいのが、動画で説明している初心者用学習サイトが良いと思います。
ただし、英語のみだったり有料だったりするケースが多いです。
ですが、スクールで学ぶよりは安いですので、無料部分をやってみて、良ければ購入するのがいいと思います。
本を買うとしても、2,000 ~ 6,000 円くらいするとおもいます。
サイトだと、月 1,000 くらいから、体系立てて学べるものもあります。
場合によっては、学習サイトのほうが効率いいので、それくらいは投資の範囲だと思ってください。
英語が分かれば、無料で学習できる範囲は広がります。
私も、新しい知識は動画で覚えることが多いです。
こちらに、おすすめ独学サイトをまとめました。
[sitecard subtitle=関連記事 url=/program-self-learning-recommend-sites/ target=]
まずは、同じことをしてみる
教材が見つかったら、まずは自分の信じたものを信じて、1 から同じようにやってみましょう。
プログラム内容も、最初わからなくても、いったんは、すべて書き写すくらいの気持ちで書いていきましょう。
本やサイトの内容が、古くなったりして、同じことしても動かない場合もあります。
その場合は、検索して調べてみてください。
プログラムエラーの場合は、そのままのメッセージ内容を検索すると、いいと思います。
だいたいの場合は、解決している先人がいますので、それで進められるはずです。
私の場合は …
私の場合ですが、まず、大きい本屋に行って、覚えたい技術(Flash / ActionScript)の本を 2 冊買いました。
1 冊は入門書的なもの、もう 1 冊はやりたいことから検索できるリファレンス本です。
今なら、逆引き系のリファレンスは、サイトに色々情報がありますから、おそらく必要ないでしょうね。
で、私は、入門書をはじめのページから、読んでいって、同じことをしていきました。
プログラムも、まずは、書いてある通りに実行する感じです。
最初は、わからないですが、書いたあと、色々数値をいじったりアレンジすると、機能が理解できたりしていいです。
本も半分超えると、プログラムを書く、ということがだんだんわかってきます。
私は、そのタイミングで次のステップに進みました。
最初に折れないためのコツ
プログラミング学習は、最初につまづきやすいと先ほど言いました。
それは、いくらガイドの通りにやっても全くその通りに動かないということがざらにあるからです。
プログラムは極論をいうと、1 文字でも間違ったら動きません。
その通りでも、ツールの設定などによって動かないこともあります。
プログラマは、それを試行錯誤して解決することが求められます。
しかし、最初が一番厳しいのは事実です。
そこで、折れないためのコツを書いていきます。
100%理解しようと思わない
まずは、最初から完璧を自分に求めないことです。
専門用語だらけのプログラミング言語。
最初は、大きな海に釣り針を 1 本たらすくらいの心もとなさで学習すると思います。
ですので、ある程度はそういうものかな? とふんわり思いながら、進めていってください。
気づいたらそのうち、色々なことができるようになっているはずです。
学習に大きな目標を掲げすぎない
続けるためにも、まず最初の目標は、なるべく低く設定しましょう。
例えば、ゲームエンジニアが目標だと、どうしても大作を作ってみたくなります。
でも、最初は、画面に文字や画像を出すところで、四苦八苦します。
簡単に思えることが、 1 日かけてもできないかもしれません。
でも、AAA タイトルって、プロのスタッフが 2 ~ 300 人規模で、何年もかけて作り上げています。
Web サービスも、規模は違えど、大勢のプロがかかわって作られています。
さすがに、それを目標にするのは、大きいです。
最初は、文字を出力したり、簡単な計算結果を表示するだけでも、すごい成果です。
昨日できなかったことが、今日できるようになるのは、楽しいものです。
その感覚をもって、着実に学習していきましょう。
可能なら毎日、少しでも手を動かす
プログラミング学習は、継続するのと、手を動かすのが大事です。
時間が取れなくても、最悪 10 分でも毎日手を動かすことをやってみてください。
プログラムは、書くことでインプットとアウトプットの両方ができます。
また、毎日少しでも触ることで、知識が定着していきます。
1 日まとめてやって、6 日なにもしない、というような極端な学習スタイルだと、効率は悪いです。
また、時間がたつと、やったことを思い出すのもしんどくなります。
それで、学習がストップしてしまって、今までの学習が無駄になるのはもったいないですから。
一緒に学ぶ仲間、メンターを見つける
もし可能なら、一緒に学べる仲間がいると、学習は飛躍的にはかどります。
とくに、わからないときに相談できる人がいるのは、本当に心強いです。
私も、Unity(C#)を覚えるときは、一緒に仕事してた仲間を誘って、土日会って勉強していました。
サンプルプログラムを一緒に見ながら、動く仕組みを色々話してたんですが、それが、私の理解のスピードを速めてくれました。
その仲間も、Unity で別案件を獲得してますので、良い集まりだったな、と、思っています。
また、メンターがいると、さらに心強いです。
しかし、あまりに聞いてばっかりだと、負担になりますし、良い関係値ではありません。
まずは、礼儀として、ひとりでできることはすべて実行してみるのが良いですね。
それでもわからないときに頼るくらいの感じがいいと思います。
そのうえで、感謝を忘れないでいると、良い関係が続くはずです。
実際に動くオリジナル作品を作ってみよう
ここまでは、自分の目的にあったガイドに沿って、学んできました。
ある程度こなしたあなたなら、プログラム作品を作り上げる感覚もわかってきましたよね?
そうしたら、試しに実際に動くものを 1 から作ってみましょう。
コツはもちろん、最初からすごいもの作るのではなく、小さいものを何個か作っていくことです。
オリジナル作品を作るメリット
やはり、作るならオリジナルのプログラム作品がいいと思います。
そのメリットを以下に書きます。
プログラマーにとって必要なスキルが学べる
やはり、1 から作るとなると、色々な基礎力・応用力が必要です。
基礎力は、企画、設計、開発の全般。
応用力は、問題への対応力や、調べる力など。
それらを、一通り行うことができます。
ただ、独学で学ぶと、変な自分の型が出来てしまい、チームでの作業で困ったりするケースもあります。
また、チーム作業に必要なツールの学習が難しいです。
その点は、理解しておいてください。
あなたの実績として見せることができる
一番重要なのは、作ったものが自分の実績となることです。
また、採用する側にも、あなたのスキルや努力量、問題解決力を事例として見せられます。
自身につながる
自ら、プログラミング作品を 1 から作る。
これそのものが成功体験になりますので、自信につながっていきます。
その自信が、仕事をしていくうえで、結構大事になりますね。
何を作るかのヒント
では、何を作ればいいのか?
もちろん自由ではありますが、ここで決めるためのヒントを簡単に書いておきます。
仕事・趣味で、自分が欲しいものを作ってみる
やっぱり、自分の好きなもの、欲しいものでないと、やる気出ないのは事実です。
ですので、そのニーズを満たすために、作ってみるのはおススメです。
私も最初は、自分のサイトを作って Flash の作品を載せていくことをしていました。
それを使って、仕事を見つけてたのです。
仕事・趣味で、あなたや仲間の問題点を解決してみる
プログラムのスキルが活きるのは、ルーチンによる自動化やスケーリングです。
せっかくだから、これを活かさない手はないですよね?
もし会社で、これがあれば便利なのにな、と、思うものがあれば、作ってみるのもいいです。
ラクをするために、自動化のツールを作る。これって結構クレバーじゃないですか?
それがそのまま、業務実績になりますので、おとくです。
私も、今でも業務で役立つような、自動化ツールを作ったりしています。
もちろん、作るツールによって言語が違いますが、それも含めて勉強になりますね。
色々な人から、依頼を受けてみよう
ここまできたら、後は、仕事として責任を持つ立場でやれることをしてみましょう。
例えば、プログラマーとして就職したり、副業で稼ぐなどですね。
フリーランスになるという選択肢もあります。
しかし、可能なら、1 度はプログラマとして就職することをおススメします。
なぜかというと、以下のようなメリットがあるからです。
プログラマとして就職するメリット
チームでの開発の方法が身につく
どうしても独学だと、見につかないのが、チームでの開発手法です。
もし、あなたフリーランスになったとしても、基本はチームでの開発の一部を委託されるのがメインになると思います。
ですので、それらを理解するためにも、最初に就職してみるのはメリットがあります。
仕事をしながら教えてもらえる
会社員になると、わからないことは教えてもらえるというメリットがあります。
さすがにスクールのように、すべてをやさしく教えてもらえるものではありません。
しかし、わからないところは聞けますし、サポートもしてもらえます。
しかも、お金ももらえます。
これらは、いきなり副業・フリーランスを始めると得られないものです。
責任の範囲が限定的
また、会社員は、責任の範囲が、かなり限定的です。
すくなくとも、会社員で、大金を失うような失敗があったとした場合。
降格されたり、クビになることはあるかもしれませんが、金銭の請求をされることはまずないです。
しかし、フリーランスの場合。
場合によっては、失敗・過失したときの責任が、お金の問題になることもあります。
さすがに、フリーランスに損害を請求してくるところは、ほとんどないと思います。
しかし、立場的にありえるのも事実です。
私の場合は …
ただ、私の場合は、会社員にならずに、スキルを活かして受託開発をずっと行っていました。
そのために、大変なこともありましたが、それはそれでいい経験になりました。
あまり褒められた話ではないですが、1 か月くらい、ほぼ寝れずに開発を続けたこともあります。
ただ、技術を身に着けたら、明らかに請け負える仕事の単価は上がりました。
当時、20 代後半で 800 万くらい稼いでたので、悪くはなかったはずです。
これらの知識は、会社員になった今でも、ずっと自分のスキルとして活かされています。
最後に
ここまで、独学でのプログラミング学習のロードマップを駆け足でご紹介しました。
私の場合は、20 代後半から独学で覚えました。
しかし、今のご時世であれば、30 代からでも全然いけるのではないか? とも思ってます。
ぜひ、今回の記事が、あなたにとっての次の 1 歩につながることを願っています。