学習開発のアルゴリズム[終了]


16

これはかなり一般的な質問です。PerlとPythonを少し知っているので、プログラミングをもっと深く学びたいと思います。それを理解したら、アプリケーションの開発を始め、次にWebサイトを開発できるようになります。

一般的なプログラミングの学習に対する私のアプローチを説明できるアルゴリズム(手順のシーケンス:))について知りたいと思います。私はPerl / Pythonに関する小さな質問を投稿しましたが、皆さんから大きな助けをいただいています。

注:-急いで学ぶ必要はありません。時間がかかることはわかっていますが、それで問題ありません。

有効だと思われる提案があれば教えてください。また、Lisp、Haskellなどを学ぶように私を押してはいけません-私は初心者です。


学びたい特定の言語はありますか?私はあなたがperlとpythonに言及していることを知っています、あなたが入ろうとしているものですか?
ジェイソン

だからあなたが求めているのは...正確に何ですか?特定の言語を学ぶプロセスは?プログラミング自体?何を使うの?
グレナトロン

これはいい質問だと思います。少しわかりやすくするために編集しました。
ゲイリーロウ

回答:


28

新しいプログラミング言語を学習するための11ステップアルゴリズム

私は現在Lispを学習していますが、次のアルゴリズムをお勧めします:

  1. その言語が学習に値するものであり、優れたリソースがどこにあるかを尋ねてください。言語に対する肯定的な反応が専門家によって与えられた場合、ステップ2に進みます。
  2. 初期プログラミング環境を作成します。シンプルにしてください:テキストエディタとコンパイラ/インタープリタ。最低限必要です。マシンの特定のユーザーアカウントを考慮して、考え方の変化を示す特別な配色を検討してください。
  3. 「Hello、World!」を作成します 応用。
  4. 一般的な構文と制御ステートメント(if-then-else、repeat-untilなど)を学びます。シンプルなコントロールケース(true / false評価など)を検証するサンドボックスを作成します。すべてのプリミティブ型(int、double、stringなど)を試してください。通貨の計算を実行します。数値推測ゲーム(@Jeremyが示唆する)はこれに適しています。
  5. いくつかのメソッド/関数でクラスを作成します(該当する場合)。関数間で呼び出しを行います。制御ステートメントを適用します。
  6. 配列とコレクションを学びます。適切な複雑な例を作成して、利用可能な各クラス/関数/プリミティブの配列とコレクションを作成します
  7. ファイルIOを学習します。バイナリおよび文字ベースのファイルの読み取り、操作、書き込みの例を作成します。
  8. 言語内の慣用的なプログラミング(ポインター、マクロ、モナド、クロージャー、サポートフレームワーク、ビルド環境など)についてさらに質問します。
  9. 推奨されるイディオムで動作するIDEを選択(または既存のIDEを適応)します。
  10. あなた(または上司)を喜ばせるさまざまなアプリケーションを作成します。
  11. 1年後、別の言語のステップ1に戻り、学習したばかりの言語に興味を持ち続けます。

1
私は、「数字を推測する」ゲームを書くのに最適な2番目のプログラムであることがわかりました。(ステップ4)。整数、ブール値、テキスト入力/出力、ループ、および条件について学習できます。
ジェレミーハイラー

@ジェレミー良い提案、私はそこにそれを入れました。
ゲイリーロウ

こんにちはゲイリー-詳細な手順をありがとうpythonでそれをマップしようとする-非常に良いステップバイステップの説明thats私はフォーラムのこのチェーンを愛する理由... @ジェレミーそうそう:)
user9057

考え方の変化を示す特別な配色、これにいくつかの光を当てることができますか?
サントシュクマール

Lispで作業するときは暗い色を選択する傾向がありますが、Javaでは明るい色を使用します。色は私の考え方を変えることを思い出させます。
ゲイリーロウ


2

学びたい言語ごとに L

  • ステップ1:の構文を学習しますL
  • ステップ2:Lお気に入りの言語でコンパイラを作成します。
  • ステップ3:お気に入りの言語用のコンパイラを L
  • ステップ4:主要なプロジェクトを慣用的に書く L
  • ボーナス:ステップ2の結果がステップ4の結果と互換性があることを確認してください。

これでほぼカバーできるはずです。10年後の進捗レポートでご連絡ください。

Web開発を習得するだけで、PerlとPythonを既にご存知の場合は、開始するのに十分です。私は、Apacheの詳細(特にmod_perland mod_python)を学び始めてから、練習を始めたいと思います。特定の言語のマニュアルではなく、CGIプログラミング、ネットワーク通信などに関する本を1つか2つ取り上げるかもしれません。

最後に、初心者であることはLispを学ばない理由ではありません。SICPビデオ講義をご覧ください。どちらも、開発やコンピューターに関する専門知識を想定していません。実際、ビデオ講義の紹介を引用するために

コンピューターサイエンスのこのコースにようこそ。[ボードに書いて]実際にそれは恐ろしい開始方法です。コンピューターサイエンスは、このビジネスの恐ろしい名前です。まず第一に、それは科学ではありません(「科学」を消し去る)。それは工学かもしれないし、芸術かもしれない。[...]また、コンピューターについてはあまり重要ではありません(「コンピューター」を削除)。また、物理学が実際には粒子加速器に関するものではないということと同じ意味で、コンピューターに関するものでもありません。そして、生物学は顕微鏡やペトリ皿についてではありません。-ハル・アベルソン


楽しそう。10年後にまた会いましょう!
ジェレミーハイラー

ステップ2の+1は、Lのコンパイラを記述します!脳...痛い....そう...ずっと...今。
ゲイリーロウ

-2

2つのステップ以外はあまり言いたくありません。

  1. データ構造を学ぶ
  2. アルゴリズムの概要を学ぶ

PSプログラミングはあなたの毎日の仕事です。


プログラマーでは、「多くを言う」ことをお勧めします。恥ずかしがらないでください:)リソース、参考資料、またはあなた自身の経験からの例など、あなたのアドバイスに関する詳細を教えてください。
マチュー

-2

最善の方法は、プログラミング言語の基礎/基礎を学び、その後、ジュニア開発者(請負業者)として会社に参加することです。これは、あなたの時間のために学び、お金を稼ぐための最速の方法になります;)

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