web-dev-qa-db-ja.com

プログラミングを最初から始めるには?

私はプログラミングの経験がまったくなかったので、叔父は私にプログラミングを始めたいのなら、見知らぬ人からの助けを求めてこのサイトに来るように言われました。私はいくつかの言語の名前を知っていますが、本当に何も知りません。私は14歳です。何か意味があれば、すばやくタイプできます。叔父の一人がc#を学びたいと思っていました。だから私の質問は、c#は始めるのに良い場所ですか?そうでない場合は、どこから始めるのが良いのか、そしてどのようにそれを学ぶのですか?

36
Rmazer

Head First C# の最新版の入手を検討することをお勧めします。特に初心者に適しています。ビジネス指向の例ではなく、「楽しい」例に集中しています。私は個人的にはそのような学習スタイルのファンではありませんが、明らかに他の多くの人に適しています。

ただし、最新版(.NET 4をカバー)または前版の最新版のどちらかを必ず購入してください。以前のバージョンにはかなりの数のエラーがありましたが、時間の経過とともに修正されています。

20
Jon Skeet

C#はそもそも素晴らしい言語です。

ここ は、始めるのに適した無料の電子ブックです。プログラミング言語だけでなく、プログラマーであることの意味、および専門家にアプローチする方法についても説明します。

Jonが answer - Head First C# で述べているように、( Head First HTML などの他のすべての本と同様に)素晴らしい最初の本でもあります。 。

Visual Studio Expressプログラミング環境(構文の強調表示とインテリセンスを備えたエディター、コンパイラー、デバッガーなど)を無料で入手できます here -必ずC#バージョンを選択してください。

17
Oded

C#から始めても大丈夫ですが、代わりにWebサイトを作成する方が楽しいかもしれません。それは簡単で、誰もがあなたがしているクールなことを見ることができ、あなたはすでにそれを始めるためのツールを持っています-テキストエディタとウェブブラウザだけです。また、HTMLとJavascriptは、C#よりもはるかに単純で簡単ですが、強力ではありません。

http://www.w3schools.com/ は良い出発点です。

15
mqp

私の意見では、プログラミングを学ぶとき、または新しいプログラミング言語を学ぶときに、1つの重要なツールがあります。そのツールは「あなたが解決することに心から興味を持っている問題」です。

それはあなたが書いたいと思っているゲームかもしれませんし、学校やあなたの生活の中で実際にあなたを助けるデスクトップやウェブベースのツールかもしれません。

本当に解決したい本当の問題がある場合は、解決方法を学ぶのに役立つ無料のツール、チュートリアル、オンラインマニアが常にいます。

実際の問題を解決せずにプログラミングを学ぶことは、ハンマーと釘と短い木片だけで家を建てることを学ぶようなものです。ハンマーの基本的な仕組みを学ぶことはできますが、何か役立つものを作ろうとするときに遭遇する問題に直面しなければならないまで、大工になることは決してありません。

その後、C#はプログラミングを学ぶのに最適な汎用言語だと思います。そして、本当に素晴らしい無料のツールがいくつかあります。

複数の言語で実験を行ったと言っているポスターに同意します。さまざまなツールを使用して同じ問題を解決することは、それらのツールのさまざまなパラダイムに真の目を開く可能性があります。

9
Jason

叔父の1人がC#の学習を望んでいる場合、おそらく数年後、彼はあなたを彼の従業員と見なします。それが彼の計画であるかどうか彼に直接尋ね、あなたを助けるように彼を説得してください。

あなたの叔父がプログラミングについて何も知らず、どこかでこの言葉を聞いたためにこのC#の提案を単に落とした場合、彼はあなたに非常に悪い好意をしているかもしれません。

私があなたであり、私が欲しいものを自由に選択できるなら、私は確かにC#を選びません。なぜなら、それはあなたをプロプライエタリなオペレーティングシステムに結びつけるからです(Monoは冗談です、認めます)。

ほとんどすべてのプラットフォームで動作するため、私の選択はおそらくPythonでしょう。そして、非常に異なる点からプログラミングを教える初心者向けの2つの非常に貴重なチュートリアルがあるので、あなたに最も合ったものを選ぶことができます: official Python tutorial and Zed Shawの Learn Python The Hard Way (怖いタイトルを恐れないでください。本は初心者にとって非常に貴重です)。

編集:

コメントを読んだ後、もう少しポイントを追加したいと思います。

