ファンブリューの金井です。
プログラマーに求められる資質は様々あります。
例えば、プログラミングやアルゴリズムの知識、先端技術の理解、エラーに立ち向かう粘り強さなど、本当にいろいろです。
しかし、それ以外でもIT業界で働き始めてから気づいたこともあります。
その中で、「プログラマーってこんなスキルが必要なんだ」と感じたものをご紹介します。
コミュニケーションスキル
意外と人と話すことは多い
プログラマーというと、黙々と画面に向かってコードを書いているイメージがあるでしょう。
そのイメージも間違ってはいませんが、時には一日中、お客さんと仕様について話し合うことだってあります。
大きなプロジェクトでは、設計と製造でフェーズや役割が分かれていたりしますが、詳細設計を読んでも仕様がわからないときは、設計者に確認することもあります。
そのように考えると、キーボードをひたすら叩く以外にも、意外とコミュニケーションを取る機会は多いと言えます。
もし、あなたがエンジニアを目指していて、コミュニケーションを取るのが苦手だからと思うのであれば、全く会話がない仕事ではないことに注意しましょう。
わかりやすいプログラムを書く
職業としてプログラマーになったときの最初の難関は、他人が読みやすいコードを書くことではないでしょうか。
動くコードを書くのはもちろんですが、プロジェクトメンバーが理解できるようにコーディングするスキルが求められます。
人に理解してもらうという意味では、プログラミングスキルはコミュニケーション能力とも言えるでしょう。
そして、プログラミング言語は言語であり、名前の通りなのですが、綺麗に書かれたコードは書いた人の意図が理解できます。
ITの仕事をしていると、ウェブ上で調べ物をすることが増えますが、外国人の書いたコードの意味が理解できるのは、言語だからこそだと思います。
大胆になるスキル
繊細さとは別で必要な大胆さ
プログラミングをしてみるとわかりますが、一文字何かが違うだけでもエラーになって、プログラムは動かなくなります。
一度これを経験すると、プログラマーは繊細でないといけない、丁寧である必要があると感じるでしょう。
一方で、大胆なやり方が要求される場面も少なくありません。
例えば、古いシステムを改修するとき、改修が難しいと判断すれば、躊躇わずにスクラップアンドビルドを行います。
今まで積み上げたシステムが勿体無いという気持ちもありますが、それよりも作り直した方が早いという大胆な発想も大事です。
他にも、「一文字もコードを書かずに済むなら、そっちの方が良い」など、極端な考え方もあります。
コードを書かずに問題を解決するのは難しい場面もありますが、つまり、繊細さと大胆さの狭間でうまくバランスをとり、最終的な着地点を見つけるということをするわけです。
バランスを取るという意味では、最終的にはとても繊細な作業になるのですが、エンジニアは意外と大胆な発想を持ちながら仕事をしているのことに気づくのではないでしょうか。
失敗を恐れないスキル
自学自習・体感以外にスキルを身につける方法はない
これは異論があるかもしれませんが、プログラミングの授業などで学べることはかなり限定的です。
言語の仕様を学んだり、詰まっているところを指摘してもらったり、そういうことは可能です。
ただし、最終的には自分自身で問題を解決し、進んでいかなければならない場面が必ず出てきます。
そのためにも、何度も自分でやり切ったという感覚が大事になってきます。
ITのスキルは教えたからできるわけではなく、何回も失敗して、身体で覚えていくものだと思っています。
教えてもらったからできるという人は、地で能力が高い人です。
特にこれからエンジニアを目指す人は、教えてもらえればできるという考えは捨てましょう。
本当に学ぶべきことは、エンジニアになるために必要なマインドです。
まずはやってみる
システム開発を本格的に学ぶと、「こんなことまで考えないといけないのか」と思うぐらい、細かい要求があることに気づきます。
例えば、例外処理はエンジニアにとっては当たり前ですが、一般人にしたら「何でそこまでやらないといけないの?」と思うかもしれません。
そんなことばかり考えているうちに、エンジニアは段々と守りの姿勢に入っていきます。
新しいことを始めるにも、問題点ばかり目が行って億劫に感じたり、効率を求めるあまり一発で解決しようと調査が長引いたり、そういった気持ちがもたげてきます。
慎重になるのも大事ですが、「まずはやってみる」も実践しないと、言い方は悪いですが、「ただごちゃごちゃいう人」になってしまいます。
職業病とも言える慎重さですが、時には勇気を持って進むということを意図的にやらなければ、良いエンジニアにはなれません。
業務を理解するスキル
お客さんの仕事を理解する
プログラマーをしていると、お客さんよりもお客さんの業務に詳しくなることがあります。
これは不思議なことではなく、お客さんの欲しいシステムを実現するためには、お客さんの業務を理解しなければなりません。
例えば、税金の計算をするシステムを組むなら、税務知識は必須です。
1円でも計算違いがあってはいけないので、ロジック組むプログラマーは深く理解していなければ実装はできません。
もしプログラミングをしたくてIT業界に入るのであれば、お客さんの業務理解は必須だと覚えておきましょう。
ファンブリューではエンジニアになりたい人を支援しています。
現在こんなお悩みがあれば、ぜひ一度ご相談ください。
- プログラミングを学習したいが、何から始めたらいいかわからない。
- IT業界に就職するために必要な知識が何かわからない。
- 実務経験がなくて現場に入れない