うどんエンジニアの備忘録

過去を振り返ったり、日々の内容で思ったこと、感じたことを書いていきます。

大学生の4年間を振り返って

まずは自己紹介

はじめに

ブログを最近、始めました。4月から晴れてエンジニアデビューするのですが、やはりエンジニアになるにはアウトプットする能力がないといけません。これから新しい技術にどんどん触れてインプットして、自分の中で情報を整理しながらアウトプットすることで初めて新しい技術が身についたといえると思います。私には、文章を書く力、アウトプットする能力に自信がありません。これからもQiitaはてなブログでどんどんアウトプットしていきたいです。 大学院の修士論文の発表も終え、学生生活も残すところ卒業式のみになりました。大学生活をブログで振り返りながらアウトプットする練習をしたいと思います。そして、社会人になるこの直前のタイミングで自分の学生時代を振り返ろうと思います。

B1 (学部1年生)

2014年の春、私は1浪を経て地元の国立大学の情報系の学科に入学しました。

情報学科の選択

情報系の学科を選んだ理由は、パソコン関係の内容をもっと勉強したかったからというしょーもない理由でした。大事な選択の割には浅はかだったと当時を考えると思います。ただ、この情報系を選んだ選択というのは自分の中では正解だと思っています。小、中、高と授業をしてきてPCに触れる授業が一番ワクワクしたし、一番得意でした。小学生のときに初めて選んだクラブ活動がコンピュータークラブでした。当時、学校のPCに入っていたジャストシステム社の「一太郎スマイル」はとてもよく覚えています。中学生のときもPCの授業はとても楽しかったです。(先生の目を盗んで検索してはいけないワードばっかり検索していました。)高校の授業での、htmlを使ってホームページを作る演習授業では誰よりも早くクオリティの高いページを作った記憶があります。(高校のPCでやったので証拠はございませんm(__)m)

f:id:riest817:20200215022654p:plain
一太郎スマイルの目次画面

ゴルフ部の入部

どこの大学にも新歓祭(新入生歓迎祭)というものがあると思います。私は、どうもその新歓祭の雰囲気が嫌いでした(根っからの陰キャなもんで...)。友達とかはみんな新歓の誘いでいろんなサークルに顔をだしていたらしいですが、私は一切、どのサークルにも行きませんでした。ただ、サークルには入りたいと思っていたのでゴルフ部に決めました。自然と共存したスポーツが好きで(高校はカヌー部でした)、ゴルフは前々から興味はありました。新歓のパンフレットでゴルフ部の連絡先を調べ、直接連絡して入部しました。

f:id:riest817:20200215025225p:plain
ゴルフ

初めて触れたプログラミング

後期にプログラミングの授業が週2でありました。水曜の1コマは授業で、金曜の1コマは演習です。プログラミングの授業で扱う言語はC言語です。初めての演習では、コンパイルと実行方法が分からずにTA(ティーチングアシスタント)に質問しまくりでした。周りの友達を見渡しても質問しまくっているのでは私一人だけでした。おそらく授業を全く聞いてなかったでしょうね(^^;) そして、初めてコンパイルしてエラーを出した内容は覚えています。初めてのエラーは、全角のエラーでした(初心者あるある笑)。当時使っていたエディタはメモ帳です笑。ただ、当時の私は何のエラーか全く分からずTAの人に聞いたのですが、TAの人も解決できませんでした(TAは大学院生)。おそらく初歩的すぎてTAの人も見たことのないエラーに戸惑っていたのでしょう笑。

プログラミングの演習を繰り返していくうちに

プログラミングの演習の形式は、チャイムと同時に問題がプログラミング専用ページに開示され、それらの問題を演習時間内に解くというものです。終了のチャイム後に提出するとその問題の点数が6割になります。私は周りに遅れまいと翌週からしっかり予習をして必死についていきました。演習を繰り返していくうちにだんだんプログラミングが楽しくなっていきました。予習も毎週続けることができました。1年後期で予習していたのはプログラミングの授業ぐらいです笑。この授業でのプログラミングの成績は「優」でした。

