こんにちは、とまだです。
はじめに
皆さん、プログラミング学習は順調ですか?
私はフリーランスのWebエンジニアとして開発する傍ら、プログラミングスクールでメンターを務めています。
そんな、100名を超える方々の学習をサポートしてきた経験から、プログラミング学習中の方がつまずきやすいポイントがいくつかあることに気づきました。
今回は、その中から 「つまずきポイント」を8つ厳選 してお伝えします!
これを知っておけば、みなさんの学習がぐっとスムーズになるはずです!
あくまで私の経験に基づくものです。
人によって感じ方は異なる可能性がありますので、あらかじめご了承ください。
質問することをためらう
最初に最も重要なポイントからお伝えします。
プログラミング学習で最初につまずくポイントは、「質問することをためらう」ことです。
質問をためらうと、つまずいたところで立ち止まってしまい、前に進めなくなってしまいます。
個人的には、質問することは学習の一部だと思っていますし、エンジニアになってからも、質問することはとても大切なスキルだと感じています。
質問することに抵抗がある場合は、テンプレートを作っておくと質問しやすくなるかもしれません。
例:
## 質問内容
`TypeError: Cannot read property 'name' of undefined` というエラーが出ています。
## 考えたこと
翻訳すると「未定義の 'name' プロパティを読み取ることはできません」という意味だと思います。
しかし、「未定義という変数を読み取ることはできない」という意味がわかりません。
## 試したこと
他の箇所でも同じエラーが出ているか確認しましたが、特定できませんでした。
## 期待する結果
エラーが出ないようにしたいです。
一見、たいしたことは書いていないように見えますが、「書くべき項目」が明確になっているので、質問しやすくなります。
エラーメッセージを読まない
エラーメッセージは、コンピュータからの「ヒント」です。
いわば「ここがおかしいよ!」と教えてくれているので、無視せずに読むことが大切です。
たとえば、以下のエラーメッセージが出たとします。
TypeError: Cannot read property 'name' of undefined
これは「'name' プロパティを読み取ることができません」という意味です。
このメッセージを読んだとき、どうしますか?
- エラーメッセージを無視して、コードを見直す
- エラーメッセージを読んで、どこがおかしいのかを考える
正解は2です。エラーメッセージは、問題の解決に役立つヒントが書かれていることが多いので、無視せずに読むことが大切です。
実際、エンジニアもエラーメッセージを読むだけで、問題の原因が分かることがあります。
それぐらいエラーメッセージは重要な情報を持っているのです。
学習が進むほど、エラーに出会うことが増えます。
エラーを素早く解決する訓練だと思って、エラーメッセージを読む練習をしてみましょう。
コピペに依存してしまう
Stack Overflow(プログラミングの質問サイト)やブログから見つけたコードをコピー&ペーストして、とりあえず動くことに安心してしまう...。
こんな心当たりありませんか?
確かに「とりあえず動く」ことは大切ですが、コピペに依存しすぎると、コードの理解が浅くなってしまいます。
最初のうちは、自分でも書けるレベルのコードだけをコピペして、あとは自分で書くように心がけましょう。
大事なことは「動かす」ことではなく「身に付ける」ことのはずです。
基礎を飛ばして応用に走る
4つ目のつまずきポイントは、「基礎を飛ばして応用に走る」ことです。
最新のフレームワークや、多機能なライブラリに興味を持つのはいいことです。
ただ基礎をおろそかにすると、ちょっとしたオリジナル要素を加えたい時につまづいてしまいます。
今まで学習をサポートしてきた中でいうと、ポートフォリオを作りたいという気持ちが強い方が多いです。
「Next.jsに興味がある」「複雑なアニメーションを実装したい」といった具体的な目標があると、基礎を飛ばして応用に走りがちです。
基礎を飛ばして応用に走ると、後々大変なことになります。
もちろんポートフォリオのイメージは大事にしつつ、基礎をしっかり学ぶことが大切です。
完璧主義になりすぎる
完璧なコードを書こうとしたり、一部でも理解できないと先に進めないということはありませんか?
しかし、プログラミングは「完璧」を目指すより、まずは「書けるようになる」ことが大切です。
プログラミングは、失敗を繰り返しながら学んでいくものです。
完璧なコードを書くことは難しいですし、他人と比べるのもナンセンスですので、自分のペースで学んでいきましょう。
不思議なもので、初心者の方ほど完璧主義になりがちです。
完璧主義になりすぎると、学習が停滞してしまうこともあります。
完璧を目指すのはいいですが、それが前に進むことの妨げにならないよう注意しましょう。
色々な技術に手を出しすぎる
新しい技術や言語が次々と登場する中、「あれもこれも学ばなきゃ!」と、色々な技術に手を出してしまうことがあります。
料理を学ぶにしても、和食も洋食も中華も同時に学ぼうとするのは難しいですよね。
確かに幅広い知識は身につきますが、どれも中途半端になってしまう可能性が高いです。
プログラミングは、幅広い知識が求められる分野ですが、最初から全てを学ぼうとするのは難しいものです。
一つの技術をしっかり学ぶことで、他の技術も学びやすくなりますので、焦らずに進めていきましょう。
また、新しい技術に飛びつく前に、「本当に今の自分に必要か?」を考えてみましょう。
他人と自分を比較しすぎる
SNSやQiitaで、すごいアプリを作っている人や、若くしてエンジニアになった人の話を見ると、つい自分と比較してしまいませんか?
結果、モチベーションが上がることもあれば、自信を失うこともあります。
他人のペースを気にしていては、自分のペースで走れなくなってしまいます。
特に、受講生同士のコミュニティが活発なスクールでは、他人と比較してしまうことが多いかもしれません。
(プラスになることの方が多いですが、時にはマイナスになるので注意が必要です)
自分の成長を実感するには、学習の記録をつけてみるのもおすすめです。
- 今日学んだこと
- つまずいたポイントとその解決方法
- 次に学びたいこと
このように自分の成長を可視化することで、他人との比較ではなく、自分の成長に目を向けやすくなります。
デバッグ作業を面倒くさがる
最後のつまずきポイントは、「デバッグ作業を面倒くさがる」ことです。
デバッグとは、プログラムのバグを見つけて修正する作業のことです。
バグが発生したとき、デバッグ作業を面倒くさがってしまうと、問題の解決が遅れてしまいます。
しかし、デバッグはプログラミング学習の中で最も重要なスキルの一つです。
個人的な意見ですが、デバッグをちゃんとできる(もしくは試す)人はプログラミングが上達しやすいと感じています。
まとめ
いかがでしたか?この8つのポイントは、私がメンターとして多くの初心者エンジニアを見てきて気づいた、よくあるつまずきポイントです。
- 質問することをためらう
- エラーメッセージを読まない
- コピペに依存してしまう
- 基礎を飛ばして応用に走る
- 完璧主義になりすぎる
- 色々な技術に手を出しすぎる
- 他人と自分を比較しすぎる
- デバッグ作業を面倒くさがる
心当たりがあった方は、ある意味改善の余地があるということです。
伸び悩んでいる方は、この8つのポイントを意識してみてください!