未経験からエンジニアに転職して3年がたちました。
この3年間は困難の連続でしたが、今ようやく少しずつプログラミングが理解できてきました。
プログラマーとして4年目になり、今自分が思う「やってはいけないプログラミング学習方法」について書いていきたいと思います。
技術書をただ読むだけ
技術書を読む習慣を身につけることは、とても良いことだと思います。
ただ、技術書を眺めるだけの勉強は、あまり意味がなかったかなと思います。
100ページ眺めるくらいなら、1ページを写経して、実際にプログラムを動かした方が理解が深まります。
めんどくさがってコードは書かずに、読むだけで理解したつもりでも、
実際にコードを書くとなると、書けないことがほとんどだと思います。
できる限りコードは書いた方がいいです。
技術書をただ写経する
技術書を写経することを目的にしてしまうと、これもまた、あまり効果がなかったかなと思います。
自分も初年度はパーフェクトPHPという技術書を購入して、フレームワークの構造を理解するために1から技術書にかかれている内容を写経しておりました。
ただ、その当時の自分には、難易度が高すぎて、写経してもあまり理解することはできなかったかなと思います。
それより、自分の学んだことを組み合わせて、自分で考えてコードを書いてみることの方が何倍も効果があったように思います。
理解できない技術書にチャレンジする
あまりにも難しい本にチャレンジしても、挫折してしまいがちです。
コードコンプリートという本を購入して、挑戦しましたが、おそらく5分の1も吸収できておりません。
技術書は自分が理解できそうなものを手に取ることをおすすめします。
その上で、業務をしている方は、現場で使用している技術を中心に学習した方が絶対に効率的かと思います。
いきなりすごいものを作ろうとする
プログラマーたるもの、個人開発もしなきゃいけないと、常に思っておりましたが、何を作ればいいかもわからず、最初の1−2年はほとんど自分でコードを書くということができませんでした。
なかなか行動できなかった理由は、やはりいきなりすごいものを作ろうとしていたことでしょう。
これはプログラミングに限った話ではないですよね。
スキルも経験もないのならば、まずは駄作でもいいから、どんどんちょっとしたプログラムを書いてみるべきでした。
いきなりハードルを上げるのではなく、ちょっとしたミニプログラムをたくさん作ってみると、コードを書く習慣が身につきます。
ポートフォリオ作成にいつまでも時間をかける
MENTAでプログラミングを教えているのですが、生徒さまの中には、いつまでもポートフォリオの作成に時間をかけているかたもいらっしゃいます。
もちろん良質なポートフォリオを作ることに越したことはありませんが、
いつまでもポートフォリオ作成に時間をかけるのも考えもの。
どれだけ独学を頑張っても、実務経験をしている方には勝てません。
最低限の機能をキレイに実装し、あとはポートフォリオの作成と並行して転職活動をされたらよろしいかなと思います。
HTML、CSSの学習に時間をかけすぎる
フロントエンドエンジニアを目指さないのであれば、HTML、CSSの学習は、基本的なところの理解で十分です。
あとは、実際の現場でタスクをこなしながら、その都度、調べるので十分かなと思います。
かけて良い時間は1−2日。実際に自分も会社員の研修でHTML,CSSを学習しましたが、本当に1−2日しか時間をかけていません。
「明日までにドットインストールのHTML入門を全部見てこい」→翌日テスト
のようなスピード感で勉強してました。
もちろん、これで全部理解することなどできないのですが、理解できていないところは業務中に調べながら覚えるということで問題ないかと思います。
勉強に対して受け身の姿勢
勉強に対しては、常に積極的になりましょう。
プログラミングを教えているのですが、自分のレッスンしか学習されない方も多いです。
学習量としては、不足なので、今の自分に足りないものは何か、今できる最善の方法は何か常に自分に問いかけて、積極的に情報を取りにいき、学習された方がよろしいかなと思います。
プログラミング学習の習慣がない
毎日、コツコツ学習できる人は最強です。
自分は未経験からエンジニアに転職しましたが、
入社当時は、プログラミングについて完全知識ゼロの状態でした。
同期にはプログラミングスクールに通われた方もいて、最初の数カ月は足元にも及ばないようなレベル感でした。
ただ、毎日継続してコツコツ学習した結果、1年後には、スクール出身者を超えるほどのスキルを身につけることができました(その方は、毎日学習する習慣がなかった)
どれだけ初期値が高くても、継続して努力する習慣がないと、すぐに回りに追い越されます。
逆に、毎日自分のペースで毎日コツコツ学習できる人は、メキメキと力をつけることができ、数年もすれば遥かな高みにいくことができます。
ぜひ、早めにプログラミング学習の習慣を見に付けてみてください。
エラーを調べない
プログラミングをしていると、必ず遭遇するのがエラーですよね。
プログラミング初心者にありがちなのは、エラーを調べないことです。
プログラミングができるようになるための秘訣は、エラー解決のスキルを高めるといっても過言ではありません。
エラーの内容をしっかりと読めば、何が原因なのか、書いていることも多いです。
エラー内容が英語だから読まないという方も多い印象です。
もちろん自分もエラー内容がすべて理解できるわけではありませんが、
エラー内容を把握し、ググったり、問題の箇所の洗い出し、デバッグの仕方などはこの3年間でだいぶスキルアップできたかなと思います。
プログラマーはエラーとの戦いなので、ぜひエラーを調べる習慣をみにつけましょう。
ターミナルの操作を練習しない
エンジニアの作業は、大半がターミナルの操作です。
Linuxコマンドの習得は必須です。
Linuxコマンドの操作は、慣れだと思いますので、ぜひ早いうちからコマンド操作の練習をしてみてください。
おすすめの本↓
プログラムは動いたらいいじゃんという精神
プログラマーとしての成長に差が出るとしたら、
「コードが汚くてもプログラムは動いたらいい」と考えるか
「可読性の高い質の良いコードを書く」か
で、成長にかなり差がでます。
まず、プログラムは動いたらOKと考えている人は、
間違いなく良いエンジニアにはなれません。
実際の現場でも、プログラムは動いたらいいと考えるエンジニアもいます。
しかし、そのような方が書いたプログラムは、本当に読みにくく、他人の時間とエネルギーを浪費させ、バグも生み出します。
ぜひ、良質なコードを書きたいと思えるようになってみてください。
動作確認をしない
プログラミング初心者は、自分が書いたコードをしっかりと動作確認をしない方も多いです。
テストパターンがしっかりと思いつけるかどうかも、エンジニアとしてとても大切なことです。
実際の現場では、正常系の動作確認はもちろん、異常系の動作確認もしっかりと行います。
フィーリングのテスト(モンキーテスト)ではなく、起こりうる可能性を示唆したテストパターンを日頃から考えるとよろしいかなと思います。
まとめ
簡単にですが、自分の経験をもとに、あまり効果のなかったプログラミングの学習方法(後半は学習方法というより、悪い習慣みたいな話になってしまいましたが…) を書いてみました。
これにあてはまる人は、結構いらっしゃるのではないかなと思います。
SNSなどをみると、ついついレベルの高い技術を求められることも多いかなとは思いますが、
何事も順序が大切です。
基本をすっとばして、いきなり高度な技術を身に着けようとしても、なかなか難しいでしょう。
まずはご自身ができること、やれそうなことから意識して学習されたらよろしいかなと思います。
もしPHPを基本から学習したい方がいらっしゃいましたら、レッスンをしておりますので、まずはお問い合わせください^^