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

ami_GS's diary

情報系大学院生の備忘録。ネットワークの勉強にハマっています。

毎日コードを書くこと

Github 日記

はじめに

こんにちは、最近は画像処理やらざるを得ない状況にいます(専門は信号処理)。

そんなことはどうでもいい!

以下の通り、githubのcurrent streakが90日突破したので色々書こうと思います。
f:id:ami_GS:20140423212247p:plain

毎日コードを書くこと

以下のリンク先でJohn Resigという方が毎日コードを書くことについて述べているので、流行りに乗って書きます。
John Resig - Write Code Every Day
毎日コードを書くこと - snowlongの日記 日本語訳

なぜそんなことやろうと思ったのよ

理由は色々あります

尊敬する方が毎日コードを書いている人を賞賛していた

尊敬している人が褒めているんだからソレはもうすごいんだなって(単純

あれ?俺ってそこまでコード書く能力なくね?

pythonは2年半くらい前から書いていた気がするけど、何が出来るかって聞かれると、project eulerの問題を解く程度の事しか出来ませんでした。
ITを勉強しているのに中途半端な事しか出来なかった自分が嫌になったのかもしれませんね。

参加したいインターンがある!

これが一番かもしれません。
上記の尊敬している方がそこに勤めているんですね。
そのインターンに参加できる条件に、Pythonの実装能力とその他ネットワークプログラミングの能力が問われていたので、能力の底上げを図ろうとしているわけです。

90日で何が出来るようになった?

正直、3ヶ月前の自分からは想像できないくらい成長したと思います。

gitが使えるようになった

コード書き続ける前から「git勉強しよう」とは考えており、稀にネットを漁りながらやってみるということはやっていました。

そんなんで覚えられるわけ無いじゃん!!

ってわけですよ、利点は以下のとおり

  • 毎日使うことで、前日わからなくて調べた事を復習できる
  • 操作を間違える→ その日に直す→トラブルに慣れる

add (commit)をミスった時どのように直したら良いかなんて、使い捨ての練習用gitリポジトリだったら考えずにまずゴミ箱行きです。
「1日に最低1コミットしなければならない」という縛りが自分にミスを訂正させたんですね。

githubでpull request出せた

まさか自分が出せるとは思ってませんでした。
プルリクのような、OSSに貢献するというのは社会人エンジニアがするような事だと思っていました。が、自分でもできてしまうんですね〜。

毎日コードを書くとわからない所が出てきて、
githubを漁る→コード読む→間違いを見つける
というループができていました。

間違いというよりはこの行冗長じゃない?って程度の物しか見つけられていませんがね!

コンピュータサイエンスに詳しくなった!

毎日コードを書くということは、きちんと書く内容を決めなければいけないわけです。
project eulerだったり適当なアルゴリズムを書いて終わりってわけにもいかないんですね。
(最初の方は適当に書いたものをぶち込んでたけども)

僕はこの3ヶ月、ネットワーク、サーバに焦点を当ててプログラミングをやってきました。
するとどうでしょう、どんどん色々なことができるようになるんですね。

  1. TCP/UDPソケットプログラミングができるようになる
  2. WebSocketを使った通信ができるようになる
  3. プロキシサーバの動きを理解、簡単なものなら書けるようになる
  4. 上記に伴いHTTPヘッダ、レスポンスコードの意味がわかるようになる
  5. NOSQL(redis)が使えるようになる
  6. 簡単なjavascriptが書けるようになる
  7. 自分に足らないスキルが見えてくる

もっとあると思いますが、こんな感じですかね。

今までは「あれが出来たら作りたいものが作れる!」という考えがあっても、「出来ないし、いつか出来るようになるからいいや」と思っていました。
今では、「じゃあこれは明日の課題にしよう!」という考えになって、実際に作り上げることが出来るように。すごい!
ネットワークの知識も、最初は「ソケットプログラミングが出来るようになればいいやぁ」なんて思ってたのに今ではWebSocketをいじれるまでに・・・(webRTCも遊んでみようかな)

終わりに

どんなに時間が無い時でもコードを書かなければならない、というプレッシャーは有りますが、そのおかげもあって、普段なら何も考えていないような時でも「今日は長く時間を取れないからあのプログラムの○○だけを改善しよう!」と考えられるようになりました。


3ヶ月でここまで成長できるってすごいなぁ(自画自賛)
次の3ヶ月はどうなってるのかなぁ。楽しみです!