未経験エンジニアとして、開発案件に向けた学習の中で感じたこと
Photo by Jeffrey van Rossum on Unsplash
未経験エンジニアとして、開発案件への参画を目指して学習を進める中で、現在の学習の中心は、先輩が書いたコードを読み、分からない点を調べることです。
新しい機能を次々と実装するというよりも、既存のコードを理解する時間の方が圧倒的に多く、地味な作業だと感じることもあります。
実際にコードを読み始めた当初は、処理の流れを追うことに必死で、「このコードが何をしているか」は何となく分かっても、「なぜこの書き方になっているのか」「どこまでをこの関数の責務として考えているのか」といった点までは意識できていませんでした。
そのため、「動いているから理解できている気がする」という状態に陥っていたと思います。
そうした中で、自分が知らないまま使っていた機能や仕組みを一つずつ深掘りすることの重要性を感じるようになりました。
特にGoのcontextについては、引数として渡すものだという認識はあったものの、キャンセルやタイムアウトがどのように伝播し、どこで処理を止める責任を持つのかといった設計上の意味を理解しないまま使っていました。
contextについて公式ドキュメントや関連資料を読み直し、コードの中で「どこでcontextが作られ、どこまで流れているのか」「この処理は止まってよいのか、それとも止めてはいけないのか」といった視点で見直すことで、コードの見え方が少しずつ変わってきました。
単に処理を追うのではなく、設計や責務の境界を意識して読むようになったことは、自分の中で一つの転換点だったと感じています。
まだ理解しきれていない部分も多く、調べながら考え続ける日々ではありますが、「分かった気がする」状態で先に進まず、立ち止まって考えることの大切さを実感しています。
今後も先輩のコードを読みながら、自分なりに疑問を言語化し、設計の意図を考える学習を続けていきたいと考えています。