僕が20代後半(28歳)で未経験からSE(Javaエンジニア)に転職した結果

こんばんは。最近はJavaやSQLの勉強に勤しんでいる僕です。先日、1人でコーヒーを飲みながらぼーっと考え事をしていました。

「今年のクリスマスプレゼントどうしよう」、

「電気代まだ払ってないなー」

「髪の毛が薄くなってきたな」

などとたわいもないことを考えていた時に、

そういえば、SEになって早3年になるなぁ

という考えが浮かびました。

異業種から転職して、いわゆる石の上にも3年の3年が過ぎようとしていたんですね。

そこで、あらためてSEに転職して良かったのか、悪かったのかを改めて考えてみようと思いました。さらに、せっかく考えるのなら、誰かの役に立つかもしれない(特に転職希望者)ので文章に残してみようと思い立ち、今、つらつらと書いています。
転職前の仕事、転職に向けた準備、転職1年後、転職2年後、転職3年後、SEに転職して良かったのか、悪かったのかについて書いていきます。

転職前の仕事

まず転職前は、製薬メーカーで営業をやっていました。MRってやつですね。自社で作った医療用医薬品を医師に提案して使ってもらうのが主な仕事内容です。仕事も会社も好きだったのですが、起業したかったことと手に職を付けたかったことでシステムエンジニア(SE)に転職しようと決めました。26歳の時です。 

※ここは重要じゃないのであっさり書きました。

転職のために準備した事

僕は、自分で作ったWebサービスで起業をしたかったので、自分でアプリを作成するために片っ端から技術書を読みました。Java、PHP、C、VBAなどあらゆる言語を手当たり次第勉強した結果、「自分が作りたいWebサービスはPHPでできる!」と思ったので、特にPHPを勉強しました。プログラミングスクールには通っていません。すべて独学です。実際、PHPをベースに自分で考えたWebサービスを作成できたのですが、アプリ自体は成長しなかったので、Webサービスの運営は断念して、システムエンジニアになりました。28歳の11月でした。未経験でエンジニアに転職です。応募した会社からはすぐに内定をいただきました。
ちなみに僕は転職前に参考書を20冊ぐらいやったと思いますが、転職するだけならここまでやる必要はありません。僕はWebサービスを作成するための最適な言語を探していたので、あらゆる言語を勉強しましたが、IT企業転職が目的なら参考書1冊を1か月でやるくらいで十分です。転職サイトに登録して、転職活動と並行しながら参考書1冊を勉強すれば十分です。このあたりの学習時間や勉強すべき参考書を知りたい方は直接相談してくれれば答えます。個人的には勉強に時間をかけるよりも早く転職して、実際の開発現場で早くシステム開発を経験すべきです。勉強と仕事は全然違うので。
ということで、晴れて業務アプリやスマホアプリ開発を行うシステム開発会社に転職しました。

転職して1年後

転職するとすぐにシステム開発業務につきました。僕の開発はJavaを用いた業務アプリの開発です。
現場では専門用語が飛び交います。
「デプロイしておいて」
「デービー接続できていないっぽいよ」
などなど。
専門用語を聞くたび、頭の中には「?」がいつも浮かんでいました。そして分からない用語は直ぐに調べるようにして何とかその場を凌いでいました。しかし、付け焼刃的な知識では到底着いていけなくなります。
まず僕が直面した最初の壁がeclipseの操作です。Javaを勉強していた時にeclipseは使っていましたが、あらゆるプラグインが入った開発現場のeclipseは操作方法がわからない!
ソースコードを見たいのに、見られない。

ローカル環境で動かせない。

ブレークポイントやデバックの仕方を教えてくれー。

と言った感じで、最初はツール操作に四苦八苦しました。しかし、時間が経てば、ある程度操作のコツも掴めるようになりました。しかしすぐに次の壁が立ちはだかります。
フレームワークです。
実際にeclipseでプログラムを動かせるようになったのですが、Java参考書では勉強していない動き方をしまくっています。

seasar2ってなんだ?

handlerequestとは?

という状態でした。フレームワークは概念なので、「そういうもの」と割り切って乗り越えた記憶があります。
そんなこんなで、eclipse操作とフレームワークの概念が分かるようになったので、徐々に先輩エンジニアが回収したプログラムに対するテストの実施を任されました。設計通りにシステムが動くかをチェックする大事な工程です。もし、システムエラーが発生したり、思い通りに動かなかったりした時は先輩エンジニアに報告して、再度修正をしてもらいます。当時はテストよりも早くプログラム開発させてくれよと思っていましたが、テスト工程はリリース前のチェックなので、今ではとても大事な業務だったんだと実感します。

入社後3か月間はこのようなテスト業務中心でしたが、しばらくして簡単な改修を任されるようになりました。Javaは勉強していたので得意だと思っていましたが、僕の得意は所詮勉強レベルでした。生のソースコードを読むと分からないAPIがたくさんでてきます。そして、分からない箇所が発生する度に開発が足踏みしてしまいます。そのため、毎日時間内に開発が終わらず、ハゲそうになりました。さらに改修したコードを先輩にレビューしてもらうと、改修内容はボロボロでひどい有様でした。
1年目はこのようになんとなくのらりくらりと開発をしていたし、そのような感じが許された環境だったので、自分自身は大きな成果を感じませんでしたが、勉強をし続ける大切さを学んだとともに、少ないコードでプログラムを完成させる重要さを学んだことは大きな収穫だったのかなと思います。勉強をし続ける大切さは、言葉の通りですが、少ないコードで完成させる重要さとは、言い換えるとすべて自分で書かないということです。プログラムにはAPIや共通部品などがたくさん用意されています。そのため自分でロジックを作成するのではなく、これら既存資産を用いて開発する方が正確だし、何より開発時間の削減になります。自分ですべて書くのは、未熟なプログラマがやることだと感じました。
あと、エンジニアとしてではないのですが、前職が営業だったので、システム開発の傍ら、自社の営業活動もお手伝いするようになりました。自社や自社エンジニアをお客様に提案する営業です。営業の方がもともとは得意だったので、会社には営業部分の貢献が大きかった気がします。システムエンジニアなのに、ダメですね。。。(笑)

