プログラマー、SE(システムエンジニア)、プロジェクトマネジャー――IT業界のさまざまな職業を紹介する本連載、第1回は「プログラマー」に焦点を当てる。プログラマーの仕事内容、そしてやりがいとは?
一口に「ITエンジニア」と言っても、その仕事は職種によってさまざまだ。「ITエンジニア職業図鑑」は、「プログラマー」「SE(システムエンジニア)」「プロジェクトマネジャー」などのIT業界に存在するさまざまな職業を取り上げ、仕事内容や必要とされる能力、仕事のやりがいなどを紹介する。IT業界に興味のある学生諸君の職業選択の参考になれば、幸いだ。
第1回目は、ITエンジニアといえば誰もが真っ先に思い浮かべるであろう「プログラマー」を紹介する。マーク・ザッカーバーグ氏に代表される「学生起業家」の格好いいイメージから「デスマーチで徹夜続き」のようなネガティブなイメージまで、さまざまな印象を持たれるプログラマー。実際はどのような仕事をし、どのような人が向いているのだろうか。
プログラマーは、システムエンジニアが決めた設計に従って、コンピューター上で動作するプログラムの詳細な仕様を設計したり、コンピュータープログラムをコーディングしたり、動作検証をしたりする職業である。
システムエンジニアがどんなに頑張ってシステムを設計しても、動かなければ意味がない。プログラマーは、設計内容を動くシステムにするという重要な仕事を担当する。
プログラマーの仕事の醍醐味(だいごみ)は、「自分の作ったものが実際に動く」ところだと筆者は考える。意図した通りにメッセージが表示されたり、画面が遷移したりするのは、とても楽しいものである。
また、生産性を高めるために専用ツールを作ったり、開発環境をカスタマイズして自分なりの道具をそろえたりする楽しみもある。
一方で、修正作業(デバッグ)で悶々(もんもん)とした日々を過ごすなどの、「産みの苦しみ」ともいえるつらい面もある。
プログラマーが開発したプログラムは、顧客に納められ、その後、他のエンジニアによってメンテナンスされていくことが多い。従って、プログラムの仕様をしっかりとドキュメント化し、誰が読んでも理解できるような、分かりやすいソースコードを書くことが重要だ。
そのため、プログラマーには「論理的に物事を整理できる力」と「分かりやすい文章を書ける力」が求められる。また、当然ながら、「開発言語、プログラミングのデザインパターン、開発環境に関する知識」や「利用するミドルウエア(例えば「Oracle」などのデータベース)やフレームワーク(例えば「Java EE」や「Spring」)に関する知識、経験」も必要である。
プログラマーの仕事はプログラムを作ることなので、「ものづくりに喜びを感じる人」が向いている。
プログラミングに関わる「几帳面(きちょうめん)さを持っている人」や、「地道な作業をいとわない人」も向いている。また、継続的な学習が必要であるため、「自己投資してでも勉強することをいとわない人」でなければ務まらないだろう。
さらに、プログラマーは、デバッグという神経をすり減らす作業をこなさねばならない。そのため、適度に力を抜いて気分転換できるような「柔軟性」や、「何としても解決するぞ」という「忍耐力」が必要となる。
プログラマーはどのような生活を送っているのだろうか。架空のプログラマー「Aくん」に登場してもらい、彼の1週間を紹介しよう。
Aくんは、入社3年目のプログラマー。Webベースの顧客向け販売システムの開発プロジェクトに携わっており、5年先輩の社員と共に、プログラム設計およびコーディングの工程に入っている。
紹介するのは、仕様書のレビューとコーディングが主なタスクとなっている週だ。
曜日 | 出退勤 | Aくんの行動 |
---|---|---|
月曜日 | 9:00出社 20:00退社 |
毎朝行われる朝会に出席。その後、Aくんが書いたプログラム仕様書を、先輩およびプロジェクトメンバーにレビューしてもらった。たくさんの修正指摘を受けて修正。指摘が思ったよりも多く、修正に手間取る |
火曜日 | 9:00出社 19:00退社 |
朝会出席。昨日指摘を受けた修正部分の再レビュー。軽微な指摘はあったものの、内容には問題がなかったため、自分のPCで開発環境を立ち上げてコーディング作業に着手 |
水曜日 | 9:00出社 19:30退社 |
朝会にぎりぎりで間に合い先輩に怒られる。昨日に引き続きコーディング作業。コンパイルがなかなか通らず、やっと動いてもおかしなランタイムエラーが出て、頭を悩ます。開発環境の設定にミスがあったことが原因であると判明 |
木曜日 | 9:00出社 19:00退社 |
朝会では昨日の作業中に気が付いた設計上の懸念点や開発環境の設定事項について報告。メンバーで軽く議論し、設計に関する問題は先輩SEが課題管理表に登録することになった。Aくんは昨日に引き続きコーディング作業。プログラムの動作確認、コーディング規約に沿っているかどうかを確認して、先輩に進ちょく状況を報告して帰宅 |
金曜日 | 9:00出社 20:00退社 |
午前中はプロジェクト全体の進ちょく会議。午後から先輩とソースコードレビュー。「プログラムソースに書き込むべきコメント情報の記載が不十分」と指摘があり、コメントを追記して修正する |
「ITエンジニア職業図鑑」、次回はプロジェクト全体を切り盛りする「プロジェクトマネジャー」を紹介する。
1999年、大手SIベンダーに入社。メディア、エネルギー業のシステム開発に携わり、JavaやCでの設計・開発を担当。2005年にシステムコンサルタントに転身。
現在は野村総合研究所 産業ITコンサルティング部に所属。専門はシステム化構想・計画策定および現行システム調査
Copyright © ITmedia, Inc. All Rights Reserved.