新入社員研修ではプログラミングも教えてます。
新入社員研修の講師として、もちろんプログラミグできるようになってもらうことを目指します。ただ、それ以上に「何のためにプログラミングするのか?」しっかり自分の中に持って欲しいと思ってます。
僕はプログラマーでもありますが、目先のことだけにならないよういつも気をつけてます。
まず、プログラミングってスキルであり、手段です。目的が必ずあります。
実際にプログラムを書いてると、どうしても「動くものを作る」意識が働きます。これは仕方ない部分もあると思っていて、システム開発の多くが時間や期間に縛られています。既に決めた時間内(工数)で作らないといけないと思えば思うほど、「動くものを作る」意識は強くなるでしょう。
ただ、先ほども言ったようにプログラミングは手段です。
動くものが作れても、使えないなら意味がない。顧客にとってプログラマーの頑張りは興味なし。
美しいプログラムって、マジで無駄がないです。しかも再利用性も変更容易性も高い。
例えば、同じ動きをする処理が複数あるとします。1箇所プログラミングできれば、他の箇所もコピペでOKって考えもあります。でも、これは再利用性は皆無、変更容易性は極端に低いです。
動きにバグがあったことを想像してください。当然コピペした箇所も同じバグが起きます。となると全て修正しないといけません。3箇所程度ならいいですが、これが100箇所なら?変更漏れは確実に起きます。
こういう場合、プログラミングでは処理を1箇所にまとめて、利用する際に都度呼び出すように作ります。このような形で作っておけば、修正があったとしても、まとめた1箇所のみの対応で済みます。
多少面倒でも、先に苦労して(時間をかけて)おくことで後々だいぶ楽です。
プログラミングって使えるもの作らないとマジで意味ないです。逆にコストがかかります。
業務的に使えるのは当然ですが、成果物(ソースコード上)でもです。
チームで開発するなら尚更ですが、個人で開発するときも。新入社員には「3ヶ月前の自分は他人」ということをよく言います。それだけ人は忘れるんです。自分が作ってても。
必要なのは他者目線です。
どんな処理か?を示すコメントはもちろん必要ですし、処理を作る際にも再利用性や変更容易性を考えて作らないとマジで痛い目にあいます。
動くものを黙々と作ることは、すごいようで全然すごくない。最初はゆっくりでも、しっかり他者目線を入れて作る方がとても価値があります。
プログラミングは言われたものを作るだけの仕事じゃないし、単に動くものを作る仕事じゃないです。
他者目線をしっかり取り入れて、使えるものを作る必要があります。
そのためには顧客、チーム、自分自身とのコミュニケーションがマジで必要だと思いますし、そっちの方がクリエイティブです。
本来プログラミングはクリエイティブなものなんですから。