プログラミング独学の限界突破の話

2021年12月11日

テクノロジー

eyecatch 完全独学で、企業プログラマーのトップにのし上がった経験のある、ユゲタです。 この間ツイッターで、独学の限界を感じたので、スクールを考えている人というのがいた。 個人的には、クッソ高いスクールに行く以外の学習法を教えてあげたいと思ったので、ブログに書きます。 なんなら、ほぼ0円で出来るのに。

何で行き詰まったのか?

ツィッターの人は、何故、独学に行き詰まったのか書いていなかったので、勝手に想像してみた。
  1. リファレンスを読んでいて、わからない部分が出てきて、教えて欲しくなった。
  2. チュートリアル通りにやってみたが、エラーになって、自分で直すことができなかった。
  3. プログラミング自体を難しく感じてしまう。誰かに都度、わかりやすく解説してほしい。
  4. チュートリアルやリファレンスを全てやり込んだが、実務経験義ないので、そうした人達と話がしたい。または、作業がしたい。
  5. 自分のプログラミングレベルを他の人と比較してみたくなった。仕事で通用するかどうか分からないから。
  6. 同時期に始めた友達の方が自分よりも先に進んできて、効率的な学習がしたいと思った。
  7. 人の作ったプログラムが、理解できなくて、自分のレベルの低さを実感した。
  8. また、それの意味を調べる方法が分からなかったので、周辺理解も含めて、学習したくなった。
おそらく、この人に限らず、プログラミングを挫折した人の理由は、だいたいこの中にあるのではないかと思われる。

スクール以外の選択は?

次に、スクールに行く以外に一体どういう事ができるのかを考えていた。

1. ネットでのプログラミング教育サイト

次のような、ある程度は無料でも学習できるサイトで、なるべくコストを掛けずに、学ぶ。
・ドットインストール ・paiza ・progate
など・・・

2. メンターを付けて、質問ができる環境を作る。

ちなみに、スクールなどに行かなくても、メンターは付けられると思うので、 それをツイッターなどで探すといいのに・・・

3. 書籍を購入して、ちゃんと実直に写経する

その際に、ネットなどからコピペを進めるような書籍はダメですな。 入力して、少し変えて、プログラミングのポイントを体感していくことが重要。

改めて効率の良い独学プログラミング学習法は?

そして、効率のいいプログラミング学習というのを、ユゲタなりに考えてみた。

1. 公開ブログで、備忘録を書く

他人(未来の自分)に見せることを目的で、自分のやった事を再現出来るように記述する。 書く内容のコツとしては、
  • その時の環境
  • 失敗談
  • かかった時間
  • 完了後に、どうすれば効率的に出来たか?
  • 類似で使えそうな技術や場面
  • 最後に自分の感想(難しかったや、簡単だっただけでも良い)をしっかりと書いておくことも重要。
  • さらに、他の人から批評されるのもとても良い。
  • それから、未来に自分で読んで、さらなる感想を書くも良し。

2. 一つの筋の通ったサービス(アプリ)の構築をする

企画、構築、運用をする事で、自分事として仕事がこなせる感覚を持てるし、スキルが確実に付く。 もちろん、やった内容の備忘録は必ず書くこと。 これは一人でやることで、ほぼ仕事で扱うテクノロジーが習得できるスキル為、自己OJT方式とユゲタは勝手に呼んでいる。

3. Githubなどで公開されている他の人のプログラムを見て、書き方や、校正、思考性などを学ぶ

構文などは、他の人からドンドン吸収すれば良いし、その方が早い。

4. 複数のプログラム言語を扱ってみる

言語にとらわれない、基本のアルゴリズムが理解できるので、他の言語を苦手意識を持つこと無くどんどんトライすることをオススメする。

5. ソートなどの基礎アルゴリズム学習をやってみる

この時、どんなプログラム言語でやっても良いし、上記と同じ理由で複数やると、レベルアップは半端ない。

6. 人が使ってくれるシステムや、アプリを作ってあげる

仕事以外でも良いのだが、他の人が使うシステムが作れなければ、そもそも仕事としてプログラムなどできるはずがない。 こういうところに苦手意識を持っているようであれば、そもそもプログラミング学習をする前に、心理根底を鍛える必要がある。

プログラミングができる人の価値について

プログラミングができる人というのは、どういう価値を他の人から持たれるかを考えてみた。
  1. 希少性の高い、プログラミングが問題なく出来る(プロレベルに)ようになると、ビジネス現場での、給料も高額になる。
  2. 学歴などはほぼ関係なく、腕(スキル)だけで勝負することが出来る。
  3. 世の中の高額なアプリケーションを買わなくても自分で作り出すことが出来る。 ※また、著作権に侵害しなければ、売り出すことも可能。
  4. 個人事業として、活動しやすい。
  5. スタイリッシュで、おしゃれなイメージ、でも、実際は泥臭くて、地味な作業の連発

最後に思った事

やっぱり、スクールは無いわあ。 そもそも、何で自分が出来ないかを、教えてくれるメンターと出会える事が幸せかもね。 友達や知り合いに声をかけるのもアリだし、今どき、ネットだけ使って独学しても、かなりの実力を付けることができるからね。 まあ、それでも困っている人がいたら、ユゲタまでお声がけください。