web-dev-qa-db-ja.com

プログラミング分野での自己学習はどのくらい重要ですか?

私は16歳です。高校を始めようとした1年ほど前にプログラミングを始めました。私はプログラミングのキャリアに行くつもりです。できるだけ多くのことを学ぶために最善を尽くしています。私が最初に始めたとき、私は本からC++の基本を学び、そこから自分で物事を学び始めました。今日、私は一年前よりもはるかに経験を積んでいます。高校ではプログラミングに関する貴重なことは何も教えられないので、自分で勉強する必要があることはわかっていました。

ここでの質問は、プログラミングを自分で学ぶことはどれほど重要なのでしょうか。

76
Bugster

それは重要です。私は、あるレベルで独学していなかった優れたプログラマーを知ったことがないと思います。大企業の採用マネージャーとしては、 個人プロジェクト と 学びたい 毎回印象的な程度で1を切り捨てます。 (両方を用意するのが最善ですが)。

大学についてのことです。コンピュータサイエンスのコースでは、テクノロジーではなく理論を教えます。ハッシュテーブルとBツリーの違いと、オペレーティングシステムの動作の基本について説明します。彼らは一般にnotコンピュータ言語、オペレーティングシステム、または浅いレベルを超えるその他の技術を教えます。

私が最初のデータ構造クラスを取ったときのことを思い出すと、「C++」と呼ばれるこの新しい言語の薄いマニュアルがあり、彼らは学習を開始することにしました。コードを作成するのに十分な時間を2週間かけて取りました。それ自体が良い教訓でした。それはあなたのキャリアが行く方法です。

あなたの学校はあなたが良い仕事を得るために必要なことをあなたに教えないでしょう。多くの場合、学校は業界の最新情報を何年もたどっています。その後、あなたは仕事を得るでしょう。どんな会社に行っても、ほぼ間違いなくあなたを訓練するための特別な努力はしません。悪い会社は安すぎるし、率直に言って良い会社は彼らが行くにつれてそれを拾うのに十分賢い人々だけを雇うでしょう。

私は1987年に大学を卒業しました。DOS、NetBIOS、および「Terminate-and-Stay-Resident」プログラムの専門知識を持つCプログラマーとして働きました。それ以来、私は実際のトレーニングはほとんどしていません。求人広告を見てください...それらのスキルをあまり必要としません!私が今日雇われることができる唯一の理由は、私がその間の年を絶えず学び続けてきたからです。エンジニアとして成功するには、習得する必要があります。地獄、私はそれを超えて行きます:あなたは学ぶことへの愛情を持っていなければなりません。あなたはWebGLまたはAndroidまたはiOSは面白そうなため、いじくる人である必要があります。そのような人であり、学習の習慣を維持している場合は、業界でこれまで。

101
Gort the Robot

独学は非常に重要です。あなたは自分の分野について知る必要があるすべてを教えるために正式な教育に頼ることはできません。ただし、そうは言っても、十分に準備され、設備の整ったキャリア分野に参入したい場合は、正式な教育も非常に重要です。

私は大学に行く途中で、過去4年間自分でソフトウェア開発を教えてきました。その結果、今ではエンタープライズアプリケーションを管理する有名な大企業で働いています。たくさんの才能は必要ありませんが、たくさんの仕事とやる気が必要です。学習に関しては、文学と実践が最善の策だと思います。特定のフィールドを選択することも重要です。すべてのフィールドで言語とロジックを実行できますが、特定のフィールドで十分な練習と理解を行うことで、本当に「素晴らしい」となることができるためです。

29
Johnny Rotten

自分で学ぶことは非常に重要です。タスクを達成するために必要な知識を研究および収集する規律があると、同じタスクを達成するために正式なトレーニングに依存している他の多くの人よりもはるかに先を行くでしょう。これは、ソフトウェア業界だけでなく、あらゆる業界に当てはまります。

誤解しないでください。正式なトレーニングや教育を受けることは役に立ちますが、スキルを向上させるためのあなた自身の動機は、より良いソフトウェア開発者に成長するのに役立ちます。学ぶべきことは常にあります:実験する新しいプラットフォームまたはプログラミング言語、実装する開発方法論、使用するツールとアルゴリズム、リストは続きます。すべてが正式なトレーニングを通じて紹介されるわけではないので、プログラミングのキャリア全体で役立つ、興味のある他のトピックやアイデアについて学ぶのはあなた次第です。

