【コードは呪文?】パニックを回避して着実にコードを読む4ステップ【挫折経験者は語る】
「プログラミング…コード…呪文?読めんわ」
「ローカル変数とグローバル変数の違いとかよく分かんないよ、全部どこでも使えるようにすりゃいいじゃん」
「関数を共通化ってどういうこと?」
「エラー文を読んでもエラー原因が分からん」
↑
転職を経て、昨年から社内システムのエンジニアをやっているのですが、初めはこんな有様でした。
プログラミング初心者すぎて、訳の分からない毎日を送っていたんです。
もっとさかのぼると7年前。
システムエンジニアとして新卒入社し、プログラミング研修で初めてコードに触れたときも、本当に訳が分からなくて。
毎日のように家で泣いて、プログラミングに挫折し、ついにはシステムエンジニアから事務職になり、事務や経理のキャリアを歩んできました。
そこから転職を経て、冒頭のようなセリフを吐く毎日がスタートするわけなんですね。
新卒時代と同様、とにかく「このコードは何をしているのか」という読解ができなさすぎて、
新卒の時にできなかったことをまたやるなんて…
転職失敗したかも…
なんて落ち込んでいました。
入社して2ヶ月くらいの時なんて、訳が分からないまま改修業務を任されたのですが、デグレ(システムの改修などにより、逆に品質が低下してしまうトラブル)になったことも…。
ですが、
そんな私でさえ、メンタルギリギリのところで持ち直し、コードを少しずつ読めるようになり、入社半年後には要件定義~テストまで一貫して任されるようになりました!
入社当初(新卒時代も)は、私にこんな未来が来るなんて考えもしませんでした。
今回の記事は、そんな昔の私と同じように
・コードを読もうとしてもパニックになる
・読んでもどんな処理なのか分からない
・自分にはプログラミングなんて無理だったのかな
という悩みを持ちつつも、内心では「プログラミングコードを読めるようになりたい」と思っている方向けに、
「パニックにならずにコードを読めるようする方法」をお伝えしたいと思います!
私がいろいろと試行錯誤してもがいた末に、「この方法なら何とかなる!」とたどり着いたものなので、再現性は高いかと思います。
すでにプログラミングがある程度わかる方からしたら、当たり前の方法なのかもしれませんが、初心者の方には自信を持っておすすめできる方法です。
1. 具体的なステップを読む前に
これからご紹介するステップは、下記3つのポイントを理解・実践していただくための手順です。
この3つのポイントを抑えることで、「理解不能な呪文」だったコードが、「あ、これはこういう意味かも」と少しずつ読めるようになってきます。
「コード=言語」だと再認識すること
コードを「日本語に翻訳」するクセをつけること
文を細かく分けて訳を書き出すこと
また、あらかじめ「よくある失敗例」もご紹介します。
詳しくは後述しますが、こんな状態になっているなと思ったら一度立ち止まってみてください。
分かった気になって翻訳を省略しちゃう(→曖昧な理解を放置)
一気に全部読もうとしてパニックになる(→結局何も頭に入らない)
AIに丸投げして学習を放棄する(→使いこなせるレベルに至らない)
(「省略した方が楽」、「AIがあるから大丈夫」と思って進んだ道は、実は遠回りなんです…)
これからご紹介するステップを意識して、繰り返し実践していれば、「何が分からないのかすら分からない」状態から脱却し、「コードの意味を理解する」ことができます。
それでは、詳細を1つずつ確認していきましょう。
これ以降の内容で、コードの例文を記載することがありますが、特に言語を指定しているわけではありませんので、ご留意ください。
2. コードが読めるようになるための4つのステップ
ステップ①:「コード=言語」だと意識を変える
まずはマインドセットから。
「コード=呪文」と思っている限り、学びはなかなか進みません。
でも、コードはれっきとした「プログラミング用の【言語】」です。
誰かが意図を持って書いた、意味のある文章なんです。
これを「読み取ろう」という意識を持つだけで、気持ちのハードルがグッと下がります。
ステップ②:コードを日本語に翻訳する
次に、「コードを日本語に直す」クセをつけましょう。
たとえば if (user.age >= 18) というコードなら、
「ユーザーの年齢が18歳以上だったら…」
といった具合に、日本語で意味を捉え直します。
これを繰り返すと、少しずつ「コードの文脈」が見えるようになります。
また、長いコードを読むときは、1関数ずつ、1行ずつ読んで翻訳していくこと。
英文読解でいうところの、単語や文節ごとに意味を確認していくイメージです。
一文ごとに「これは何をしてる?」と問いながら読めば、整理された状態で理解が進みます。
それに少しずつ訳していくことで、「分からないところが分からない。全体的によく分からない」というパニック状態から、
「じっくり読んだらここは分かった。でもこっちが分からないから調べよう」という、「分からないところの特定」がしやすくなります。
ステップ③:分かる(と思っている)部分も含めて日本語訳を書き出す
初心者のうちは、分かる(と思っている)部分も含めて「理解したい部分の一連のコード」を日本語訳にして書き出すことが超重要です。
「ここは頭の中で分かるから、わざわざ書かなくてもいいよね」はNG。
なぜなら、
初心者のうちは、「分かっているつもり」になってしまっているケースが多い
書き出すという作業により、「分かっているつもり」をあぶりだすことができる
というわけです。
コードを読んで、実際に文章として書き出そうとすると、「あれ?なんて書けばいいんだろう」、「意外と説明できないな」という感覚になることがあります。
頭の中では分かっている「つもり」だったことが、いざ言語化しようとすると詰まってしまい、「実は理解が曖昧だった」ことに気づけるんです。
(「曖昧な理解」に気付いた後は、調べ直すなりして理解しなおすのを忘れずに!)
ここを雑にして、理解が曖昧なまま進んでしまうと、少し複雑なコードに出会ったときに突然つまずいてしまいます。
「あれ?これ、前にも見たような処理なのに、今回は全然読めないぞ」と感じて混乱し、結果的に学習の手戻りが発生してしまうことも。
だからこそ、面倒に感じるかもしれませんが、分かっているつもりの部分もあえて文章にして書き出してみる。
これを習慣にすることで、確かな読解力と理解力が育っていきます。
初めのうちは遠回りに見えるかもしれませんが、後で必ず「やっておいてよかった」と思えるようになりますよ。
ステップ④:AIは使っていい、ただしあくまで「補助輪」として
AIツール(ChatGPTやGitHub、Copilotなど)はとても便利です。
「この言語でこういう処理のコードを書きたい」、「このコードって何の処理をしてるの?」とリクエストを伝えるだけで、かなり精度の高い回答をくれます。
ですが、頼り切るのは危険です。
AIが返してくれるコードや解説は、必ずしも完全に正しいわけではなく、文脈によってはミスや誤解を含む可能性もあるからです。
何より、自分で考えずに答えを受け取るだけだと、「なぜそうなるのか」、「なぜそれで動くのか」といった根本の理解力が育ちません。
理解力が育たないと、AIの出力結果が正しいかどうかのチェックもできません。
また、いざそのコードを流用してエラーや異常が起きたときに、「何がダメだったのか」を解明するための、そのコードに対する理解力がないと困りますよね。
おすすめの使い方は、
最初に自分なりの仮説を立てる
その上で「これってこういう意味で合ってる?」とAIに確認する
回答を鵜呑みにせず、自分でも検証する
回答の根拠が示されている場合には、そのURLへアクセスして確認する
また、「仮説を立てるのがどうしても難しい」場合には、下記の使い方もおすすめです。
ざっくりとしたリクエストをAIに送る
回答結果を見てより正確なリクエストに修正する
的確そうな回答をもらえるまで2. を繰り返す
的確な回答をもらえたら、その解説をAIに依頼し、コードの内容を理解する
検証と根拠確認も実施する
あくまで「補助輪」としてAIを使えば、「考える力」と「正確な知識」の両方が育ちます。
個人情報流出の観点から、AI利用に制限をかけている会社もあります。
業務上のAI利用が全面的に禁止なのか、一部のAIは使用OKなのか等、各自でご確認をお願いします。
まとめ
「コードが呪文にしか見えない…」という気持ちは、誰もが通る道です。
だけど、その先にある「読める」、「書ける」、「任される」という世界は、きっとあなたの努力を報ってくれるはず。
大丈夫、最初はみんなできません。
でも、ちゃんと向き合えば、少しずつ読めるようになります。
「丁寧に少しずつ読み進める習慣を持てること」が成功のカギです。
私も周りから
「コード読むのうまいですね、ほんとに開発未経験で入社したんですか?」
と言われたこともありましたが、別に才能じゃありません。
「焦らず、分けて、訳して、書き出す」を地道にやっただけ。
コードが読めるようになると、開発にも自信が持てるようになりますし、業務範囲も広がります。
そしてそれは、自分のチャンスを増やすことにもつながっていきます。
あなたのペースで、一歩ずつ進んでいきましょう。
最後まで読んでいただき、ありがとうございました!
ここまで読んでくださり、ありがとうございました!
ご質問は下記いずれかで受け付けてます。
お気軽にどうぞ!
XのDM
→完全クローズでご回答します。
マシュマロ
→noteもしくはXの投稿上でご回答します。
「♡」は、誰でも(noteにアカウントを作っていない方でも)押すことができます。
この投稿を「いいな」と思った方は、気軽に押してもらえると嬉しいです。
もちろんフォローも嬉しいです!
おまけ:コーディングのその先へ。要件定義から開発作業までできるように。
ここでは、コードの読み方について解説しました。
読解力を上げたら、「実際の要望を想定して、設計してコードを書いてみよう」となりますよね。
ただ、そう簡単に行くなら苦労はしない…
私も苦労した側の人間です。
しかも、初手で要件定義まで担当することになったのでね…、もう大パニックですよ。
でも、遅かれ早かれ、「要望をプログラムに落とし込んでコードを書いていく」というのは、システムエンジニアでいる以上は通る道。
そして最初は頭が混乱するでしょう。
あなたにそんな未来が来た時、少しでも後味のいい経験にしてもらうために、「要件定義から開発作業までをスムーズに進めるコツ」をお伝えします!
【要件定義って難しい】初心者SEでも要件定義から開発作業までスムーズに進めるステップ【例題あり】
私が実際に苦労した末にたどり着いた方法です。
といっても、裏ワザというほどのものではないのですが、具体例を見ながら思考を整理していくのは、駆け出しエンジニアのあなたにとっては効果的なトレーニングになると思います。
番外編は100円なのですが、本編は無料で読めますので、ぜひ覗いてみてください。
いいなと思ったら応援しよう!
えっ…こんなことまでしてくれるの…