私はこれをします:
パスA:半典型的な方法
Java、C#、Pythonなど、より正規化された構文で言語を学びます。Perlはめちゃくちゃ便利なツールですが、どのようにそれを実行できるかという点でも非常に自由な形式です。私がリストした他の言語は、はるかに少ないです。
上記の言語のデータ構造に関する本を入手してください。
上記の言語のアルゴリズムに関する本を入手してください。
完全なコードと効果的なJava / C#/ Pythonのバージョンを入手してください。
経路B:ジョエル・スポルスキーの啓蒙の道(または死、選択してください)
本「コード」を入手する
K&Rの「Cプログラミング言語」を入手してください
コンピュータプログラミングの構造と解釈を取得する
方法については、方法1を使用すると、より規則的な方法でプログラミングを学習できます。コンピューターサイエンスの概念(ある程度複雑な理論はまだありませんが、私を信じてください)を提供し、他の人とのプロジェクトでの作業やより大きなアプリケーションの作成に適した言語を提供します。
方法2はよりハードコアであり、基本を説明する「コード」、機械レベルのものを紹介するK&R、およびより高いレベルの概念を紹介するSICPを使用した基本的なアプローチです。それははるかに難しいが、より焦点を絞った道です。
どちらの場合でも、時間をかけてください。たとえあなたが天才であっても、ローマは1日で構築されたわけでも、プログラミングスキルでもありません。10年後のPeter Norvigのプログラミングは、私が人々に指摘する通常のエッセイです。
補遺:
利用可能な無料のものに関しては、以下にリストされているPython the Hard Wayは良い出発点です。そこから、コンピューター科学者のように考える方法は合理的な継続です。
アルゴリズムには多くのリソースがあり、正直なところ、問題なくステップ3と4を切り替えることができます。数学が本当に現れ始めるのはここだということを覚えておいてください。この段階に到達したときに助けを求めることを恐れないでください。これは合理的な無料ガイドのようです。
Pythonistaのようなコードはかなり安定しているように見えますが、実際に言うと、完全なコードに相当する結束のないものはありません。大事なことは、基本を完全に理解したら、コードを読みやすくすることに集中することです。すべてのコード構文を正しくするのと同じように「必要」ではありませんが、小さなプログラムを超えたり、長期間にわたって何かに取り組んだりすると、簡単に実行できるようになります。
よく書かれた無料のものを見つけるのが3つの中で最も簡単だからです。OracleによるJavaのチュートリアルは素晴らしいと思いますが、初心者向けにはあまり乾燥しておらず、素晴らしいものではありません。C#も同様の状況にありますが、どちらもドキュメントの欠如に悩まされていません。
また、最初のCSの冗談/冗談:バックトラックではなく、教育を「リファクタリング」したい場合。