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

Sublime Text 3はいつ出るの?

当方VimEmacsも使えないゆとりSublime Textのヘビーユーザなので3の正式版がいつ出るか出るかと心待ちにしてたんだけどなかなか出ないorz

本家のβも2013年12月のリリースで止まってるしもう気が気じゃない...

それでコミュニティを見てたらこんなスレッドを発見。


4月に僕より少し気の短い人が書いたみたい。

「3まだ出ないの?」

When will sublime 3 be released?
Postby toplinuxsir on Mon Apr 28, 2014 4:36 am

The sublime 3 development status is not updated for long time When sublime 3 will be released?

最初はみんな楽観的で

「出せるようになったら出るよ」

Re: When will sublime 3 be released?
Postby jbrooksuk on Mon Apr 28, 2014 9:10 am

When it's ready.

「休ませてあげようよ!」

Re: When will sublime 3 be released?
Postby jbrooksuk on Mon Apr 28, 2014 1:12 pm

It's not dead.

People deserve and need holidays.

って感じだったんだけど、

TextMateと同じ道をたどるんじゃ・・・」

Re: When will sublime 3 be released?
Postby kpublik on Fri May 02, 2014 7:06 pm

Wow, I'm having TextMate flashbacks. Little or vague info from the dev. Forums posts from > apologists and those in denial about the project's status.

TextMate was a paid product too, yet the developer has been dragging out an official 2.0 release for years. Most people have moved on, and for a while that was to SublimeText. However, competitors are on the horizon, some with more resources and a lot more professionalism than > Sublime's developer.

TextMate missed an opportunity to continue to dominate the text editor market, and now it seems > that SublimeText is making the same mistakes.

I paid for ST 2, but doubt I would "upgrade" to 3.0, when (if?) ever that is released.

「みんながお金払わないから・・・」

Re: When will sublime 3 be released?
Postby macjohnmcc on Sat May 03, 2014 5:38 pm

This is what happens when you have a project where only one person is running everything. Especially if the product is not paying for their living expenses.

I suspect that because Sublime Text will let you use it indefinitely without paying that many people use it without paying. There may be a huge user base but I suspect a large number of them do not pay.

Also figure that Sublime Text works on several platforms that it takes more development and testing efforts so expecting constant updates from the sole developer and tester while desirable isn't likely.

だんだん雲行きが怪しくなってきたぞ・・・

とその時。

「開発版の新いビルド出したよ!」

Re: When will sublime 3 be released?
Postby jbrooksuk on Mon May 05, 2014 9:41 am

I just had a dev build update.

おお!死んでなかった!


というわけで、開発はゆっくり進んでるみたい。よかったよかった。

GitHubが大学に来た

f:id:yubessy:20140602231213j:plain

大学にGitHubが講義しに来てくれた。
GitHub Kaigiってのの後でわざわざ寄ってくれたっぽい。

最初にCoby Chappleって人がGitHubでの働き方とデザインについてしゃべってくれた。
GitHubではリモート作業がデフォルトで、社員の60%がリモートらしい。
デザインの話はふつうだった。
聴衆もWebプログラマばかりではなさそうだし、英語もそんなできる人ばかりじゃないから簡単な話にしてくれたのかもしれない。
あとスライドをUSBメモリ回して配布してたのがちょと笑えた。

それからJordan McCulloughってひとがGitHub入門教室をやってくれた。
この人はGitHub専属のトレーナーらしい。そんな仕事があるってことに驚いた。
内容はGitの基本とfork, pull-requestで、シェルの立ち上げから丁寧にやってくれた。
エディタ立ち上げるときに「viとかvim使ってる人?」って言われて結構な人数が手を挙げるとJordanがにわかにテンション上がってて微笑ましかった。
GitHubの中の人はみんなAtom推しなのかと思ってたけど全然そうじゃなかった。

出不精なので大学でこういうのやってくれるの嬉しい。

個人的ファイル管理

自分のファイル管理方針をまとめただけのもの。

バックアップ専用のサーバを使える人とかGitで人生の半分を管理してる人とかは好きにすればいいと思う。 あと絶対外に出せないファイルとかも対象外。

簡単に言うとこんな感じ。

  • ちょっとでも「無くしたら困る」と思うものはDropboxにぶちこむ
  • Dropboxが一杯になってきたら使ってないファイルをzip圧縮してGoogle DriveUSBメモリに移動

ファイルがある場所の名前

ファイル管理の詳細

ファイルは何でも次の原則に従って管理する。

1. ローカルに作成

どんなファイルでもいきなりオンライン上に作ったりせず、まずはローカルに作成する。

2. オンラインで運用

作成後、少しでも「無くしたら困るな」と思ったらすぐオンラインに置く。 どのサービスを使うかはファイルの種類による。

3. オンラインと外部メディアにバックアップ

一度でもオンラインで運用したものはまたいつ必要になるかわからないので、消さない。 オンラインが一杯になってきたら、使ってないファイルをディレクトリごとzip圧縮してGoogle Driveに放り込む。

Google Driveアカウントはバックアップ専用のものを一つだけ用意しておいて、ファイルの種類によらずそこに貯めていく。

それと大容量のUSBメモリを一個用意しておいて、バックアップ用Google Driveを(手動でいいので)ミラーリングしておく。

その他

  • ファイル形式はなるべくメジャーなものにしておく
    • 一太郎文書開けなくて苦労した
  • ディレクトリ名・ファイル名にはASCII文字しか使わない
    • シェルで正規表現使って一括処理とかしやすい

Qiitaを始めた

最近Qiitaを始めて、最新の投稿で10件目になった。

プログラミングスキルとか大したこと無いけど、研究で英語の自然言語処理ツールとか使ってたので備忘録も兼ねていろいろ書いてみた。

マニアック過ぎて誰もストックしてくれないこともあるけどマイペースに続けていこうと思う。

http://qiita.com/yubessy

Markdown万歳。