プログラマーの仕事って興味あるけど実際はどんな事するんだろう?
こんにちは!とみちゃんです!
今副業や転職でプログラマーが人気みたいだけど、実際はどんなお仕事なんだろう?興味はあるけど全然想像がつかない・・・
そんな疑問に対し、実際にプログラマーとはどういうお仕事をするのか、簡単に説明いたします。6年半ほどアプリケーション開発の企業で働いていたこともあり、ある程度の知識があるので噛み砕いてお伝えできるかと思います。
本記事は下記のような方にオススメです。
本記事を読んでいただく事で、おおまかに以下の内容をご理解いただけます。
- プログラム開発を始めるまでの仕事から開発後も含めて関わってくる仕事内容。
- ただプログラム開発するだけでなく、幅広く仕事範囲があるという事。
※本記事は、ブログやホームページの運用周りに関する記事ではございません。企業の提供しているWebサービスや、会社内で使うアプリケーション、携帯電話やタブレットで動くアプリケーションなどのシステム開発にそった内容となっております。ご了承ください。
この記事を読んで頂いたら、プログラマーのお仕事がざっと頭に入ってイメージしやすくなると思います。ぜひ最後までお付き合いください‼︎
プログラミングとは!?
ところでプログラミングって何?って所ですが、何か英語みたいな文章ばかり書いてるやつでしょ?みたいな感じのイメージをお持ちの方もいらっしゃると思います。
正解です。笑
プログラムコード(ソースコードとも言う)を記述してそれを動くように変換(コンパイルとも言う)してシステムを動作させる所までがプログラミングです。
IT業界では開発と良く言われてます。プログラムコードを記述する手段も色々あって、言語の種類も色々あります。
日本語、英語、中国語みたいな感じで、プログラムの世界ではJavaや、c言語、PHPといった様々な言語の種類が存在します。
プログラム言語によって開発方法や記述内容がちがってくるので、新たにプログラム言語を学ぶ場合は、再度、開発方法を勉強する事が必要となってきます。
ただし、1つの言語で大きくレベルアップ出来たら、応用が効くので他の言語の理解もしやすくなります。始めは1つの言語を集中して学ぶ事が大事です。
システムの規模で仕事内容が大きく変わる
大規模なシステムと小規模なもので1人あたりの担当範囲や、作業が変わってきます。
どういう事かというと、大規模システムの場合は、各工程(後述で記載する)があったり、1つのシステムでも特定の処理部分のみを担当となったりします。
大きなシステムでは一人で一つのシステムを全て担当にはならない事が多いです。
開発ツールは●●を使う、プログラムコードの管理方法は■■のように、システムの運用や先の事を考慮した設計や準備が必要となります。
この場合、開発言語以外にも覚える事が沢山あります。
逆に小規模のシステムの中で、会社内の業務アプリケーションや簡易的なツールを作成する場合は、一概に言えませんがシステムの公開だけで良かったりする場合もあります。
システムの設計書や誰かへ説明する時に必要なマニュアルも、概要レベルのものだけ残しておくだけで済んだりとか。。
こういうのも会社の文化やルールに沿って求められるものが変わってきます。
ただ大規模と比べてシステムの一部分だけって事はなく全て1人で開発するケースが多くなったりします。
社内SEの職種だとこういう事はよくある話です。
プログラミングは独学で出来るのか!?
プログラム開発は、ある程度独学でも出来ると思います。ただし、独学で一から始めるのは限界があります。
インターネットや参考書を見て、プログラミングがどんなものかざっくり分かったとしても、いざプログラミングしようとした時に、何を準備しないといけないのだろう・・・。開発環境が簡単につくれず行き詰る。。。といった開発を行うために避けては通れない所があり、そこで挫折することになる事が予測できます。
私は講習を受けて学んだり、企業に入社して仕事を通じて実力を上げる事をオススメします。
この道でプロフェッショナルになるには、プログラミングに関連した知識を深めていくことが必要です。
プログラミング言語の考え方や特徴、概念の理解が必須で、これを習得できると他のプログラム言語でも応用が利く事になると思います。
この言語の特徴は〇〇で、、、って当時の先輩社員が言ってるのを長々と聞いていてプロってこういう人の事を言うんだなと思ってました。笑
また、プログラミングスキルを磨いていくには、自分以外の人にもプログラムコードを読みやすくするための記述方法や、一般的な設計方法(デザインパターンと言う)などの理解も必要となります。
ただシステムとして動けば良いという考えでなく、他の人が見ても読みやすいものであり、バージョンアップに向けて開発を続けれるようなものにしておかないといけません。
プログラミングは、複数の人があるテーマを文章で伝えるときに内容が全く同じでも同じ文章にならないのと同じで、プログラムコードも開発者の腕によってきます。
最初は、とりあえず開発したシステムを動かすことが大事ですけどね。
プログラミングだけが仕事でない!
実際にアプリケーション開発がメインの会社に入社したとしても、そこでずっとプログラミングが出来るって訳ではありません。
システムが正常に動作するかを確認する試験チームに所属したり、海外で作られたシステムの評価をするような仕事があったり。。
短期間でしたが仕様書だけを書くようなプロジェクトに携わったことがありました。
IT業界は、プログラマーやシステムエンジニア(SE)って呼ばれたりしますが、SEの場合は、客との仕様調整やスケジュール管理など、会話のやり取りが多くなります。
プログラマーやシステムエンジニアといった分け方で仕事の範囲が分けられたりします。この分け方も会社によっても考え方の違う印象がありましたので一概には言えないものです。
システム開発の工程
この項目は主に大規模システムの仕事をするときにに関わってきます。
システムが出来るまでの一般的な工程の説明となります。
他にも多種の開発スタイルがあるので、下記がすべてではありませんが理解しておくと基本的な流れが理解できます。
要件定義フェーズ
お客さんの叶えたいシステムの要件を聞いて、それを資料として残し提案する事が必要となります。
要件以外のことを良かれと思って開発すると後で揉める事となったりします。
ここでしっかりと定義しないと後戻りが発生して工数が大きく取られる事になるので注意が必要です。
外部設計フェーズ
どんなデータが入力されて出力されるの?や、このシステムの画面はこう言うものが表示されます。表示項目はこのように定義しますなど、システムが動作するにあたって流れを掴めるような設計書を作成します。
データベースに何を使うとかも定義します。
主にユーザが利用するにあたって目で見える範囲の所を設計する工程です。
詳細設計フェーズ
プログラム開発に向けて、処理の詳細や、関数の定義などあらかじめ準備しておきます。
次フェーズで開発を迷わず行えるためにするための設計を行います。
プラモデルで言うと、組み立て図を作ると言った所です。
開発フェーズ
この工程がプログラミングです。上記の工程で決め事を経た後に開発が出来るようになります。仕様が出来ているので後はそれをプログラム化する事になります。
この工程がプログラマーとしてまず思い浮かぶ所だと思います。そしてこの工程の経験値を積む事で他の工程でも活かせるスキルが身につきます。システムの土台部分になりますからね。
試験フェーズ
出来たプログラムに対し動作確認をする工程です。
単体試験や、機能試験、結合試験といった様々な試験の種類があります。
テスターを専門とした企業もあるくらいなので大きなシステムだと人が求められます。
運用・保守フェーズ
システムの開発が終わっても、公開した後に問題があったり、追加要望の対応や、システムの維持をしていかないといけないのが、この工程です。システムの稼働が終わるまで基本的に続きます。
会社次第ではやりたい事が出来ないかも!?
会社に就いて仕事をするとなると、開発がしたいと思っても試験担当や、システムの保守などの仕事に回されることもあるのでやりたい事が出来なくなる可能性もあります。人員不足のプロジェクトや自分の担当がない時など問答無用で任せられたりします。雇ってもらってるから断ることも難しいですね。。
納期に追われて残業
数年前は残業がかなり多かったです。今でも多い会社やプロジェクトは少なくともあるはずです。
今は働き方改革などで残業が少なくなってる傾向があります。それでもどこかでは炎上プロジェクトや慢性的に忙しい仕事が変わらず存在しています。
IT関連の職種は沢山ある
IT関連とひっくるめても、プログラマー以外にも沢山の職種があるので、どのような職種があるのか一例を下記に記載いたします。
インフラエンジニア
システム基盤の構築や設計を行います。システムを動かすためのOS(オペレーションシステム)の構築を行ったりします。
カスタマーエンジニア
システムを動かすために必要な物理的な機械、部品などを設定・構築・部品交換などを実施するような仕事です。
社内SE
社内のITに関する仕事を主に取り組みます。
パソコン操作の分からない人への質疑応答から始まり、システムの企画から開発、運用まで幅広い仕事があります。
このほかにも、新技術や自社製品の研究に関する仕事。
Web周りのエンジニア、ホームページなどの作成や集客に対する仕事。
IT業界とざっくり言っても仕事内容は数えきれない程沢山あります。
自分のやりたい事を仕事として見つけるには、しっかり考えて探す事が必要です。
まとめ
プログラミングするだけの仕事ってのあまりなく、設計などの事前のフェーズがあっての仕事となります。
どのポジションを担当するかで実際にやりたい事が出来ない事も出てくるので仕事選びは慎重にする事をオススメします。
「こんなはずじゃなかった!!」と後悔しないためにもプログラミングの仕事といっても幅が広いという事を理解頂けたかと思います。
プログラミングのスキルを付けると他のIT分野の仕事や、論理思考を身につけた上で他の職種でも活かせる力が付くのではないでしょうか。
一生続けないにしても、人生の中で一回でも経験する事をオススメします。
コメント