11
Bernard

プログラミングでは、自己学習は毎日行うことです。コンピュータ言語や変化し続けるツールだけでなく、多くのことを自分で学ばなければなりません。他の人が書いたコードを学ぶ必要があり、最小限の指示と監督でそれを修正する必要があります。組織によっては、実際のトレーニングを年に1回以上受けることはまれです(あるとしても!)。これができる(そして楽しめる)ことを確認してください。そうでない場合は、まだ若いうちに別のキャリアを検討してください。

6
NoChance

自己指導は、プログラマーが持つために不可欠なスキルです。あまりにも多くはありません。あなたが上手いなら、あなたはこれからのキャリアでこのスキルを使うでしょう。

4
Edward Strange

あなたは常に正式なトレーニングを受ける機会がありませんので、自習は非常に重要です。プロジェクト、インターンシップ、または仕事を探し始めたら、本当にあなたに何かを教えることができるしっかりした上級開発者がいるプロジェクトを見つけてください。正しいことを行う環境にいることは、高品質のコードへの明白なルートになる可能性があります。

3
JeffO

仕事以外で自分のプロジェクトを持っていなかった人を考慮しない、私が働いた場所がいくつかあったことがわかります。仕事に出向いて小切手を集める以上のプログラミングへの愛情を示しています。私はここで外に出てこれを言うつもりです:プログラムをするのが好きではないすべてのプログラマーは仕事に夢中です。さらに悪いことに、参加できるチームに追加するものは何もありません。

私は、動きを経験している3人の中間レベルの開発者の空き時間に彼がコードをいじるのが大好きな未経験のジュニア開発者を連れて行きます。そのジュニア開発者はいつかすばらしいでしょう彼らよりも決して良くなることはありません。

あなたが新しいことを学んでいないのなら、あなたはただ知っていることを忘れて座っているだけです。

3
blesh

才能は過大評価されています。

特定の分野で大きくなるには、少なくとも10年の練習が必要です。したがって、早期に開始することが重要です。

人生の早い段階から好きなことをしているという事実は、すでに一歩先を行っています。ですから、あなたが作業する領域について考え直しているのでなければ、止まらないでください...止まらないでください!

自己学習は、特定の開発者にとって最高のスキルの1つであり、2番目は大学の学位であると考えています。大学で学位をとることは重要です。それだけでは知識を向上させることができないため、自分で集めることはできないでしょう。このルールには確かに例外がありますが、それだけです。例外。

また、早期に経験を積むほど、大学を楽しむことができ、提示された新しい概念をよりよく吸収することができます。最初はとても簡単で無意味ですが、すぐにチャレンジングな気持ちになり、もっと学びたいと思うでしょう。

大学を卒業した後は、最高の機能の1つになるので、学習を止めないでください。 「才能は過大評価されている」を読むことをお勧めします。その本に関するこの簡単な記事をご覧ください。

http://www.devlounge.net/strategy/the-talent-myth

2
Alex

私が考えることができるほとんどすべての他のフィールドと比較して、プログラミングは基本的に自己教育についてのallです。正式なコンピュータサイエンス/ソフトウェアエンジニアリング教育は有用ですが、実際にコーディングを学ぶ場所ではありません。

あなたが本当にすべきことは、単にプロジェクトに取り掛かることです:あなたが存在したいものを構築してください。そして、オープンソースプロジェクトに参加して、さらに改善したいことに取り組みます。その後、学習は無料で行われます...

2
Steve Bennett

あなたは自分で新しいことを学ぶ必要があります-あなたの好奇心があなたを連れて行きます。

正式な教育を受ける-正式な教育で学んだことの90%は職場では使用されません。しかし、使用されている10%は、その時点ではまったく役に立たないと思っていた奇妙で曖昧なものになります。

正式な教育がなければ、「分からないことは分からない」と最もよく説明される問題に苦しみます。正式な教育はあなたが外出してそれをすべて使用することは決してないという完全な知識の多くの事柄の幅広い広い広い範囲をあなたに与えます。何を使用するかは、必要になるまでわからないため、準備がすべてであり、どこを見ればよいかがわかります。

自己学習/好奇心主導のものが、あなたをはるかに知識が豊富でバランスのとれた人にします。雇用者にとってより貴重なことは言うまでもありません。

