BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ソフトウェア開発者が効果的に学ぶ方法

ソフトウェア開発者が効果的に学ぶ方法

ソフトウェア開発者は、常に新しい言語、フレームワーク、ツール、テクニックを学んでいる。どの分野を学ぶべきかを判断し、自分の能力を見極め、挫けずに効果的な学習を続けるのは難しい。

タヴ・ヘルツリッヒ氏がNDCオスロ2023でソフトウェア開発者の学習について講演する(原文投稿は2023-03-20)。この会議は5月22日から26日までノルウェーのオスロで開催される。

ヘルツリッヒ氏によれば、私たちが直面しているAI革命は、業界の変化を加速させるという。そのため、学習と柔軟性がより重要なスキルとなると予想される。

ソフトウェア開発者が新しく学ぼうとするときに抱える課題は、時間を費やす価値のあるテーマを見つけて、自身の能力を正確に見極めることである。

ヘルツリッヒ氏は、何を学ぶべきかをより的確に判断するために、ツールよりも理論的な概念の方が私たちの心に長く残るものだと指摘する。

これから出会うあらゆるツールは、より複雑なパターンに基づいている。例えば、リレーショナル・データベースについて時間をかけて学ぶことで、PostgreSQL、SQLite、MySQLなどの代表的なツールの使い方をよりスムーズに学ぶことができる。

ヘルツリッヒ氏は、自身の正確な能力を見積もるのに「ドレフュス・モデル」を使うのを提案している。

これは、「重要なことにどれだけ集中して取り組めるか」「タスクを完了するために、どれだけ正確に定義されたルールに従うことができるか」といった質問を投げかけることで、ある課題において何が適しているかを突き止めるモデルである。

より良い学習のために、ヘルツリッヒ氏は学習を現実的なレベルに分解し、同じ項目を何度か繰り返して、深く理解することを進めている。

InfoQはタヴ・ヘルツリッヒ氏に学習に関してインタビューをした。

InfoQ: あなたの学習に対する考え方について教えてください。

タヴ・ヘルツリッヒ氏: 私が人生のどの分野でも心がけている考え方、つまり人としての自分の限界を理解することと同じです。自分の弱さを自覚することで、苛立ちが和らぎ、積極的に他者から学ぼうとする意欲が増し、自分を比較できるのは1週間前の自分だけだと気付くことが可能です。

InfoQ: 開発者は、どうすれば自分の知識や技術のレベルを知ることができますか?

ヘルツリッヒ氏: 「ドレフュス・モデル」では、初心者は厳格で明確なルールに従う必要があり、そのため二項対立的な結論に至り学習の進捗の妨げになることがあります。一方でシニアは適切な質問をすることで、異なる問題には異なる解決方法があることを理解できます。

プログラミング言語を例にとりましょう。初心者は「Pythonが常にベストだ」と断言するかもしれませんが、上級者はどの言語がプロジェクトに適しているかという課題を、それが適切な質問である場合にのみ取り上げるでしょう。

InfoQ: 認知的負荷についてはどうでしょう。どうすれば無理をせずに、効果的な学習を続けることが可能ですか?

ヘルツリッヒ氏: 自分の限界を理解する方法に話を戻すと、情報の取り込みに影響を及ぼす要素の存在を認識することは、私たちの学習プロセスにとって非常に重要です。例えば、質の高い情報を見極めること、十分な休息と冷静さ、そして穏やかで居心地の良い環境にいることが挙げられます。

完璧に条件を満たすことは非常に稀であり、常にトレードオフの関係にあることを忘れてはなりません。例えば、最近よく行われている在宅ワークは平和な環境を提供してくれますが、その反面同僚から学ぶことは難しいでしょう。

InfoQ: 新しいことを学ぶとき、時間と活力を上手にコントロールする方法はありますか?

ヘルツリッヒ氏: 学ぶことはとても大切ですが、自分自身や他の人々に対して義務があるのを忘れないでください。学習やキャリアの向上にすべての時間を費やそうとするのは素晴らしいことですが、人間関係や心身の健康、趣味を犠牲にしてはいけません。

私にとって効果的だったのは、プログラミング講座のインストラクターとして夜間に働く方法です。インストラクターという仕事には、学習も含まれていますし、職務の性質上、人付き合いがあり、業界に恩返しができて、ちょっとしたお小遣いも稼げるのです。

学習の質を高め、大切な健康状態を維持するために、時には学習量を減らすことも必要です。

C++のような言語の習得がいかに難しいかを知ったとき、私は妥協することを学びました。コンピューター・グラフィックスで遊んでみたかったのですが、このような複雑な技術に精通するのは、私にとって負担が大きすぎました。そのため、同じ目標を達成するために、私は古き良きJavaにこだわるようになりました(グラフィックス開発に関しては、C++が業界標準であるにもかかわらず)。

作者について

この記事に星をつける

おすすめ度
スタイル

BT