
プログラミング独学のやり方 やる気の継続を挫折しない為の方法
目次
プログラミング独学のやり方 やる気の継続を挫折しない為の方法
#プログラミング独学 #プログラミング学習 #プログラミング独学方法
こんにちわ、お元気に過ごされていますか。
りょすけです。
今日は、『プログラミング独学のやり方 やる気の継続を挫折しない為の方法』というテーマで記事を書いていきます。
なぜ、私が今回こういう記事を書こうかと思ったかと申しますと、
正直、私は18歳からプログラミングを勉強していて、
もう5年以上経つわけですが、今でも新しい技術を独学するのって難しいと思っています。
難しいっていうのは、勉強が理解できなくて難しいというよりは、
やる気が続かなくて難しいっていう意味なのです。
例えば、フロントエンド技術の最新テックには、
ReactというJavaScriptのフロントエンド技術があります。
そして、Reactにはhooksという状態管理などが出来る凄い機能が追加されています。
でも、例えばReact hooksがReactに実装される前は、皆はReduxという別のライブラリを使ってたりしました。
そして、React hooksの登場以後、Reduxの出る幕は次第に消えているわけですが、
でもReduxで開発されてるチームに導入されるときは、Reduxを学ばないといけないし、
別に、過去の技術ではなくても、最新技術を独学しようと思っても、なんだか面倒くさいっていうシチュエーションがあるわけです。
そういう時に、勉強のやる気が続かず、結局ぶっつけ本番で仕事しながら調べながら覚えたり、
結局、新しいプログラミングの勉強に挫折したりするわけだが、
どうにかして、プログラミングの学習を独学でも楽しめるように自分なりに優位性を組み立てたいなと思うわけです。
そして、今日の記事では、挫折しないプログラミング学習の独学法を考えました。
今日の記事の想定読者は多岐にわたります
- 現役エンジニアとしてキャリアがある方で新しい知識を身につけたい方
- エンジニアはリタイアしてるけど新しい知識を身につけたい方
- プログラミング初心者でプログラミング独学を頑張りたい方
全員に助けになる記事だと思いますので、よければ最後まで見てください٩( ‘ω’ )و
プログラミング学習は何かを作りながら学ぶとベターです
結局、僕のような凡人は、
オープンソースのプロジェクトをGitHubで探したり、
そもそもプログラミング言語のソースを読んだりするのにはやる気が続かない。
一番、やる気が続いて独学が継続できたのが、『自分でサービス開発をする』ことでした。
プログラミングの勉強がてら、個人開発するわけですよ。
例えば、ブログサービス作ろうとか、TwitterのようなSNS作ろうとか、マッチングサービス作ろうとか、ECショップ作ろとうか … etc
なんでもいいわけだが、とにかくゴールを決めて製品を作ることに情熱を燃やすことで、
コードを書くエネルギーに変わる。
別に、これは、実際に市場にリリースして、マーケティングをする目的はなくていい。
自己満足で、TODOアプリ使って自分で使うだけでもいいじゃないですか?
とにかく、何かを自分で作ろうと決めて、書き始めるのが一番いい。
完成までの時間は、短くても長くてもいい、とにかく終わらせられるようなものがベターですね。
ブログサービスで製品として使えるようにしようと思えば数ヶ月かかるかもしれないけど、
適当なTODOアプリなら、チュートリアルに沿ってやれば1週間くらいで動くものができるかもしれない。
そういう風にして、自分の力量と推し量って、作るものを決めればいいと思います。
僕なんかは、一番最初に作ったのはNode.jsでSlackのボットを作ったのが始まりだったね。
プログラミング学習のつもりで書いてるコードでは商売のことはなるべく考えるべきではない
次、これは結構慣れてくると大事です。
とういうのも、個人開発でもなんでも良いのだが、
3年もやってればプログラミングなんて小慣れてきて自分で動くものは作れるようになります。
これは、どんなに才能がないやつでも同じです。
プログラミングは、論理的思考を必要とするものではあるが、ある意味では技術なので、毎日毎日磨いてれば一流の職人になれる。
まさに、大工さんとか、とび職とか、そういうのと同じです。
でも、問題なのが、エンジニアとして技術を学ぶつもりが、いつからかサービス開発をヒットさせたくてマーケティングに情熱が傾くこと。
僕は、今、二つのサービスを運営してるのだが、
もう、気がついたらプログラミング学習のことは忘れて、
1秒でも早く動く実装をして、ユーザーに届けたいとなってしまう。
こうなると、言語の詳しい仕様とか、テストとか、綺麗なコードとか書く気力がなくなっていく。
だから、もしプログラミングの勉強をピュアにしたいのなら、
自分で作るものを決めつつも、商売のことは忘れて、機能開発しながら、細かい言語仕様を学ぶのをおすすめする。
チュートリアルを学びながら出会った専門用語や関数をググって調べる
例えば、あなたはReactを学んでいるとする。
最初は、何から始めれば良いかは分からないかもしれない。
でも、例えばReact チュートリアルとかで検索すれば、無数の良い記事がネットで無料で見れます。
それで、最初はターミナルに環境構築からやっていくけど、
見様見真似でコマンドをコピペしていくと思うんだよね。
でも、環境構築が終わって、コードを書き始めたところから、段々と、プログラミング言語の関数の話しとか、
機能やライブラリのこととか、専門用がたくさん出てくると思う。
例えば、TypeScriptなんか書いてたら、『この書き方なんだ?』とかも沢山思うと思う。
こういう、小さな疑問を、徹底的に深く学ぶのが大切です。
基本的な関数のルールや言語使用を繰り返し学ぶこと、コードが動いて終わりにしない、動くのは終わりではなく始まり
最初の頃は、単純に動くものを作るのが楽しいし、
サービス開発でマーケティングに熱中すると、動くものを追加していくことに夢中になる。
でも、本当に大切なのは、
プログラミング言語を学ぶことであり、動くコードを書くことじゃない。
それは、ある意味では当たり前のことだ。
いかに、綺麗なコードを書いて、深く言語仕様を完全理解することを心がけるのが
エンジニアとしては大切な資質です。
必ずブログに学んだことはアウトプットすること
次、
個人的にはこれは超大切だと思っています。
僕は2018年からこのブログをやっているんだけど、極めて小さなことで良いので、
とにかく学んだことは、アウトプットにして外へ吐き出して、
完了
のスタンプのつもりで終わらせてください。
ブログに書いて、ちょくちょく紙にペンで書くのも大切だと思ってます。
僕は、新しい言語仕様を覚えたりしたら、極力全部、ブログに書き、新しい概念や書き方を覚えるたびに、
紙に書いて頭に焼き付けています。
全然デジタルじゃないし、そんなこと意味ある?って思うけど、
僕のような凡人エンジニアには、こういう地道な脳内焼き付け習慣が必要なのです。
[itemlink post_id=”10098″]
昔、『見える学力、見えない学力』って本を読んだんですけど、
その本にはこんな言葉が書いてありました。
書く仕事というものは、
習った教材をいま一度想起し、それをノートの上に再現し、記憶した通りに視覚化していきます。
手と目の連動協応作業のくり返しによって、大脳に確実に記銘されていきます。
この仕事は、そんなに気楽ではありません。
かなり時間もかかりますし、つらい仕事です。
集中力も、耐忍性も要します。
それだけに、必要な場合、いつでも再生できます。
確かな学力は、書く勉強を通じてのみ、身についたものとなっていきます。
だから、紙に書こう。
作るものは同じものを何個も作ってもいいです
最後、
繰り返しになってしまうけれども、
プログラミング学習をする上に、繰り返すことはとても大切です。
もし、新しい言語を学ぶたびに、
何を作りながらコードを書いて学ぼうと思ったとき、
過去に作ったものを丸々同じようなものを作るのも良いと思います。
僕は、よく新しい技術を学ぶときは、ミニマムなTODOとか、ブログサービスを作ったりします。
同じものを何度も作るのは一見退屈だけど、
そこにフォーカスするのではなく、プログラミングの学習の一環としての必修科目と捉えれば、
サービスへの情熱ではなく、純粋に言語の仕様を完全理解するモチベーションで
時間を過ごせると思うんですよね。