f:id:riest817:20200215031826p:plain
当時プログラミングの授業で扱っていた教材
この時期には以下のようなプログラミングの基礎概念を学びました。

  • CUIでの入出力
  • if文、for文、while文
  • 配列
  • 関数
  • 再帰

塾講師のアルバイト開始

学部1年生の12月に個別指導の塾講師のアルバイトを始めました。アルバイトを塾講師にした理由は、今までは勉強を教えられる立場でしたが、教える立場にもなってみたいという単純な理由でした。あとは、勉強に関してそこまで嫌いでもなかったし、時給も他のアルバイトよりも高めでした。主に中学生を教えていたのですが、いろんな個性のある生徒さんと雑談を交えながら指導するので毎日が刺激的でした。1年の冬休みは、ほぼ毎日フルコマで入っていました。このアルバイト経験で、個別指導特有のコミュニケーション能力、知識のアウトプットは鍛えられたと思います。

B2

プログラミング演習本格化

学部2年生の前期にもプログラミングの授業が週2でありました。水曜の1コマは授業で、木曜の1コマは演習です。1年後期のときと同じでC言語を扱うのですが、演習量が増え、難易度が上がります。演習内容は、制限時間内に6問の課題が出題され、解答が早い順に得点を獲得でき、履修生の順位が常に公開されている状態です。プログラミングコンテストが大学の演習授業内で行わている感じです。この形式が、私のプログラミングに対するモチベーションを駆り立てました。演習授業後は、翌週までに8問の課題が課されます。これもさぼらずにやり続けました。授業開始当初は、60人中真ん中ぐらいの順位でしたが、演習授業の最終回では40人中(開始当初から20人が履修解除)2位にまで上り詰めました。 この時期には以下のようなプログラミングの概念を学びました。

  • ポインタ処理 -ファイル入出力
  • 列挙体とデータ型定義
  • 文字列と文字列処理関数
  • 構造体とメンバ、抽象データ

プログラミングサークル入部

プログラミングにはまった私は、プログラミングサークル(通称SLP)に入部します。サークルの部員は先輩、同期、後輩共に優秀な方ばかりでした。活動内容は、国内のプログラミングコンテストに参加したり、先輩のインターンなどのLTを聞いたりと様々です。また、この頃に先輩に教わりGithubの登録を行いました。しかし、当時gitについて何も分かっておらず(今もそんなに理解できていない)、リポジトリの作成方法のpushのやり方を先輩から教わりましたが、これ以降githubにアクセスすることはありませんでした。

f:id:riest817:20200220020703p:plain
2015年のGitHubのcontribution

SLPへのリンク先:poulenc.eng.kagawa-u.ac.jp

塾講師のアルバイトを一旦、辞める

今まで勤務していたアルバイト先は深刻な人手不足でした。塾業界では割とあるあるの由々しき問題です。人手不足のしわ寄せは私たち塾講師アルバイトに負担がいきます。バイト開始当初は指導できないと報告したはずの科目の指導にあたったり、私の学歴より上の大学を志望する高校生の指導も任されたりしていました。はっきり言って、生徒さんが満足するような指導はできなかったです。それは、生徒さんの表情から感じ取ることができました。指導後に申し訳ない気持ちになりました。こういった日々が続くことに耐え切れなくなり11月いっぱいで塾講師を一旦、辞めることになります。

塾講師のアルバイト再開

ある日、中学の同級生から塾講師アルバイトの勧誘されます。私が塾講師のアルバイト経験があることを知って誘ったそうです。その塾はできたばかりでまだ生徒数も少なく、塾講師と生徒数のバランスも良く人手不足ではない状況でした。私は、人に何かを教えるということにはまだ情熱を持っていました。もう1回塾講師にチャレンジしてみて向いてないなと思ったらすぐ辞めようという覚悟で、新しくできた塾で塾講師のアルバイトを再開しました。今までの塾講師での経験が評価され、講師リーダーに任命されます。電話応対や保護者との面談、家庭教師など様々なことを経験させて頂きました。結果的には、3年以上もその塾に勤務することになります。

ゴルフ部の退部

