はじめに
こんにちは、豊田工業高等専門学校 情報工学科でコンピュータサイエンスを学んでいる3年の加藤愛斗です。
この記事では、僕が高専に入学してから現在までの3年間の成長を振り返ります。(qiitaに投稿するからには、趣旨を技術関連にしなければならないので後半にしっかりまとめます。)
自己紹介
豊田工業高等専門学校 情報工学科でコンピューターサイエンスを学んでいるpython大好きエンジニアです。
振り返り
高専入学前
RoboCup Junior Soccerという競技を取り組んでおり、ロボットの機体設計や回路作成、Arduino言語を用いたプログラミングなどをしていました。また、LEGOが好きでMINDSTORMというものを使いブロックプログラミングをして様々なものを作成していました。そのため、プログラミングや情報系には大きく興味があり、高専に入学する運びとなりました。
高専1年 (2019年度)
学校の授業でpythonを学びました。やる気はありましたが、何をどうやったらいいかが分からず、くすぶっていた気がします。寮の同部屋の子にAtCoderを教えてもらい、少しやっていました。(https://atcoder.jp/users/kathmandu)
高専2年 (2020年度)
コロナにより自粛生活が基本となり学校も前期はオンライン授業となりました。これがエンジニアとしての道を歩む大きなきっかけとなりました。オンライン授業で自由な時間が多いため、英語とプログラミングをものすごく勉強しました。(英語はNativeCampというサービスを使用して勉強しており、当時は4hr/dayほどやっていました。) プログラミング面ではアプリを3つ作成しました(Django, Unity, Kotlin)。(筋トレもめっちゃやりました笑)
通常授業に戻ってからは、普通に過ごしていました。
11月に寮のリーダーになるための試験を受け合格しました(後に人生を変える)。
12月、トビタテJAPANという国が行っている留学支援の企画に応募します。(書類は通りましたが面接で落ちました。面接には自身があったのでかなりショックを受けました。しかし、良い学びとなりました。)
冬休みは、先輩の卒業研究に興味があり、自分でもそのテーマを扱っていろいろ実験していました。
春休みに入って、CTFに参加する機会がありました。そこでCTFにもハマったのですが、同時にCTFの自作問題を共有できるサービスがあったらいいなと思いがむしゃらに作成しました(Django)。
高専3年 (2021年度)
時は訪れ、知り合いの先輩から技術コミュニティを作らないかと誘われます。先程述べた寮のリーダーをきっかけに仲良くなった技術に興味のある友達を誘って、コミュニティを作成しました(発案者の先輩, 私, 私の同学年の友達×2)。この人との出会いにより、私と私の友達はインターンをWantedlyにて探し始めます。自分はpythonしか書けなかったので、pythonを使用している会社にひたすら「話を聞いてみたい」を送りました。このときの技術レベルは、Djangoを触ったことがある程度のもので、gitなどはほぼ使えませんでした。そして、応募した会社の内30%位から返信が来て、面接をしていただきました。このとき、とりあえず早くインターンを始めたいという気持ちが大きかったために、複数の会社の面接が並行して進行しました。その結果、何もわからない状況にも関わらず、いきなり2社でインターンを開始することになりました。(一方は面接のみで、もう一方は面接と1day採用試験がありました) 今振り返れば、(今振り返らずとも、当時から親には大丈夫かと心配されていたが)あの状態で2社でインターンをするのは無茶でした。しかし、「一度決めたことは必ずやり切る」という信念を持っているため何とか食らいつきました。[一方での会社の話は別途記事にします]
9月に、合宿免許に行き普通自動車の免許を取りました。
10月に、11月に開催される学校祭で使用したいアプリの開発を友人が先輩から依頼され、一緒に開発しました。
11月に、寮のリーダー(前述の一つ上の役職)になるための試験を受けました。落ちました。しかし、この不合格はとても価値のある不合格だったと考えています。あの状態ですんなりリーダーになっていたら不完全で誰かに迷惑をかけたり、自分自身後悔することが起きたと思います。
12月にはHackU Kosenに参加しました。最優秀賞をいただきました。
1月に、上記のリーダーの再試験を受けました。今度はしっかりと受かりました。また、来年度の学校祭の副実行委員に任命していただきました。
春休みに入ってからは、一方のインターン先がオフィスで働かないかという誘いをしてくれたので、東京でバリバリ働いていました。picoCTF2022もやりました。CyberAgentさんの3days ML/DS & サーバーサイド インターンに参加しました。
感想
僕がこの3年間で学んだことは大きいです。特に3年生の1年は非常に濃かったです。本当にこの学校に入ってよかったと感じており、高専をすすめてくれた親には感謝しています。
学んだこと
環境は大事
この高専に入学していなかったら、エンジニアとしての道を歩むことはなかったですし、良い友達・先輩・インターン先と巡り会えていなかったら、今の自分はいません。自分を最も成長させてくれる環境に身を置くこと、自分を高めてくれる人を大切にすることを学びました。そして、自分も人を高められるようなそんな存在になりたいと考えるようになりました。
経験を大切に
私は、人が一番成長する時は「何かを成し遂げたとき」で、次に「失敗から学びを得たとき」だと考えています。前者は当然ですが、成功したという経験・達成感・成功するための方法などを得られるため大きく成長できます。重要なのは後者です。多くの人は失敗をしたときに、失敗をしてしまったとネガティブになります。この感情は当然で、非常に大切です。しかし、その次にその失敗を「失敗として終わらせる」のか、次に繋げるために「振り返り何かを学ぶのか」では成長に大きな差が現れます。失敗に向き合い、なぜ失敗をしたのか、どうしたら次は上手く行くのかなどを学び立ち直れれば、それは大きな成長です。もしかしたら、成功したときよりも成長している可能性もあります。つまり、物事に取り組んだら(挑戦したら, 経験をしようとしたら)成功しても失敗しても成長できるということです。そのため、経験を大切にするというのが僕の現在の座右の銘の1つです。「あるチャンスは掴め」をモットーに生きています。
時間は有限
よく言われていることですが、なかなか自覚することは難しいです。この段階で気づけて良かったです。買えるのであれば、1,2年の時の時間を買いたいです。「一分一秒を大切に」をモットーにしています。
他人の不満を言うな
人の悪口を言って良いことはないですね。当たり前なんですが、若気の至りで昔はよく言っていました。
Don't complain. Let the other people complain.
-- jack ma
まさしくこれです。上述のように、人の悪口を言っているような無駄な時間はありません。やめましょう。
不満を解消したいなら
不満を言ったところで、その不満は解消しません。巡り巡って、当人にその不満が伝わるかもしれませんが、それで解消はしないでしょう。(自分が知らないところで言われた不満を人づてに聞いても「は?」ってなりますよね) 唯一不満を解消する方法としては、当人に不満の内容を伝えて、自分が考える解決方法も伝えることだと考えています。しっかり一緒に向き合うことのみが有効策ではないでしょうか? これは非常に難しいです。不満を感じたらこれをしろとは言いませんが、せめて不満を当人のいないところで言うのだけは避けましょう。何も生みません。
ポジティブ
ポジティブでいることが一番です。
高専生に伝えたいこと
授業を真面目に取り組んで損はない
自慢ながら、私はGPA4.0と今までにA評価しかとったことがありません。僕だから言えることは、「勉強が出来たところで何にも役に立たない。しかし、勉強が出来ないやつはもっと役に立たない。」ということです。学生であるからには、本業は勉強です。良い成績が取れずとも、本気を出したと自分の中で言えるレベルでやり切る必要はあると思います。この本業に中途半端な人は、何をしてもダメだと思います。
失敗をたくさんしてほしい
上述のように、経験が人を成長させます。そのため、失敗なんかを恐れずに、様々な物事に取り組んでほしいです。学生の間の失敗なんて痛くありません。
インターンやろうぜ!!
インターンを経験できたことは非常に貴重な体験となりました。やはり、個人で勉強をしているのと、実際の現場で開発を通して物事を学ぶのでは大きな差があります。エンジニアとして成長したいと考えている学生には、是非インターンをおすすめします!!
ハッカソン楽しいよ!!
せっかく高専という技術者の集まる学校にいるのであれば、友人とチームを組んでハッカソンなどに出ると良いと思います。様々な苦労がありますが、とても楽しく良い経験になると思います。その後に、プロコンなどの大会にも出場できるとなお良いと思います。
エンジニアとして
(このまま記事を終われせても良いのですが、技術的内容が薄くqiitaに消されてしまいそうなのでもう少し書きます。)
エラーで詰まった時
- [初期] エラー文をコピペして検索。teratailなどで質問。StackOverFlowを翻訳にかけて、変な英語が出て諦める。
- [途中] エラー分をよく読む。StackOverFlowを英語のまま読むようにする。
- [現在] 英語のドキュメントも原文のまま読むようにする(日本語が正式に出されてたら問答無用でそっち読みます笑)。 OSSなどであれば直接コードを読む。
ベストプラクティスは未だにわかっていません。予め色々な知識を身につけるのが重要そう。なにかご意見あればコメントください!
アウトプットを大事に
前述の技術コミュニティにて友人と技術に関して議論したりすることによって、自分の理解をさらに深めるようにしています。また、技術記事を書くように心がけています。[関連] 私が技術記事を書く理由
本を読むように
これは私はまだあまり実践できていないのですが、絶対にしたほうがいいです。
インターンをおすすめしましたが、現場で身につけられる知識は限界があります。また、現場で詰まったときに基礎知識があればと思うことが多々あります。それらを効率よく得られるのは、体系的に専門家によってまとめられている書籍だと考えます。
後輩育成
自分がつよつよエンジニアになることはもちろん良いことなのですが、せっかくであればエンジニア界隈をより良くしたいと考えています。しかし、現在の私にはOSS contributeや超詳しい技術記事を書くスキルはないため、身近でできる後輩育成をするようにしています。自分が育てた後輩がさらにその後輩を育てて.. という好循環が出来ることを目指しています。
最後に
残りの2年の高専生活を思いっきり楽しみたいと思います。