この記事の目的
この記事では、細かいこと・特定の製品に閉じたことは一旦抜きにして、未経験者がエンジニアとして働いていくうえで必要な最低限度のプログラミング能力を最速で身に着けることを目指しています。
特定の技術に特化した解説はしません。
使用言語はPythonです。もしも他の言語や特定の技術について調べている方は、別の記事を探しに行くことをお勧めします。
記事を書いている人
都内でエンジニアとして10年ほど働いている人です。
仕事の中で未経験者に教える機会があったので、せっかくだから再利用できるように記事にしています。
学習ロードマップ
学習は以下のような流れで進めていく想定です。初回である今回は『1.プログラミングをする上での心構えを身につける』について解説していきます。
そもそもプログラミングとは?
そんなことを言い出すと「何をいまさら」と思うかもしれませんが、そもそもプログラミングって何なのでしょうか?
パソコンに向かってスマートにプログラムを打ち込んで、エンターキーをッターン!してなんか凄いことをするのがプログラミング?
↓↓↓

もちろんそんなことはありません。
プログラミングとは、コンピュータ上で、ある特定のコンピューティングの結果を得るために、実行可能なコンピュータプログラムを作成すること (Wikipediaより)です。
つまり「ある特定のコンピューティング結果」を得るまでの手順をうまくイメージできるか?が、プログラミングの得手不得手を左右する大きな要因なんだと思います。
プログラムを書くための言語は無数にありますが、どの言語を使う場合であっても、最初に手順をイメージしてから作業に取り掛かるという流れは変わりません。
プログラミングする上で持っておいてほしい心構え10選
失敗を恐れず挑戦する姿勢
プログラミングは試行錯誤の連続です。エラーやバグは成長のチャンスと捉えましょう。
大前提として、どんなに経験を積んだベテランエンジニアでも、書いたプログラムに全くエラーやバグが無いということはありえません。 エラーやバグは出て当たり前というマインドは、長くエンジニアとして働いていくなら絶対に持っていてほしいものの筆頭です。
新人とベテランの差はエラーやバグを出してしまう頻度ではなく、それらを解消するまでの手際の良さです。目の前のエラーやバグに対処して乗り越える毎に、一歩一歩ベテランエンジニアに近づいていきます。エラーを怖がらない。
学び続ける意欲
技術は日々進化します。新しい言語やフレームワーク、開発手法などを学び続ける姿勢が重要です。特に近年は生成AIの爆発的な進化により、目まぐるしい勢いで技術が新しくなっています。仕事の中で新しい技術に触れるチャンスがあれば、どんどんキャッチアップしていく姿勢が大切です。
問題解決志向
プログラマーは「コードを書く人」ではなく、「問題を解決する人」です。目的を常に意識しましょう。目の前のコードだけを見るのではなく、もう少し広い視野で「何を?」「何のために?」を意識することで、物事の本質をとらえることができます。いわゆる5W1Hです。
シンプルさを追求する
複雑なコードよりも、読みやすく保守しやすいシンプルなコードを目指すことが大切です。自分が書いたコードを一生自分で面倒見続けることは、個人開発でもない限りはまず無いと言っていいでしょう。他のエンジニアに渡すこともあれば、自分が渡される側になることも数え切れないほどあると思います。そんなときに実行手順が複雑に入り組んだコードを渡されたらどうなるか?処理の流れを理解できずに保守せざるを得なくなり、バグが吹き荒れることになるでしょう。
他人のコードを尊重する
チームでの開発では、他人の書いたコードを読む機会が多くなります。批判ではなく理解する姿勢を持ちましょう。2人1組のペアで作業することも有効です。 (ペアプログラミングといいます) 他人のコードには、その人の思考パターンがにじみ出ていることも多いです。自分には無い思考パターンを取り入れるチャンスと捉えましょう。
ドキュメントを読む習慣
公式ドキュメントや仕様書を読む力は、どんなエンジニアにも必須です。わからないときはまずドキュメント。日夜更新されるプログラミングに必要な知識をすべて暗記しているエンジニアなんて存在しているのでしょうか?わからないことがあればまず調べる。これが非常に重要です。
コードを書く前に設計する
いきなり書き始めず、まずは何をどう作るかを考え、必要に応じて設計図を描きましょう。チームで作業している場合は、チームメンバーと議論するのもお勧めです。ここさえ乗り越えればプログラミングの半分は終わったも同然、、、は言い過ぎかもしれませんが、実装方針を頭に思い浮かべた状態で作業に取り掛かることは、読みやすく保守しやすいシンプルなコードを目指すことにもつながります。
時間を意識した作業
限られた時間の中で最善のアウトプットを出すには、効率や優先順位の意識も重要です。エンジニアは怠惰であることが重要とよく言われています。これは非効率な作業を面倒くさがれという意味だと私は考えています。面倒なのでもっと効率的なやり方を探す。怠けるために人より頭を使って働くのが良いエンジニアだと思います。
コードは「書く」より「読む」もの
自分のコードも他人のコードも、あとで読むことになります。読みやすさ・保守性を大切に。そのコード、1か月後の自分でも容易に理解できますか?1年後は?エンジニアの仕事の9割はコードを読む時間とネットで調べる時間です。
楽しむ気持ちを忘れない
好きでやっているという気持ち、プログラミングの楽しさを忘れずに取り組むことが、長続きの秘訣です。
次回予告
第2回ではプログラミング的思考について解説していきます。
https://qiita.com/sho-gun/items/a1ec80282b1993d221ad