優れたプログラマーは、いくつかのプログラミング言語に精通している必要がありますか?


全文は合計2600語で、推定学習時間は9分です

ソース:unsplash

「プログラミング忍者」、「ロックスター開発者」、「プログラミングマスター」、「オープンソースエキスパート」、「マルチプロセッシングの大物」、「サーバーの第一人者」...奇妙な用語の狂信者は、多言語プログラマーと呼ばれます。

多言語プログラマの私の定義は異なります。ウェブスターの辞書は、「多言語主義」を言語または用語の混合または混乱として定義しています。警告のように聞こえますよね?

一般に、多言語プログラミングという用語は2006年のブログ投稿Neal Ford によって提案されたと考えられています2010年にディーンワンプラーはフォードの論文をスピーチでさらに説明しました、彼は異なる分野の異なる言語の利点を繰り返し述べました、そして、プログラマーは彼らの仕事を完了するために最も適切な言語ツールを使用すべきです。

多言語プログラミングのアイデアは2000年代半ばに始まり、Javaエコシステムのプログラマーグループの間で生まれました。

当時、Java言語は停滞していましたが、Java仮想マシン(JVM  )は、急成長している「非Java」言語コミュニティの基盤でした。2003年のGroovy で、2004 スカラ座 、そして2007年にClojureのは良い例です。

出典:中

これらの言語はJavaにはない関数を提供し、高階関数は最も明白なものの1つです。これらの新機能を使用すると、プログラマーは明らかにこれを簡単に行うことができます。Groovyを使用してExtensible Markup Language(XML)を処理したり、Scalaを使用してネストされた構造を処理したりします。

10年以上経った今も、多言語プログラマーの概念は根強く残っています。

具体的には、多言語プログラマは少なくとも3つの異なるプログラミング言語に習熟している必要があります。理想的には、混合言語は強さ、深さ、多様性を提供できるので、キーは「異なる」ことです。

技術的な観点から、Java、C ++、およびABAPに精通している人々は、多言語プログラマーと見なされる場合があります。ただし、上記の3つの言語はすべて同様のオブジェクト指向の概念と構造を持っているため、これらの3つの言語を学ぶことはほとんど役に立ちません。

カリフォルニア大学アーバイン校で情報学の上級講師を務めるリチャードパティスは、次のように述べています。「プログラミング言語は、さまざまな仕事のためのツールであるだけでなく、プログラミングの概念を形作ることができるテクノロジーでもあります。同様のプログラミング言語を学ぶことは、思考の進歩がもたらす貢献とは

思考を広げるために、複数のプログラミング言語を習得するプログラマは、オブジェクト指向言語(C ++ / Javaなど)、関数型言語(MLやHaskellなど)、スクリプト言語(そのようなもの)のいずれであっても、異なる言語パラダイムから学ぶことをお勧めしますLispおよびPython)、ロジックベースの言語(Prologなど)、または低レベル言語(C言語、Java仮想マシン、マシン言語など)。重要なのは、流暢に言語を使用することではなく、方法論を習得し、新しい方法で問題に対処することです。

優れたプログラマーは、コードを書くだけでなく、新しい方法で問題を解決し、最も効果的な解決策を見つけるのに役立つ主要な概念を学び続けます。

私の意見では、多言語のプログラマであることには多くの利点があります。

職場での人気を高めます

複数のプログラミング言語に堪能であることは、履歴書に光沢を与えるだけでなく、柔軟性があり、順応性があり、最高のツールを使用して作業を完了する能力を示します。

ソース:unsplash

これにより、より多くの機会が得られ、業界の衰退に冷静に立ち向かうことができます。複数のプログラミングパラダイムを探索できるため、コーディングスタイルに反映され、幸せで生産的な気分になります。

業界で最高のソリューションをすべて使用することで、コードを書くためのより良い方法を開発します。多言語のプログラマーは、さまざまな構文を試し、さまざまなコミュニティを理解できます。どのプログラマーにとっても、この絶え間ない探求は、彼らが体験できる最高の体験の1つになります。

複数の言語を習得することは、あなた自身のビジネスを発展させるのにも役立ちます。顧客があなたを見つけ、問題を解決するために専門知識を必要とする場合、「ツールライブラリ」で利用できるツールが増え、それらに最大の価値をもたらすことができます。

プログラマーだけでなく、最も問題解決者になる

プログラマーの仕事を最も簡潔に定義する方法は?それが「問題解決」です。優れたプログラマは、優れたコードを書くだけでなく、ビジネスの問題を解決するために手元にある最高のツールを使用する必要もあります。