転職して2年後

2年目になるとシステム開発の比重が大きくなりました。今までは先輩に聞いて改修していましたが、案件を渡されて自力でアプリの調査をして、改修箇所を突き止めて製造・テストを実施し、さらにはお客様の納品物まで作るようになりました。一連の流れを全部任され始めました。とは言っても、小規模な改修でしたし、アプリの改修は既存ソースを参考にして改修できるレベルだったのでそこまで大変ではなかったです。先輩も僕の実力で対応できる案件を渡してくれていたので、まあ出来て当たり前と言うか、先輩が裏でうまくコントロールしてくれていたというか。
そんなこんなで特に問題もなく、2年目の前半は過ぎていきます。しかし、問題が発生したのが2年目の後半です。
任されたのは、アプリ側からORACLEDBにアクセスして、対象レコードを取得して、結果を画面に表示するという案件です。Java側でSELECT文を発行して、レコードを取得後に、JSP画面で表示するだけなので、けっこうシンプルです。簡単に実装はできました。しかし実装後、お客様に操作してもらったら、その対象画面がうまく開かなくなったと言うのです。画面は開くのだけれど、開くまでに時間がかかる。今までは1秒で開いていたのに7秒かかっている。というトラブルです。
後日、原因を調査したところ、僕が手を加えたSELECTの対象テーブルはレコードが数十万件あるため、そこで膨大な時間がかかっていることが判明しました。表示が遅くなったのは僕が改修をしたことが原因です。となると性能を上げるためにSELECT文を作り直さなければなりません。しかし、SQLが苦手だった僕はいつまでたっても効率的なSELECT文ができませんでした。時間が過ぎるばかり。結局、タイムアウトで先輩に残りをお願いする形になりました。
この時、SQLの重要さを痛感しました。一般的にアプリ側(Java側)は、既存ソースを流用できますが、SQLはなかなか流用できませんし、アプリ側のようにブレークポイントで中身を都度確認できません。つまり、SQLは小手先の知識では通用せず、完璧に身に付ける必要があります。このみじめな経験をもとに、そこから僕はSQLの勉強(ORACLE Bronze)を開始しました。2年目は本当の意味で自分の技術不足を痛感した1年でした。簡単な案件ばかりだったので、少しできるようになったと思っていた自分が恥ずかしいです。
あと、エンジニア以外の部分では営業活動にプラスして採用活動も開始しました。入社希望者の面接を実施したり、採用イベントに参加したりですね。人材不足が叫ばれているIT業界だからこそ、採用活動は会社の最重要課題だと感じ、お手伝いをし始めました。

転職して3年後

SQL勉強の甲斐あってか、技術が身に付いてきたので、割と大きめな案件の詳細設計、製造、テスト、納品、お客様説明まで任されるようになりました。データメンテナンスも一人で行いましたし、見積り業務なども依頼を受けるようになっています。コードミスが減り、納期内に自力で開発を終えるのが当たり前になってきています。少しずつ成長を実感しています。後輩エンジニアができたので、聞く立場から聞かれる立場になりました。

マネージメントの方では営業活動、採用活動に加えて新人教育も行い始めています。ここ最近はITエンジニアを増やすために未経験者の採用、教育に関わっていきたいと思っていたので、それができている今はめちゃくちゃ充実していると思います。

Javaエンジニアに転職して良かったのか、悪かったのか

ずばり、完全に良かったです。
まず、Javaに限った話ではないのですが、システムエンジニアに転職して良かったなぁと思います。なぜなら、手に職をつけられるようになったからです。この理由が圧倒的です。
営業をやっていた時は会社をクビになったらどうしようとか考えたこともありましたが、システムエンジニアの場合は会社をクビになったとしても、業界は圧倒的に人手不足なのですぐに次の会社が決まります。気に入った会社がなければフリーランスエンジニアという道もあります。このご時世、手に職をつけられるのは強いです。今のエンジニア不足から考えると、おそらく定年退職後も仕事には困らないでしょう。
Javaに限った話だと、システム開発案件の中でJava案件は圧倒的に多数なので、しばらく困ることはないのだろうなと思います。案件のうち、9割がJava案件です。Javaは業務アプリやAndroidアプリで使われるため、需要がなくなる可能性は極めて低いです。まだまだ需要は増え続ける一方なので、IT業界に身を置く僕としては、未経験者はどんどんJavaエンジニアに転職してほしいと思っています。僕も未経験だったのにJavaエンジニアをやれているので大丈夫です。手に職を付けると強いですよ。
さらにJavaはプログラミング言語のベースとなっていて、PHPもJavaを参考に作られているので、JavaができればPHPもできるようになります。そのため、やりたい言語がなく、とりあえず何らかのエンジニアになりたいのなら、まずはJavaエンジニアになった方が良いです。あらゆる言語に応用がききますよ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です