私はしばらくの間プログラミングに興味を持っていて、何年にもわたってゆっくり、ゆっくり、ゆっくりと物事に取り組んできました。しかし、あまり学んだ気がしません。
私は本当に馴染みのある言語(Java、C#、そしてPHPを少し試しました)にこだわっています。問題は、それらの言語では、私はそれらの表面をブラッシングしただけで、かなり単純なことをすることに自分自身を制限しているということです。
たとえば、Javaプロジェクトとして、いくつかのゲームのソースコードをダウンロードし、いくつかの変更を好みに合わせて変更しましたが、それほど難しいことはありません。C#では、いくつか作成しました。 WinFormとコンソールプロジェクトは、私のために繰り返しまたは日常的なタスクを実行します。これは素晴らしいことですが、それほど複雑なことはありません。
クラス、マルチスレッド、および最新のオブジェクト指向プログラミングに必要ないくつかの基本的で不可欠なツールの概念を理解し始めたばかりです。 (「すべてを1つのモンスターサイズのクラスにまとめることができないのはなぜですか?」「なぜすべてを1つのスレッドで実行できないのですか?」という質問は、私が以前疑問に思っていたものです)
私は自分で大きなプロジェクトを作ったことがありません。最終的に、私の一種の「夢の」趣味のプロジェクトは、DirectXテクノロジを使用してゲームを作成したいということです。 XNAを使用したことがあるので、実行するにはフレームワークをインストールする必要があります。また、フレームワークを使用すると、バックエンドの作業の多くがわかりにくくなっていると感じます。 (DirectXまたはOpenGLは、複雑さを超えずに取得できる限りマシンに近いようです。DirectXは、ゲームの実行を計画しているほとんどの[すべてではないにしても] Windowsマシンにもインストールされます。)
しかし、私はそれを始めることさえ考え始めていません。タスクを実行するために私が知る必要があることの量は絶対に圧倒的です。どこから始めればいいのかわからない。同様に、私は自分自身を[私が見ているもの]簡単な言語に制限しているので、不十分だと感じています。スクリプト言語を学び始めたり、これを学んだり、学んだりする必要があると感じています。これは非常に困難です。
-
tl; dr:私はしばらくの間ゆっくりと自分自身にプログラムを教えてきましたが、知識を限られた言語に制限し、自分にできることのほんの一部にすぎませんでした。もっと学びたいし、まともなサイズのプロジェクトを始めたいと思っています(テキストベースのRPGと計算機はたくさんしか作れません)が、必要な膨大な量の知識は非常に恐ろしいものです。
私の懸念の1つは、プログラミング言語全般についてほとんど知らないということです。複数の言語を学ぶのが良いですか、それとも単一の言語を深く掘り下げることができるのが良いですか?
どうすればもっと学ぶように自分をやる気にさせることができますか?
私はこれを間違った方法で考えていますか?
私の懸念の1つは、プログラミング言語全般についてほとんど知らないということです。複数の言語を学ぶのが良いですか、それとも単一の言語を深く掘り下げることができるのが良いですか?
私はあなたの質問の多くを説明できるかどうかわかりませんが、この特定の行は私が提供するものがあるものとして私を驚かせました...
いくつかの異なる言語で実験することにはいくつかのメリットがありますが、私が見つけたのは(そして、これを実際に見るのに約6年かかりました)、プログラミングはプログラミングであり、言語は単なる構文であるということです。基本は言語間で同じになり、プログラミングが長ければ長いほど、ほとんどすぐに新しい言語を(少なくとも基本的な習熟度まで)習得できることがわかります。そのため、いくつかの言語を浅く理解しようとするよりも、1つの言語を深く掘り下げて技術を学ぶ方がよいと思います。
自分自身をより深くするように動機付ける方法について、「別のテキストベースのRPGまたは計算機」についてのあなたのコメントはこれを思い出させます:私が通常最もよく学ぶ方法はプロジェクトを念頭に置くことです。私が始めたとき、それが私の現在の能力を超えていることを知っています、そして私が今までやったことのないコンポーネントがそこにあることを知っています、そして私はそれらをどこから始めるべきかさえ知らないことを知っています。しかし、それらはプロジェクトの定義された部分であるため、私は学ぶために研究をしなければなりません。そうすれば、「これが私がすでに持っているツールです。それらを使ってどのような新しいものを作ることができますか?」ではなく、「これが私が作りたいものです。どうすればそこにたどり着くことができますか?」
あなたは全体像に圧倒されていると思います。一度にすべてを学ぼうとしないでください。
あなたが学んでいるのと同時に戦争と平和を読んでいただけませんかマーヴィンK.ムーニー =?
小さなタスクを選び、選択した言語でそれを行う方法を学びます。次に、それを強化します。次に、それを強化します。
すべてのプログラミングは1.)ゲームプログラミングまたは2.)お気に入りの政府機関へのハッキング(高校のキャリアデーで話すときに私が受ける主な質問)のいずれかであるという認識にもかかわらず、プログラミングのほとんどは必ずしもそうではありませんグラマラス。
それに成長します。
他の人が言ったように、赤ちゃんの一歩を踏み出します。そうすれば、あなたはより速く進歩します。
また、インスピレーションが必要です。私はそれを
アイザック・アシモフ、「われはロボット」
マービンミンスキー、「計算:有限および無限の機械」
私は自分自身に3つの質問をします:
本当にやる気を起こさせ、他の人々のコードから学ぶことができるようにするには、いくつかのオープンソースを見始めることができます。知識が限られていると、貢献できると感じるまでにしばらく時間がかかるかもしれませんが、実際の問題を解決することができ、実際にそれを使用している人々がいるのは楽しいことです。