これらのC#プログラマーの何人が楽しいコードを作成していますか? Microsoftテクノロジーを使用するほとんどのプログラマーは専門的にそれを行います-それは彼らの仕事です、彼らはお金のためにそれをします、ほとんどの彼らは仕事が退屈であることを認める根性がありません(たとえあったとしても)、そのような主張は(咳!)無料のプログラミングツールによって提供されるインフラストラクチャを取り巻く文化に陥る企業ポリシー。

ほんの数年で、多かれ少なかれ真剣にプログラミングを行うユーザーのコミュニティは文字通り爆発しました。昔はsourceforgeがありました-完全にプログラマー関連の単一のモンスターです。今日、launchpad、bitbucket、github(最近1000000リポジトリを超え、そのほとんどは無料のライセンスで管理されている小さな個人のペットプロジェクトです)があります。それらのプロジェクトのうちいくつがC#を使用していますか?

今日のプログラミングは、これまで以上にコードを再利用または「盗む」(良い意味で)ものです。 C#プロジェクトの群れ、小さな汎用ライブラリはどこにありますか?プロプライエタリソフトウェアを作成するプログラマーの中には、初心者にはあまり役に立たないものもありますが(それはコンサルティングであり、お金のためにできるものです)、フリーソフトウェアを作成するプログラマーもあまり役に立ちません(ソーシャルスキルがないため)。 、コードがより重要です。本を読むだけでプログラミングを学ぶのではなく、実際に動作するコードを学ぶことでプログラミングを学びます。また、フリーソフトウェアエコシステムは、調査するコードをはるかに多く提供します。

一般に、プログラミングを始める人には2つの選択肢があります。

  • 独占的なものを避け、「匿名のインターネットエリート主義者」と呼ばれるリスクがある多くのフリーソフトウェアにアクセスする
  • プロプライエタリソフトウェアが実際に何を意味し、それがどのように善意を損なう可能性があるかを感じるリスクがあるため、プロプライエタリ対無料の聖なる戦争を無視してください this guy
9
jedi_coder

プログラミングにはたくさんありますが、おそらくいくつかの主要な要素に分解できます。

  • 理論
  • クラフト
  • 方言

理論は単にたくさんの学習を必要とします。本、授業、試行錯誤、研究など.

クラフトには経験が伴います。

そして、それは方言...あるいは流暢になりたい特定の言語を残します。

これに答えるには、どのようなことを目指しているかについての長いリストが必要です。あなたが本当に進むべき特定の方向がない場合、あなたの「あなたにそれを学びたいと思っているあなたの叔父」はおそらく他の理由と同じくらい良い理由です。

5
DA.

C#、Python、Rubyのようないくつかのホットな言語で少しディブルすると思います。私がこれを言う理由は、言語を好きになることは味蕾を開発することに少し似ていると思います。ブレースと合成糖のためだけにコーディングを嫌がった多くの人々を知っています。私があなたを救いたかったのは、構文に脅されてそれを捨てることでした

4
Perpetualcoder

C#は開始するのに最適な場所です。その理由の1つは次のとおりです。

C#は適切な言語であり、プログラマーとして何をしているのかを知るように強制します。私はプログラミングのキャリアをPHPから始めましたが、その言語はあまりにも緩いため、ほとんど失敗することはありません。あなたはクールなサイトなどを作ることができますが、あなたがより強力な言語を必要とする何かをするために雇われるまで、それらがどれほどひどいかを決して知ることはありません。当時、PHPで決して使用されない特定の用語とデータ型が広まります。振り返ってみると、PHPで始まる多くのプログラミング言語がわかったので、少なくとも私の考えでは、プログラミングを始めるのにかなり悪い方法でした。自分がどこから始めたのか、この分野での仕事があるとは思えません。 Javaも開始するのに適しています。厳密なコンパイル言語です。厳密なコンパイル言語から基礎を知っている場合、PHPのような緩いものは、知識ベースに追加するのが簡単です。

もちろん、プログラムの目的を検討することもできます。 Web作業を行いたい場合は、C#が良い基盤ですが、真剣に何かに取り組んでいない限り、C#をWeb作業に多く使用することには疑問があります。 Objective Cはiphoneとipadの開発に使用されるので、学習に失敗することはありません。

JavaはWebに適しており、現在はモバイルプラットフォームになっているため、間違いなく良い投資です。 Javaの原則は、より優れたWebコードを作成するのに役立つだけでなく、後でCに分岐する場合の優れた基盤を形成するのにも役立ちます。その逆、私は推測します。

PHPは非常に簡単に習得でき、Web開発に参加したい場合に非常に役立ちます。この方法を使用する場合は、html、cssを理解し、少なくともデータベースのmysqlに慣れる必要があります。ちなみに、php開発者はプログラミングの分野で数十ドルですので、あなた自身のウェブ会社を運営して自分でサイトを運営したいのでない限り、これを成功させることを期待しないでください。

