問題
他人が書いたコードを解析する必要があるが、やる気が出ない。
なぜ出ないかというと、以下の理由があると思う。
- 考慮すべきことがたくさんあるので頭がパンクする
- 本当に使ってる関数、変数なのかがわからない(不確定要素)
- 手を動かさないので(コーディングしないので)前に進んでる感を得られない
- 自分が会得したい技術ではない場合、自分の成長にあまりプラスにならない気がする
対策
以下につらつらと書いているが、本を読むときのコツに近い気がする。
ChatGPT3.5先生のご回答:
他人が書いたコードを解読する際にやる気を出すのに苦労する理由は理解できます。以下はその対策とアドバイスです:
- 目標を設定する: コードを解読する目的を明確にしましょう。何を達成したいのか、そのコードがプロジェクトや課題にどのように貢献するのかを考えると、モチベーションが湧きやすくなります。
仕事術全般に言えることですね。
「なぜ」やるのかを掘り下げまくる(できれば4回以上)とよさげ。
- スモールステップを設定する: 大きなプロジェクトを一度に解読しようとせず、小さなステップに分割しましょう。1つの関数やモジュールから始め、段階的に進むことで、感じる圧迫感を軽減できます。
これは意識していた。
そもそも、スモールステップにする前に、「設定すべきステップを調べる」というのが最初のステップになるんだよなあ。
いまのところXMINDというMindMapソフトを使ってやるのが自分にとってベストだけど、もっと良い方法が見つかったら試したい。(というかしょっちゅうやり方を変えるというのがモチベーションにとってはプラスになる気がする)
- コメントと資料を探す: コード内にコメントやドキュメンテーションがある場合、それを探して読むことでコードの理解が容易になります。また、関連する資料やリンクも探してみましょう。
そうっすね。最初のステップに組み込んで良いかも。
あと、
- Gitのログを見る
のもありだな。
- 質問する: コードの書き手や他のエンジニアに質問してみてください。不明瞭な部分や不確定要素について、他の人からアドバイスや説明を受けることで、自信を持つことができるかもしれません。
めっちゃ強力だよね。
特に相手にとって労力が少ない聞き方をできれば相手にも好かれるのというメリットがあるので(人は頼み事をされるとした側を好きになる)もうちょっと積極的にやってもいいかも。
- どの段階で聞くか
も最初のタスクに含めて良いかも。
- 自分の成長に関連づける: 解読したコードが自分の技術成長に寄与しないように感じる場合、それを避けずに、自分の技術やプログラミングスキルにどのように役立つかを考えましょう。新しいアイデアやアプローチを学ぶ機会として受け入れることができます。
書くことが大事。
ここでも何故成長につながるのかを書こう。
少なくとも頭を捻れば年老いてもシャープな脳を保てる。というデータがあるので何もなさそうならこれを書く。
- 報酬を設定する: 自分に報酬を設定して、コードの解読が完了したときに自分を褒めることがモチベーションになるかもしれません。自分へのご褒美を用意しておくと、目標達成が楽しみになります。
ご褒美はちゃっちいものにする。
金額にすると20円以内。
- 他の人と共同作業: 他のエンジニアと共同でコードを解読することも考慮してみてください。チームで協力することで、お互いのモチベーションを高めることができます。
最も重要なのは、コードの解読を楽しむことです。新しい洞察を得るための冒険として捉え、モチベーションを維持する努力をしましょう。
これできたらいいよなぁ。
絶対やる気上がるわ。。
Bing AI先生のご回答:
他人が作成したコードを解読するのにやる気が出ないというお悩みですね。私は、以下のような対策をおすすめします。
• 考慮すべきことがたくさんあるので頭がパンクするという場合は、コードを読む前に目的や範囲を明確にしましょう。どの機能や処理を理解したいのか、どのレベルまで詳細に追う必要があるのか、などを決めておくと、無駄な時間や労力を省くことができます。また、コードを読む際には、メモや図などを使って処理の流れや変数の値などを整理していくと、頭の中が整理されやすくなります https://techminelog.com/2020/11/12/how-to-read-source/ https://www.agent-grow.com/self20percent/2018/07/27/personal_source_reading/。
- 範囲と目的を明確にする。
• 本当に使ってるメソッドなのかがわからない(不確定要素)という場合は、コードの実行やデバッグを行ってみましょう。コードを実際に動かしてみると、どのメソッドが呼ばれているかや、どんな結果が返ってくるかなどが確認できます。また、デバッグツールを使って、ブレークポイントやステップ実行などを行うと、コードの動きを細かく追うことができます https://zhack-blog.com/how_to_read_program/ https://thom.hateblo.jp/entry/2015/02/27/003652。
デバッグ使ってみよう。
• 手を動かさないので前に進んでる感を得られないという場合は、コードを読むだけでなく、自分で書いたり改良したりしてみましょう。コードを自分で書くことで、理解度やスキルが向上するだけでなく、達成感や楽しさも得られます。また、既存のコードにコメントを付けたり、リファクタリングしたりすることで、コードの品質や可読性も向上させることができます 。
うーむ、割とコード全体を理解できてからの段階の話だな。
• 自分が会得したい技術ではないので自分の成長にあまりプラスにならない気がするという場合は、自分の目標や興味と関連付けてみましょう。他人が作成したコードを読むことは、自分の技術ではなくても、プログラミング全般に役立つスキルです。他人のコードからは、新しい知識やアイデアだけでなく、問題解決能力や設計思想なども学ぶことができます。また、自分の目標や興味に関連する部分だけでも探してみると、モチベーションが上がるかもしれません 。
関連付けよう。
以上が私が選んだ対策です。いかがでしたか?他人が作成したコードを解読することは難しいですが、それだけに価値のあるスキルです。ぜひ挑戦してみてくださいね。
やってみて個人的に感じた対策
毎回思ったより時間がかかっている
やる気でなくて作業が進まないっていうのが大きいが、毎回、最初に想定したよりも時間がかかる。
なので、
- 想定の2倍の時間を予定する
- 解読するときは、ゆっくり確実に読む
タイマーをかけて5分だけ我慢してやってみる(作業興奮)
- タイマーを掛けて「5分だけは集中してやる」と決めてやってみる。
もっといけそうという場合は、10分でも25分でも30分でも良き。
筋トレしてからやる
筋トレするとやる気ホルモン出てくるので、筋トレしてからやる。
まとめ:他人が書いたコードを解析する際のファーストステップ
- 胸筋か広背筋を刺激する筋トレを行う(きっちり追い込むこと)
- Mind Map を開いてステップを書いていく
- 関連資料を読む
- 目標:どこまでやればゴールか?
- 具体的に何が分かれば良い?
- なぜこの作業をするの?
- なぜ↑?
- なぜ↑?
- なぜ↑?
- なぜ↑?
- なぜ↑?
- 自分のプラスになること:
- この作業をすることで自分のどの能力が伸びそう?
- 脳が成長する
- 報酬はなにか?:
- ●●ができたら●●
- どこまで行ったらアドバイスを求めていいか?
- 最初から聞くべきか?
- 聞く前に調べておくこと:
- さくせん:
- ゆっくり攻めよう
コメント