私はC++開発者で、ある程度の経験があります。新しい言語を習得しようとするとき(これまでにJava、C#、python、Perlを試してみました)、通常は本を手に取り、それを読みます。しかし、これに関する問題は、これらの本が通常、ループや演算子などの非常に基本的なプログラミング概念から始まり、すぐに退屈になり始めることです。また、コードの記述に関する実際的な知識がなくても、理論的な知識しか得られないと感じています。だから私の質問は、あなたはこれらの状況にどのように取り組むのですか?基本的なことを説明している場合は、章をスキップしますか?また、学習しようとするすべての新しいプログラミング言語で記述しようとするプログラムの標準セットはありますか?
基本的にはその言語でコードを書くことによって。
学習/変更するための優れたサンプルアプリケーションが必要です。それ以外の場合は、間違った足から始めて、回復することはできません。数年前、次の製品にAdaを使用することを決定しましたが、前の製品ではすべてFORTRANを使用していたため、結局、AdaでFORTRAN構造を作成しました。私たちは本当にそれから回復したことはありません。
ドキュメントとスタックオーバーフローにアクセスできることが不可欠です。そうしないと、言語の重要な機能を見逃してしまう可能性があります。そのスコアで、その言語の達人を見つけ、彼らのブログを読んでください。これらは、言語/フレームワークの新しい機能と、自分では決して見つけられない曖昧な領域についてしばしば議論します。あなたが彼らがここで尋ねている人を見つけることができない場合!
理想の世界では、しばらくは自分で学び、評価されたいと思っていますが、それをまだ管理したことがありません。
プログラミングの本を前から後ろへ1回または数回読んでみないでください。私は通常、本を手に取り、一度に少しずつ、通常は10ページ以下、特に密度の高い本の場合は数ページしか読みません。 「ソフト」な本については、もっとたくさん読むかもしれませんが、そもそもそれらを避けようとしています。
あなたの場合のように、すでに同様の言語でコーディングできる場合は、単純なコンソールアプリなどから始めて、次のような小さな演習を行ってください。
新しい言語を学ぶのに大いに役立つ本をまだ見つけていません。ケントベックの「Smalltalkベストプラクティスパターン」は間近に迫っていますが、私が何かを(つまり、Smalltalkで)書くことは、それを読んでいる時点ですでに混乱している可能性があります。
最初のルールはJFDIです。いくつかのアプリケーション、おもちゃ、問題など、考えられることは何でも-もちろん、扱いやすいものであり、かなりシンプル/小さい-それを書いてみてください。あなたは常に「しかしどうやって...」に遭遇するでしょう。質問、私は少なくとも何かを学ぶための最良の方法であると思います。
それでは、これらの質問にどのように答えますか?その言語のコミュニティに潜入してください。ドキュメントを読んでください。 メーリングリスト のバックログを読んでください。 IRCチャネル でチャットします。アルファが誰であるかすぐにわかります。彼らのブログを読んでください。経験豊富な開業医の発言に注意を払い、間違いを覚悟してください。
完全なマニュアルを読んで、言語の概要を理解してください。退屈に見えますが、ほとんどの部分を理解していなくても、言語の全体像を把握できます。このアドバイスは、上記の 'BioBuckyBall'の内容に反していますが、言語マニュアルが小さい場合は、数日で簡単に本を完成させることができます。主なポイントは、言語の要点を「取得する」ことです。読書のある時点で、言語の概念全体が「クリック」するだけです。
次に、好きなドメインの言語で小さなプロジェクトを作成します。最初は詳細を掘り下げないでください。通常、新しい言語を学んでいる場合、標準偏差や平均など、統計に関連するいくつかの関数またはクラスを作成しようとします。これにより、配列、反復、およびデータ型にすばやく移動できます。別の言語を学習する場合は、同じ例をもう一度試してみてください。これにより、同じ問題ドメインで異なる言語の構文とセマンティクスを比較できます。
本を読む
コードを書く
疑問や問題がある場合は、スタック-オーバーフローを参照してください
繰り返す
最初に、型システムなどの言語の基礎について学び、物事がどのように機能するかを理解するとともに、コードがどのように見えるかについての基本的な例を見たいと思います。私がこれを行うための好ましい方法は本を読むことです。つまり、ベッドに寝転がっている間、または好きな場所で読むことができる本物の本です。基本は、最大100ページで説明する必要があります。利用できる本がない場合は、インターネットから情報を探します。
本を全部読むことは明らかに時間の無駄です。なぜなら、実際の経験がなければより高度なトピックを理解することはできないからです。職場では、通常、すでに使用するコードがいくつかあるので、その場合は手元のタスクの作業を開始します。私は他の人が行ったことを少しずつ読んで学び、問題が発生した場合は、グーグルで答えを見つけようとするか、失敗するかを同僚に尋ねます。しばらく作業した後、本を完成させようとします。
最初から始めなければならない場合は、hello worldから始めて、キーボードからの入力とファイル処理を試します。言語によっては、UIの演習を行う場合があります。その後、「実際の」プログラムのプログラミングを開始します。
私が本当に楽しんでいる本が1冊あります。それは "7週間で7つの言語" と呼ばれ、あなたに教えることを目的としています... 7週間で7つの言語。
これは、非常に異なる言語と、それぞれの言語の長所と短所を見るのに楽しい方法です。各言語について、本は重要な問題を扱います。
もちろん、本はどちらの言語の深い参照でもありませんが、それらの本質を示しています。
対象となる言語は、Ruby、Io、Prolog、Scala、Erlang、Clojure、Haskellです。
私のアプローチは、単に選択した言語で書き始め、ペットプロジェクトを見つけてそれを実行することです。たくさんのサンプルを読んだり、他のコードをチェックしたり、1つの大きなプロジェクトソースを調べたり、理解できないことを見つけてドキュメントで読んだりしてください。現在F#を学習していて、この本を購入しました-エキスパートF#-それを使用せずにすべてに集中して読むのは非常に難しいと思います。しかし、これは新しい言語だけではなく、命令型から機能型へのパラダイム全体のシフトです。
Bruce Eckelの "Thinking in ..."の本は、C++/C#/ Javaを切り替える場合に非常に役立ちます。
PythonとPerlは関連性が低くなる傾向があるため、基本から始めることをお勧めします。
または、プログラミング方法を知っているという前提に基づいて明示的に示されているチュートリアルを見つける必要があります。
私は現在、Rubyそれを使用して解決することにより Project Euler 問題を学習しています。ほとんどの場合、埋め込まれたC作業を行います(PHPとC#)9-5ジョブでRubyものは私の視野を少し広げるだけです。私はいくつかのRuby本、次に、良い [〜#〜] ide [〜#〜] をインストールしました。
新しいプログラミング言語を学ぶ方法はたくさんあります。私はこの方法で行きます:
そうすることで、言語自体を学び、それが「実際の生活」でどのように使用されているかを知ることができます。
最も重要なこと:一度に1つ以上の言語を学ぼうとしないでください。あなたはそれを台無しにするでしょう。