回答:
自己教育は良いだけでなく、平均以上の開発者になりたい場合には不可欠です。
あなたの職業上達の責任者はあなただけです。確かに、正式な教育、トレーニングコースなどが役立ちますが、結局のところ、それはあなたのキャリアです。
非常に優れた教育の恩恵を受けることができて幸運であり、あらゆる種類の方法で私の学習をサポートしてくれた優秀な雇用主がいました。しかし、私がプログラミングについて学んだことの大部分は、たくさん読んでもっと練習することによって自分自身を取り戻しました。
一般的に、知識が多くなればなるほど、より多くの自己学習が自分自身に物事を教えるための唯一の効率的な方法になります。
キックスタートとして始めたばかりのコースは素晴らしいですが、その後、コースが最も遅い参加者のペースで移動するため、教室に座っている数日間のリターンが減少します。合理的なレベルの経験が得られると、それはほとんど決して不可能ではないので、常に時間を浪費することになります。
一方、自己学習では、自分のペースを調整できます。すぐに何かを手に入れたなら、それを理解することができます。トピックが無関係であると思われる場合は、無視できます。
私が学んだことは何ですか?HTML、ASP、VB.NET、JavaScript、LotusScript、Pythonの少し、Javaのゼロから学んだことに関して。
しかし、実際には、ほとんどすべての有用なものが仕事で独学されています。コースの基本を学習することもできますが、実際に学習するのはそれを使用することなので、私が知っていることの95%(それ以上ではないにしても)は独学です。
.NET、C#、ASP.NET、およびASP.NET MVCを自分で習得しました。
誰かが私に教えようとしていたわけではありません。
自己教育はプログラマー学習の中心です。大学、同僚、彼らはあなたがそれらを必要とするときにあなたにヒントやヒントを提供しますが、あなた自身でより大きな部分を学ぶ必要があります。本、ブログ、記事、ドキュメント、あなたの個人的な時間の実験、それがあなたが学ぶ方法です。
自己学習にはいくつかの側面があります。最初はもちろん、知識を求めてそれを実用化する独立した学習です。これは、いくつかの本を購入し、オープンソースコードを勉強し、午前中の数時間まで(通常)上記のすべてを試すことを意味します。
ただし、ある時点で、警告、難しいトピック、ベストプラクティス、および強固なエンジニアリングの原則をガイドするために、1人または複数の指導者が必要になります。効率的な自己学習者は、はるかに早く、後でよりこれらの指導者を求めて、できるだけ多くの経験豊富な人としての目の前で彼/彼女のコードを取得します。
私はクラスを取らずにBASIC、Pascal、C、PHP、初歩的なx86アセンブリを学びましたが、だからといって必要なときに呼び出す先生がいなかったわけではありません。だから、フリー/オープンソースコミュニティで見つけたメンターからかなりの量を学んだという事実を考えると、私は自分自身で、または自分で何かを学んだと言うのは難しいでしょう。
この学習方法は、プログラミングの研究をはるかに超えて、私のために働く唯一の方法です。
主題に関するランダムなとりとめのいくつか...
他のすべての人が言ったように、あなたはあなたのキャリアが進むにつれて多くの自習をしなければならないでしょう。ここで詳しく説明していないのは、関連する分野、特に不況での正式な教育を受けずに最初の仕事を見つけるのが非常に難しいことです。多くの履歴書が「フィルタリングデスク」を通過します。それに関連する教育があるものが何もない場合は、通過する可能性があります。多くの関連する経験がある場合は、きしむかもしれませんが、それは誰かが履歴書をどれだけ注意深く読んでいるかに依存します(最初のラウンドでは、残念ながらそうではありません)。これがあなたに当てはまるかどうかは不明ですが、誰かに当てはまると思います。
(やや)無関係なノートでは、自習は素晴らしいですが、そうする時間を持つことはさらに大きいです(そしてもっとまれに、私は主張します)。私たち全員が何らかの形でそれに適合しますが、何かを学ぶために毎日時間を割く機会が与えられたら、それをつかみ、頑張ってください。
私はクラスでほとんどのC / C ++知識を学びましたが、他のプログラミング言語、理論、プロジェクト管理、そして私が独学で学んだハッカーとなる多くの知識をすべて学びました。
他の人が言ったように、私たちの業界での独学は良いだけでなく、必要です。これは配管工やパンを焼くようなものではありません。技術は常に進化しており、私たちはそれに合わせて移動するか、無関係になる必要があります。
質問する価値があります:これの意味は何ですか?最高のハッカーは、コードを吐き出すコードモンキーだけではありません。私たちは時間をかけて大局的なことを学びます。アルゴリズム、複雑さ、言語設計などは私たちにとどまり、自分がどの言語を使用しているのか、またはそれを使用しているのが何であるかに関係なく、私たちに十分に役立ちます。この種のハッカーは、テクノロジー業界のある部分からまったく別の部分に楽にジャンプするのを見てきました。
「全体像」の概念は学者を除くすべての人の頭上にあると思う人が多すぎるため、私は強く同意しません。時間をかけてそれらを学習すると、優れたコーダーによって既に直感的に実践されているものもあることに気付くでしょう。それらに慣れたら、残りは理にかなっています。
何度も何度も正式なトレーニングをサポートしてくれる寛大な支援者がいない限り、自己教育が必要です。クラスルームの外で自分で多くのことを学ばなければなりませんでした。
ASPとASP.Netは、仕事で学ばなければならなかったもので、新しいサイトでこれらを使用して書き直したかったので、教室ではなく自分で拾わなければなりませんでした。
IISとMS-SQL Serverは、必要に応じて私が学んだもう2つのことなので、ここで独学したと思います。同僚がいて、本当に頭がおかしくなったら質問に答えてくれましたが、これは私のキャリアの初期の頃のことです。
AJAXは、ほんの数年前にフレームワークを研究し、Microsoft ASP.Net AJAXが起動する直前に作業した場所にそれを持ち込もうとする仕事で学んだことです。
同時に、誰もがこのようにすべてをやりたいとは限らないため、独学だけを行うのは危険です。一部の人々にとって、彼らはより多くの構造を望み、何かを学ぶことを通して自分の道を運転するのにそれほど独立していないかもしれません。
@Kramiiは正しいです。プログラマーはキャリアを通じて独学する必要があります
Q:自分で何を学んだか?
教育は神話です。教師は情報を利用できるようにするだけで、生徒は耳を傾けて学習するかどうか、何を学ぶかを決めなければなりません。先生はあなたに道しか見せることができません。言い換えれば、すべての教育は基本的に独学です
「役に立つ教室の外で何を学んだ」という意味なら、私の答えは
私が学校にいたとき、大学は一般に彼らが教えたことで市場から12-15年遅れていたからです。たとえば、日中は大学がPL / 1を使用して手続き型プログラミングを「教えて」いて、夜はAssemblyでオブジェクト指向プログラミング言語を書いていました。
それ以来、本とグーグルは私の先生です。
明らかに、すべての答えは、自己教育がすべてであることに同意します。私はそれが完全に正しいとは思わない。優れた教師はあなたに多くを教えることができ、特に速く教えることができます。明らかにある時点で、あなたは自分の手に問題を持ち込み、研究し、読み、試し始めなければなりません。本でさえ誰か(教師)によって書かれ、あなたに何かを教えようとします。その同じ人が部屋に立って、検索で時間を無駄にする代わりに、すべての質問に答えることができます。一方、頭を壁に突き当てて叩くと、学んだ教訓は非常に価値があり、忘れられないでしょう。
特に新しい科目で始めるには、良い先生がとても助かります。そして、独学に非常に熱心な人は、ウィキペディア、スタックオーバーフロー、本、ブログなしで独学するべきです;-)