プログラミングの勉強を始めて半年がたった
「エンジニアになりたい」と思い、プログラミングやものづくりの勉強を初めて約半年ちょっと経過したので、これまでやってきたことを少しまとめようかなと思います。
外出自粛が呼び掛けられている今、プログラミングにチャレンジしようとしている方もおられるのでは。少しでもお役に立てれば嬉しいです。
自己紹介
工学系の大学院生です。
学部時代も工学を勉強していて、プログラミングは基礎の部分を授業でやった限り。
プログラミングの授業では毎週の課題を提出前日の深夜までかかっても解けないことが多く、苦手意識しかなかった。
このままじゃいかんと思い、なんとなくJavaの本を買って勉強してみるも、ただの写経になり、終わる。
初めてのものづくり
B4で研究室に配属された時の最初の課題が、「OpenGLを使ったCG描画とモーターの制御で一つ作品を作る」というものでした。
あー、モーターの制御もCGの描画もゴリゴリコード書くじゃん...
と絶望したことを覚えています。
ただ始まってみると、わからないところは調べつつ実装して、自分の頭の中で考えている様に目の前のものを動かせると言う部分が意外と楽しかった。
「自分の作りたいものを作る手段」としてのプログラミングが初めてだったので、その楽しさに魅力を感じることができたんだと思います。
自分の中で表現の手段が一つ増えた感覚でした。(できたものはもちろん大したものではないですが...)
エンジニアとしてやっていきたいかも、と初めて考えた瞬間がこの時だった気がします。
このあと新たにSwiftを自分で勉強しようと思い、一つアプリを作ったのですが、これは別記事に書いてあるのでこちらをご覧ください。
初めてのチーム開発
M1の秋ごろにラボの有志でVRコンテンツのハッカソンに出場することに。
自分はソフトウェア開発担当としてUnityを使ったCG、ゲームシステム部分の実装を担当した。
Unityを使うのも初めてだったので、最初はチュートリアルのUnity 2D UFOだったりUnity 2D Shooting(ごめんなさい、リンク見つかりませんでした)をやったなぁ。
先輩や同期の助けもありつつ、目先の実装したい部分を一つずつ潰していく形で作っていきました。
作品としての出来はなかなかよく、個人的には満足することが出来た。(この満足感がのちに過ちと気づく)
結局Unityすら使える様になっていなかった
その後、別の短期集中型ハッカソンにプログラマーとして出場することに。
内容としては、チームで一つゲームを作ること。
結果はボロボロ。
チーム内で方向が決まってもそれを自分がうまく実装することが出来ない場面が多々あり、メンバーには多大なご迷惑をおかけしました。
ただただ悔しかった。
前述したハッカソンでは、Unityができるつもりになっていただけだったんだなぁと。
その日からUnityを使ったゲーム開発の勉強に取り組むことにしました。
面接でのアドバイス
早いもので、M1の秋ごろから就活が始まりました。
やっぱりエンジニアになりたい夢は変わらず、自分で作ったゲームを見せられる状態にして面接に臨みました。
某IT企業二次面接。
エンジニアの上の方とお話しした際にもらった一言
「コンピュータの基礎の部分から勉強してきた方が良いね。」
自分は今まで「Unityを使ったゲーム開発」にこだわりすぎてて、Unityが使えることが目的化したことに気付かされました。
大切なのはもっと根底の部分で、コンピュータが動く仕組みから、プログラミングやアルゴリズムの基礎知識など、そこを固めるのをおざなりにしていました。
その面接の結果は、お分かりの通り不合格だったのですが、その一言のおかげで自分を正しい道に導いてくださったんだなと思っています。
感謝。
就活絡みでもう一つ言うと、エンジニアに特化した逆求人サービスに登録していました。
様々なIT系企業を知ることができるほか、エンジニアを目指す同世代の人とか、企業のエンジニアの方とたくさん面談することができて、自分の世界が多少なりとも広がったなぁと感じております。
よければ登録してみてください。
基礎部分の勉強
それからは自分の思うコンピュータサイエンスの基礎の部分を固めようと思いました。
図書館や書店に通い、コンピューターが動く仕組みやゲームプログラミングに必要な物理や数学の知識、OpenGL、あとはC++でゲームを作ってみたり。
基本情報技術者も受けようとしたけどコロナの影響で中止になった...
学生のうちにリベンジしたい。
自分はまだまだ知識とか勉強は足りないと思うけど、これらを勉強する前と後だとプログラミングをするときの意識がすこーしだけ変わった(気がする)と思う。
何事も基礎が大事なんだなと。
最近の話
先日、無事にエンジニアとして内定をいただき、無事に就活を終えました。
夢に一つ近づきましたね。
最近はUnityを使ったシェーダーの勉強をしたり、AtCoderのコンテストに参加して、アルゴリズムの勉強をしています。
あとは、Unity 1weekに参加して、短期間でのゲーム作りに挑戦してみたり。
↓その時僕が作ったゲームです。
Unity 1weekでは、参加者の方々がハッシュタグをつけたツイートをしてくれるので、皆さんの進捗であったり、ゲーム作りの技術の勉強にもなりました。
もちろん、完成版を遊ぶことで刺激をもらうこともできました。
これから
ざっと振り返ってみた感じ、エンジニアとしての勉強と就活がものすごく絶妙に絡み合った日々を過ごしてきたなって思いました。
就活中にお話しさせていただいたエンジニアの方々やそれを目指す同期の方とのお話がすごく刺激にもなったし、たくさん参考にさせてもらってます。
自分はあまり要領が良い人ではないので、勉強方法についてもたくさん相談させていただき、導いてきてもらいました。
自分の作りたいものばかり作るのではなく、何か技術的に伸ばせる部分を意識したものづくりをやっていければな、と思っています。