社会人になって3ヶ月のエンジニア研修を終えて〜内容と感想〜

ご無沙汰しております。ブログ更新も約半年ぶりとなってしまいました。(このサイトが不正アクセスを受け、ファイルを書き換えられ、ゴタゴタしておりました。今はもう大丈夫です。)

無事就職をし、春から新卒のエンジニアとして働き始めました。ちょうど配属されてから1週間、先週の金曜で研修が終わったので、忘れないうちに、この3ヶ月の研修で感じたこと、思ったこと、勉強になったことなどいろいろあったので書き綴っておきたいと思います。

研修の概要

私の就職した会社では、新卒のエンジニアの研修を外部の会社に委託して、そちらのカリキュラム通りに進みます。期間は4月半ばから7月半ばまでの3ヶ月です。ざっくり書くと、Javaでプログラミングやオブジェクト指向の基礎→PHP(Laravel)でのサービス開発→AndroidJavaでのアプリ開発→iOSでのアプリ開発です。
ちなみに詳細はこんな感じ。(会社に怒られたら消します…)

  • ソース・プロジェクト管理 2日間
  • Javaプログラミング基礎 2日間
  • オブジェクト指向プログラミング 6日間
  • UMLと設計 1日間
  • ソフトウェアテスト技法 2日間
  • DB&SQL基礎 2日間
  • DBパフォーマンス・チューニング 2日間
  • JavaEE基礎 3日間
  • Webシステム開発演習(Java) 8日間
  • PHPプログラミング基礎 1日間
  • PHPフレームワーク(Laravel) 4日間
  • Webシステム開発演習 6日間
  • Androidアプリ開発 12日間
  • iOSアプリ開発 14日間

JavaとDBの感想

このあたりは長くて1ヶ月半ぐらいやっていた。Javaについては課題形式で本当に変数からカプセル化とかクラスとかラムダ式までやった。底辺知識が薄い自分にとってはすごいありがたかったけれど、アルゴリズム苦手でしんどかった。研修で一番しんどかったかも。笑 プログラミングガチ勢からしたら、これにこんな時間かけるかって怒ってる子もいた。
ソース・プロジェクト管理みたいなのがあったけど、一切の説明もなく、班にGitがわかる人が教える感じだった、不満もつらつらあったけれど、Gitは習うより慣れろなので、みんな研修中盤でGitは問題なく使えこなせるようになっていた。同期は30人ほど、8班に別れていてWebシステム開発演習でJSP、サーブレットでTwitterみたいなのを作った。コンセプトは自由で、不満をたらたらいうTwitterや語学学習のTwitterができていた。個人の力でORM作ったり、React使ったりとすごいのもたくさんあった。DBの講義はあんまりよくなかった、事実研修会社の人がDBの課題はくそだからね〜みたいなの言ってた。(まじかよって感じでした。)

PHP(Laravel)の感想

PHPの研修期間は11日間、がっつり触ったことがあるって人は少なかったと思う。講義もなく、テキストみたいなPDFが渡され、お前らで頑張れ!って感じだった。放牧。かわいそうだったのは、WindowsとMac混合班が環境構築がなかなか終わらなくて大変そうだった。(資料はLinuxだった。)
作るものも自由で、私たちの班は語学学習サービスを作った。瞬間英作文をネット上でやるものだ。毎度開発最終日に発表会があり、技術や機能、デモなどを発表して、会社の先輩たちが研修施設まできてそれを見てコメントをくれるのだけれど、今回作ったものはとても褒められた。会長にプレゼンしたら?と言われ嬉しかった反面、うちらの班がうまくいったのは、設計が上手でLaravelがめちゃ書ける子と、JSがめちゃ書ける子と、私みたいにデザインがほどほどでCSSが書けれることができる人が集まったからだと思っていて、私は9割sassを書いて終わった。Laravelとは?のレベルで終わった後、虚しかったのはいうまでもない。他にもネット上で人狼のゲームができるサービスを作った班があったりして、面白かった。4班あったうち、2班以外は失敗みたいに終わってて、強い人もたくさんいたのになんでだろうっていう疑問が残った。後、この時デザインとプレゼンの見せ方も重要なんだなと気づき始めました。

AndroidJavaの感想

