Web系インターンにいくときの準備

はじめに

夏休みにいくつかのWeb系インターンに行ってきた。
会社の規模も内容も期間もいろいろだったけど、どこも楽しかったし、HadoopとかElasticSearchとかのいろんな技術に触らせてもらえて面白かった。
貴重な時間を割いていろいろ教えてくださった社員さんや、交通費や給与を出していただいた会社には本当に感謝するばかりです。

それぞれの内容については、あまりしゃべってはいけないないこともあるので割愛する。
メモとしてインターンに行く前にやっておいて良かったこと、やっておけば良かったことを書いておく。

自分用の設定をまとめておく

特に1週間とか期間の短いインターンで、会社が用意してくれるコンピュータを使って開発する場合、自分の環境をポータブルにしておくとスムーズに開発が進められる。

dotfiles

GitHubかBitbucketにdotfilesレポジトリを作って置いとくと便利。
ついでに setup.sh みたいなのを用意してGitHubからのクローンやシンボリックリンクを自動化しておくとより便利。

  • シェル: .bashrc, .zshrc など
  • エディタ: .vimrc, .emacs など
  • ターミナル仮想化: .screenrc, .tmux.conf など
  • その他: .gitconfig など

その他

OSのキーボードショートカットやトラックパッドの動作がいつもと違うと地味に気になるので、自分の設定をどこかに書き出しておく。
あと日常的に使ってるツールは一覧とインストール手順をまとめておくといい。
brew-caskとかを使うのもアリ。
自分はMacでiTerm2, Alfred, ShiftItとかを常用していたけれど、最初のインターンではdotfilesしか準備してなかったので、この辺もまとめておけばよかったと切実に後悔した。

ちなみにiTerm2は Preferences -> General -> Save Settings to Folder で設定をエクスポートできる。

知っておくべきこと

当然、Webプログラミングに関する次のような最低限の知識・スキルは身につけておくべき。

開発上触れることが多いツールについても知っておいたほうがいい。

  • バージョン管理とチーム開発: Git, GitHub
  • SSH接続: ssh, scpコマンド
  • リモート上で動くエディタ: VimEmacs
  • ターミナル仮想化: screenかtmux
  • パッケージ管理: yum, apt-getなど

使うことになる言語やフレームワークインターン先によって様々なので、それよりMVCフレームワークなどの一般的な概念について勉強しておいた方がいい。
言語やフレームワークが違っても基礎にある概念は似たようなものなので、実際に使える言語はひとつとかでもそれほど問題ない。
むしろせっかくの機会だから新しいことに挑戦するのもいいと思う。

その他

種々の手続にいるもの

当たり前だけど、交通費・宿泊費・給与などを支給して貰えるとこだと銀行口座情報や印鑑が要る。

研究室への周知

大学・大学院で研究室に所属している人は予め不在を伝えておく。

おわりに

Web系のインターンは基本どこいっても何か学べることがあるので、しっかり準備して楽しんできましょう。