大学で時間かけてゆっくりプログラミングを独学してみた経験から汚いコードについて考えてみようとした
思いつきで色々書く回ですよっと。
を、読んで自分の経験からどう捉えるべきか色々考えてみた。まず、自分は、無駄が多い勉強をしてきたのだけど、何をどうやって覚えたか、その話からしようとおもったけど、殆どの人はあんまり興味ない気がしたので「思ったこと」以降だけ読めばいいです。
前提
小2(1996)の頃からインターネットしていた
中学生の時にはネットで見つけた記事みて親父のPCのAdmin権限を書き換えたりしてた
プログラミングはできない。あくまでツール拾ってきて使えるだけ
~ 2年目 ~
Vimperartor
Firefoxいじり回せるようになって生活とプログラミングが直結した
~ 3年目 ~
趣味Webサービスつくってみた
Python/FlaskというSinatra系のアプリを使ってたので自前でいじることになって色々覚えた
VPS、セッション、DB、キャッシュ、ルーティング、MongoDB、XSS
Vim
小指が弱かったので覚えた
~ 4年目~
オンラインゲーム作ってみた
就活の技術アピール用にWebSocketでネトゲ作ってみた
ちゃんとリファクタリングしてたんだけど、そもそも設計が破綻してたので爆発、メンテできず
この間、CoffeeScriptとNode.jsを使い込んだ
~ 5年目 入社 ~
最初のプロジェクト
Gitを使い込まされ、レビュー基準を叩きこまれ、ペアプロで思考フローを叩きこまれ
今のプロジェクト
クライアントサイドの設計とか、フレームワーク選定とか、見積りとか
JSで破綻しない設計をひたすら考える係
思ったこと
で、即戦力とか、綺麗なコード、汚いコードについて考えてた。
設計とか、綺麗なコードとかは、必要に迫られないと覚えない気がする。自分も自分が作ったコードの設計が破綻して考え始めたので、むしろIT企業の新入社員とかは破綻したコードをなぜ破綻したか考えるところから始めたほうがいいのかもしれない。
自分もまだ綺麗なコードを書けているとは言いづらいが、そこは会社のコードレビューでだいぶ救われてるし、あらゆるコードはレビューされるべきだと思う。
思うに、綺麗なコード、汚いコードってのは、そのタスクに掛けた時間ではなく、その人固有の体質みたいなもので、経験の賜物だから、心構えとして汚いコードでいい、って言っちゃうと後々含めてその人への悪影響が大きい。皆そこに拒否反応を示しているのだと思う。
あと、皆たぶん勘違いしているのだとおもうのだけど、優秀な人が近くにいても、彼らは別に教えてくれるわけじゃない。彼らが教えてくれるのはコードの内側に宿る文化とか、ライフスタイルだったりとか。
自分のケースの話だけど、目的を明確にしないと学習が散漫になるが、実際に必要なのはその過程で身につく周辺スキルだったりする。自分は効率が悪い勉強をしたが、その過程で得たスキルは全部血肉になっているし、無駄だとは思っていない。
初心者相手に勉強会でりゃいいやんみたいにいう人はいるけど、本当に勉強したかったら公開資料だけみてりゃいいし、本当の学習段階でモチベーション以上の理由でいく必要はあんまりない。
ググって解決できる問題解決力は必要なんだけど、ドンハマりすることあるので、そこでヘルプしてもらえるかってのは重要かもしれない。
という思いつきずらずら書いた。