web-dev-qa-db-ja.com

学習開発のアルゴリズム

これはかなり一般的な質問です。私はPerlとPythonを少し知っています。プログラミングをもっと深く学びたいと思っているので、コツをつかんだら、アプリケーションの開発からWebサイトの開発に取り掛かることができます。

プログラミングの学習全般に対する私のアプローチを説明できるアルゴリズム(一連のステップ:))を知りたいのですが。私はPerl/Pythonに関する小さな質問を投稿し、みんなから大きな助けを受けました。

注:-私は学ぶことを急いでいません。時間はかかりますが、それで問題ありません。

妥当だと思われる提案があれば教えてください。また、LISP、Haskellなどを学ぶように私にプッシュしないでください-私は初心者です。

16
user9057

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

私は現在 LISPを学習中 であり、次のアルゴリズムをお勧めします。

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

学習したいすべての言語についてL

  • ステップ1:Lの構文を学ぶ。
  • ステップ2:Lのコンパイラをお好みの言語で記述します。
  • ステップ3:Lで好きな言語のコンパイラを書く
  • ステップ4:Lに主要なプロジェクトを慣用的に書く
  • おまけ:ステップ2の結果がステップ4の結果と互換性があることを確認してください。

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

あなたがしているすべてがウェブ開発を学ぶことであり、あなたがすでにPerlとPythonを知っているなら、あなたはほとんど最初に十分です。私はApacheの詳細を学び始めます(具体的にはmod_Perlおよびmod_python)、それから練習してください。特定の言語のマニュアルではなく、CGIプログラミング、ネットワーク通信などに関する1、2冊の本を手に入れるかもしれません。

最後に、初心者であることはLISPを学ばない理由にはなりません。 [〜#〜] sicp [〜#〜]ビデオ講義 をチェックしてください。また、開発やコンピュータに関する専門知識も必要としません。実際にビデオ講義の紹介を引用します

コンピュータサイエンスに関するこのコースにぜひお越しください。 [ボードに書いてください]実際、それはひどい方法から始めます。コンピュータサイエンスは、このビジネスのひどい名前です。まず第一に、それは科学ではありません[「科学」に取り消し線を引く]。それはエンジニアリングかもしれないし、アートかもしれない。 [...]コンピュータについてもそれほど重要ではありません[「コンピュータ」を取り消します]。そして、物理学が実際には粒子加速器についてではないということは、同じ意味でのコンピュータについてではありません。そして、生物学は、顕微鏡やペトリ皿のことではありません。 -Hal Abelson

2
Inaimathi