新しい現場入って1ヶ月。
「メインの機能、もう一通り読めるようになりました」
「あ、ここのコード、こういう処理ですよね」
「ここ、リファクタした方がよくないですか?」
こんな動きしてくる人、いません?
で、それ言うてるの、入って1ヶ月の人ですよ。
「いや、こいつヤバいな」
「めっちゃ仕事できるな」
現場のリーダー、絶対こう思います。
逆に、入って3ヶ月経っても。
「ここ、なんでこうなってるんですか?」
「これ、どこから呼び出されてるんですか?」
「すいません、調べてもよくわからなくて……」
毎日、質問しまくり。
現場のリーダー、内心こう思ってます。
「うわ、この人、コード読めないんだ」
「単価高い割に、戦力にならんな」
「次の契約、切ろっかな」
ガチで、こうなります。
この差、何やと思います?
技術力じゃないんですよ。
コードを読むコツ、知ってるかどうかだけ。
今日は、フリーランス7年の僕が、どの現場入ってもすぐ仕事できるようになるコツ、書きます。
新人にこそ教えたい、3つだけ。
そもそも「コードが読める」って、どういう状態?
これ、ちゃんと定義しときますね。
「コードが読める」=「システムの仕様が分かる」状態。
たとえば、ショッピングサイトの商品購入機能。
どの画面で何ボタン押したら、どのファイルが動いて、どのデータベースに何が保存されるか。
これが頭の中で繋がってる状態。
これが、「読める」ってことです。
逆に、「読めない」状態は、こう。
画面に出てる「購入完了」ボタンと、コードの間が、迷宮。
どこから何に繋がってるか、地図がない状態。
地図ない状態で、現場で動けるわけないんですよ。
だから質問しまくる→嫌われる→契約切られる、の地獄ループ。
ここから抜け出すには、コード読めるようにならなアカン。
じゃあ、どうすればいいか。
ここで安心してほしい話
その前に、1個だけ。
これ言うとくと、めちゃ気が楽になる話なんですけど。
ベテランエンジニア30年やってる人でも、初めて入った現場のコードは、すぐには読めません。
これ、ガチで。
技術歴30年あっても、その会社のシステムは初めて見るわけやから、解読には時間かかる。
これ、当たり前のことなんですよ。
寿司職人で考えてください。
10年銀座でカウンター握ってきた職人さん。
その人を別の店に連れていったとして、初日からその店の冷蔵庫の中身、把握できるかって話なんですよ。
「あれ、このマグロどこから仕入れてんの?」
「酢飯の比率、ここの店どうなってる?」
「お客さんの好み、誰がどんな常連?」
全部、その店の話やから、外から見て分かるわけないんですよね。
技術歴と、その店の理解は、別物なんですよ。
だから、駆け出しの人が「3日経っても読めない、俺アホかも」って凹む必要、1ミリもないんです。
みんな最初は読めない。
その上で、コツ知ってる人は早く読めるようになって、知らない人は何ヶ月も同じとこ迷子してる。
差がつくのは、コツ知ってるかどうか、それだけ。
コツ① 入口と出口だけ見る
じゃあ1つ目。
メソッド見る時、入口と出口だけ見るんですよ。
入口=引数。
出口=return。
これだけで、そのメソッドが何やってるか、だいたい分かるんですよね。
入口に「商品ID」、出口に「商品の詳細データ」。
→ ああ、商品の詳細取ってくるやつね。
入口に「ユーザーIDとメールアドレス」、出口に「true / false」。
→ ああ、ログイン認証ね。
これでええんですよ。
中身、1行ずつ読まんでええ。
これね、料理で考えると分かりやすいんですけど。
カレー作る時、レシピ見るじゃないですか。
入口に「玉ねぎ・人参・じゃがいも・肉・カレールー」。
出口に「カレー」。
これ見たら「ああ、カレー作るやつね」って、一発で分かるじゃないですか。
「玉ねぎを何分炒めて、火加減はいつ強めて、ルー入れる前に水何ml入れて……」って、最初から全部読む必要ないんですよ。
「入れるもの」と「出てくるもの」見たら、何の料理かは一発で分かる。
コードも、まったく同じです。
中の細かい処理、最初から追わなくていい。
入口と出口だけで、「このメソッド、何の役割か」を一言にする。
商品詳細取る役割。
認証する役割。
計算する役割。
バリデーションする役割。
これでシステム全体の地図、ザックリ頭に入ります。
細部は、必要になった時だけ深掘りすればええんですよ。
コツ② 紙に書く
次、2つ目。
これ、たぶん3つの中で一番効きます。
というか、これ知らんかった頃の僕、ホンマにアホやったなって思いますね。
頭の中だけで覚えようとすると、絶対忘れるんですよ。
僕も既存改修の現場で、これでハマってたことあるんですよね。
巨大なシステムやから、毎日新しい機能読む。
「あ、これはこういう役割やな」って分かる。
頭スッキリ。
で、3日後、別のファイル開く。
「あれ、この機能、前に追ったやつとどう繋がってたっけ?」
→ 完全に、忘れてる。
また同じファイル開いて、また入口と出口見て、また「ああ、こういう役割」って思い出す。
これを延々、繰り返してたんですよ。
賽の河原で石積んでる気分でしたねw
で、ある日、ふと思ったんですよ。
「これ、紙に書いたらええんちゃう?」って。
書きました。
メソッドA→商品詳細取る
メソッドB→DBに保存
メソッドC→外部APIに通信
って、ザックリ。
あと、データの流れも矢印でつないで。
「ボタン押す→A動く→Bが保存→画面に結果」
みたいな図を、ノートに殴り書き。
これね、世界変わりました。
一度書いたら、3日後でも即思い出せる。
というか、紙見返したら3秒で復習完了です。
頭の中で覚える時間、ゼロ。
その分、新しいコード読む時間に使えるわけですよ。
これね、めっちゃ地味なんですよね。
「紙とペン?なんかアナログやなw」って思う人、めっちゃおる。
だけど、これやってる人とやってない人で、半年後の理解力、別人レベルになります。
ちなみに、僕、これに気づくまで、頭の中で覚えるの得意な気でいたんですよ。
「俺、記憶力ええから、紙とか書かんでも大丈夫」って。
いや、ぜんぜん大丈夫ちゃうかった。
3日後完全に忘れて、毎日同じ場所迷子。
ガチでアホやったなあの頃。
別にノートでもiPadでもなんでもええんですよ。
最近ならGoodNotesとかも便利やし。
とにかく、頭の外に出すこと。
これだけで、コード読みの速度、爆裂に変わります。
コツ③ 詰まったら、問題を切り分ける
で、最後。
これが一番デカいんですよね。
コード読んでて詰まる時、原因って2つしかないんですよ。
①技術が分からない
②システムの仕様が分からない
このどっちか。
他、ないです。
で、これ、ぐちゃぐちゃに混ぜたまま「うーん、わからん」って戦ってる人、めっちゃ多いんですよね。
僕も昔、これでアホやらかしてましたw
SIer時代の話なんですけど。
Javaのコードで詰まった。
「うわ、わからん」って思って、Javaの文法を1日中ググりまくったんですよ。
ifの書き方。switch文の書き方。例外処理の書き方。
「絶対どこかにヒントあるはず」って、必死で。
夜遅くまで残業して、結局解決せず。
次の日、先輩に聞いたら、5秒で終わったんですよ。
「あ、これは、うちのシステムが、こういう特殊な仕様で動いてるんやで」
……Javaの文法、ぜんぜん関係なかったわけです。
「うちのシステムの話」やったんですよ。
そら、ググって出てくるわけないわけですよ。
その会社のシステムの話、世界中で誰も書いてないからw
これね、医者で考えると分かりやすい。
患者さんが「お腹痛い」って来た時。
医者が「胃の解剖学的構造を一から学び直そう」って医学書めくり始めたら、おかしいじゃないですか。
必要なのは、「この患者さんの胃で何が起きてるか」を知ることなんですよ。
僕がやってたのは、まさにこれ。
「Javaの文法、一から学び直そう」って、患者さん放置で医学書めくってたアホ医者状態でしたw
切り分け方、めっちゃシンプルですよ。
「これ、他の現場でも起こる問題?」
YES → 技術の話 → ググる。5分で終わる。
NO → 仕様の話 → 人に聞く。これしかない。
これだけ。
これ意識するだけで、無駄な時間、爆裂に減ります。
僕、SIer時代、これ知らんかったから、毎日2〜3時間無駄にしてたんですよ。
月50時間。年600時間。
……あの時の自分、もう一回殴りに行きたいw
コード読める人、現場でめっちゃ希少なんですよ
で、最後にこれだけ伝えとくと。
技術トレンドめっちゃ追っかけてる人より、地味にコード読める人の方が、現場では圧倒的に重宝されるんですよ。
これ、僕、フリーランス7年やってきて、ほんまに何度も実感してるんですよ。
ある現場で、CoffeeScriptっていう、今はあんま使われてない言語のシステム触ることになったんですよね。
社内に分かる人、ほぼゼロ。
「これ、誰か分かりますか?」って聞かれた時、全員首振った状態。
そこで僕、入口と出口見て、紙に書いて、切り分けて、自力で解読。
そっから、めちゃ重宝されました。
「あ、この機能どこですか?」
「ここの処理、どう動いてるんでしたっけ?」
みんな僕に聞きに来るようになって、ガチで頼られる人になった。
「コード読める人」って、現場ではめっちゃ希少なんです。
だから、ここができるだけで、単価勝手に上がります。
「コード読めない=技術不足」って、勘違いです
最後、これだけ言わせてください。
「コード読めないのは、自分の技術力が足りないから」
って思ってる人、めっちゃ多い。
違います。
コード読めないのは、コツを知らないから。
それだけ。
技術歴30年でも、コツ知らない人は、初めての現場で詰まります。
逆に、駆け出し1年目でも、コツ知ってる人は、1ヶ月で読めるようになる。
差は、コツの有無。
今日書いた3つのコツ。
①入口と出口だけ見る
②紙に書く
③詰まったら問題を切り分ける
明日から、すぐ使えます。
ここから先の話
で、ここから先。
「コードが読めるようになった後、現場でどう動けば単価上がるん?」
「ベテランから何聞かれても答えられるエンジニアになるには?」
「面接で『この人欲しい』って思わせる伝え方は?」
こういう話、僕の無料メルマガで書いてます。
今日の話は「コード読みの3つのコツ」っていう枠組みだけ。
その先、「じゃあ現場でどう立ち回るか」「面接でどう伝えるか」は、メルマガで深掘りしてます。
「現場で『この人いると安心』って指名されるエンジニアになりたい」
「コード読めるだけじゃなく、単価100万超えたい」
「面接で『欲しい』って即答される人になりたい」
って人だけ、下から登録しといてください。
ほな、また。

4完成-300x169.png)








コメント