2年生になった頃からゴルフに対するモチベーションが急激に下がります。1年生の頃は週2で、打ちっぱなしのゴルフセンターで練習しに行っていたのですが、2年生になると月1ペースまで下がりました。部費も月3000円でさらにコースに回ったりゴルフクラブ購入などでなかなかに痛い出費でした。また、長期休みでは必ず行ってたゴルフ場の先輩からの誘いも断るようになり、人間関係も悪化していました。私は、体育会系とは真逆の人間で、自分の気持ちを優先するタイブです。行きたくもない誘いに乗って行ったところで無理して自分の感情を抑えていることがしんどいし、仮に抑えられたとしてもいずれは相手にばれます。誘った側も誘われた側もお互いにいいことはありません。そうなるぐらいなら自分の感情に正直になって断ったほうがお互いのためにもいいと思います。人間は一人一人価値観が違います。この違った価値観をお互いに認め合うことが、良好な関係を築く1つの要因だと思います。残念ながらゴルフ部には、こういった文化がありませんでした。

B3

情報環境実験

学部の3年では、1年間に渡って火曜日の昼からのコマを全部使い、情報サイエンスに関する実験を行います。大学生の4年間で一番しんどかった授業です。その分、とてもよく覚えています。内容は、4人1組となって様々な実験・課題に取り組んでレポートにまとめます。レポートの量がとても多くて、レポート締切の前日は必ず徹夜しました。このレポートは友達と取り組んだからこそ乗り越えられたと思っています。 情報環境実験では以下の実験・課題に取り組みました。

  • PC組立 / Linux / Webサーバー / CGI / SQLを1つのWEBページにまとめる

リンク先:https://riest817.github.io/work/infoexpr1_k05/index.html

  • LEGOロボットによるプログラミング演習

リンク先:https://chausson9.eng.kagawa-u.ac.jp/App/LegoExrc/neoLegoWiki/

  • ポーカーの戦略(C言語で)
  • 五五の戦略(Java言語で)

研究室に配属

本大学では、3年生の夏ごろに研究室配属の希望をとり、GPAや面談を通して秋ごろに研究室の配属が決定します。私よりも成績が優秀な学生と希望する研究室が被ったらGPAの殴り合いが始まります。自分のやりたい研究に近い研究室に行きたいが、優秀な学生の希望する研究室は避けなければなりません。つまり、情報心理戦が繰り広げられます。幸いにも私は第1希望の研究室に配属できました。私が配属した研究室では、プログラミング言語処理系・ Web ベースプログラミング学習システムなどを研究しています。自分のやりたいことと一致していたので良かったです。

研究室のリンク先:https://ymir.eng.kagawa-u.ac.jp/

B4

大学院の進学決定

4年生になると周りは就職活動が本格化してきます。私は、大学院に進学する決意をしました。というのも、GPAの成績から本大学の大学院の推薦をしてもらえるとのことでした。推薦での進学では、進学に必要な試験は免除され面接(行けば100%通過)のみでした。GPAは、学部1年次では2を切っていましたが、このままではまずいと考えプログラミング科目を筆頭にコンピューターサイエンス系の科目は真面目に受けました。そのかいもあって、学部4年次は2後半のGPAまで引き上げました。ちなみに、この時期は就職活動は一切行ってません。インターンシップも行ってません。今思えば1社ぐらいは行っといても良かったかなと思います。

卒業論文

学部の4年生では、卒業要件に必要な授業の単位も取り終え、就職活動もせず、院への進学も推薦が決まり試験の勉強をする必要がなかったので、研究室でひたすら卒業論文の研究を行っていました。研究内容は、Blocklyに関する実装を行っていました。まずは、Googleによって開発されたBlocklyから少しずつ独自のシステムにアレンジしていきました。本格的なシステムを1人で構築できることにとてもやりがいを感じていたので、この頃の研究はとても楽しかったです。

f:id:riest817:20200220024914p:plain
Blockly

さいごに

大学生での4年間を学年ごとに主要なイベントでまとめました。このブログ記事を通して私がどのような大学生活を送っていたのかを少しでも知ってもらえたら幸いです。