「ねえ、私はJavaのリーダーであり、Javaを使用してすべての問題を解決する方法を知っています。」このように考えると、「ハンマーアンドネイル」症候群になる可能性があります。

ソース:unsplash

この症候群は、ハンマーを持っている場合、それぞれの問題が爪のようなものとして現れることです。この場合、ハンマー(つまり、Java)しかなく、結局のところ、問題は何であれ、Javaでそれを解決するための最良の方法を見つけることに制限されます。つまり、Javaで問題を解決できない場合、困惑する可能性があります。

実際には、これまでに解決されたことのない問題が発生します。考えられる解決策はおそらく十分に効率的ではありませんが、これが唯一の方法です。

新しい言語を学ぶことで、問題を解決する方法が広がります。あなたの考えは、特定の言語の制約を取り除き、さまざまな角度から問題を見始めます。これにより、現在の言語を使用する能力が大幅に向上し、より効果的な問題解決のための新しいアイデアを思い付く可能性があります。

学習モードに入る

新しいプログラミング言語の学習を開始するとどうなりますか?

 

本を掘り下げ、サンプルコードをダイジェストし、さまざまな例を試します。フォーラム、ローカルグループ、同僚、または新しい言語の使用経験が豊富で、言語を正しく学習するのに役立つ人を見つけることができます。これらの人々は、学習プロセス中に思考プロセスを導くのを助けることができます。コミュニティフォーラムで積極的に活動し始め、定期的に質問し始めます。

つまり、すぐに学習モードに入ります。ジムでワークアウトするようなものです。最初は筋肉が痛かったが、しばらくすると筋肉が運動サイクルに順応し、以前のように痛みを感じなくなった。筋肉が成長するにつれて、持久力と強さも増加します。

ソース:unsplash

学習はあなたの脳に同じ効果をもたらします。脳が新しいプログラミング言語などの新しい概念の学習曲線に順応すると、最終的には脳の俊敏性と適応性が向上します。これにより、毎日の仕事でより効率的にタスクを完了し、日常生活で使用されるさまざまなテクニックのニュアンスに、より簡単に適応できます。

たとえば、ABAPなどのビジネス言語を習得するJava開発者は、共有オブジェクトの概念をビジネス用語に簡単に関連付けて使用できます。

最終的に、あなたの学習能力は強化されます。時間が経つにつれ、新しいことを学ぶことはあなたのために簡単かつ迅速になります。

注意が必要な事項

複数のプログラミング言語を学ぶことには多くの利点がありますが、多くの課題もあります。

JavaScript:The Essence of Language 」という本の中で、Douglas CrockfordはJavaScriptの長所と短所について説明しています。言語ごとに独自の課題があります。プログラミング言語を頻繁に変更して学習するが、学習に十分な時間をかけない場合、「すべてのもの、すべてのものはゆるい」となる可能性があります。

ソース:unsplash

新しい言語を習得できない場合は、多言語主義がアキレス腱になりそうです。新しい言語とテクノロジーに絶えず学習して適応するプロセスも、開発者を疲れさせる可能性があります。すべてのテクノロジーの学習の進捗を同期させることは困難であり、おそらく学習パスを走り回っているように見えますが、何も得られません。

重要なのは、適度に難しい学習を行い、消化できる知識に集中し、学習の限界に達したときに停止することです。作業を完了するための最適なツールを選択し、最高のパフォーマンスを達成したら、習得をやめて、集録の統合に集中できます。すべてに学位があり、やり過ぎることはありません。

アラン・ペルリスが言ったように:「言語がプログラミングについての考え方に影響を及ぼさない場合は、それを学ぶ必要はありません。

知恵は、新しい言語を学習するコストを理解することにあり、それから得られる利点は常にコストよりも大きいはずです。

 


推奨読書トピック

コメントを残して友達の輪を投稿する

AI学習と開発の乾物を一緒に共有しましょう

編集グループ:Hu Jiarui、Wang Junbo

関連リンク:

https://levelup.gitconnected.com/the-benefits-of-being-a-polyglot-programmer-5aff466c4efa

再版する場合は、背景にメッセージを残し、再版の仕様に従ってください。

おすすめ記事閲覧

ACL2018議事録の50の解釈

EMNLP2017 Proceedingsの28の論文の解釈

2018 AIトップ3ミーティング中国の学業成績へのフルリンク

ACL2017議事録:34ドライグッズの解釈はすべてここにあります

10 AAAI2017クラシックペーパーのレビュー

長押ししてQRコードを識別し、注意を引く

Du Xinjunはあなたを愛しています

1031件のオリジナル記事が公開されました 3012のように表示 されます訪問数680,000以上

おすすめ

転載: blog.csdn.net/duxinshuxiaobian/article/details/105608778