どのようにして複数の言語を学ぶ機会を得ましたか?[閉まっている]


9

私は読んプログラマは、少なくともどのように多くの言語に集中する必要がありますか?、そして私は最初の答えの2、3の言語を知らないことがわかりました。もっと多くの言語を学び、知識とプログラミングのスキルを高めたいです。ただし、通常、企業では固定フレームワークと言語を使用しており、変更はほとんどありません。ですから、それらの言語を学ぶ機会が得られるかどうかはわかりません。他のプログラマーにとっても同じだと思います。

しかし、私はここで複数の言語を知っている多くの開発者を見てきました。どのようにして多くの言語を学ぶ機会を得ますか?

更新

余暇に勉強したくない気分で、不快に感じる方も多いと思います。実際、それは真実ではありません。:)私はマニアのプログラマーです。そのため、この種の質問をここに投稿しました。暇な時間に勉強しますが、言葉が上手いだけでは物足りないと思いました。とにかく、すべての回答に感謝します!


7
単に、あなたの暇な時に新しいものを学びます。
ジョナス

1
おい、その答えは39歳のプログラマーによって投稿されました。いいリストだと思いますが、自分で殺してはいけません。
Job

7
あなたはチャンスを「得る」ことはありません。あなたはチャンスを作ります。もっと多くの言語を学びたいなら、外に出てそれをやってください。神秘的な仕事の責任があなたに来るのを待たないでください。
Joel Etherton、2011

回答:


10

私は言語を学習する最良の方法は、すぐにそれを使用して、何か有用なものや必要なものを作ることです

たとえば、毎回手動で行わなければならない多くの操作を自動化する必要があることに気づきました。繰り返しの多いタスク、ファイルとフォルダーの作成など…なので、私はスクリプト言語を選んでいくつかの便利なツールを作りました。私はPerlに行って、オンラインチュートリアルと本のおかげで、スクリプトを作成するために必要な構文と関数を学び始めました。

数日でツールを稼働させた後、暇な時間に言語について新しいことを学び、言語にさらに機能を追加しました。


思い浮かぶもう1つの優れたオプションは次のとおりです。好きな言語が見つからない場合、またはニーズに完全に適合しないと思われる場合でも、独自の言語を作成できます

私は今Perlでそれをやっています、私は私の特定の問題を最もよく解決するのに役立つ構文を選択しました(あなたがあなた自身の言語を書いているので、あなたは仕事に適切な構文を選択したいかもしれません、それは最もよく説明して解決します)特定のドメインの問題)。

結果?ドメイン固有の言語であるため、開発がはるかに迅速になり、コード自体がより説明的になります。数週間前にこのトピックに関連する質問をしました。

PHPを使用する場合でも、任意のスクリプト言語を使用して新しい言語を作成できます。


Perlで自分の言語を作成できることを知りませんでした。詳しく説明してもらえますか?
Sanghyun Lee '09

こちらでお願いし。基本的には、入力を理解(解析)し、入力内容に基づいてさまざまなタスクを実行するスクリプトを作成する必要があります。関数の単なるセットでも、まったく新しい言語構文でもかまいません。その後、必要に応じてすべてを自動化できます。Perlだけでなく、任意のスクリプト言語を使用して新しい言語を作成できます。
ホセファエティ2009

8

この種の質問はいつも私を困惑させます。私は7つの言語を専門的に使用しており、趣味や学問の設定で約5言語でコードを記述しており、さらに多くの言語でコードを読み取ることができます。目的のためだけに言語を学んだことは一度もありません。常にいくつかの具体的かつ直接的な目標が頭にあります。たとえば、今週末、家族向けのアプリに取り掛かるのに十分なAndroidライブラリを学びました。iPhoneがあれば、Objective-Cを学んだでしょう。

多言語を知ることは、熟練したプログラマー、または少なくとも熱狂的なプログラマーであることの症状であり、原因ではないというのが私の考えです。あなたが新しい言語を学ぶための説得力のある理由を考えることができないなら、私はそれがあなたにどのくらい役立つかわかりません。


3

解決すべき問題があるときに新しい言語を学ぶための最良の方法。問題を解決するのに役立つツール(言語、フレームワーク、ライブラリ)を確認するために、慣れているものを使用するだけでなく、少し時間をかけてください。新しいツールを学ぶ時間がある場合は、それを試してください。スケジュールのプレッシャーや外部要因によるテクノロジーの制限がある場合、職場でこれを行うことができない場合がありますが、個人的なプロジェクトにこのアプローチを採用できない理由はありません。


2

あなたはそれをする時間を作らなければならないだけです。プラグスから本「7つの言語で7週間」をチェックしてください。それはあなたに7つの非常に興味深い言語の紹介を与え、そこからあなたはあらゆる種類の場所に行くことができます。


1

