読者です 読者をやめる 読者になる 読者になる

大学4年間の開発活動を振り返ってみる

はてブ始めました。

技術系はQiitaに、その他はここに書こうと思います。

qiita.com

 

先日、卒論発表を終えて本格的に大学生活に区切りが付きました。

後は卒業式を残すのみです。

 

個人・チーム開発や受託開発・アルバイトでの開発など、大学生活を十分に楽しめたと思っています。

ただ、全てが十分かと言えばそうではなく後悔も多々あります。

なので、「これはよかった」「こういう場合はこうした方がよかった」ということを自分へのメモとして残しておこうと思います。

 

良かった点

  • 自分の周りの環境を変える

昔からモノ作りが好きで、パソコンを触るのが好きなのもあって中学卒業ぐらいからはエンジニアになりたいなーというふわっとした気持ちで高校も情報系に入りました。

ですが、自分から触ろうとせず授業で少しプログラミングを教わる程度でした。

高校でも少し音楽系の部活に入っていて、大学でも初めは同じように音楽系の部活に入りました。得意ではありませんが、音楽が好きなので。

その環境から変わったきっかけは、1年の夏頃に自分が大学で主に活動してきたチームの学内での勉強会に、友人に連れられて参加したことです。

そこはAndroidアプリを開発しているチームで、Javaの勉強会を開き学生を集めるといった感じでメンバーを集めていました。

その時に先輩に気に入られた結果、チームに入って興味を持つことができたという感じです。

この時に一緒にいって無ければ今の自分はいなかったと思います。友人にも感謝しています。

少しでも興味があるなら、自信がなくても行動すべきだと思います。

 

  • 外部で勉強会に参加、主催する 

大学近くのカフェはすごく面白いところでボードゲームや編み物、アルゴリズム勉強会など色々なイベントを開催しています。

また、地方であるため最近は企業が学生に対して説明会やイベントを行うこともあります。

そのカフェで行われていたweb系の勉強会に参加しました。人数は5,6人程度です。

毎回終わった後に次回なにするかを決めるのですが、gulpやGruntなどの自動化についてやることが決まった時、gulpを自分が担当して発表するよう立候補しました。

まったく自動化系について触ったこともなかったので、やってみたいという好奇心とやる気だけでした。教わるより教える方が勉強になるということも理解していたことがあってのことです。

結果として、そこで勉強したgulpを今でも便利に使っています。

最近はgoogle apps scriptをローカルで書いて、変更を検知し同期するものを作ったりしました。

 

  • 長期休業中などは予め予定を埋める

2年から3年になる春休み、3年の夏休みと東京でインターンをしていました。

2年から3年になる時のインターンは春休みに入る2週間ぐらいに唐突に決まって、マンスリーマンションなども視野になかったので、カプセルホテルに一ヶ月間生活しながら会社にいっていました。

内容は簡単に言うとAndroidアプリの開発でした。

すでにあるチームに参加して、タスクをこなしていくという感じです。

大学以外でのチーム開発を経験して、自分の実力がどれくらい通じるのかを感じました。

 

それもあって、3年の夏休み2ヶ月間はフルで予定を埋めました。

1,2週間のサービス・アプリ開発インターン2回、ハッカソン2回、1ヶ月間の実務インターンを行いました。埋めすぎました、2ヶ月間で土日を含めた休みを数えても6日間ほどだったと思います。

成果としてはハッカソン2回で優勝、1週間のサービス開発で優勝、2週間のアプリ開発でアプリをリリースという感じです。

チームメンバーに救われたことも多々ありましたが、大体でチームのリーダとして行動していました。

頭の中では弱音を吐いていたこともありましたが、実力を出しきれたと思います。

1番成長できた期間だったと感じています。

 

こうすれば良かった点

  • みんながみんな、自分と同じ考え方ではない

そりゃ当然のことなんですが、今になって思えばという感じです。

ましてや、学生のみの開発チームなのでモチベーションはそれぞれです。

自分はリーダを担っていて、チームの中では技術に自信がありました。

ですが、あくまでチーム内です。

また、基本的には個人開発での成長がほとんどでした。

そのため、開発する際はみんなにも成長して欲しいと思って、各チームに自分で調べて自分で利用する環境を委ねていました。(全体の仕組みをどうするとか、クロスプラットフォームの時はどうするとか、サーバをどうするとか)

これは結果として良くなかったと感じています。

その物事について基礎知識がなく少し調べただけで決めた環境が開発が遅れた原因にもなったと思っています。

知識があるなら共有し、ある程度基盤を決めてからチームを動かすべきでした。

それもあって4年次にはサポートとしてチームを見て勉強会を勧めたり、技術相談に乗ったりしていました。

 

  • 違った意見を持っているなら発言する

自分の思っていることと違うものを作るのはモチベーションを保つのが難しいと思います。

また、発言することで相手も考えるきっかけになります。自分が考えるきっかけにもなります。

そのため、意見を募ることも大事だと思います。

 

  • 自分の作業できる量の見積もり

学業と開発チームのリーダと別途で受託開発をチームで並行で行っていたことがありました。

忙しすぎて寝不足の日々が多く、机の足で右足の小指の骨にヒビを入れてしまう事故がありました。(痛みより眠気が強く、起きてから痛みに気付きました。)

完全に自分で作業できる量を甘く見積もっていたのが原因です。

かと言って、経験がないことについて正しく見積もれというのも無理なことかも知れませんが、見積もりに余裕を持った方が良いということです。

また、その見積もりに間に合いそうにないのなら早めにチームにアラートを出すべきです。

「間に合いませんでした」という報告より「間に合いそうにない、どうしたらいい?」と相談する方が数倍マシだと思います。

 

 

以上、初投稿にして長文になりました。

今後はさくっと書きたいことがあったら書いていくようにしたいと思います。