「プログラマーの仕事って難しいのかな?」
プログラミング技術を身に着ければ誰だってプログラマーになれます!
しかし、仕事に就くにはやりがいや向き不向きも気になりますよね。
今回はプログラマーの仕事内容・必要な能力・向き不向き・歩むキャリアについてまとめております!
目次
プログラマー(PG)の仕事内容
アプリケーションやソフトウェア(システム)を作ります。
もっと掘り下げた言い方をすると、システムの動き方を機械に指示する「プログラム」を書くお仕事です。
スマホやコンピュータで動くものを想像しがちですが、家電製品や工場・研究所などで使われる機械を動かすプログラムを作る人もいます。
そんなプログラマーの仕事内容の詳細と、やりがいを詳しく見ていきましょう。
システム設計書に基づいてプログラミングを行う
プログラマーは、設計に基づいてプログラムを行い、動作テストをします。
仕事の流れ
- システムについてどんな「画面」・「機能」・「動作」なのか…ということが書かれた設計書を担当者から貰う。
- その通りにシステムが動くようプログラミングを行う。
- 動作テストをする。
仕事についてもっと具体的に想像できるよう、例を出しながらご説明してみます。
例えば、設計担当者から「2つの数字を足し算する計算機アプリを作って」と依頼を受けました。
※設計書例です。
実際に使われる設計書はとてつもなく詳細に書かれています。
この設計図を基にプログラムを書いていきます。
- 入力画面を表示する
- OKボタンが押す
- 未入力項目がある場合→エラー画面表示
- 未入力項目がない場合→入力された数字を足して結果を表示
このような内容を、プログラミング言語を使って書いていきます。
こんな画面を使ってプログラミングをしていきます。
- 上の開発画面はモバイルアプリ開発用のMonaca
- 下の開発画面はMicrosoftのVisualStudio
どちらも基本の機能は無料で使えますので、興味のある人は使ってみましょう!
※画像内のコードはここで挙げた例とは関係ありません。
一見わけのわからない英数字の羅列に見えますね。
プログラムを書き終えた後には動作内容をテストします。
動作内容テストではエラー画面は適切に表示されるか、足し算の結果は合っているか?などをチェックします。
動かない原因を見つける、別の書き方をすればもっとシンプルな文になる、などアドバイスをし、チームプレーの助け合いの元、進んでいきます。
また、複数人で手分けをしてプログラムを書いていた場合は、それらのコードを合体させてテストを行う作業に入ります。
こうして決められた期日までにシステムを完成させていきます。
仕事のながれ
- 設計図を基に、プログラム言語を用いプログラムを書く
- 動作内容テストを行う・・このときほかの人のプログラムをチェックしたりされたりする「コードレビュー」を行なう場合がある。
- 複数人で作業している場合には、コードを合体させ、正常に動くかテストする
- 期限までにシステムを完成させ、納品する
プログラマー(PG)のやりがい
プログラマーのやりがいは?
- 「システムが形になったときの達成感」
- 「最新の技術を学び続けられる」
こんなことをやりがいに感じる方が多いです。
◎システムが形になったときの達成感
皆さんも図工や工作・絵画、などなどコツコツと作業を積み重ねていき、完成した時に感動を味わったことがありませんか?
プログラムは「ものづくり」です。
うまく組み合わせることができず中々進まないこともあります。
しかし、そこは発想と工夫次第です。
困ったら助け合うなどチームプレーにやりがいを感じる場合もあれば、このコツコツとした作業自体がとても楽しい!という人もいます。
また、依頼されたお客様やユーザーから喜ばれたりお礼を言われたりする瞬間もモチベーションに繋がります。
◎「最新の技術を学び続けられる」
プログラマーは、作業自体はコツコツ進めなければいけないのですが、知識を更新し続けるような刺激が欲しい!という方にうってつけです。
また、チームプレーをする上で、困っている人がいれば技術を教えたり、逆に教えてもらったりと人と人との関わりの中でもやりがいを感じられます。
プログラマー(PG)に必要なスキル、能力
プログラマーに必要な素養
- 責任感・・システムを良いものに仕上げるという責任感
- 根気強さ・・コツコツ技術を磨く根気の良さ
まとめると、「責任をもって」コーディングをする「根気」ですね。
そのほかにも必要なスキルや能力はあります。
下記にて詳細を複数項目がそれにあたります。
しかし、下記の能力は、仕事をしながら身につけていく「知識」です。
そのため、経験を積む上でつけていけばOKです。
むしろ常に技術が新しくなっていくIT業界では仕事をしながら積み重ねていかなければいけないスキルです。
それでは必要なスキル・能力と、具体的にプログラマーを目指すにはどうしたらよいか見ていきましょう。
システムの実現に必要なコーディング知識
論理的思考能力が問われます。
もちろんコードにどんな書き方があるか、という知識(記憶力)も必要です。
しかし、実際の仕事上では検索エンジンや本などで調べてOKなんですよ。
記憶だけでなく論理的な思考も必要です。
例えば、システム内で画面に0から9までの数字を表示させなければいけなくなったとします。
下記はコードの書き方の例です。
プログラミング言語の処理動作を日本語で簡単に示してみました。
2>> (A)
3>> xの値を画面に表示
4>> xに1を足す
5>> x が9以下であれば(A)に戻る
上から順番に実行されます。
コンピュータになったつもりで処理を追って見てくださいね。
1行目から5行目まで処理が行われた後、2行目の位置に戻され、9を画面に表示したあと処理は止まります。
結果は“0123456789”となり、問題ありませんね。
次の書き方の例はどうでしょう。
2>> x’に入っているすべての数字に以下の処理を行ったら処理はおしまい
3>> { x’の値を画面に表示 }
x’は複数のモノをまとめて入れておける箱です。
プログラミング上では「配列」と言っています。
結果は“0123456789”となります。
同じことをしているのにあっという間に終わりましたね。
ここで必要な知識は
- 「配列」
- 2行目のコードの書き方を知っている
- なおかつ、組み合わせ方を思いつけば(知っていれば)OK
これで上で5行だったものが3行になり、何度も行ったり来たり処理を行わなくて済みます。
論理的思考能力をもとに生み出されるコーディング知識は、コンピュータの処理の負担を減らし、サクサクと進む快適なシステムを可能にするのです。
バグやエラーに対応できるコーディング知識
問題解決能力が問われます。
そもそもシステムが動かない原因を生み出さないようなコーディングの腕は必要不可欠です。
その上に、バグやエラーの種類を見ただけでピンポイントに間違っている箇所の見当をつけられる知識(経験)も必要になります。
しかし、実際のコードというのは長ったらしいです。
書いている途中にケアレスミスで必要な1文字が抜けているために動かなかった、など細かなミスでコードが動かなくなることもしょっちゅうです。
基本はトライアンドエラーです。
- 原因箇所がわかった!!
- 書き方を変えて、デバック(動作テスト)をしてみよう。
- プログラミン環境(ツール)の設定を変えたら正常に起動するかな・・?
などの試行錯誤がプログラミングには必要な作業です。
もちろん早く解決できるのであれば人に聞く、インターネットを使う、などもOK。
ガンガン試しましょう。
細かい部分も責任を持って行う能力
少しのミス・見逃しが重大なシステムの欠陥に繋がります。
これはどんな仕事でも当てはまりそうな能力ですね。
しかし、プログラマーにとっては重要度が違うのです。
もしも担当したシステムがお金を扱ったり、大事な個人情報を扱うシステムだったりしたら…怖いですね。
もし、あなたが納期も間近、時間が無い!という時に、納めなければいけないシステムの、動きの怪しいところを見つけてしまったら・・・どうしますか?
上司や提出先に相談して納期を伸ばしてもらうなど、確認・修正する方向でできる限りの手を打ちましょう。
こういうことは割とあるので作業時間はできる限り貰っておきたいですね。
何回もさまざまな視点から動作テストをしましょう。
プログラマーを目指す方法
- 独学で知識を習得する
- 未経験者として就職、転職する
- 専門学校・大学を卒業して在学中に技術を習得する
オススメ順にご紹介しました。
○独学で知識を習得する
この方法は誰にでもチャンスがあります。
- 転職や就職
- フリーランスとして仕事を受注する
- そして起業など
働き方も選べますね。
現代は情報が得やすいですから、インターネット・本を駆使すればあまりお金をかけずにプログラミングの勉強をすることができます。
独学で習得を目指す際の準備
- パソコンで動くソフトウェアか?
- スマホで動くアプリか?
- パソコンならC#やJavaなど
- スマホならSwiftやPythonなど
独学とはいえスケジューリングに自信の無い人は、プログラミングスクールに通うと良いでしょう。
現役プログラマーの講師と実際にやり取りをして学習すると?
- 専門用語などにも慣れやすい
- さらに、就職・転職のサポートを行ってくれるところが多い
オススメです。
未経験者として就職、転職する
未経験でも就職・転職して、会社で教育を受けたり、仕事を行いながら知識をつけたりすることができます。
ただし、転職の場合は年齢を重ねるごとに未経験枠での入社は難しくなります。
もし転職を考えている方はすぐに行動に移しましょう。
専門学校・大学を卒業して在学中に技術を習得する
もし、あなたがプログラマーになりたい中学生や高校生であるならば、情報・電気・電子工学などが専攻できる大学や、専門学校を目指しましょう。
既に社会人の方や、他に進路を考えている、時間が無い、という方はわざわざこの方法を目指さなくても大丈夫です。
もちろん文系の大学を出ていてもなれますので心配ご無用です。
◎大学では、あくまで「学問」としてプログラミングやITの専門知識を学びますので、実務につながるかという点では弱いです。
◎専門学校ではより実務に近い授業を受けることができます。
プログラマーに向いている人、向いていない人、適性
プログラミングが好きか、嫌いか。
もちろん、プログラミング学習を始めたばかりや、どうしても動かないといった壁にぶつかったときは嫌になるでしょう。
投げ出したくなりますね。
その最初の山場を乗り越えたときに、またプログラミングして何か作りたい、と感じるなら、あなたはプログラマーに向いています。
それを踏まえたうえで、実践してぶつかるであろう厳しさ、そこから向いている人の特徴・向いていない人の特徴を記します。
下記を読んで向いていない、と思っても大丈夫!
実際にプログラミングをしてみると意外と自分は向いている、素質がある!という発見につながることもあります。
参考程度に読んでみてください。
プログラマー(PG)の厳しさ
プログラムの作業はこの4つとの戦いになります。
- プログラムそのもの
- 時間
- システムトラブル
- 新しい技術
作らなければいけないものは、プロジェクトごとに毎回変わります。
決まった書き方はなく、その都度自分で考えていかなければいけません。
試行錯誤しているうちに、納期が差し迫ってきます。
お客様からお金をもらってシステムを作るのであれば、時間がかかるごとにお金(人件費)は増えていきます。
決められた予算内で作る為、また、今か今かとシステムが世に出されることを待っている人の為、時間内に完成させなければいけません。
作り終えたシステムにトラブルが起こった時、責任をもって対応にあたらなければいけないということです。
経験を積んでも、常に進化していくIT技術を吸収していかなければいけません。
技術は日々刷新されていくのです。
これに遅れをとると、プログラマーとしての「知識不足」「技術不足」として自分の市場価値を落とすことに繋がります。
プログラマー(PG)向いている人
プログラマーに向いている人
- 効率化を求める怠惰な人
- 仕組みを考えるのが好きな人
怠惰ってナマケモノ、って意味でしょう?
なぜ、プログラマーに向いていると言えるですか?
もともとシステムや機械というのは、人間が楽をしたい、という気持ちから生まれたものです。
怠惰な人は「いかに楽ができるか」を考えますね。
だから、向いているんです。
プログラマーの厳しさで触れた「時間」「システムトラブル」を解決できるよう、プログラムも短く効率の良い書き方をする必要があります。
どんどんラクしていこう!という気持ちで積極的にそれらを吸収することが大事です。
楽したい!面倒くさい!無駄を省こう!という気持ちから、前向きに仕組みを考え、効率化していく人は良いプログラマーになれるでしょう。
プログラマー(PG)向いていない人
プログラマーに向いていない人
- 決まったやり方にこだわってしまう人
- IT技術に興味・関心が持てない人
IT技術は驚くほどのスピードで進化しています。
昔ながらの決まったやり方にこだわってしまっていると、「時間」のロスや「システムトラブル」に迅速に対応できなくなってしまう場合があります。
興味・関心が無ければ続けることが苦になってしまいます。
プログラマー(PG)のキャリアパス
自分はプログラマーに向いていない、と思った人でも、経験を生かして他の働き方を選択することもできます。
キャリアパスは主に2パターン
- 「作る人」から、「作成全体の指揮をとる人」 へ
- 「作る人」から「職人レベルの作り手」へ
詳しく見ていきましょう。
「作る人」から、「作成全体の指揮をとる人」へ
プログラマーからSE(システムエンジニア)・PL(プロジェクトリーダー)・PM(プロジェクトマネージャー)になるキャリアパスです。
設計書を作る側に回ります。
- 依頼してきたお客様との話し合い
- プログラマーが作ったシステムを確認
- その運用まで責任を持つ
設計書を作るお仕事、SEについては他の記事で詳しく解説しております。
(参考記事:SE(システムエンジニア)とは?概要、仕事内容を解説)
プロジェクトごとのSE達をさらに管理する、PL・PMといったお仕事もあります。
それぞれ適性を考えて進む、もしくは会社で働いていくうちに、プログラマーから任されていく、といった形になります。
「作る人」から「職人レベルの作り手」へ
プログラマーからエキスパートプログラマーになるキャリアパスです。
システムと一言にいっても、経営に関わるシステム、モノを売るシステム、情報を管理するシステム…などさまざまなものがありますね。
プログラミングが好きで、作る現場にいたい!という方はこういったキャリアパスを進むとよいでしょう。
まとめ
プログラマーというお仕事、いかがでしたでしょうか?
仕事をする上で大変なことも書きました。
独学で学んでいると、どうしても乗り越えられない…と思う山場があります。
そこを乗り越えられないままだと、プログラミングの楽しさを実感できず、やっぱり自分には無理…と諦めてしまいます。
考え方のコツなどもありますから、そんなときはスクールを活用してみてください。
是非お気軽に参加してみてくださいね。
プログラミングを始めようか迷っていませんか?
プログラミングを始めてみようと思っても学習で挫折しないか
職業として生計を立てていけるか不安ですよね。
プログラミングジャパンでは全くの初心者でも最速で安定した収入を得るプログラマーになる為に必要なステップをLINE@で配信しています。