Androidに入ってからは、個人でもグループでも開発可という感じだった。私はアプリ開発がど素人で大変になりそうだなと思ったけれど、一から全部一人で作ってみたかったので、特殊な班に所属した。1人で作るけれど、チームで、わからないところや進捗管理はみんなでやろうというものだった。正直不安もあってありがたかった。作ったものとして、傘がいるかわかるアプリを作った。お天気APIと地域情報APIをRetrofitでHTTP通信でとってきて表示させるという簡単なものだった。けれど、デザインがxmlだったり、ライフサイクルというWebで生きてきた自分にはあんまりない概念だったり、非同期でとってくる前に表示の処理が終わるなど、大変なこともあった。他の班や個人は、シンセサイザを作っていたり、マッチングアプリを作っていたりすごかった。AndroidJavaはまだJavaなので、よかった。アプリが早く開発が終わったけれど、プラス機能も考えず、そういう設計もしていなかったでもう少しできたのではないかと思った。RealmとFirebaseは大変そうだった。

Objective-cの感想

大変だった。とにかくメソッド定義も配列もめんどくさい!メモリ?ポインタ?うわ〜〜て感じだけど、低層の言語を知れてよかった気もした。(JavaやPHPは高級言語だよ〜って隣の子が言っていていろいろ教えてくれた。)アプリはメモリの関係もあってか、ListViewの表示の仕方が独特だなと思った。今回の開発演習のアプリは、DBがMySQL、サーバ側をLaravel、フロントをObjective-cで書いた。しかもDB設計もmigrationもコントローラも画面も自分で書いたので、LaravelにもObjective-cにもめちゃめちゃ触れられて嬉しかった!(CSSはそんなに書きたくない)
ちょうど都議会選がやっていたので、国が出した選挙アプリというものを4人班で作った。今回は1人開発でやる子も多くて、AWSでインフラめちゃめちゃやっていて(https通信)すごかったり、ハンドスピナーのライブラリ作っていたり、Bluetoothでいけるシンセサイザ作っていたり、なんかiOSの新しいARの技術使っていたり、待ち合わせアプリだったり、集大成揃いの者たちばかりだった。

それ以外

タスク管理はTrello、コミュニケーションはslack、プロトタイプはXdやPrott、設計やデザイン、サーバ周りなども自分たちで一から、講師の人への質問はそんなにたくさんあったわけではなかったので、とにかく自分たちでどうにかする、チームの子に聞いて頑張るというのが大きかった。朝会と夕会でタスクの進捗確認、Trelloで手持ち無沙汰なメンバーがいないか確認、中にはKPTまでやっている班もあった。後、研修施設が20時までなので、だいたいみんないつも定時帰りだった。ホワイト。家でたまに開発していてbacklogというgithubみたいなリポジトリ管理のツールだけ動いていた時もあったけれど。笑

研修中に使ってよかったなと思ったツール・本・諸々

– Trello(To do, doing Doneとかにカテゴリを分けて使っていた)
– API設計書(パラメータや戻り値をきちんと書くことで、フロントとバックに齟齬が生まれない)
– Postman(WebAPIでも自作APIでもパラメータを入れて、成功、失敗、返り値も出してくれるのでとても便利だった)
– iTermでのzshかfish(コマンドたくさん打ちたくないし良い)
– AdobeXdやProttなどのプロトタイプツール(デザイナーがいないから、最初の画面デザインをやるには助かった)
– Sequel pro(わざわざターミナルからmysql見に行かなくて良いGUIツール。あ、DBの変化の確認に便利)
– sql文からER図起こしてくれるやつ・・・名前忘れました
– リーダブルコード(神)

感想

研修会社に対しての多少の不満はあったけれども、自分たちでどうにかするという部分においては本当に勉強になったし、いろいろな方面で強い子から教えてもらうこともたくさんあったし、0から作るという経験が4回も3ヶ月でできたのはかなりよかったです。同期とかいらんわ〜って思ってた自分でも、今となってはslackで会話するのが楽しいし、みんなそれぞれの個性を持っていて、いろいろな人がいてそれが楽しいです。配属先でも頑張ります。

追記

なんかもうちょっと書きたかったことある。作ったもののスクショや動画は機会があれば載せます!
研修会社(https://it-college.co.jp/)のサイト。実績にロゴもうちらの写真も使われまくっているので載せても大丈夫だろうという気持ちで。(怒られたら消す) 何かものが作れるって良いなと思った3ヶ月でした。