「プログラミングは全くできなくても大丈夫なの?」
SIerから社内SEへ転職したぼくのエンジニア生活も15年を超えました。
未経験でエンジニアへ転職を考えている方の多くは、
「プログラミングなんて出来ないからムリ。」
と考えているのではないでしょうか。
システム開発の受注側、発注側どちらの会社にも所属したぼくの経験上、現在エンジニア経験が0だとしてもシステム開発会社への転職は可能です。
なぜなら、システム開発に必要な仕事はプログラミングだけではありません。
本記事で詳しく解説しますのでご覧ください。
タップできる目次
システム開発はチームみんなで作り上げるもの
IT企業で開発するシステムは、プログラミングさえできれば完成できるものではありません。
システム開発という大きなプロジェクトをチームで進めるためには、プログラミング以外のスキルも重要になってきます。
プロジェクトでプログラミングをする割合は意外と少ない
システム開発全体のなかで、プログラミング工程の割合はどれくらいだと思いますか?
開発規模や案件の内容にもよりますが、だいだい3割程度です。
システム開発は、つぎの工程で進められることが一般的。
- 要件定義(どんなシステムを作るか概要を決める。)
- 設計(概要から設計書に落とし込む。)
- プログラミング(設計書からシステムを作る。)
- テスト(設計通りに動くか確認する。)
なお、上記はウォーターフォールモデルと呼ばれる開発方法での工程です。
最近ではプロトタイプ開発やアジャイル開発といった開発方法も増えてきており、必ずしも上記の工程で進められるわけではありません。
要件が複雑なシステムほど、要件定義や設計に時間をかけます。
プログラミングが必要なのはシステム開発全体の一部と思ってください。
いろんな能力を持った人が必要
上の項目で書いたように、システム開発にはいろんな工程があり、役割によって求められる能力が違います。
そのため、システム開発はプログラマーだけで完成できるものではありません。
例えば、機能や価格をお客さんと交渉するには、コミュニケーション能力や調整力は必須。
なるべく多くの機能を入れたいお客さんと、受注価格内で作業をしなければいけない社内とのバランスを取るのは簡単ではありません。
もちろん、設計からシステムを作り上げるにはプログラミング能力も必要です。
また開発全体のスケジュールや予算を管理するマネージャーも欠かせません。
システム開発と一言でいっても、いろんなスキルを持った人の協力で出来上がります。
プログラミングは誰でも覚えられる
「自分にはプログラミングなんてとても無理。」
と考えていませんか?
実はプログラミングはそんなに難しいものでもありません。
プログラミング=特別な能力ではない
「プログラミングは特別な才能を持った人がやっている。」
と思っている人が多いように感じます。
それは、”特別な才能が必要”と思うのはプログラミングをよく知らず、何か得体の知れないものと考えているため。
プログラミングしている様子をテレビなどで見て、
「英語の文字がパソコン画面に書かれていて訳が分からない」
と思った方も多いのではないでしょうか。
じつは、プログラミングでやっているのはパソコンに動いてほしい内容を伝えているだけ。
ロジックに従って命令を組み立て、専用の言葉(プログラミング言語)を使って指示を出します。
極端にいえば、誰かに作業内容をメモ書きで説明するのと変わりません。
新人でも1年もたてば戦力になる
IT企業にはプログラミング未経験で入社してくる新人も少なくありません。
それでも、1年もすれば大抵の人はプログラミングが出来るようになります。
多くのIT企業ではプログラミング開発環境も整っており、開発手順もきちんと整備されています。
決められた開発手順にそってしばらく仕事をこなしていれば、環境にもなれプログラミングも覚えていきます。
もちろんプログラミングを突き詰めていくと難しいスキルも多く、たった1年で完璧になれるわけではありません。
ただプログラミングの基本的なことを覚え、開発メンバーの一員として働けるようになるのは誰でも目指せます。
0からシステム作り上げるのは難易度高め
システム開発の現場でシステムを0から作り上げることは、それほど多くはありません。
ある程度の規模の開発では既存システムの改修や機能追加が多く、新規案件でも別システムをベースにすることが多いのです。
別システムをベースに使うと0から開発するより効率が上がり、より短期間で開発できるメリットがあります。
また新機能をプログラミングするときでも、既存システムの似た機能のコードを参考にすれば、何もない状態からプログラミングするよりはるかに難易度が下がります。
このようにシステム開発の現場では、すべてを0からプログラミングしていないことを知っておいてください。
どの世界にもスーパーマンはいる
エンジニアに転職したいからといっても、必ずしもトップエンジニアを目指す必要はありません。
ぼくがこれまで出会ったエンジニアの中にも、
「この人には絶対にかなわない。」
という人が実際にいました。
そんな人は技術を追いかけるのが楽しく、もはや趣味と言えるような人ばかり。
休日でも自宅でコードを書いたり趣味でシステムを構築したり。
トップエンジニアはIT業界全体でもほんの一部。
エンジニア=皆トップエンジニアばかりではありませんので安心してください。
ITスキルだけで採用されてはいない事実
会社がエンジニアを採用するときには、プログラミングスキルだけを見ているわけではありません。
これまで書いたように、システム開発には様々な人材が求められるためです。
管理職がやるべきことはどの業界でも同じ
IT業界でも別業界でも管理職に必要なスキルはそれほど変わりません。
なぜなら管理職の仕事は人・モノ・金の管理だからです。
IT企業の場合はモノにあたる部分がシステムやソフトウェア。
管理職はどんな会社でも必ず必要になる役割の一つです。
プロジェクトマネージャとプログラマでは別スキル
システム開発全体を取り仕切るプロジェクトマネージャには、プログラミングスキルは求められません。
プロジェクトマネージャの役割はプロジェクトをとりまとめて開発を進めること。
開発のスケジューリングや進捗管理、客とのやり取りが主な仕事です。
実際ににぼくが経験したプロジェクトでも、全くプログラミングできないマネージャはいました。
でもその方はコミュニケーションスキルがとても高く、お客さんや社内との調整力がずば抜けていました。
もちろんプログラミングスキルがあるに越したことはありませんが、プロジェクトマネージャにとって直接的には不要なスキル。
どちらかといえば、システムやプロジェクト全体を俯瞰し判断できるスキルが重要です。
人柄も重要です
やはり人が人を選ぶときには、”この人と一緒に働きたい”と思えることも大事なんです。
個人での開発と違い、会社でのシステム開発はチームで進める仕事。
ぼくも、いくらスキルが高くてもチームワークが全くない人とは仕事を進めにくかった経験があります。
人間的に厳しい人がいるだけで、チーム全体のパフォーマンスはかなり下がります。
まとめ:チャンスは転がっている
エンジニアが転職する上で大切なのは、企業と求職者のマッチングです。
マッチングするポイントは、技術力や経験、人柄や年齢などさまざま。
求人企業に、「この人なら一緒に働きたい。」と思ってもらえるかどうかが大事です。
ぼくが転職前に勤めていた会社でも、スキルは未経験に近くても転職してくる方はいました。
エンジニア経験がないからと、初めからあきらめるのはもったいないです。
ちなみにぼくが転職したときは、プロの転職エージェントを使いました。
プロの転職エージェントなら、未経験者でもIT業界へ転職できるよう一緒に考えてくれます。
いろいろと考えすぎて行動できず、立ち止まってしまうことが一番よくありません。
まずは行動を起こしてみましょう。
それでは。