私は今年で9年目のSEですが、後輩からは「死線を乗り越えて来た方達は実力が違いますよね。」と言われます。(素直に喜べないほめ方ですが…)
今でこそ職場で一定の評価を得られていますが、入社当時には仕事が出来なくて心身ともに辛かった時期は有りました。
考えて仕事をしているつもりなのに「考えてやれ!」と言われる事もありました。(考えてやっていたつもりなのですが…)
仕事ができないと残業が増えるし、仕事中のストレスは大きいし…と負のスパイラルでした。
本当に続けていけるか不安に思う時期もありました。
会社からの帰り道では、もし将来自分に子供がいたらこんな情け無い所を見せられないな、とよく思ったものです。
本気で仕事がイヤで仕方が無かったです。
そういう時期もありましたが、1年ほど耐えて考えて仕事をすると、プロジェクトの中核の人物と言われる様になりました。
新人システムエンジニアの方には私と同じように、「このまま続けて行けるか不安…」と思う人もいるのではないでしょうか。
過去を振り返り、
- なぜシステムエンジニアの仕事を行うのが大変だったか
- システムエンジニアの仕事の大変さへの対処法
について書かせて頂きます。
プログラミングの経験値が低く作業が遅れがちになる
プログラミングのスピードが遅い
プログラミング経験が浅い場合、経験者に比べてコードを書くのが遅く普通に仕事のスピードが遅くなりがちです。
コードを書いたと思っても、コンパイルするとエラーが沢山でて、修正に時間がかかって仕方が無い事も少なくありません。
「出来た!」と思ってコンパイルをすると何百行とコンパイルエラーが出てしまう事もありました…(今はそんな事は有りませんよ、念のため。)
対策
先ずは文法の理解です。これは地道に勉強していくしかないと考えています。
通しで一冊でも言語の本を読んでおくべきです。
特に、初心者のうちはポインタ周りでエラーになる事が多いので、ポインタ周りの知識の確認は確実に実施しておくことをお勧めします。
また、コーディングの際には、なるべく、1回の「コードを書く→コンパイルする」の範囲を小さくする様にすると良いです。
いきなり大量のコードをコンパイルすると、エラーの量も多くなり修正するのが大変になってしまいます。
膨大な既存コードに目を通す必要があり、内容の理解が困難である
既存コードを読めない、読むのに時間がかかる
既にあるコードを元にして開発する場合、元にするコードがどんな前提でどんな処理をしているのか理解する必要があります。
既存コードの規模が大きかったり、書きっぷりの良くないコードだと読むのに苦労します。
普通に読むのも苦労するのに、以下のようなコードには苦労した経験があります。
- コメントがほとんど無いコード
- コメントアウトされた修正前のコードが至る所にあり読みにくいコード
- if文の中にif文があり…、ネストが深すぎるコード
- コーディングスキルが高すぎる人が自己満足的に書いたコード
- グローバル変数が多用されているコード
- 環境変数に値を設定して引数の代わりにする狂ったコード
ある程度慣れた人でもコードの描きっぷりによっては、内容を理解するのに時間がかかる事も少なくありません。
対策
先ずは、データの定義、関数や変数の名前のつけ方のルールを頭に入れるのが良いです。
また、ただ目で追うだけだと訳が分からなくなります。
コードを読みつつ自分でデータの流れやフローチャートを書き起こすと内容を整理しやすいです。
それでもわからない場合は、実際に動作させてみて途中で、変数の値を出力してみると理解の助けになります。
製造対象への理解が足りない
どんな物を作ろうとしているのか理解が足りない
仕様書を読んでも何を言っているかサッパリ分からないという場合もあります。
用語が覚えられていなかったり、背景となる理論が理解できていない等の原因があります。
そして厄介な事に、一般的な知識ではない、そこでしか使わない知識も多いため、ネットで調べても分かりません。
対策
コーディング能力があるだけでは、良いシステムエンジニアにはなれません。
製造分野への理解も深める必要があります。
例えば、金融システムを作る場合には、金融系の業務にも精通しておく必要があります。
金融システムを担当したSEの方には自身で簿記の資格を取得する人もいます。
先ずは仕様書を読み込み、関連分野の書籍でも勉強する事をお勧めします。
製造対象分野についてのエキスパートになるつもりで勉強しておけば後のキャリアにも役立ちます。
上司からの指示を具体的な作業に分解出来ていない
指示された事をやろうとして詰まる…
上司から仕事の指示を受けて、やる事が分かったつもりでも実際に始めると直ぐに詰まってしまう…、「さっき分かりましたと言ったばかりなのに、もう詰まっちゃったよ…、どうしよう…」という事もありました。
こうした事は業務経験が浅いうちはよくあるのではないでしょうか。
対策
まず第一に意識することは、指示を与えられた場合に直近の成果として何を出せば良いかが分かっているかを自信に確認します。
加えて、指示の意図も理解するようにします。
意図が明らかな場合は聞く必要が無いですが、曖昧だと感じる場合は「それってこういうい意図で合ってますか?」と相談する様にすると良いです。
何を何のためにやるかの指示をちゃんと理解すれば、ゴールはハッキリします。
ゴールに辿り着く方法はできれば自分で考えられると良いですが、考えてもわからない場合は早目に相談に行きましょう。
その際、「全く分からないので教えて下さい」と言うのではなく、「ここまでは分かったのですが…」という風に相談した方が相手への印象もよく、相談に乗ってもらいやすいです。
コミュニケーションの問題
コミュニケーションがうまく取れていない
やる事が山積みになっていたり、職場の雰囲気として話しかけづらい雰囲気だと、ちょっと曖昧な点があっても雰囲気で作業を進めてしまう事があります。
「大体こんな感じかな?」で仕事を進めると後で手戻りの原因になってしまい、スケジュールがガタガタになってしまう事になります。
対策
後になればなるほど、聞いた時に「なんで今更そんな質問が出るの?」と言われる不安で余計に質問し難くなります。
怒られる事も仕事のうちと割り切って、なるべく早く聞くしかありません。
私は「後で聞こうと思っていて忘れてしまっていたのですが…」という聞き方をよくやります。
おわりに
システムエンジニアの仕事についていけないという場合の原因と対策を書かせて頂きました。
個人的には、システムエンジニアの仕事について行けないからといって、安易な転職はお勧めしません。
メンタルを病みそう、体を壊しそうという理由なら辞めるべきですが、転職するなら能力を磨いてからでも遅くはありません。
鍛えられる環境なら、居座るつもりで出社して給料を貰う図太さがあっても良いのではないでしょうか。
SEの仕事については以下の記事もご参考にどうぞ。
ご参考になりましたら幸いです。
以上
コメント