いずれにせよ、MVC(モデルビューコントローラー)は重要なことです。コードが適切に構造化されていると、自分自身と、中断したところから再開しなければならない可能性のある人のために維持するのが非常に簡単になります。

楽しんで。

3
fleces

C#は本当に良い出発点だと思います。 14歳のプログラミングに本当に興味を持っていることはかなり難しいです。

C#の本を手に取り、読むことをお勧めします。あなたが彼らによって来るように例に従ってください。

私のお気に入りのC#ブックの1つはAndrew Troelsenによるものです。NET4.0を使用したPro C#は彼の最新のブックです。 :)

http://apress.com/book/view/1430225491

3
Ashley Grenon

最善の方法はありませんが、最初にここから始めます。

エクスプレス版

それらは無料で、たくさんの選択肢があります。

2
egrunin

ここに投稿した投稿をコピーするには、次のようにします。 https://stackoverflow.com/questions/3430705/3432079#3432079 ハンドルを取得するには、次の2つの方法があります。

学術知識:

  • 理論を知る-プログラミングの理論、言語設計の理論、コーディングしているアーキテクチャの背後にある理論を理解する
  • 数学を知る-すべてのプログラミングは最終的に数学に要約されます-述語論理、トリガー、ベクトル、ジオメトリ、(基本)集合理論、グラフ、基本行列を知っています理論、少しの数値解析も複雑さの理論と同様に害を与えません
  • あなたの言語を知ってください-本を入手し、読んで、参考のためにメモをとってください。 ApressのタイトルはC#に適しています http://www.Amazon.com/Pro-2010-NET-Platform-Fifth/dp/1430225491/ref=sr_1_1?ie=UTF8&s=books&qid=1281215548&sr=8-1 良いです。次に、ブログとビデオを読み、Redgate ReflectorとMSDNヘルプの使い方を学びます
  • Know your Tools-C#の場合、これはVisual Studio 2010を意味します- http://blogs.msdn.com/b/saraford/archive/ 2010/06/17/video-101-visual-studio-tips-in-55-minutes.aspx は学習に最適な方法です。まともなリファクタラーも入手してください-ReSharperは私のお気に入りですが、他にもあります。
  • Ecosysyemを知ってください-そこにあるライブラリを知って、最高のライブラリを1つまたは2つ使用する方法を学びます

スキル:

  • プロジェクトの定義方法を理解する-プログラマーがどんなに上手くいっていても、間違ったものを構築した場合、重大な失敗をします。
  • 設計方法を知る-オブジェクト指向設計の理論を学ぶ-Gang Of Fourソフトウェアパターンは古典的であり、すべてのコーダーはそれらに注意する必要があります。
  • コードを文書化する方法を理解する-これは、長期的なコードにとって、およびチームでうまく機能するために重要です。書き、文書化し、テストする=>再利用する
  • チームで働く方法を知る-一生懸命働き、ナイスでプレイし、コミュニケーションをとります。
  • 使用するツールを知る-できるだけ多くの種類の言語、実際の言語、技術、ライブラリなどの感覚をつかむことができますどの状況で使用するか
  • 学ぶ方法を知る-あなたの周りの人たち、ウェブ、ドキュメント、そして最も重要なのはあなた自身の過ちから。

他の人がこれらのリストに追加できると確信しています;)

2
GreyCloud

