プログラマー新人教育マニュアル

新人プログラマが職場に配属されたときに、まず何から教えて行けばいいのでしょうか?

 

新人プログラマの教育担当者は、彼らがコンピュータについての知識を何も持っていないことを念頭に置いて、教育を始めなくてはなりません。そのために必要なのは、新人を教育するためのハウツーマニュアルですよね。

 

今回は、新人プログラマの教育担当者のための新人教育マニュアルの作り方を解説します。

 

新人プログラマが理解するべきことは何か?を洗い出す

 

はじめにマニュアルに記載すべきことを洗い出します。

 

配属されてきた新人プログラマへの教育にあたっては、先入観をもたずに「コンピュータについて何も知らない」という認識で当たるのがよいでしょう。従って、新人プログラマの教育は、コンピュータの基本を教えるところから始める心づもりで臨みます。新人プログラマが理解すべき項目として、最低でも以下の項目を記載しましょう。

 

■コンピュータの基本

コンピュータは1と0の世界であること。ファイルとは何か。フォルダとは何か。基本的なことから新人プログラマに丁寧に指導していきましょう。ここが理解できないと、新人プログラマはその先にすすめません。

 

■処理フローの考え方

コンピュータに仕事をさせるには、仕事の手順を処理フローとして覚えなくてはなりません。コンピュータが理解できる論理的な処理フローの考え方を教えしましょう。

 

■エラー処理の重要性

新人プログラマが自分だけでプログラム処理について考えると、必ずといっていいほど「エラー処理」が抜けています。何かをコンピュータに実行させると、それが成功するとは限らないことをしっかりと教えておく必要があります。成功しなかった場合のエラー処理の重要性と考え方を記載しましょう。

 

■山盛りのスパゲティを作らない

山盛りのスパゲティは、麺と麺が絡まり、先端がどこにあるのかもわからず、引っ張れば切れてしまいます。コンピュータに実行させるプログラムも、ある処理とある処理が絡まり、始まりと終わりがどこにあるのかわからない山盛りスパゲティの状態にしてはならないことを教える必要があります。

この山盛りのスパゲティを作らない訓練の結果が、新人プログラマが高いスキルを持つプログラマに成長できるかどうかを決めると言っても過言ではありません。

 

オブジェクト指向は後回し!とにかくロジカルな頭脳を作る

 

昨今のコンピュータは全てオブジェクト指向で動きます。

オブジェクト指向とは、データ(属性)と機能(処理)を持つ一塊の括りである「オブジェクト」の組み合わせによってソフトウェアの構成を考えることをいいます。

例えば、「人」というオブジェクトは、「名前」「年齢」「職業」などのデータを持ち、名前、年齢、名前を聞かれると答える機能があります。「犬」いうオブジェクトは「名前」「年齢」などのデータを持ち、「走る」「吠える」「噛みつく」などの機能があります。

 

そして「犬」オブジェクトを継承した「災害救助犬」というオブジェクトは「犬」が持っているデータや機能に加えて、「人を見つける」という機能があります。

 

そして「災害救助」というソフトウェアは、「人間」と「犬」とで構成されます…といった感じでソフトウェア構成を考えることを「オブジェクト指向」といいます。

 

 

しかし、コンピュータの右も左もわからない新人プログラマに、いきなりオブジェクト指向を理解しなさいというには無理があります。

 

新人プログラマの教育では、オブジェクト指向は後回しにし、とにかくロジカルな思考をする頭脳を作ることが大切です。

 

まずは、ロジカル思考の訓練ができる内容を記載しましょう。

 

マニュアルに記載すべきロジカルな頭脳を作る演習問題

 

ロジカル思考の訓練は、自動販売機で缶コーヒーを買う手順など、何かの手順を細分化し、処理フローを作成させるのが効果的ですので、演習問題として記載しましょう。

 

■自動販売機で缶コーヒーを買う手順を考えさせる

演習ではまず缶コーヒーを買うための手順を考えさせます。新人プログラマが考えられる手順は「お金を入れる」、「ボタンを押す」、「缶コーヒーを取り出す」の3つ程度ですので、その手順をさらに細分化させることを記載して行きます。手順は、さらに「鞄から財布を取り出す」、「財布からお金を出す」などに細分化できます。

 

■手順を処理フロー化させる

次に考えた処理手順をフロー化させます。「鞄から財布を取り出す」処理を、例としてさらに細分化した図を記載するとわかりやすいでしょう。

 

■想定外処理の考え方

次に、鞄に財布が入っていない場合はポケットを探す、ポケットを探してもない場合は諦める、硬貨がない場合は1,000円札を取り出すなどの代替処理やエラー処理の考え方を記載します。

 

仕上げ ~簡易電卓を設計する演習~

 

論理的思考の仕上げとして、簡易電卓の設計を演習問題として記載しましょう。

 

数字、足し算、引き算、かけ算、割り算、全クリア、入力クリアなどのボタンが押されたときの簡易電卓の機能を考えさせるのは、簡単な電卓が実はたくさんの機能から構成されていることを実感させるよい例になります。

 

 

新人プログラマ教育マニュアルのメンテナンス

 

新人プログラマ教育マニュアルは、1度作って完成するわけではありません。

 

新人プログラマ教育マニュアルを使って、実際に新人教育をしてみると、足りなかった部分や、改善すべき点が出てきますので、新人教育が終了したあとに、必ずフィードバックしましょう。

 

新人プログラマ教育マニュアルの作り方のまとめ

 

新人プログラマを使えるプログラマにするためには、ロジカルな思考ができる頭脳を育てる必要があります。いきなりプログラミング言語やオブジェクト指向を教えようとしても、ロジカルな思考ができない頭脳には理解することができません。

 

新人プログラマの教育マニュアルを作る場合はそこを踏まえ、言語を教育する前に、コンピュータに演算をさせるためのロジカルな思考を、新人プログラマに教え込むように作成しましょう。