プロのフルタイムプログラマは、自分の仕事から継続的に学習することで素晴らしい仕事をすることができます。アマチュアプログラマーはどのようにして優れたプログラマーになるために訓練できますか?
**音楽を演奏したり歌ったりするのが好きな人は、それがあなたの趣味であり、あなたが興味を持っているので、それを行うことができます。しかし、プロの歌手になる必要も、生計のために歌う必要もありません。これはプログラマにも当てはまりますか?有名なアマチュアプログラマーはいますか?
プロのフルタイムプログラマは、自分の仕事から継続的に学習することで素晴らしい仕事をすることができます。アマチュアプログラマーはどのようにして優れたプログラマーになるために訓練できますか?
**音楽を演奏したり歌ったりするのが好きな人は、それがあなたの趣味であり、あなたが興味を持っているので、それを行うことができます。しかし、プロの歌手になる必要も、生計のために歌う必要もありません。これはプログラマにも当てはまりますか?有名なアマチュアプログラマーはいますか?
回答:
本当に良くなるための鍵は、良いチームで働くことです。多くのアマチュアは一人で働いているので、彼らはそこまでしか行けません。チームでは、他の人から学び、他の人が他の便利なものであなたを攻撃するので、あなたは規律になります。
そのため、オープンソースプロジェクトなどのチームに参加するか、友人と趣味のプロジェクトを作成することを提案します。
プログラミングが得意になる道は、歌を歌ったり音楽を演奏したりするのと同じです。練習、練習、練習です。定期的にソフトウェアを開発するのに十分な時間を数年間費やしている場合、それが得意になる可能性があります-勤務時間内であろうと勤務時間外であろうと。
今、練習にもっと時間を費やすこととは別に、プロが特定の意味で(音楽だけでなくプログラミングでも)アマチュアよりも良くなる別の理由があります。あなたがプロなら、あなたは必ずしも好きではないが、ソフトウェア開発のより広い仕事に属するタスクをしなければなりません(例えば、テスト、顧客との議論、ドキュメントの作成、開発/ビルド環境のセットアップ、ビルドスクリプトの作成など) )。そして、時々あなたは、新しい言語やプラットフォームを学ぶために、なじみのない領域に足を踏み入れることも求められます。アマチュアとして、あなたはあなたがしたくないことをすることを強制されません。それはあなたがあなたの人生の大部分の間あなたの快適ゾーン内にとどまることを可能にします。言い換えれば、最も好きな1つまたはいくつかの特定の領域に簡単に制限される可能性があります。
OTOH多くのプロの開発者もこれに該当し、同じ会社に何十年も新しいことをほとんど学ばずに同じルーチンの仕事を続けています。だから良くなるための鍵はあなたの態度です。学習を続け、意識的に快適な領域から新しい、なじみのない領域に移動する機会を探すと、ゆっくりと化石化する「専門家」の群れを最終的に上回るでしょう。これへの良い方法は、いくつかのオープンソースプロジェクトに貢献することです。
推奨される読み物はThe Pragmatic Programmer:JourneymanからMasterまでで、どのように改善し続けるかについての非常に実用的なアドバイスがたくさんあります。
しかし、アマチュアプログラマにとって、優れたプログラマになるためのトレーニングはどうすればよいでしょうか?
学習することで良くなります。学習は、一部が実行され、一部が実行されたことを反映します。
基本的に、趣味とプロの間に違いはありませんが、「落とし穴」は少し異なります。
アマチュアの落とし穴は、私見です
あなたがプロジェクトを終了する必要性は、どんなに関係なく、あなたがプロでないときほど強くありません。これは良いことです。なぜなら、品質に関してはコーナーをカットするのに慣れていないからです。しかし、仕上げは(時間通りにさらに良いです)アマチュアとして訓練するのが難しい非常に重要なスキルです。プロジェクトを終了させて別のプロジェクトを開始するだけで簡単だからです。
うまくコミュニケーションをとる必要性はそれほど強くありません。プロのプロジェクトでは、顧客が問題を解決したいという1つのまとまった文章を完全に作成できない場合でも、顧客を本当に理解しようとする強い動機があります。あなたがそれらを誤解している場合、または(通常の場合)あなたが理解する必要があることについて彼らが話していないことに気付かない場合、遅かれ早かれあなたの問題になります。アマチュアプロジェクトは、問題を解決しないため、潜在的なユーザーをすべて簡単に失い、技術的な方法で「完成」する可能性があります。
プロの落とし穴は
良くなるための動機はほとんどありません。がんの治療法を見つけたとしても、生産的に見える方法でコーヒーを飲むだけでも、週40時間です。学習は主に自分自身のために行うことであり、学習したことを適用しようとすると、しばしばそれに対して働く力があります(保守的なグループ思考、階層、スタイルガイドさえも改善に対する武器として使用できます)。仕事を辞めたり、時間をハックしたり、人生の別の目的を探したりするだけでなく、専門職には多くの愛が必要です。
から学ぶことはほとんどありません。はい、すべてを挑戦とみなすことができますが、正直に言う必要があります。1年のスパゲッティコードの後、あなたはより長い年月の言語でリファクタリングすることができません(「あなたはそれを複雑にしている!」)おそらくそれが長続きするよりも経験が豊富であり、唯一のことは、フラストレーションと企業政治に対する耐性を構築することです。
音楽を演奏する、または歌う場合、興味を持って演奏することができ、優れた歌手または音楽プレーヤーになることができますが、プロの歌手になる必要はなく、生活のために歌を歌う必要もありません。
もちろん必要はありませんが、実際に仕事を辞めて音楽でお金を稼ぐ機会を断るミュージシャンは何人ですか?
ITでは、これらの機会は音楽よりももう少し可能性が高いので、有名なアマチュアになることは不可能ではないと思いますが、多くの場合、アマチュアは情熱を仕事にします(ミュージシャンがする必要があるときに同様の問題を抱えています)商業と芸術の境界線を把握する)
フルタイムの企業向けドローンよりもアマチュア向けの学習の方が多くの可能性があると思います。アマチュアとして、あなたは与えられた技術、環境、設計、開発方法論に制限されていません。自分の成長に役立つと思うことは何でもできます。フルタイムの開発者として、同じ企業ガイドラインによって制限された同じルーチンに従って、同じ製品に何年も取り組んでいる可能性があります。私たちのほとんどにとって、それは停滞に他なりません。共通の基本に慣れれば、企業環境から少し学ぶことができます。
多くのフルタイムの開発者もアマチュアであり、仕事の後もコーディングを続け、独自のおもちゃプロジェクトで遊んでいるのはこのためです-成長には少しの自由が必要です。
アマチュアプログラマーとして、最近はスキルを向上させる可能性がたくさんあります。ソフトウェアエンジニアリングを勉強しながら、スキルを向上させるために次のことを行いました。
もちろん、知識を適用する必要もあります。これは、インターンシップ、友人とのプロジェクト、または学習コースを通じて行います。あなた自身を改善する多くの方法があります、あなたはただあなたの自由な時間を投資する用意があります。また、新しいことを楽しく学んでください!
アマチュアが優秀なプログラマーになることは可能ですか?
はい、可能ですが、時間がかかります。
チェス、音楽作曲、電信操作、絵画、ピアノ演奏、水泳、テニス、神経心理学とトポロジーの研究など、さまざまな分野の専門知識を開発するには約10年かかります。重要なのは審議の練習です。何度も何度もやり直すだけでなく、現在の能力を超えたタスクに挑戦し、それを試し、その実行中および実行後のパフォーマンスを分析し、間違いを修正します。繰り返します。繰り返します。
アマチュアプログラマーはどのようにして優れたプログラマーになるために訓練できますか?
再び同じソースから:
アマチュアとして、あなたは多くの専門家よりもより良い実践を模索するより多くの選択肢があります。専門家はしばしば「ただそれを成し遂げる」というプレッシャーにさらされています。
私はプログラミングを学んだようなコースを見たことはありませんが、私が参加していた大学が提示した短い(1〜3時間)無料コースから学びました。それらは、ビジネスの人々が彼らのために書かれているコードを理解できるようにすることを目的としていました。コースは、よくある実際の問題を解決する非常によく書かれたコード(コメントを含む)を提示しました。次に、言語機能の説明と、それらがどこで使用されているのかを説明して、コードをレビューしました。私が見た完全な言語コースはどれも、そのコースから学んだことの質に近いコードをもたらしません。コンピューターサイエンスの勉強に切り替えるまでに数年かかりました。
インターネットとライブラリには、多くのリソースと例が用意されています。多くの例は、それを成し遂げる以外にはあまり良くないことがわかります。例を見るときは、最初にコードを見てください。説明なしで目的と構造を理解できますか?もしそうなら、あなたは良い例を見つけたかもしれません。
学習して適用する必要があるいくつかの重要なプラクティス:
音楽を演奏したり歌うのが好きなら、それはあなたの趣味であり、あなたが興味を持っているので、あなたはそれをすることができ、あなたは良い歌手または音楽プレーヤーになることができます。しかし、プロの歌手になる必要も、生計のために歌う必要もありません。これはプログラマにも当てはまりますか?有名なアマチュアプログラマーはいますか?
どういたしまして。それはソフトウェア工学です。それは「自然の才能」に基づいていません。優れたプログラマーであることは、長年の教育と長年の経験に基づいています。実際のプロジェクトでのみ機能するようになります。
出来ますか?はい。ただし、プログラミングに費やす時間が長くなるほど、それを上手くやらなければなりません。技術的なスキルで専門知識を開発するには、10年/ 10万時間の審議練習が必要であると言われています。これは、快適ゾーンで同じ種類のコーディングを行う(たとえば、異なるWebサイト用の単純なjQueryコードを作成する)1万時間ではなく、プログラミングについての学習/読み取り/ソースコードの読み取り/ソースコードの書き込み/他の言語の学習の10000時間です/他人との共同作業など
そのレベルの時間をそれに費やすつもりなら、プログラマーとしての仕事を得て、アマチュアの地位を落とすかもしれません。(あなたが独立して裕福でない限り)。
与えられた本当の言葉の本来の意味(フランスのアマチュア「の恋人」、古フランス語から、最終的にはラテン語からamatorem NOM。amator、「恋人」 -ウィキペディア)、一つは専門家の多くもアマチュアであることを信じているしたいと思います。あなたがあなたの工芸品を愛していないなら、あなたはそれを練習するでしょうか?
もちろん、それは可能です-プログラミングが好きなら、それを実践し、時間が経つにつれて、あなたはそれを上手になります。(個人的な才能やその不足を考えれば、決して素晴らしいことではないかもしれません)、しかし少なくとも良い
優れたプログラマーを定義するものではありません。しかし、自分で何かを学び、人々のグループと協力することは、何か違うものです。熱心なアマチュアプログラマーは、新しいことを学びハッキングすることに本当に夢中です。彼らは物事をより面白く感じました。しかし、人々のグループと協力することは、その分野の専門家からの情報の共同作業、コミュニケーション、共有/獲得を行う規律ある行為です。
しかし、知識を得ることは情熱の問題にすぎません。夜中に物事を学び、最終的にビル・G・マーク・ザックなどの世界に新しいものを持ち込むことになった人々がいます。簡単に比較することはできません。しかし、より優れたソフトウェアエンジニアになりたい場合(プログラマーとは呼びません)、会社に参加したり、他の人が使用する優れた製品で働いたりします。
最後に、あなたのスキル、態度、業界の最新情報を改善し、好みを開発し、情熱を持って進むためにたくさん読んでください。物事は簡単にあなたをフォローします!
質問に対して、「アマチュアプログラマは有名になりましたか?」答えは「はい、ほとんどの人はそのままではありませんでした」です。私が考えることができる最も有名な例は、彼の最も重要な仕事のいくつかを大学で無給である間(私は信じています)(アマチュアは定義により無給を意味します)ロイ・フィールディングです。
専門家としての質を保つための秘trickは、メンターまたはメンターのセット(オープンソースプロジェクトのチームなど)を持ち、そのトピックに真剣に取り組むことです。元プロのミュージシャンとして、私の経験では、これらの両方がプロとしてもアマチュアとしても優れている必要があります。一部は本で学ぶことができますが、一貫した外部の批判がなければ、初心者として習得された悪い習慣を乗り越えることは非常に困難になります。
とはいえ、プログラマーの場合、ミュージシャンのそれよりもかなり簡単に学ぶことができます。ミュージシャンとして、あなたの教育的エラーを見るのはミュージシャンとして見るよりもはるかに難しいのが私の経験でした動作しません。一方、優れた開発者になるには、かなりの時間投資が必要です。
他のことと同じように、何かを上手くやる最良の方法は、あなたが良くなりたいと思う環境に没頭し、あなたに寛容で教えてくれるあなたよりもはるかに優れた人々に身を包むことです。簡単ではありませんが、それが私が見つけたのは、最速のものを上手に学ぶための最良の方法です。
しかし、本当に才能のあるプログラマーになると、あなたはそれだけで、才能がなければなりません。あなたが自然な才能のあるバイオリン奏者でなければ、どんなに頑張っても、どんな楽器を買っても、あなたはマスターほど優秀になることはありません。同様に、プログラマーを本当に天才にするような才能がなければ、決して彼らになることはありません。