プログラマーの知識の半減期はどれくらいですか?一般的には5年と言われることが多いです。言い換えれば、プログラミングに関する知識の半分は 5 年後には陳腐化するということです。同様の感情は、「数年前に知っていたことは今では何も役に立たないので、プログラミングは最悪です。」です。
一見すると、これは合理的であるように思えます。結局のところ、常に新しいプログラミング言語やテクノロジーが登場しています。しかし、私は上記の見解は誤りであると考えています。プログラミングの知識の耐用年数は、一部の人が思っているよりも長いです。
構文は難しくありません
新しいプログラミング言語の学習を始めましょう。プログラマーではない人にとって、Java を知っているときに Python を学ぶことは、英語を知っているときにフランス語を学ぶようなものです。もちろん、プログラミング学習はまったく同じではありません。学習する新しい構文はありますが、これは表面的には少し難しいだけで、すべてのプログラミング言語の中心となる概念は同じです。
どの言語でプログラムを書く場合でも、型、データ構造、ロジックなどの基本的な知識を使用します。ブール関数、整数、浮動小数点数、文字列をすでに知っている場合、これらの型は新しい言語でも同様に使用されます。もちろん、リスト、セット、辞書、ディレクトリ ツリーなどのデータ構造は同じで、使用するロジックも算術演算、if ステートメント、ループ、関数呼び出しなどになります。
さらに、使用するアルゴリズム、問題の分解方法、変数や関数の命名などの重要なスキルは、新しい言語に直接適用できます。これらは、さまざまなプログラミング言語における共通のプログラミング知識です。 「特効薬なし」の言葉を借りれば、「言語の構文は付随的な知識ですが、プログラミングの方法は重要な知識です
ライブラリやツールについても同様です。」新しい言語で正規表現がどのように使用されているかがわからなくても、正規表現がどのようなものをサポートしている可能性が高いかは知っています。それらの使用方法に関する知識を見つけるのは難しいことではありません。難しいのはそれらを使用することであり、それが貴重な知識です。 IDE などのツールについても同様です。詳細は分からないかもしれませんが、何ができるかは知っています。
つまり、新しい言語を学ぶのは大したことではありませんが、もし転職した場合には、まだ学ぶべきことがたくさんあるかもしれません。私は知識を次の 3 つの側面に分類します。
知識の 3 つの側面
プログラミング: このレベルの知識は、プログラミング言語、パラダイム、テクノロジー、ツールです。上で述べたように、構文などの詳細は完全に異なる場合でも、中心となる概念の多くはどのプログラミング言語でも同じです。
ドメイン: これは、プログラミングで使用される環境について知っていることです。たとえば、電気通信の分野で働いている場合、さまざまなプロトコルがどのように機能するか、テキスト メッセージがどのように処理されるか、請求と監視がどのように行われるかなどが重要になります。ある部門で長く働くほど、その部門についての知識が深まり、貢献度も大きくなる可能性があります。
コードベース: これは会社によって異なります。会社に長く勤めていると、どのようにプログラムするかを理解します。つまり、何が行われるのか、どの部分が難しくて直感的ではないのか、なぜ何かが特定の方法で行われるのか、それをさまざまな方法で実行するプロセス全体を理解します。等々。
生きて学びましょう
プログラマーとして、上記の 3 つの側面に関する知識がしっかりしているときに最も価値があります。この時期に転職した場合、最初は新しいコードベースについて何も分からないことは避けられず、本格的に働き、学び始めなければなりません。
しかし、学んだプログラミングやドメインの知識は転職後も役に立ちます。いくつかのプログラミング言語を知っていると、より多くの参照点が得られ、さまざまな方法で物事がどのように行われるかを理解できるようになります (基本原則は同じであっても)。一般的に言えば、ソフトウェア開発に関する良書をもっと読むことも良いことです。
最後に、ソフトウェア開発が楽しくてエキサイティングな理由の 1 つは、常に何か新しいことを学べることだと思います。決して飽きることはないので、学び続けてください。新しいプログラミング言語が毎年発明されているにもかかわらず、学んだことのほとんどは、より優れたプログラマーになるだけです。
LAMP Brothers オリジナルの PHP ビデオチュートリアル CD/「Essential PHP in Detail」を無料で入手できます。詳細については、公式カスタマーサービスにお問い合わせください:
http://www.lampbrother.net
|