それを使い始めてください。明らかに、これまで一度も触れたことのない言語で一から本番システムを構築することは悪い考えですが、ここにいくつかの提案があります。

  • 自分の時間で学びましょう。自分で完成できると確信している、興味のあるプロジェクトを選びます。新しい言語を紹介する読み物を読んで、それが適切かどうかを判断することをお勧めします。各言語には長所と短所があり、その言語が優れているように設計された問題から始めるのが最善です。
  • 既存のプロジェクトのメンテナンスタスクを開始します。このようにして、ドキュメントを読まなくても言語の大部分を選択できます。サンプルコードから多くを推測できます。また、ドキュメントを読む必要がある部分については、コードはすでに。また、「Xを実行するコードを作成する方法」よりも、「このコードの機能」を調べる方が簡単です。
  • 必要な小さなツールとヘルパーに新しい言語を使用します:シェルスクリプト、特定のタスク用の使い捨てコード、迅速な計算(たとえば、多くの動的言語-python、lisp、haskellなどのインタラクティブなインタープリター-優れた計算機を作る)。ただし、すべての言語がこれに適しているわけではありません。

1

ある言語で行った比較的小さなものを選び、別の言語でドロップイン置換を開発します。自分に挑戦するためだけにこれを行います。それを完了するために、あなたは他の言語について多くを学ぶでしょう。

この1週間以内に、NodeJSのWebサービスバックエンド(以前はJSPサービス)を学び、書き直すことにしました。必要最小限のサービスが機能するようになるまでに約1日、数日後にはインフラストラクチャ、エラー処理、ロギングを拡張し、ライブモニタリングを追加しました。今ではオリジナルよりも優れています。私が何かを学び、非常に満足しているので、経営者がそれを受け入れるかどうかは重要ではありません。


1
  • 私の仕事の一部は「研究」だと思います。1998年の調査では、Y2Kバグを修正する必要がありました。先月の調査では、Subversionについて学習しました。私は40年間研究を続けてきました。言語をリストするときは、アルファベット順にリストする必要があります。

  • 言語を学ぶときは、リファレンスマニュアルの表紙をすべて読んでいます。その後、実際に数か月使用します。次に、リファレンスマニュアルをもう一度読みました。2回目の読みは、私が最初に見逃した多くのトリックと意味を明らかにします。

  • 実践的な研究は、C#やPascalなどの通常の言語を対象としています。高度な研究は、LISPやFORTHなどの奇妙な言語を対象としています。LISPを専門的に使用することはおそらくないでしょうが、それを学ぶことで心がかなり広がります。

  • もちろん、私の環境では、時間の支払いはありません。私は配達の支払いを受けています。2週間で納品できれば、1日6時間で、残りの3週間は研究に使用できます。1日12時間かかるとしたら、その時の調査はありません。

  • もちろん、すべての研究は、私に支払った研究者にとって、いくつかの潜在的な有用性を持つべきです。小さなユーティリティは良いです。次にCソースコードを処理するときは、Pythonで試してください。(いいえ、私はPythonを知りませんが、文字列操作に適していると聞きました。)


0

時には機会はあなたの雇用から来る。通常、このタイプの機会には3つの要因のうちの1つがあります。

  1. まったく新しいテクノロジーです。たとえば、.NETがリリースされてから最初の2〜3年で、多くの企業が開発者向けのC#トレーニングの費用を支払いました。

  2. 習得は簡単です。たとえば、Linuxショップでは、.bashスクリプトを作成する必要があります。ターミナルセッションなどを使用していて、それを書いた経験のある他の開発者がいる場合は、自分のタスクの一部を自動化するだけで、このスキルを習得できます。

  3. それはめったに使用されない技術的スキルであり、あなたの会社はその仕事をするコンサルタントを見つける時間と費用を使いたくないのです。たとえば、一部のXML(ログ)ファイルを表示用に変換する簡単な方法が必要だったため、XSLTの記述方法を学びました。

あなたが仕事以外で自分のために作る必要がある他の機会。慎重に選択してください-将来、どのテクノロジーが役立つと思いますか?このような場合、テクノロジーの学習と適用に時間と労力を費やす必要があります。これは全体的なキャリアプランの一部である必要があり、クラスの料金を支払う必要がある場合があります。(私は幸運でした-私がJavaを学んだとき、彼らは地元のコミュニティカレッジで夕方それを教えていました)。


0

私の経験からあなたの質問に答えます(私は業界でかなり新しいので、それほど多くはありません)自分のニーズに最適な言語を調べるために調査を行うことで、新しい言語を学びます。大学では、私は大きな整数の使用を必要とする暗号学のプロジェクトを持っていました。C ++では非常に使いやすくなったので、BigIntegerクラスを提供するJavaを使用しました。私の現在の仕事では、シェルスクリプトが複雑すぎずに問題を完全に解決できなかったので、Perlを学びました。その場で学ぶことは、私のアドバイスです。もちろん、自分が退屈していると感じたら、探検すべき言語の世界がたくさんあります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.