「システムエンジニアやプログラマーの仕事って何が辛いの(入社して1年目で)??」
今回はこんな疑問に対して、自分の1年目に辛かった体験を基に、
システムエンジニアやプログラマーの仕事の辛いところについて書いてみました。
また、僕がどうやって辛い状態を乗り越えていったのか??オススメの勉強方は??
などについてもまとめています。
特に、システムエンジニアやプログラマーを目指している学生さんや
現場に配属されたばかりで辛いなと感じている新卒の方向けに書いた内容になっています。
この記事を書いている僕はシステムエンジニア6年目
規模は小さいが、システム開発工程は一通り経験していて、小さなプロジェクトの開発リーダーをしている28歳。
- 経験しているシステム開発工程:要件整理、見積もり、設計、製造、試験、(リリース)
- 得意なこと:データベース、Webアプリ開発(Java)、Rest API開発(Java)、フロントエンドの開発(JavaScript、Angular)
- 所有資格:基本情報技術者、応用情報技術者、データベーススペシャリスト、Oracle Master Bronze 12c、JDLA G検定
システムエンジニア(プログラマー)の僕が入社1年目で辛いと感じたこと
システムエンジニア(プログラマー)のミーティングや会話についていけない
僕は入社までに基本情報技術者試験合格レベルまでの知識がありました。
が、、、
現場でプロのシステムエンジニアやプログラマー達のミーティングやちょっとした会話に理解が全く追いつかず、
「何が分からないのか分からない。。」
「出てくる単語の意味が分からない、、」
「話のスピードについていけない。。」
ような状態になることが多かったです。
なので、
「質問ある??」
と言われてもトンチンカンな質問しかできない。
メモを取ろうとしても、意味のあるメモが取れない。といった感じでした。
今考えるとダメダメな新人だと思いますが、、
当時は、
「今まで野球ばっかりしてて頭使ってなかったから回転が鈍くなったのか??」
「全く付いていけなくて自分が情けない、、」
と少し落ち込んでました。
辛かったときに自分が心掛けていたこと
正直に
「質問も思い浮かばないくらいさっきの話理解できないっす。」
って言ったり、
理解が怪しいなと思ったら
「自分の理解は○○なんですけど、あってます??」
と確認するようにしました。
とにかく理解を諦めたり、分かったフリをすることだけしないようにと心掛けるのと、
もう分からないのは自分の知識不足で仕方ない、、バカだと思われるのも仕方ない、、
と開き直ってました(笑)
ただ、1回教えてもらったら完璧に理解して自分のものにすることだけは徹底するようにしました。
そんな感じでやってると、
1ヶ月くらいで、ミーティングの内容が大した内容ではないことに気付けるようになりました。。。
でも今思えば、エラソーに大した内容でもないのに難しい単語使って話したり、
相手の前知識を無視でいきなり詳細から話始める人も悪いような気もしますが。。。
他にも
僕が新人時代に心掛けていたことを記事にまとめたのでこちらも参考にしてみてください。
新人SE・プログラマーに伝えたい3つの考え方|僕が新卒1年目で意識していたこと
新人プログラマーの僕はJavaのソースコードやSQLが読めなかった
僕はJavaとSQLの基礎は完璧に理解して入社したつもりでした。
オブジェクト指向、デザインパターンなども本を読んだりしていましたし、
基本情報技術者レベルのSQLやデータベースの知識もありました。
が、、
現場でプロのプログラマーが書いているソースコードやSQLはステップ数も多く、
やはり素人が触れる複雑さとは比べ物にならないので読むのに苦労しました。
しかも、僕が配属された現場では、
設計書作成する時間があるならモノ作れというようなところで、
メンテナンスされている設計書もなくソースコードが全てででした。
なのでソースコードが読めなければ話にならないような感じでした。
技術的に現場ですぐに通用するだろうと勘違いしてた僕は、まぁ凹みました。。
Javaのソースコードは少しは追えたのですが、SQLの方はほとんどダメでした。
辛かったですが、それよりも悔しかったです。。。
辛かったときに自分が取り組んだこと
Javaのソースコードは、
時間があったらひたすらデバックしながら1ステップずつ変数の中身を確認しながら丁寧に追う練習をしました。
あと、ソースコードを詳細に追っていると途中で迷子になってしまうので、
ソースコード読むときに行ったり来たりしても迷わないように便利なショートカットキーを使いこなす練習をしました。
現場で自分が今でも便利なので使っているショートカットキー(Eclipse)は以下にまとめてあります。
現場で使える5つのeclipseショートカットキー【6年目システムエンジニアが現場で実際に使ってるやつ】
ただ、最近はInteliiJを使う方の方が多いですよね。。。。
近々IntelliJ版もまとめます!!
一方SQLの方は、
Oracle Master Bronze 12cのSQLの方の資格勉強を通じて慣れました。
現場ではDBMSでOracleを使っていたのと、
プロシージャ、トリガー、マテビューなどなどOracleの知識がなかったのでちょうどいい勉強になりました。
これも3ヶ月くらい取り組んでいると問題なくソースコードが読めるようになり、
SQLも得意になりました。
ただ、個人的にはSQLに慣れるだけなら、Oracle(DBMS)の勉強までする必要はなく、
この本だけで十分だと思っています。
本でインプットしただけでは本当に理解しきれていなかったり、
本当の業務で扱う問題領域(ドメイン)はやはり複雑でそういう複雑さを解決するための
ソースコードは複雑。(当時のシステムは全体設計もダメダメだったし、、、)
そういう複雑なソースコードに現場配属の前に触れられておくとよりスムーズだったかなと思います。
あと、できれば設計の見本になるようなソースコードに触れられるとより良いです。
僕の最初の現場(というか過去の現場のほとんど)のソースコードだとJavaで書いてあるけど、
オブジェクト指向で正しく業務ロジックを整理して設計できておらず、
同じような処理を至る所に書いていたり。。。そういうソースコードは悪い例だとわかって読むのは良いですが、
おそらく新人のうちは自分に引き出しがないので、
それを良い例として次にソースコードを書く時のベースにしてしまうかもしれません。
Javaを勉強した次のステップとして、
より現場を意識してRest APIを作成するまでの工程
開発環境構築〜モデリング・設計〜テストを体験できるサンプルを作った(もう少し改善中)
のでよければこちらを参考に、より現場をリアルに体験してみて頂ければと思います。
環境構築編
IntelliJ IDEA、docker desktop(postgreSQL、keycloak)、Flyway、DBeaverを利用したバックエンド開発環境構築
モデリング・設計〜製造〜テスト編
ドメイン駆動設計でモデリング〜サンプルプログラム・テストコード作成(まとめ記事)
システムエンジニア(プログラマー)1年目でプロジェクトの他メンバーの世話をさせられた
1年目にアサインされた案件には、中年のビジネスパートナーのメンバーが1人参画していました。
その人は開発がほとんどまともにできず、
させるとテキトーにコーディングするからバグだらけで結局自分がリカバリする羽目に。。。
テストならデキるかと思い仕事を振ると、テストもテキトーにするからNGをOKにしたり、、、
そんな人の面倒を見るように上司から無茶振りされてました。
面倒みろイコール2人分仕事しろとしか聞こえなかったです、、、
しかも、
その人は僕のことを新人だと思ってエラソーな態度を取ってきたり、
その人がやらかしてそのリカバリで僕が残業してるのに、さっさと先に帰ったり、
バグ出したのを僕のせいにしたりと、、なかなかイライラさせてくれる人でした(笑)
さすがに仏のような僕も一回だけブチギレて
「お前何年この仕事しとるんや!!テストもろくにできんでエラソーなこと言うなよボケ!!ブチまわしたろーか!!」
とついつい口を滑らせたら、それから僕にはエラソーな態度は取らなくなりました。
客先だったのでお客さんドン引きでしたが、、
当時はまだ自分が未熟でした。。
SE1年目でやらされた飲み会の幹事は辛かった
一番下っ端なのでやらないといけないのですが、、、
めんどくさかったです。
テキトーにやってると先輩に怒られるし(仕事よりも飲み会の方が良く怒られてました)、
乾杯の音頭とか、締めの挨拶とか振らないといけないし、、
これにが辛いと感じる人はあまりいないかもしれないですが、
自分は今でも幹事は辛いと思っています。。
僕は幹事をさせられてブーブー言ってましたが、
後輩たちは文句一つ言わずにやっているので尊敬してます。。。
最近はこういう飲み会はしないですかね。
リモートワークにもなったし・・・こういうめんどくさい幹事しなくていいのは羨ましい。
おわりに
以上が、僕が1年目にリアルに体験した辛かったことです。
システムエンジニアやプログラマーを目指している就活生は、
なんとなくイメージ持って就職してもらえたらと思います。
また、今ちょうど辛い目にあっている新人さんは、
エラソーな先輩達もこんな感じだったのかと、気楽になってもらえたらと思います。
2022/3/21追記
SEやプログラマーのよくある悩みについて、
僕の8年間の経験から悩みと自分なりの解決策をまとめたので
こちらの記事も是非みてください!
プログラマーの悩みまとめ記事|10年の間に自分が悩んだり考えたこと