こんにちは!ISAMU(@burlesca_isa)です!
今回の対象読者は
- プログラミング学習で心が折れかかっている方
- 勉強方法を知りたい方
この記事を読むと
プログラミングは必ずできるようになること
が分かります。
私は約6年ほどインフラエンジニアとプログラマーとして就業してきました。
IT資格を10個以上取得してきた経験を踏まえて解説していきます。
プログラミングで絶対に挫折しない勉強法は存在するのか?
最初に断言します。
プログラミングで「絶対に挫折しない勉強法」はありません。
ただし、努力すれば確実に身につけることが可能で、
プログラマーは努力が報われる数少ない職業だと思っています。
プログラミングができるようになるまでは、それなりに時間が必要です。
挫折する人が多いのは、
「時間がかかる」ことを受け入れていないからです。
努力すればプログラミングはできるようになります
プログラミングは勉強を継続すれば、ほぼ必ずできるようになります。
プログラミングは完全に論理の世界なので、
言葉の意味を正しく理解して構文通りにプログラミングすれば正しく動作します。
プログラミング自体にはクリエイティブの要素はありません。
クリエイティブの世界は才能が必要ですが、
プログラミングができるようになるだけであれば才能は必要ありません。
必要なのは論理力。
一歩ずつ地道にプログラミングの構文や用語を覚えていけば
確実にできるようになります。
プログラミングができない理由の一つは、
理解していない用語や構文があるだけなので、
用語を正しく理解するように勉強を進める必要があります。
何度もいいますが、プログラミングは論理です。
言葉の意味や定義を固めていくことがプログラミングの勉強です。
技術書を一回読んだだけでは100%理解できません
技術書を最初から丁寧に読んでも1回読んだだけでは100%理解できません。
最低でも3周は必要だと考えています。
多くのわかりやすいと言われている技術書でも、
いきなりメソッドやクラスという言葉が出てきます。
本を進めていくうちにメソッドについての章を勉強します。
そのため、最初の方に勉強した内容は完全には理解できていないはずです。
少し本を読んだだけで挫折するのは非常にもったいないです。
なぜなら、理解できなくて当たり前だからです。
おすすめの勉強方法
1周目で登場人物を把握する
技術書の1回目はプログラミングの登場人物を把握するだけという目的で割り切って勉強します。
メソッド、メンバ、メンバメソッド、クラスメソッド、クラス変数、static変数、メンバ変数、コンストラクタ、、、、など。
プログラミングをマスターするための登場人物はかなり多いですが、
ざっくりと用語を覚えます。
用語の意味まで一生懸命覚えようとせずに、ざっくりと覚えることが重要です。
分からなくてもいいので、まずは無理やり技術書を読了しましょう。
2周目はある程度理解する
2周目はある程度理解するために読み進めます。
1週目に比べればメソッドについてざっくりとは知識があるので、
読み進めるのが少し楽になっているはずです。
どうしても理解できない箇所は飛ばして進めていきましょう。
2周目で確実にマスターしたいことが、
- メモリの動きを完璧に覚えること
- オブジェクト指向の考え方
です。
データ型の基本データ型と参照型のメモリの動作は非常に重要です。
覚えていないと100%プログラミングをマスターすることはできません。
また、オブジェクト指向についてもどんな考え方なのか明確に理解する必要があります。
オブジェクト指向とは継承、カプセル化、多様性である、なども知識としては必要ですが、
抽象と具体であることを理解しておくと、
勉強が楽になります。
3周目で完璧にするつもりで勉強する
3周目では言葉の意味を暗記するつもりで読み進めます。
サンプルプログラムを写経するときには
自分が何をプログラミングしているのかを意識することです。
- クラス宣言している
- メンバ変数、インスタンス変数を宣言している
すべてを言語化できるようにしましょう。
また、おすすめの勉強法は
サンプルプログラムをみていきなりプログラミングを始めないことです。
一旦、プログラムがどんな処理を行っているかを言語化して
その処理をサンプルプログラムを見ないでプログラミングしてみる。
この練習を繰り返し行えば、自分が実現したいプログラムを作成できるようになります。
技術は「エンジニアを楽にしたい」という考え方が先にある
技術は「こうすれば楽になるよね」という考え方が先にきて
その考え方を元に技術が生まれます。
オブジェクト指向という考え方があって、
それを実現するためにextendsやinterfaceという技術を学びます。
- こうすると楽だよねという考え方→それを実現するための技術を勉強
という流れを意識するということが非常に重要です。
extendsはオブジェクト指向の考え方のどの部分を技術で実現しようしているのかを
パズルのピースのように当てはめて勉強すると理解は確実に深まります。
プログラミング独学で使用したおすすめの技術書を紹介しています。
私がプログラミング学習で使用してきた技術書を紹介している記事です。
プログラミング初心者のときに挫折せずに読み切った本なので、
是非参考にしてみてください。