どの言語を選択するか決定します(C#には問題ありません)。良い本やリソースをピックアップしてください。いくつかはここで言及されています。それが終わったら、例を手作業で、そしてコンピュータで作業して、メロンに具体化してください。

当たり前のことかもしれませんが、作業、変更、独自の例を作成し、それらがどのように機能するかを確認できるほど、言語をすばやく習得できます。私見これはあなたが本当に学び始め、楽しみを得る方法です。なぜなら、物事が起こるのを見始め、問題を解決し始め、あなたが読んでいるだけではない問題へのコンテキストを得ることができるからです...

1
Wil P

約半年前にC++を始めたとき、私は個人的にプログラミングの優れたスタートを切りました。私自身も13歳です。 C#はC++によく似ています(ただし、違いはあります)。したがって、経験から言えば、そうですね、そもそもそれは良い言語です。

参考文献については、地元の書店で本を何冊か入手して、それらを読み進めてください。それが私がしたことです。 C++から始めたい場合は、「C++ for Dummies」と呼ばれる優れたリファレンスがあることは確かです。それが私が始めたところです。

1

それはあなたがプログラムにコミットした資産です。通常、あなたの作業環境を鋭く理解することから始めるのが有利です。毎日の割り当てを行うためにすでに利用可能なツールなどの基本的な質問をしますか?彼らとあなたができる限りの楽しみを持っています。そして、彼らが異常な振る舞いをするとき、その理由を尋ねてください。ネットでそれらの解決策を見つけてみてください。後で、おそらくあなたはしばらくの間基本的なHTMLを楽しみたいかもしれません。そして、c-sharpや他のプログラミング言語をあちこちに移動します。結局のところ、あなた自身がプログラマーとプログラミング言語の間のリンクを理解するからです。

それが役に立てば幸い

1
deepseefan

OK、それは私だけなのか、誰も彼に主な質問をしたのではないか。正確に何をしたいですか?ハードウェアでプレイしますか(つまり、シリアル/パラレル/ USBポートに接続されているボードと、LEDが点滅している、スピーカーから音が出ているなど)、Niceユーザーインターフェイスが接続されているアプリケーションを開発しますか?データベースやゲームに?

ええと、1つ目は、アセンブリ(つまりARM SOCs)とC)であり、ハードウェアプログラミングに慣れる必要があります。2つ目は、C++/Javaです。 。1つのOS(C#など)でのみサポートされている言語は推奨しません...

0
Nicolas

10本の指を使ってすばやくタイプできる機能は、筋肉をすぐに疲れさせることなく、より多くの運動を行うことができるので便利です。初めてコンピュータを使用したときは、右手の人差し指だけを使って入力しただけで、すぐに疲れました。つまり、入力は悪夢になりました。

時間がある場合は、次のトピックを順番に学習していきます。

  1. ハードウェアとソフトウェアの観点から見たコンピュータアーキテクチャ。
  2. C#(DeitelのC#ブックは、詳細情報が多いため、良い選択かもしれません)。
0
xport

C#は、始めるのに最適な場所です。私が提案することの1つは、他の人がこのスレッドで提案した参考書を使用して構築したいものですが、複雑すぎないものを考えてみることです。電卓は、作成する楽しい開始プログラムです(免責事項:私は数学オタクです)。

0
Adrian

C#は完全に無料ではなく、完全なビジュアルスタジオは非常に高価であるため、純粋にC#を選択しません。 pythonを見てください。多くの方法で適切にプログラミングする一方で、プログラミングのより厄介な側面({と;)のいくつかを省略しています。学ぶことを選択した場合、pythonシンプルなテキストベースのゲームの作成方法に関するチュートリアルを含む無料のサイトがあります。現在のプロジェクトを開始する前に、このサイトを使用して言語に慣れました。

リンク: http://pythonbook.coffeeghost.net/book1/index.html

0
Gish

Tiobe氏によると、最も使用されている言語はCとJavaです。そのため、そこから始めるべきだとほとんど思いますが、esrには、Pythonを第一言語として推奨する理由がいくつかあります。

0
Rob

広く使用されている言語から始めるのが良いでしょう。 1つの言語でいくつかの有用なプロジェクトを実行すると、ロジックが類似しているため、他のプロジェクトを選択しやすくなります。

私はあなたが今それで何をしたいかに基づいて選ぶことを勧めます。たとえば、学習中にいくつかの単純なゲームを作成することに興味があるとします(froggerまたは1943年を考えて、スコープを小さくしてください)。 PythonまたはRuby(どちらも無料のゲームライブラリが利用可能)のようなインタープリター型言語を使用して、2Dゲームをかなり迅速に作成できます。 JavaまたはCで作成し、より高度なゲーム機能に成長する余地があります。または、Objective-CおよびCocoaで作成することもできますが、Macでの開発に限定されますが、 iPhoneでゲームを配布する可能性。

ビジネスまたはファイナンスアプリケーションを実行したい場合は、C#、Visual Basic、Java、C、.NETフレームワークなどの言語(言語ではありませんが、エンタープライズソフトウェアに一般的に適用されます)に基づく多くのサポートを見つけることができます。データベースを操作するためにSQLを練習することもお勧めです(売上、顧客名、従業員レコードなどのビジネスデータが格納される可能性が高い)。

すばやく学ぶために最も重要なことは、自分が取り組んでいるプロジェクトを楽しんで、非常に興味があるということです。あなたが本当にそれを使って何もしたくないのなら、言語を学ぶのは不可能に見えるでしょう。一方、興味のあるプロジェクトにすぐに取り組み始め、自分で設定した問題を解決することに熱狂している場合、6か月で驚くほど優れたプログラマーになることができます。さらに、あなたは14歳なので、自分の仕事に収入と楽しさの両方をもたらす方向に人生とキャリアを推進することができます。

0
Rab