記事の概要
3月9日からTECHCAMPでプログラミング学習を開始した@ToshiomashEと申します。今回が初投稿となりますが、どうかお付き合い頂ければと思います。ちなみに完全に初学者向けの記事となります。
学習開始からまだ3週間ですが、プログラミング学習において学習を続けることの重要性と難しさを強く感じました。これから学習を始める方や学習開始から日が浅い方々へ向けて、どうすれば挫折せずに学習を続けていけるのか、自分なりの意見を述べさせて頂きたいと思います。
学習を続けることの重要性
わざわざ述べるまでも無いかとは思いますが、特にプログラミング学習において継続性は重要です。
学ぶべきことが多く、挫折率も非常に高いと言われているため、継続的に学習を行えるだけでも十分価値があることだと思います。また、プログラミングは有用な知識が常に移り変わるために、エンジニアになってからも常に自発的な学習が必要です。そのため、「継続的に学習を行えること」はエンジニアにとって非常に大切な素質であると考えています。
学習継続への壁
特に初学者にとっての壁は、大きく分けるとモチベーションと学習難易度の2点だと感じています。この2点について、様々な記事を拝見する中で得た知識から、私なりの原因と対策を下記にまとめました。
モチベーションについて
何のためにプログラミングを学習するのか、つまり明確な目標を持つことが重要だと考えています。
プログラミング学習を始める動機として、
- 自分でサービスを作れるようになりたい
- 単純に教養として興味がある
- 転職して年収を上げたい
- 副業をしたい
- 手に職をつけたい
- 需要のある業界だから
上記のように様々だと思いますが、目標は明確であればあるほど躓きにくくなります。どんな目標であっても良いと思いますが、なぜその目標なのかを深堀り・分析することが大切です。
極論「お金がほしい」という動機でも、
- 「お金に不自由はしてないがなんとなく」
- 「結婚・出産を控えており、将来的に年収を○○万円にする必要がある。現職での達成は難しいため、エンジニアとして技術力を磨き5年後を目処に目標を達成する。」
上記の例だと目的意識の差は明らかです。
明確な目標が無い=達成不可能ではもちろんありません。ですが後述するように、目標が明確なほどモチベーションの回復もスムーズです。学習を始めるにあたって一度自分を振り返ることで、より良い結果に繋がるのではないかと思います。
学習難易度について
学習開始からまだ3週間ですが、やはり優しい難易度ではないと感じました。
具体的には、「教材の解説を理解することはできるが、どうコードを書けばいいかが分からない」ことが多いです。教室で同期の生徒からも話を聞くと、この段階で悩んでいる方が多い印象です。
そして多くの方が躓くポイントとして、「しっかり自分でコードを書けるようにしてから次へ進もう」という考え方になってしまうことが挙げられます。一般的な学習においては正しい考え方ですし、大切なことだと思います。ですがプログラミング学習においては落とし穴になる可能性を孕んでいます。
プログラミング学習で大切なことは「同じ所を何度も復習して定着させるのではなく、どんどん新しいことを学び、実際にサービスを作り上げながら定着させる」ことです。これは私個人のみの意見ではなく、スクール・様々な記事やYouTube・Twitterで情報収集している中で、ほとんどの方がこの方向性の意見だと感じました。今のところ反対意見は見たことがありません。
私もきっちり100%理解してから先に進みたいタイプでしたが、プログラミング学習については上記方針で進めています。初めは理解不十分のまま先へ進むことへの不安が高かったですが、今となってはそのアドバイス通りに進めて良かったと心から思います。学習範囲が広くある程度のスピード感が必要なこと、後で必ずコードを書く機会があるため、自然と復習しながら定着させる機会があることの2点が理由です。
学習を続けていくために
上で述べた「壁」に対してどのように立ち向かうべきか、対策や考え方を述べたいと思います。
vsモチベーション
プログラミング用のTwitterアカウントを作りましょう。
- エンジニアとして働いている方々の考え方や勉強法を学べる
- 自分と似た境遇の方々が日々どのように学習をしているか知ることができる
- 自分自身の学習状況を発信することで、仲間のリアクションが励みになる
上記のような利点があると感じています。
私も今までSNSには疎かったのですが、プログラミングを始めてからは毎日投稿を続けており、小さなことですが「継続できていること」が少しずつ自信に繋がっています。たくさんのエンジニア(志望)の方々が「#今日の積み上げ」「#駆け出しエンジニアと繋がりたい」というタグをつけて発信しています。エンジニア界隈は本当に優しい方々ばかりなので、内容はあまり気にせず学習内容を投稿し、ぜひそのまま習慣化して下さい。
vs学習難易度
プログラミングが嫌になりそうでも、とにかく続けましょう。
- ここまで来て精神論かよ!
- 継続するためにとにかく継続しろって矛盾してない?
と言われそうですが、それに関してはご指摘の通りです申し訳ありません、、
ですが、最終的にはこれが究極だと思っています(むしろ他にあれば私が教えて頂きたいです、、)。
勉強法やスケジュールを色々工夫しても挫折する人はしますし、そんな事を考えていなくても、根性だけで続けられる人もいます。最終的な両者の違いは学習を続けたかどうかです。
学習が辛かったり、構文を忘れていたり、周囲に劣等感を感じて自己嫌悪に陥る日もきっとあります(私は週1です)。それでも、プログラミングを身に付けたいのであればしっかり向き合って、乗り越えられるよう頑張りましょう。続けても報われるとは限りませんが、続けなければそれまでです。
最後に
こんな初学者が書いた記事を最後までご覧頂き、本当にありがとうございました。
最後にこんな事を言うのは大変心苦しいのですが、エンジニアを目指すのであれば情報源の信憑性には注意しましょう。
何が言いたいかと言うと、この記事の信憑性は非常に低い部類に入ります。なぜなら「初学者」の、「引用元の無い」、「個人的な意見」をまとめた記事だからです。本人に悪意が無くても、情報が間違っていたり、古い情報の可能性があります。
もしこの記事を読んで共感して頂けたとしても、「本当に正しい情報か?」を疑い、別のソースで真偽を確かめ、自分の中で確信を得てから行動に移して下さい。
この記事があなたの行動を変えるきっかけのきっかけになれれば嬉しいです。