サイドノート:私はキャリア全体を費やしてきました。15歳(25年以上... 30年近く)のプログラミングを始めて以来、大学の教育を除いて、ほとんどのトレーニングコース(知っている... 3フルタイム日)はほとんど役に立ちません。これらは一般に表面的なものであり、大々的に宣伝されている "スキルを維持する"マントラに関する限り、深い技術的詳細に入る必要がある人にはあまり役立ちません。本を購入し、インターネットを使用して、数学/物理学/建築/私を有用で価値のあるものにしているものは何でも調べます。ある段階で、私は特定の主題に関する特定の専門知識を持つ世界の約10人の1人でした-その知識はすべて、自己学習と実地学習によって得られました。

学習を停止する唯一の時間は、松ぼっくりに6フィート下にいるときです。

2
quickly_now

それについての良いたとえがあります:

ブリティッシュコロンビアで開催される年次世界選手権。ファイナリストはカナダ人とノルウェー人でした。

彼らの仕事は次のとおりでした。それらのそれぞれが森の特定の部分。優勝者は、午前8時から午後4時まで最大数の木を倒すことができた者です。

8時にホイッスルが鳴り、2人の木こりがポジションを取りました。彼らは木の後ろに木を切り倒しましたが、カナダ人はノルウェー人が止まることを聞いていませんでした。これが彼のチャンスであることを知って、カナダ人は彼の努力を倍増させました。

カナダの9時に、ノルウェー人は再び仕事に出かけたと聞きました。また、10人から10人のカナダ人がノルウェー人が再び立ち止まったことを聞いたとき、彼らはほぼ同時に働きました。そして再び、カナダ人は敵の弱点を利用することを望んで仕事に行きました。

ノルウェー語の10時に仕事に再び入ります。 10分から11時まで、彼は一時的に中断されませんでした。歓喜の高まりとともに、カナダ人は同じリズムで働き続け、すでに勝利の匂いを感じました。

それは一日続きました。ノルウェー人の1時間ごとに10分間滞在し、カナダ人は働き続けました。コンテストの終了について聞くと、午後の4時に、カナダ人は賞金がポケットにあることを確信していました。

彼が負けたことを知って驚いた様子を想像できます。

  • どうしてこうなりました? -彼はノルウェー人に尋ねました。 -1時間ごとに、10分間止まると聞きました。くそー、あなたは私よりも多くの木を切ることができましたか?それは無理だ。

  • 実際、すべてが非常に簡単です-ちょうどノルウェー語。 -毎時、私は10分間止まりました。そして、あなたが木を切り続けている間、私は私の斧を研いでいました。

ですから、常にax sharpを維持するために勉強する必要があります。

2
webvitaly
  • それは重要です、さもなければあなたは遅れます

  • 私は毎日、仕事で、ここで、本を読んだり、質問をしたり、質問に答えたりすることで学びます。学べば学ぶほど、自分がほとんど知らないことがわかります。

1
CodeART

自己学習は、次の2つの理由で非常に重要です。

  • あなたの勉強の後:他の答えですでに述べたように、自己学習はあなたが開発者としてあなたの日常生活で行うことです。あなたはすべてを知ることはできず、企業はこれを知っています。あなたが知っておくべきことはあなた自身を改善する方法です。最高の開発者は、自分で新しい言語や新しいテクノロジーをすばやく習得することができます。
  • あなたの勉強中:大学のコースがあなたに教えるものとあなたの仕事が何であるかの現実との間の距離は巨大です。具体的には、メンテナンスとメンテナンス性について話しています。開発者の仕事の本質的な部分は、レガシーコードの保守(バグ修正、改善、機能の追加など)にあります。あなたは 読むことができます詳細については、真新しいソフトウェアの作成は、一般的にほとんどのプログラミングジョブの主要な部分ですか? .
    レガシーコードを維持することが不可欠であるため、保守可能なコードを自分で作成する必要もあり、これは正式なレッスンではほとんど教えられません( を参照してください)保守性に関する学生のトレーニングを改善する方法は? )。自己学習を練習せず、勉強中にたくさん読んだら、平均よりも優れた開発者になるために必要なスキルを身につけることはほとんどありません。
    学習中は多くの言語/テクノロジーを学ぼうとせず、適切な実践とクリーンなコーディングを学んでください。たとえば、学習中はRobert C. Martinの "Clean Code"をHerbert Schildtの "Java The Complete Reference"より読むほうがよいでしょう。
1
Matthias Jouan