プログラマ、SEは、以下のような能力が必要だと言われています。
-ハードウェアに関する知識
-ネットワークに関する知識
-コミュニケーション能力
-情報収集能力
-英語
-精神力
一つ一つ見ると、確かにそのとおりなのですが、これらを全てまとめて一つの言葉で言い表すと、
問題解決能力
ということになると思います。
プログラミングの場合、仕様を実現するということが目的になり、
仕様を実現するまでの過程において、多くの問題に直面します。
それを一つ一つクリアしながら仕事を進めていきます。
スポンサーリンク
ハードウェアを制御するような場合、いい加減なメーカーも多々あるので、
マニュアルを見て、そのとおりにやってもうまく行かなかったり、
そもそもマニュアルに重要な情報が記載されていないなんてこともあります。
そのときに、メーカーの人とやり取りをして情報を聞き出したり、
ネットで検索して、調べたりしてなんとかします。
日本語だと情報が少ないので、英語は自然と読めるようになります。
プログラミングに関しても、必要であれば新しい言語を使うようになるし、
ハードウェアやネットワークに関しても、その都度調べていくので、
知らないことがあっても問題ありません。
知らないことを調べて問題解決するというのが重要です。
というか、それができないと、10年経っても使えないプログラマになります。
使えるプログラマになるには?
以前、新しいことを任された人が、わからなことはすぐ知ってる人に聞けと上司に言われて、
それじゃ勉強にならないと反論していました。
反論された上司は、勉強じゃなくて仕事だからと言っていましたが、
僕はどちらの意見も一理あると思いました。
わからないことに関しては、ある程度苦労して乗り越えるということをしていないと、
本当に使えないプログラマになります。
表面上は動くけど、何年たっても、バグが発生するという、負の遺産としか言いようがないプログラムを書くようなプログラマになったら、本当に大変です。
短期的に使い捨てするようなプログラマを雇うのなら、ショートカットしてわかった気になって、
早く仕事をすすめるような人で良いですが、自社の主力のプログラマを育てたいのなら、
少しは時間を余裕にとって、悩む時間を与えが方が良いです。
使えるプログラマになるには、苦労したほうが良いです。
プログラマは就職活動で困る
プログラミング言語は多岐に渡るし、制御するハードもいろいろです。
IT関連の仕事をしているというと、何でも知っているかのように思う人がいるようですが、
通常は、自分の仕事の範疇以外は、大雑把に知っている程度で、ほぼ即戦力にはなりません。
なので、中途で転職しようと思うと、要求される言語やその他知識を持ち合わせてないということが起きます。
例えばC#をメインに使っていたという人が求人をさがしていると、
JAVAの経験を求めている企業があって、これは応募してよいのかどうなのかわからないといった事態に陥ります。
こればかりは、応募して話ししてみるしかありません。
入社初日から、JAVAでコードをゴリゴリ書いてほしいのか?
それとも、JAVAくらい読めてほしいよね程度なのか?
求人情報からわかることは、ほとんどありません。
転職エージェント経由で聞いてもらうというのも良いかもしれません。
結局、問題解決能力があればなんでもできる
言語を理解して、言われたとおりにプログラムを組むだけなら、
余り能力は要求されません。
ただ、そんな仕事をまかされるのは、若い頃の一時期だけでしょう。
既に稼働しているシステムに修正を加える。
遠方のユーザーのトラブルを電話で聞いた話だけで解決する。
顧客の理不尽なクレームに対応する。
動かないシステムを動かすまで帰れない。
こんなことが要求される世界です。
自分で作っているので、わかりませんじゃ済まされないことが多く、調査能力が問われます。
たまに、探偵みたいな仕事だと感じることがあります。
問題解決できなくて、メンタルがやられる人が多数います。
自己のメンタルの問題も解決する必要があります。
IT関係のことだけでなく、すべての問題を解決する能力が高くないと、
できません。
僕は20年くらいやってて、疲れたので、しばらく休もうと思って、
別の職種に転職しました。