このブログのタイトルは
「勉強する理由 自分のやりたい仕事をみつけるためのブログ」
なのですが、そもそもなぜこういったブログを書こうかと思ったかというと単純で、
「自分が勉強する理由が見つけられずに困った」
「自分がやりたい仕事をみつけられずに困った」
という経験をしたからです。
そのあたりについては最初の投稿でも書いたのですが、
このブログでは同じような悩みを解決するために、色々な職業について実際にその仕事をされている方に話を伺ったりして、紹介していきたいと思います。
ということでまずは、自分が知っている「職業」について知っていることを書いていきたいと思います。
前置きが長くなりましたが、
自分はソフトウェアに関する仕事をしているので、ソフトウェアの仕事について紹介していきます。
一般的には、「SE・プログラマー」と呼ばれる職種になります。
どういった仕事をするのか
ソフトウェアの会社の仕事は大きく、
「自社製品の開発」「受託開発」「技術者派遣」のいづれかに分類されます。
「自社製品の開発」は、文字とおり、自分の会社のソフトを作ってお客さんに売るという仕事になります。
わかりやすいものでいうと、
DeNAやグリーのようなソーシャルゲームであったり、楽天やアマゾンのようなWebサービスであったり学生の方にはあまり馴染みがないかもしれませんが給与計算や帳簿のソフトを作ったりしている弥生であったりします。
また、冷蔵庫や炊飯器のような家電や、信号機やカーナビ等の機械の中でもプログラムが動いてるのですが、こういった実際の「モノ」を動かすメーカーのソフトウェアも自社製品の開発に当たります。
「受託開発」は、上記の「自社製品の開発」の下請け等の仕事をしている会社です。
自分達で製品は作らないが、技術力を活かして、メーカーの製品開発をサポートをしたり、
お客さんの要望に合わせたシステムを作って納品するという仕事です。
Sier(システムインテグレータ)と呼ばれる企業もここに入るかと思います。
「技術者派遣」は、文字とおり、技術者を派遣する会社です。
自社製品を作っている会社や、自社内でシステムを開発している会社はたいてい自社の担当者だけでは、人出がたりないというのが現実です。
なので開発時には派遣会社を通して、技術者を確保します。
上記の受託開発の会社でも、受託する仕事がない場合は自社の社員を派遣で他社に出したりします。
「一般労働者派遣許可」を受けている会社はまず技術者派遣の会社だと考えてよいと思います。
僕は、これまで「受託開発」の会社と「技術者派遣」の会社に勤めた経験があります。
また、受託開発を通してメーカーの方々とお仕事をさせて頂きました。
どの形態の仕事がいいというのは、好みや考え方が違うので断言すべきではないですが、
どの形態であっても、忙しく残業が多くなる可能性は有るとは言えます。
自社で製品開発をしている会社にしても、
通常は「開発」と「保守」の両方をしなければなりません。
※保守とは、製品を出したあとの業務のことで、簡単にいうとトラブル対応等ですね。
例を上げると、ある技術者Aさんが今日から1周間で何かソフトを作ることになったとします。
実際に、
「1周間あればまぁなんとか作れるかな」
というレベルのものだとします。
月曜日から作り始めて、順調に進んでいます。
「これならなんとかなるな!」
と思っていた矢先にAさん宛に電話がかかってきます。
「もしもし、Aですけど。」
電話の相手:「この前、リリースした○○の製品なんだけど、お客さん先で動かなくなってるんだ。」
明日、一緒にお客さんのところに行って見てくれないかな」
A:「分かりました・・・」
Aさんは突然にトラブル対応をしなければならなくなりました。
上司に報告すると、
「例のソフトは来週お客さん先でデモするんだ。だからどうしても今週中に頼む」
と言われてしまいました。
こういう状況になった場合、Aさんは客先トラブル対応と開発の両方を今週中にしなければなりません。
当然定時内に終わる可能性も低くなりますし、場合によっては休日出勤もしないといけないかもしれません。
例として上げましたが、自分の経験ではほとんどの会社がこういった状況を抱えています。
過去自分自身の経験としてもままにあることでした。
「開発」と「保守」で悪循環が生まれ日に日にスケジュールが遅れていくという光景は
今まで何回見てきたかわかりません。
今の時代、楽な仕事はなかなかないと思いますが、SE・プログラマーの仕事も決して楽な仕事ではないということを希望される方は知っておいた方がよいと思います。
※ただし、いつもいつも残業しているという会社は少ないと思います。いわゆるブラック企業と呼ばれるような会社でなければそれなりだと考えていてよいと思います。
やりがいは?
いきなり少しネガティブな印象の話をしましたが、決して辛いことばかりではありません。
そもそもプログラマーになりたい人はプログラミングが好きな人だと思います。
自分がプログラムしたものが動いている姿を見るのは感動します。
そして、お客さんがそれを使って喜んでいる姿を見た時に、もっと感動します。
SE・プログラマーに興味があるけどやったことがないから自分にできるか分からない
やったことがないならやってみればいいです。
プログラミングはパソコンとインターネットがあれば誰にでも始められます。
本を買ってきてもいいですし、インターネット上には〇〇入門のようなサイトはたくさんあります。
今だと、おすすめはドットインストールというサービスでしょうか。
http://dotinstall.com/
本やネットにかいてあることを丸写しでもいいから自分で試してみて、
「面白い」
「楽しい」
「もっとやりたい!」
と感じたならきっとSEやプログラマーに向いている人だと思います。
逆に
「面倒くさい!」
「退屈」
「つまらない」
と感じたのであれば、やめておいた方がよいと思います。
どんな会社にはいるべきか
世の中にはたくさんのソフトウェアに関する会社があります。
就職を考える場合にどういった会社に入るべきかというのは悩むところだと思います。
私の考えですが、
既にそれなりにプログラミング経験のある人は
「自社開発」をしている会社に入るのが良いのではないかと思います。
仕事の大変さもあるかと思いますが、自社開発の会社で自分の手でサービスや製品を作るのはやりがいのある仕事だと思います。
逆にあまり経験のない方は、形態を問わず、
「社員のスキルアップ」
にしっかりと取り組んでいる会社がよいと思います。
ただしどの会社も表面上は
「スキルアップできます!」
とアピールしていて、実際にはそうでもない会社もあるので注意が必要です。
就活の際にはそのあたりを先輩社員に詳しく聞いてみるのがいいかと思います。
特に、1年~2年程度の先輩社員であれば最近の社内教育の事情を教えてくれると思います。
向いている人・向いていない人
向いている人は
「面倒くさがりな人」
「何か作るのが好きな人(例えば料理するのが好きなタイプとか)」
「面倒くさい」→「楽できるように工夫しよう」という思考の人が向いていると思います。
また、プログラミングは創作活動でもあるので「作る」という作業が好きな人が向いていると思います。
向いていない人は、
「長時間パソコンの前で作業するのが苦痛な人」
「新しいことを覚えるのが嫌いな人」
最初の「長時間パソコンの前で作業するのが苦痛な人」は言うまでもないと思います。
「新しいことを覚えるのが嫌いな人」についてですが、
仕事としてプログラミングをする場合、日々新しい技術が出てきたり、今までやったことのない
プログラミング言語を使ったりするので、勉強が欠かせません。
なので新しいことを勉強することを「楽しい」と思える人じゃないと長くはできない仕事なのかなと思います。
最後に
僕自身はソフトウェアに関する仕事が大好きです。プログラミングはとても楽しくやりがいのある仕事だと感じています。
中にはプログラミングを、
「収入を得るためのツール」
「ただの仕事だよ。」
というように割り切っている人もいますが、自分が今まで見た経験でいうとそういう方は
長期的見ると他の仕事に転職したり、仕事を続けていてもスキルが向上していなかったりします。
結局「好き」かどうかが一番重要なのかなと思います。
かく言う自分も「好き」のレベルもスキルでも、決して高い方ではないので、もっともっとプログラミングとソフトウェアを愛して、優秀なエンジニアになりたいと思う日々です。