「教育」のバックトラック[終了]


13

少し前に、プログラミングを始めることにしました。私は本当に、言語(Perl)に飛びついてそこから行きました。私が後悔しているのは、私がちょうど飛び込んだことです:

私は基本を学びませんでした(もしあなたがそれらを基本と呼ぶなら)。

コンピューターサイエンスについては知りませんでした。

この問題は、本当の可能性から私を遠ざけていると思います。どこから「再起動」する必要がありますか?読むべき本、記事などはありますか?経験豊富なプログラマーが知っておくべきトピックはありますか?あなたのアドバイスは何ですか?


私はあなたの質問について明確ではありません。プログラミングを始めようと決めたとき、それは新しい仕事を得るのか、それとも単に仕事で管理タスクを達成するのか、それともただの楽しみのためにでしたか?なぜこのように始めたことを後悔しているのか、そしてあなたを引き留めることにその問題があるのか​​を助けるために、あなたがどこから来ているのかを理解する必要がありますか?仮定するのは好きではありません。

@JamesDrinkard:それは単に学習のためでした!私は生計のためにこれをしません。
ダイナミック

あなたの経歴は?科学について何か知っていますか?数学?エンジニアリング?木工?:-)どのようなプログラミングに興味がありますか?これらの詳細がなければ、有用な答えを出すのは困難です。また、飛び込んで後悔しないでください-それは素晴らしいことです!
ガイサートン

@GuySirton:私は中学生です。私は本当にプログラムする理由がありません。
ダイナミック

回答:


21

私はこれをします:

パスA:半典型的な方法

  1. Java、C#、Pythonなど、より正規化された構文で言語を学びます。Perlはめちゃくちゃ便利なツールですが、どのようにそれを実行できるかという点でも非常に自由な形式です。私がリストした他の言語は、はるかに少ないです。

  2. 上記の言語のデータ構造に関する本を入手してください。

  3. 上記の言語のアルゴリズムに関する本を入手してください。

  4. 完全なコードと効果的なJava / C#/ Pythonのバージョンを入手してください。

経路B:ジョエル・スポルスキーの啓蒙の道(または死、選択してください)

  1. 本「コード」を入手する

  2. K&Rの「Cプログラミング言語」を入手してください

  3. コンピュータプログラミングの構造と解釈を取得する

方法については、方法1を使用すると、より規則的な方法でプログラミングを学習できます。コンピューターサイエンスの概念(ある程度複雑な理論はまだありませんが、私を信じてください)を提供し、他の人とのプロジェクトでの作業やより大きなアプリケーションの作成に適した言語を提供します。

方法2はよりハードコアであり、基本を説明する「コード」、機械レベルのものを紹介するK&R、およびより高いレベルの概念を紹介するSICPを使用した基本的なアプローチです。それははるかに難しいが、より焦点を絞った道です。

どちらの場合でも、時間をかけてください。たとえあなたが天才であっても、ローマは1日で構築されたわけでも、プログラミングスキルでもありません。10年後のPeter Norvigのプログラミングは、私が人々に指摘する通常のエッセイです。

補遺:

利用可能な無料のものに関しては、以下にリストされているPython the Hard Wayは良い出発点です。そこから、コンピューター科学者のように考える方法は合理的な継続です。

アルゴリズムには多くのリソースがあり、正直なところ、問題なくステップ3と4を切り替えることができます。数学が本当に現れ始めるのはここだということを覚えておいてください。この段階に到達したときに助けを求めることを恐れないでください。これは合理的な無料ガイドのようです。

Pythonistaのようなコードはかなり安定しているように見えますが、実際に言うと、完全なコードに相当する結束のないものはありません。大事なことは、基本を完全に理解したら、コードを読みやすくすることに集中することです。すべてのコード構文を正しくするのと同じように「必要」ではありませんが、小さなプログラムを超えたり、長期間にわたって何かに取り組んだりすると、簡単に実行できるようになります。

よく書かれた無料のものを見つけるのが3つの中で最も簡単だからです。OracleによるJavaのチュートリアルは素晴らしいと思いますが、初心者向けにはあまり乾燥しておらず、素晴らしいものではありません。C#も同様の状況にありますが、どちらもドキュメントの欠如に悩まされていません。

また、最初のCSの冗談/冗談:バックトラックではなく、教育を「リファクタリング」したい場合。


ありがとうございました!無料のオンラインブックを読むことができますか?それ以外に、これは驚くべき答えです!
ダイナミック

5
+ 1(コンピュータープログラミング(SICP)の構造と解釈)については、こちらでオンラインで見つけることができます:mitpress.mit.edu/sicp
NWS

Perlを知っていると、Pythonは慣れるのに苦労しますか?
ダイナミック

1
Perlの後、ほとんどの言語は少し変な移行になります。Pythonは、Perlにあるような1つのことを行う50の方法ではなく、本質的に1つのことを行う1つの方法があるため、かなり簡単です。Pythonの大きなトリックは、使用する言語のバージョンを決定することです:2.7または3.x。あなたが選んだチュートリアルが使用するものは何でも使用して、そこから行っていきます。それが上手になったら、プロジェクトの進行に合わせて他のものに調整できます。
世界エンジニア

1
@kevincline:実際には、Pythonのいくつかの演習を行った後、多くのトラブルが発生しています。私見、Perlで非常に単純なことのいくつかは、Pythonでは難しいです。
ダイナミック


1

まあ、私はハードウェア側の知識があり、プログラミングに興味を持っていたのと同じ理由で始めました。私は新しいことを学ぶのが好きです。

DOSバッチファイルから始め、次にQuickBasic、次にVisual Basic、VBA、MASMから始め、Accessでデータベースを使用して仕事を始めました。私にとっては、それが最良の道であり、シンプルなものから始めて、そこから構築していきました。

プログラミングで一番好きなものを決めて、そのルート、スクリプティング、Web開発、Windowsプログラミングなどを選んでください。わからない場合は、いくつかの言語で作業を開始して、好きなものを見つけてください。ただし、時間が必要です。JavaやC ++、IMHOなどの言語で本当に良くなるには約5年かかります。

Web開発の学習に役立つ言語として、JavaScript、間違いなくPHP、Pythonが一般的ですが、それが私見です。HTML / CSSを知っているか、学ぶことを前提としています。2001年以降使用していたにもかかわらず、私は本当にJavaScriptを過小評価していました。CSSで同じことをし、それが重要だとは思いませんでした。私もそれについての私の意見を変えました。

トレンドを特定しようとすると、 http://www.indeed.comにアクセスして、ページの左上にあるトレンドリンクをクリックします。次に、PHPやPythonなどのキーワードを入力し、インターネット上にある実際の職位のためにどれが配置されているかを確認します。

ただし、これはキャリアの観点からであり、クライアント(雇用主)に最も価値をもたらすものに基づいています。学習の観点からだけではありません。


Web開発に役立つ言語を学びたいと言ったが、さらに多くのことができる場合は、何をお勧めしますか?
ダイナミック

-1

最も基本的な形式のアルゴリズムについて学び、しばらくの間は言語を忘れてください。ベクトル、単語などの並べ替え。Freepascalはこれらのことから始めるのに最適な言語です。Perlが大好きですが、ショートカットとクールなものがすべてあるため、プログラム固有のアルゴリズムを無視することがよくあります。

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