はじめに
こんにちは
私は就職活動中に自分を見失い、流れに身を任せた結果、プログラミング未経験の状態でWeb系のIT企業にプログラマーとして就職してしまったWebエンジニア1年生です。
入社したての頃はわからないことだらけで、さらに同僚たちは大学・専門学校でプログラミングを勉強し、ある程度のコーディングをこなすことができるような人達ばかりだったので、修羅のような日々を送っておりました。
入社式から約9か月経ち、ある程度業務をこなすことができるようになった(まだまだ周囲と比べるとひよっこですが...)ので、一度今年勉強したこと(主に読んだ本)、携わってきたことをまとめようと思い、普段からとてもとてもお世話になっているQiitaに初投稿させていただきます。
Qiitaには偉大な諸先輩エンジニアが良書をまとめているような良記事がたくさんあります。
あくまでも本記事は、未経験者がいきなりIT業界に飛び込み、この約一年間がむしゃらに何をしてきたかをまとめているので、良書探しをしてる方の参考にはならないと思います。
ITエンジニアとしてまだまだひよっこの自分が書く情報なんて大して価値があるとは思いませんが、もし自分と同じように未経験のままIT企業に入社し、日々の業務に忙殺される内に自分を見失ってしまっている方や、プログラミング未経験者で、これからIT企業に就職する予定の上で不安を抱えてる方に対して、少しでもお役に立つことができれば幸いです。
入社して1~2か月目(4月~5月)
大体のIT企業では、入社後に技術研修があると思います。
私が入社した企業でも他社と合同の初学者向けのJavaの外部研修がありました。
しかし、初学者向けとはいえ他の研修生はIT技術をすでに学んできた猛者ばかり、また内容も初学者向けとはいえ理解が追い付かないものばかりで、日々頭を抱えて過ごしていました。
研修内容だけでは理解が進まなく、理解不足で周囲に迷惑をかけてしまうことも度々生じていたので、生まれて初めて以下のIT関連の専門書を購入しました。
研修中にわからないことがあると上記の本で調べ、それでもわからないなら講師に質問に行く...
そのような毎日を繰り返しつづけ、研修の最後には簡単なWebアプリを作り上げることができました。
ただし、動くプログラムを書くことができるようになっただけで本質的な理解をすることがないまま研修は終了しました。
(この研修以降Javaを書く機会がほぼなかったため、上記に挙げた本の3冊目の題材であるサーブレットやJSPに関しては今もちんぷんかんぷんです。)
入社して3~4か月目(6月~7月)
外部の研修から社内に戻り、次は社内の研修がありました。
内容は主にJavascript, jQuery, SQLで、先輩が作成した課題をひたすらこなしていく、という内容でした。
内部研修の内容は入社後の外部の研修の内容とは異なっており、また新たな技術に翻弄される日々が始まったのです。
やはり未経験の私は周囲と比べて課題をこなす速度も遅く、日々の研修に加えて+αで勉強しなくてはいけませんでした。
この時期購入し、読んだものは以下の通りです。
どちらも読み込んだ後、章末問題に取り組むという流れで学習を行っていました。
またSQLに関しては、外部研修中に購入した[スッキリわかるSQL入門 第2版 ドリル222問付き!]
(https://www.amazon.co.jp/dp/4295005096/ref=sspa_dk_detail_2?psc=1&pd_rd_i=4295005096p13NParams&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUFOV0Y2MFFETVo2RE4mZW5jcnlwdGVkSWQ9QTA3NDk2MDYzUDQ4TERXM0NBVlVNJmVuY3J5cHRlZEFkSWQ9QTFCWUhPV0hQTTg3N04md2lkZ2V0TmFtZT1zcF9kZXRhaWwmYWN0aW9uPWNsaWNrUmVkaXJlY3QmZG9Ob3RMb2dDbGljaz10cnVl)の巻末に載っているドリルを出社前に一日10問こなすというノルマを課して取り組んでいました。
入社して5~6か月目(8月~9月)
上記の内容で内部研修が終わりOJTに移行する予定でしたが、OJTの案件の都合上追加で研修を行うことになり、研修生活続行となりました。
周囲がPHPの研修を受ける中、自分は初学者ということもあってか、しばらくはUIをメインに開発をするということが決まり、マークアップ言語の研修を受けました。その際に購入し、学習したのは以下の本です。
世界一わかりやすい HTML5&CSS3コーディングとサイト制作の教科書
主に本に書いてある通りにコーディングをし、WEBページを再現する作業を何回も繰り返していました。
そしてこの期間中に研修を終えOJTとして実際にシステム開発に参画することになりました。
PHPを用いた開発でしたが、私の業務内容はデザイナーさんがデザインした画面案をHTML/CSSで再現するというもので、最初の頃は1ページに1週間もかけてしまい周囲から冷たい目で見られていましたが少しづつスピードが上がり、入社して6か月目を迎えるころには、1日3ページくらいのスピードで仕上げていました。
入社して7~8か月目(10月~11月)
この頃から、OJTとして参画しているプロジェクトから人が抜けたりとアクシデントが続き、UI(画面づくり)を主に行っていましたが、突如処理側(サーバーサイド)の開発をしなければならなくなりました。
しかし周囲がPHPの研修を受けている中、私はマークアップ言語(HTML/CSS)の研修を受けていたので「PHP?なにそれ?」という状態でした。
明日の仕事をやり遂げるため、自宅に帰宅した後の猛勉強が始まりました。
当時は画面作りだけに専念していたので、PHPに関する技術はおろかFrameWorkという概念、Webアプリケーションがどういう仕組みで動作するのかさえ知識がゼロに近い状態でしたので、ひたすらに本を読みキーボードを叩きという夜を過ごしていました。
当時読んでいた本は以下の通りです。
ちゃんと使える力を身につける Webとプログラミングのきほんのきほん
体力的にも精神的にもとてもつらい時期でした。
しかしここでWebアプリケーションとはどういう仕組みで動くのか、フレームワーク使った開発ではどのような利点があるのか、HttpやHttps、TCP/IPなどの通信技術の基本的な知識を得ることができました。
一応この辺りの内容は最初に受けた外部研修で知識としては解説してもらっていたのですが、やはり必要となったタイミングで勉強するのが一番理解が進む、ということを強く実感しました。
案件が終了した11月下旬には壮大な達成感と、一つプロジェクトを終えることができたという大きな自身を持つことができ、同僚と飲みに行ったりと完全に浮かれていました。
次の案件で地獄の片鱗を味わうことも知らずに。
入社して9か月目(12月)
12月1日付で新しいプロジェクトに配属となりました。
納期が少々タイトであるため、未経験上がりの私はコーディングではなくテスト担当になり、詳細設計書からのテストパターンを洗い出し、テスト仕様書を作成したり、テストデータを作成したりなどの業務の担当を任されました。
前回の案件をこなした自信から、少し得意げな顔で、詳細設計書に目を通した直後、顔が真っ青になりました。
仕様が複雑怪奇なうえ、DBの構造も相当複雑(サブクエリとサブクエリをjoinしたあとにサブクエリをjoinし次にwith句で...)であったためです。
テストケースを洗い出そうにもSQL文だけで数百行あり、そのようなコンポーネントのテスト仕様書を5枚作成しなければならないと悟り、途方にくれました。
何度テスト仕様書を書いてもレビューが通らずに書き直しになり、しかも実装者が実装を終えるまでにテスト仕様書を完成させる必要があったので時間に追われる日々を送っておりました。
毎日遅くまで残業、休日出勤、それでも時間が足りなかったので就業時間2時間前に出勤し業務に取り組んでいました。
プロジェクト自体は納期2日遅延で完了、ちょうどクリスマスに納品完了となり、私は日頃の疲れからか2日病欠をしました。
12月は業務が忙しすぎて、業務外で何かを勉強するということは全くできず、強いていえばIT業界の過酷さの氷山の一角を学んだ気がします。
そして今(1月)
激動の12月を終え、新年を迎えました。
まず12月の反省としてソフトウェアテストに対する知識の浅さを挙げられます。そこで正月に以下の2冊を読みました。
この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践
今まで何となく行っていたソフトウェアテストについて、体系的に学ぶことができたと思います。
そして、年始の仕事始めの日から、小規模ですがLaravelフレームワークのシステム開発に現在取り組んでおります。
終わりに
まずは拙い文章ですがお読みいただきありがとうございました。
本から得た知識や本の紹介についても書きたかったのですがそれはまた違う場でアウトプットさせていただきます。
一年間、右も左もわからないIT業界で右往左往しながらがむしゃらに突き進んできました。
最初はわからないことだらけで、また理解が遅い自分に対して情け涙が浮かぶような日も多々ありました。
しかし逃げることなくしがみついて業務をこなす中で、少しずつですが着実に技術が身について行ってることを実感しています。
継続は力なり、未経験エンジニアの皆さん、努力すれば必ず報われます。
コロナ禍で非常に厳しい世の中ですが、学ぶことを止めずに邁進していきましょう。
改めて、お読みいただきありがとうございました。