プログラマーになりたい!
……プログラマーって何するの?
プログラムを書く人のことを言うけど、開発に携わる人は他にもたくさんいるよ!
自分がどれを目指したいか、参考にしてみてね
はじめに
プログラマーを目指し始めた皆さん、
実際に何をするのかご存知でしょうか?
既に知っている、他のサイトで見た、どうせブラック、などなど、さまざまな情報や意見を持っているかと思います。
相反する意見もあるかもしれませんし、その人その人で立場や状況が違うため、絶対的な正解はない質問です。
ここではあくまで筆者個人の意見と見解について述べます。
皆さんは数ある考えの一つとして記憶の片隅にでも置いて、最終的な自分のプログラマー像をもって目指してみてください。
プログラムを作る一連の流れ
プログラマーはプログラムを作る人です。これは文字通りの説明ですね。
ではプログラムはどのように作られるのでしょうか?
(そもそもプログラミングとは?っていう人は↓こちら!)
プログラムを作る基本的な流れは概ね下記のとおりです。
(わかりやすく「プログラム」というワードで統一していますが、「システム」の開発工程という方がよりリアルに近い表現になります)
- 計画
- 設計
- プログラミング
- テスト
- 運用
(この順番や組み合わせなど、さまざまな開発のモデルがありますが、それはまた別の機会で解説します)
これを見てわかる通り、プログラミングはあくまでプログラムを作る工程の一部でしかありません。
変な感じがするかもしれませんが、プログラマーの仕事もまた、全体の一部の工程にあたります。
プログラムは誰が作る?
では、他の工程を仕事する人は誰なのか。
順番に見ていきましょう。
- 計画
プログラムを作成する目的、どんな課題を解決するのか、何を作るのか、いつまで、誰が、どのように、などなど。
全体の計画を進める重要な役割は、プロジェクトマネージャー(PM)、あるいはリーダーと呼ばれる立場の人が担います。
- 設計
プログラムを一人で作る場合は少なく、基本的には複数人のチームで開発を行います。
作るものが決まっていても、各々が勝手に進めてしまうと、後で組み合わせた時に不具合が発生してしまいます。
なので全員が認識を合わせるために、作るものを設計するのが、システムエンジニア(SE)の役割です。
- プログラミング
開発工程、あるいはコーディングと呼ばれることもあります。
これがよくイメージされる、パソコンを一番カタカタしてそうなプログラマー(PG)の仕事になります。
- テスト
作ったものが実際に正しく動いているかを確認する、ある意味では全行程の中で最も重要なテスト工程です。
テストをする人をテスターと呼ぶこともありますが、専任する人はあまり見かけないです。
- 運用
完成したプログラムが動き出した後で、問題がないか監視したりサポートする作業です。
運用チーム・保守チームといった言い方をよくします。
「難しい=考える量」で計る各工程の難易度
では作業の難しさだと、どのような順番になるでしょうか?
難しさ、というと曖昧な表現なので、ここでは「考える量」で計ってみましょう。
「4.テスト」はすでに出来上がったものを確認する作業なので、(どのようなテストをすべきか考える必要はありますが、、)難しさでいうと低くなります。
一見すると「3.プログラミング」が難しいものだと感じるかもしれませんが、それよりも「2.設計」の方が、「考える量」で言うならより難しいです。
設計の知識だけでなく、プログラミングの知識も必要となってくるからです。
「1.計画」は全体を管理するので言わずもがなですね。
「5.運用」についてはマニュアルがあれば考える量は少なくなりますが、そのマニュアルを作る作業や、何か問題が発生した場合の対応についてなど、意外と考えなければならないことがたくさんあります。
さいごに
プログラム(正確に言うならシステム)を作る中で、様々な工程があり、様々な人が携わっています。
その中の一つの工程がプログラミングで、それがプログラマーの仕事になります。
未経験でIT企業に入社したならば、経験と知識をつけていく中で自分がどの工程を担いたいのか、どの工程が向いているのかというのが見えてくるかもしれません。
もし自分がプログラマーに向いているか知りたい場合は↓こちらを参考にしてみてください。
まずは全ての工程で必要なITの基礎知識を身につけ、自分のキャリアを形成していきましょう。