CA Tech Dojo サーバーサイド(Go)編に参加してみて
はじめまして!! takeです。
今回CA Tech Dojo サーバーサイド(Go)編に参加させていただいたのでその振り返り兼感想を残します。
追記(2021/04)
コロナウイルスが流行してからはオンライン版で実施されていますが、この記事に書いているCA Tech Dojo サーバーサイド(Go)編はオフライン実施でした。
この記事は長いこと限定公開にしていたため公開日が2021年になっています。
参加のきっかけ
今回私が参加したのはCA Tech Dojo サーバーサイド(Go)編の2期でした。申し込んだきっかけは、大学先輩からこのインターンの参加を勧められたことでした。
まさか自分が受かるわけないだろうなと半ば思いつつの応募だったので参加が決まったときはかなり嬉しかったです。しかし、同時に不安に駆られました。不安の要因としては、北海道に住んでいるので東京に移動し2週間インターンに参加するというあまりに大きなイベントであったということと、自分の持っている実力的な面でした。
インターンの内容
開催場所:東京(CA本社)
期間:2020/02/17 - 2020/02/28
コロナウイルスの流行により2020/2/21に中断
内容:課題に沿ったAPIを実装し、そこから自分なりの改善や新機能の追加を行いました。課題を進めていく中で、Webサービスを作る上で基本となる、サーバー構築やデータベースを参照したAPI実装などについて学ぶことができました。
参加者:9人
インターンに参加した感想
今回のインターンが自分にとって初めてのインターンだったのですが、このインターンが初めてでよかったと自信を持っていえます。参加前はとても不安が大きかったのですが、他の参加者や指導してくださるメンターの方々、インターンを実施してくださる人事の方々全員がとてもいい人たちで楽しく、充実した時間を過ごすことができました。
このインターンで、今後自分がバックエンドエンジニアを目指してプログラミングを行うためのノウハウを得ることができたこと、他大学の同じエンジニアを目指している学生と交流を持てたことがとてもよかったと思います。
また今回のインターンで初めて現場のエンジニアの働く様子や雰囲気などさまざまなことを感じることができました。
もともと私の開発経験は大学の授業で一応プログラミングを学んではいましたが、豊富な方ではありませんでした。Goの開発経験は半年ほどで、DockerやMySQLを用いて簡単なGET、POST処理を行うWebAPIを作成することができる程度でした。
同じ課題に取り組む参加者のプログラミング的思考やGitの使い方、新しい技術に関する知見などを得られました。
またメンターの方々が、たくさんの時間を割いてコードを細かくチェックし、レビューを下さったおかげで、自分のこれまで書いていたコードが大きく変わりました。
今回のインターンでの自分の成長は、自分のこれまでの成長のスピードの何十倍もの成長ができたと思います。
このインターンの経験を生かして今度どんどん開発していきたいと思います!
技術的なメモ
今回のインターンの個人的反省を書き残しておきます。
- WebAPIを書く上でもっとパフォーマンスチューニングを行いたかった。
DBとしてMySQLを用いていたのですが、複数のデータをinsertしたい時にfor文を愛してinsertするという力技を用いていました。中止になってしまった後半の期間でバルクインサートやトランザクションなどを用いて改善に取り組みたかったです、、、 - 無駄なコードが多かった。
今回はMVCでWebAPIを作成していたのですが、どうしてもcontrollerとmodelが肥大化してしまっていた。ディレクトリ構成についてもっと考えるべきだった。また不要な処理や、効率の悪い部分を洗い出し改善したかった。 - エラーハンドリングをもっとしっかりしたかった。
今回エラーの処理を疎かにしてしまっていたことも悔やまれます。エラーコードやlogrusなどのパッケージを用いて本格的なエラーハンドリングを行いたかった。
自分は大学入学までほとんどPCを触った経験がなく、周りの同じエンジニアを目指す学生に比べてIT全般の知識が乏しいように感じました。もっと通信技術やハードウェアなどに関する知識を得る必要があるなと感じました。