文系の大学に行ってしまったけど、就活でIT業界に興味を持っている学生の皆さん。
こんな不安はありませんか?
「システムエンジニアって大変そうだけど楽しいの?」
結論から言うと、大変ですが、とても楽しいと感じます。
僕もFランの文系大学卒業後、システムエンジニアとして働くことを決めました。
仕事を覚えたり、プログラミングが書けるようになるまで結構時間が掛かってしまいましたが、とても楽しく仕事ができてました。
新卒システムエンジニア時代の仕事内容
3か月の研修終了後、現場に配属されることになりました。
現場での作業では分からない事が分からない状態になり、一年間ととても大変でした。
設計書
設計書は客先によってルールがあるので、客先のルールに沿って設計していけば問題ありません。
客先のルールに沿って書くことはある程度慣れてきますが、特に難しいのが客先のシステムを十分に理解しなければいけない点です。
私は現場配属後は設計書を作ることはありませんでしたが、仕事に慣れてくると任されるようになります。
客先のシステムを理解して設計書を作るのは簡単そうに感じて、とても難しい仕事です。
プログラミング
現場に配属され、生まれて初めて企業のソースコードを見ることができます。
ソースコードを見ていると、for文と配列が…..
これは完全に終わったと思いました。
分からないなりにGoogleで検索して実装していましたが、うまくいかず何度も怒られていました。
実際に動いているソースコードを活用する
実際に動いているソースコードは、基本的には問題なく正常に動きます。
自分で一からソースコードを書くのではなく、実際に動いているソースコードを活用して実装するパターンが多いです。
自分で1からソースコードを入力すると、客先のルールに沿ってプログラムできません。
客先のルールに沿ってプログラムしないと、プログラムエラーが発生したり、他の人が修正するときに修正に時間がかかってしまいます。
必要なのは現場のルールに沿ってプログラムをすることなので、実際に動いているソースコードを活用するのがベストです。
ソースコードを活用でも理解し始める
ソースコード活用ではプログラミングを覚えられないと思い込んでいましたが、実際は逆で、多くの事を理解できました。
ソースコードを活用してもエラーは発生します。
エラーが発生したら、デバッグ実行をしてエラーの個所を確認するので、try&errorを繰り返します。
try&errorを繰り返すうえでGoogle検索で確認し、修正を行い、プログラムを完成させプログラムに関して理解を得ることができます。
プログラムテスト
僕はとてもテストが苦手でした。
修正したソースの場所の確認を様々なパターンで確認します。
テストはデータベースに想定したデータが入っているか、想定したデータがファイルとして生成されているか。
様々な観点を網羅的に確認する必要があります。
テストが不十分だと、試験チームのテストでエラーが発生
私のような新卒が行うテストは基本的に今回修正分の確認となります。
今回修正分の確認テストだけの場合、本番環境に実装した際バグ発生してしまう可能性があります。
システム全体で動かした時にバグ発生しないかを確認する作業が必要です。
基本的には全体確認はベテランの方が行います。
今回修正分のテストで発見するべきエラーを、システム全体での確認で発見すると…
テスト不備です。
新卒のシステムエンジニアが辛いと感じた瞬間
まず最初にシステムエンジニアが辛いと感じた3点を紹介します。
プログラミング言語は記号とアルファベットと数字だけ
当たり前かもしれませんが、プログラミングは基本的に記号とアルファベットと数字だけです。
いつも日本語で文字の読み書きをしている日本人には少しハードルが高く感じてしまいますが、本当にハードルが高いです。
とはいえTOEIC300点以下のバカな僕でも、1年間継続したらあまり抵抗なくなりました。
エラー文が意味わからん
英語の読み書きがほとんどできず、会話は出川イングリッシュのような感じだったので、出力されるエラー文も全く理解できませんでした。
プログラミングが意味わからないのに、エラー文もさらに意味が分からん。
ですがGoogle翻訳で毎日エラーログ見てたら、翻訳しなくてもエラーの内容が分かるようになります。不思議ですよね。
Google検索してもエラーの解決方法が見つからない
プログラミング歴ほとんどないのに、現場の方も分からない事がありました。
Googleさんに頼るも、情報がない…
すごくマニアックなシステムは日本語で探しても乗ってないことが多いです。
その際は英語で検索する必要がありますが、ページ翻訳をすればある程度実装できます。
それでもない時は、少しづつ情報を集め、集めた情報を組み合わせてみましょう。
システムエンジニアが楽しいと感じた瞬間
システムエンジニアは辛いだけでなく、楽しい時もたくさんありました。
プログラムが正常に動作した時
難しいプログラムを組んでいると、完成まで何十回もエラーと戦います。
修正したら違う場所でエラー、そのエラーを直したら違う場所でエラー。
たくさんエラーを潰していきながら正常に動作した時は、達成感が半端ないです。
複雑なエラーを解決した時
普段とは異なるエラーが出てくることもあります。
エラーの原因も不明で、模索しながらtry&errorを繰り返しますが、エラーの原因が不明なものが解決した時はより達成感があります。
プログラムを書けるようになってきた時
僕はプログラミングを覚えるのがとても遅かったですが、徐々にかけるようになってきました。
月日が経つと、プログラミングにかける時間が減り、テストや設計書の方が時間かかるようになります。
設計書を見ながらプログラムをスラスラ書けるようになると、プログラミングがとても楽しいと感じます。
プログラミングは世界共通の言語
プログラミング言語は国によって変わる訳ではないので、プログラミング技術があれば将来的に海外の方と仕事できる可能性もあります。
プログラミングのスキルは今後も食っていけるスキルに変わりはないと考えてます。
コメント