私は暇なときにプログラムしません。それは私を悪い開発者にしますか?


387

Web上の多くのブログとアドバイスは、優れた開発者になるためには、あなたの日々の仕事だけでは十分ではないことを示唆しているようです。たとえば、空き時間にオープンソースプロジェクトに貢献したり、スマートフォンアプリを作成したりする必要があります。実際、このアドバイスの多くは、1日中それを行うのに十分なプログラミングが好きでなければ、おそらく間違ったキャリアで。

それは私には当てはまりません。私は仕事を楽しんでいますが、オフィスから家に帰るとき、私はすぐにコンピューターに戻って就寝前にコーディングを開始する気分ではありません。毎日一定の時間しか空いていないので、他の趣味に費やしたり、友人と会ったり、コンピューターの前よりも外に出たりします。

私はプログラミングから飛び出し、時々仕事以外でハックします。私は自分の成長に専念し、学習を続け、より良くなる方法として、技術ブログや本を読むことに時間を費やしています。しかし、それは、コーディングに余暇をすべて使いたいという限りではありません。

これは、私が「本当の」ソフトウェア開発者ではないことを意味しますか?仕事以外で余分なことをすることなく、優れたソフトウェア開発者になることは可能ですか?あなたの意見を聞いてとても興味があります。

更新:コメントと回答をありがとう。たくさんの良い考えとアドバイス!


133
私はあなたをより普通にすると思います、おそらくあなたは私たちのオタクが「現実の生活」と呼ぶものともっとつながりを持つでしょう。 その値。
11

146
@Orblingあなたが話しているこの「現実の生活」とは何ですか?WoWに似ていますか?64ビットOSで実行されますか?
biziclop

18
@biziclop-優れたグラフィックスとゲームプレイを備えたWOWのように、退屈です。
ChaosPandion

39
@ChaosPandion:クエストはr / lを吸い込み、長く、鈍く、そして戦利品は間違いなく叙事詩ではありません。
11

4
効率を上げるために、新しいことに挑戦し、仕事をすることになっているときに個人的なプロジェクトに取り組むことをお勧めします。そうすれば、あなたはまだあなたの限られた自由時間を持っています。:-)
Carson63000

回答:


446

IMOこの態度は、ひどい、魂を吸う仕事をしている人と、小便の少ない時間管理スキルを組み合わせたものです。基本的に1日中Webフォームを入力している場合は、外に出てもっとやりがいのある仕事に就くか、自分で始めましょう。

つまりね。コンサートミュージシャン(チェリスト/ピアニスト/何でも)は、1日最大6時間練習します。ほとんどの場合、1日に数時間しか練習しません。最高レベルで

あなたがより多くを学ぶので、人々はプログラムをもっと言います、しかしそれは煙幕です。1日8時間で十分です。

進捗は直線的ではありません。対数です:

ここに画像の説明を入力してください

ミュージシャンが3時間以上練習する唯一の理由は、それらの時間が与える余分な1%を絞り出す必要があるからです。それがあなたに当てはまると思うなら、CSが20年前に解決した問題を解決すると、あなたは起動するプリマドンナ複合体を持っています。

私は以前に圧力鍋会社で働いたことがあり、私を信頼して、彼らがやる実際の仕事量は仕事量に制約を課す37signalsのような会社よりも良くありません:http : //37signals.com / svn / posts / 996-why-i-love-working-with-family-people

最終的に起こるのは、確かに、コンピューターの前に10〜12時間、さらに2時間オフィスにいる可能性がありますが、これには、90分の昼食、ディスカッションの閲覧に費やした2時間は含まれていません。フォーラム、オフィスで行われている多くのゲーム(フーズボール、プール、ヤダなど)の1つをプレイする必要がありました。

そのグラフを振り返ってください。今私に戻って。

あなたの心は、実際には、他のアクティビティに参加することでさらに拡大する機会があります楽器を演奏することを学んでください外国語を学ぶ。より良いまだ出て、いくつかの運動を取得し、実際の生きている人々と接続します。

生産性の対数的性質について:

有名な1993年の若いバイオリニストの研究で、パフォーマンス研究者のアンダース・エリクソンは、最高のものはすべて同じ方法で練習されていることを発見しました。エリクソンは、他のミュージシャン、アスリート、チェスプレーヤー、ライターの間で同じパターンを見つけました。

真の生産性を実現するために、より少ないものがより多くのことを実現

これは実際にはビジネスの世界でよく知られている原則であり、多くのプログラマーがそれを聞いていないことに驚いています。

更新:エリクソンの研究の詳細。

習熟するのに10,000時間/ 10年かかるという考え全体は、実際にはMalcom Gladwellからではなく、エリクソンによって行われた研究から来ています。

誰もが知っているように、1年の経験を10回繰り返すことができます...ですから、10年間席に座っているだけでは資格がありません。何の資格は、エリクソンが呼ぶものである意図的な練習

彼は、この原則が陸上競技、音楽、執筆、チェス、数学に当てはまることを発見しました。彼はさらに、意図的な練習は非常に努力的であると定義しており、たとえ最高レベルであっても、1日あたり約4時間しか出せません。そうしないと、オーバートレーニングまたは燃え尽きに苦しむことになります。繰り返しになりますが、彼は意図的な練習から最大約4時間の利益減少していることを認識しています

良い/挑戦的な仕事を持っていないことをテーマに:

ホグウォッシュ。より良い仕事を得るか、ここにアイデアがあります:現在の仕事を、少なくとも今はそうではない何かに変えてください。

私が知っている最高のプログラマーの1人は、数十のプログラムと数十万行のコードで構成されるレガシーシステムのメンテナンスプログラマーとして仕事に就きました。それらのほとんどは長年にわたってハッキングされていたため、一貫性のあるデザインはもうなかったと言わざるを得ないでしょう。

これはほとんど行き詰まり、行き止まりの仕事でした。経営陣は、頭を下げて、いまいましいバグを修正することを望んでいました。優秀な開発者は、グリーンフィールドプロジェクトに取り組んでいました。人々は、退職するまで残りの日を休むためにここに来たか、新しいアプリケーション開発に進む前に数年の経験を積んでいました。ほとんどのプログラマーは、キャリア開発の欠如、新しいことを学ぶ機会、エキサイティングなプロジェクトに取り組むことができない、またはより一般的には誰も彼らを有効にしないという愚痴を訴えるでしょうが、この男は単に座って、行う必要がある作業。

そして、2年の間に、彼はそのシステムをスパゲッティコードのバグのある地獄から、美の物でありスイス時計のように機能するものに変えました。変換が完了したので、部門の副社長は既存のプロジェクトにますます注意を払い始め、グリーンフィールドプロジェクトの価値に疑問を持ち始めました。彼には肩書きはありませんでしたが、作戦の人々はグループの事実上のリーダーとして彼に行きました。私が去ったとき、VPはシステムアーキテクトとして彼のために新しい役割を作成することについて話していました...

その後、彼に何が起こったのか分かりませんが、彼はいくつかの非常に重要な教訓を教えてくれました。

  1. あなたの仕事はあなたがそれを作るものであり、どこでも解決すべき興味深い問題があります。CRUD画面を書くのが嫌なら、自動的に生成して問題を解決してください。

  2. あなたに来る機会を待って座ってはいけません。チャンスはないでしょう。


コメント者:コメントは明確な説明を求めるためのものであり、詳細な議論のためではありません。解決策がある場合は、答えを残してください。ソリューションが既に投稿されている場合は、投票してください。他の人とこの質問について話し合いたい場合は、チャットを使用してください。詳細については、FAQを参照してください

30
これ、および他の多くの答えは、「練習」としてプログラミングにあまりにも重点を置いています。ミュージシャンの比較を続けるには、信じるか信じないかですが、彼らは実際に喜びのためにも演奏します。インタビュアーが空き時間にプログラムをする人を探しているのは、常に練習する必要性を常に感じている人ではありません。彼らは情熱的で、自分の仕事を本当に楽しんでくれる人を探しています。あなたが仕事に情熱を傾けているなら、あなたはそれを趣味に変えることもよくあり、それから逃れることは困難です。それは他の趣味を拾うことと違いはありません。

7
ミュージシャンの例は本当に良くありません。ミュージシャンが高いスキルレベルに達したとき、すべての理論を学んだとき、目を閉じて曲を合成できるとき、同時に9000を超える楽器を演奏できるとき、彼は何もすることがありません。プログラマーまたはコンピューターエンジニアは、一生、新しいテクノロジーについて学ぶ必要があります。常に学ぶべき新しいことがあります。ですから、質問に答えると、一日中プログラムをしていて社会生活がない人は、余暇にプログラムをしていない人よりもはるかに優れています。

2
@GabrielLlamas音楽理論は、大学で学ぶアルゴリズムの基礎、分散コンピューティング、オペレーティングシステムなどの基本的なものです。これらの基本は時間外労働をそれほど変えません。約20年前には、クライアントとサーバーのモデルがすでにありましたが、現在もクライアントとサーバーのモデルがあります。したがって、クライアントとサーバーの基本はまだ適用されますが、それは単に高レベルのものが急速に変化していることです。さまざまな楽器を、HTML、Javascriptなどのさまざまなテクノロジーと考えることができます。しかし、ファンダメンタルズを適用できれば、物事は同様になります。
デヴィッド・ガオ

1
もう1つの例は、cでプログラミングする方法を知ったら、c ++の学習は難しくないようなものです。Schemeを知らずにSchemeを使ってルームメイトのプログラミングの質問を解決したことを覚えています。関数型言語が何であるかを高レベルで知っているので、Learning Schemeはまったく難しくありませんでした。
デヴィッド・ガオ

150

このメッセージにはさらに隠されています。

多くの熱心なプログラマーは、物事を探求し、実験し、彼らのアイデアに従うことを好みます。それが私たちのスキルとビジョンを学び、獲得する方法です。

通常、勤務時間中は自分の興味をフォローすることはできません。あなたは、あなたがするように言われた事をするだけで、それはそれです。幸運なのは、たとえ支払われていなくても、私たちが個人的に行うことを仕事で行うことができる幸運な人はほとんどいません。

したがって、余計なことをしていないのなら、自分の可能性を秘めているわけではありません。それがまさに問題です。


2
プログラミングの別の側面について学ぶことに興味があると感じることもありますが、その作業はすべてが退屈なように感じられるので、それは大きな安心です。
メラオス

3
本当です。知っておくべきことの1つは、摂取中に署名した発明契約です。私たちはそれらを使用しませんでしたが、プログラマーと口頭で合意しました。勤務時間外で、会社と直接競合しない場合は、楽しい時間を過ごしてください。会社の機器を使用するかどうかは気にしませんでしたが、家に置いておくのは「もっときれい」だという一般的な合意がありました。
ピーターローウェル

3
好奇心を何時間も追いかけても問題ありません。それは、次のバージョンのWindowsを会社全体に自動的に一晩で展開する方法にあるかもしれません(Mwah hah hah)。または、写真撮影、ビール醸造、またはボートrowぎです。外部の関心事は、あなたをより丸みのある人にします。それはあなたの日中の仕事に関係する必要はありません。
すぐに

5
-1他の回答やコメントで他の人が指摘したように、これはあなたが現実的に良い、楽しくてやりがいのある仕事を得ることができないことを意味します。私の個人的な経験では、これは真実ではありません。私はこれまで、ほとんどの仕事で多くの新しいことを学びました。私見は、少なくとも企業文化と同じくらい個人的な態度の問題です。
ペテルトレック

26
プログラミングが好きで仕事を楽しんでいない場合は、より良い仕事を探して自由時間を過ごす必要があります。
ニキエ

70

それはあなたを悪い開発者にするわけではありませんが、残念ながら、あなたはまだ開発者と競争しなければなりません。

セス・ゴディンのブログからこれを読んでください:


理不尽

雪の日、学校がキャンセルされたときにベッドから出て、追加のクレジット物理学ラボでダウンタイムを6時間の作業に変えるのは理不尽です。

開発曲線を9か月間ジャンプさせるテクノロジー製品を発売するのは理不尽です。合理的な競合他社よりもはるかに早く次世代を生み出します。

運送会社が最初の呼び出し音で電話に出るのは理不尽です。

ベンチャー資金がもたらす安心感なしに新しい会社を始めるのは理不尽です。

医師のオフィスに快適で役立つフロントスタッフがいることを期待するのは不合理です。

あなたが勇敢で独創的なことをしたい場合でも、今日の経済の良いギグから離れることは不合理です。

恵まれない都心の子供たちが高校でうまくいくことができると教師が期待するのは理不尽です。

あなたが下にあるプレッシャーを考慮して、同僚や競合他社を尊重することは不合理です。

デッキが普通の人々に対して積み重ねられている世界では、偉大な女性、意欲と利点を兼ね備えた人物以外の誰かが重要なことを何でもできると期待するのは不合理です。

ほとんどの人が決して感謝しない製品を作るためにあなたの人生の何年もを捧げることは不合理です。

幸いなことに、世界は不合理な人々で満たされています。残念ながら、あなたは彼らと競争する必要があります。


13
ええ、1日8時間働き、それから家に帰ってさらに仕事をするのも理不尽です。誰のために働いていますか?なぜ?あなたはそれらの質問に答える必要があります(誰が払っているのですか?なぜ?何を得るために?)一日の終わりまでに精神的に疲れている場合、あなた自身のためにできる最善のことは-他のものです!
すぐに

37
開発者は仕事に挑戦せず、仕事を楽しんでいないと仮定します。それは真実ではない。彼らはすでに完全には満足していないので、職場で唯一のプログラムは、自宅でプログラミングしていない人々
誰も

8
-1 a)引用符はこの質問に直接関連していないため、b)IMO(ほとんど)はこれらのことはまったく不合理ではありません。合理的な人々の多くは、短期的だけでなく長期的にも考えることができます。大藤:-(私たちのlazyness /無能/不注意のための素晴らしい(と偽の)合理的な説明を発明で経験している私たちのほとんど
ペーテルTörök

13
-1多くの合理的なものを不合理と呼ぶのは不合理です。それは質問に何も追加せず、大抵セス・ゴディンが書いている多くのことのように、大丈夫に聞こえます。
Vitor Py

5
「医師のオフィスに快適で役立つフロントスタッフがいることを期待するのは不合理です。」いいえ、ちがいます。不合理なのは、医師が自分の仕事に責任を負い、失礼なオフィススタッフ、オフィスの待合室での長い待ち時間、個人的な無礼にさらされることです。
グリーンマット

57

提起された質問に答えるために:空き時間にプログラミングをしなくても悪い開発者にはなりませんが、空き時間にプログラミングすることでより良い開発者になることができます。

空き時間にプログラミングしてもスキルを損なうことはありませんが、それを行う義務を感じるべきではありません。多くの人にとって仕事と趣味の両方であるため、プログラミングは比較的ユニークな分野のようです。


8
プログラミングは、キャリアとしても趣味としても、ユニークなものではありません。いくつかの例:私はかつて、いくつかの航空会社のパイロットが楽しみのために飛ぶ小さな飛行機を持っていることを知っていました。傍観するプロの天文学者を知っています。
グリーンマット

4
比較的ユニーク」とは、数少ない中の1つであることを意味しますが、それだけではありません。彼らは仕事を楽しんでいるかもしれないが、給料をもらっていないときに時間を費やさない人がたくさんいることを知っています。情熱を持って仕事をするのは難しい場合があります。
shortkaik

1:テクノロジー、言語、および技術は、非常に頻繁かつ急速に変化します。プログラマー、自分の技術を磨くために休みをとる必要があります。//関連質問:医学雑誌を読まなかったPCPに満足しますか?
ジムG.

この答えは状況を最もよくまとめていると思います。しかし、それは完全に自分の状況に依存します。あなたの仕事がプログラミングのニーズをすべて満たしている場合、自分自身をプッシュする、テクノロジーを最新の状態に保つなどの面で、自分の時間に仕事をする必要ははるかに少なくなります。ただし、古いテクノロジを使用して仕事がかなり簡単な場合は、自分の時間にスキルと知識を向上させるためにある程度の時間を費やす必要があります。
ネリアス

@shortkaik「暇なときにプログラミングすることで、より良い開発者になることができます」-それは必ずしも真実ではありません。あなたが仕事に挑戦している場合、そしてあなたが自宅でプログラミングしている場合、それはあなたのスキルよりも疲労と燃え尽きに貢献し、またこれは仕事の生産性を損なう可能性があります。一方、あなたの仕事があなたに与えるものに満足していない場合(そしてあなたからそれを取る)、それの後の追加のコーディングは良い決断かもしれません。

23

いいえ、悪いプログラマーになるわけではありません。何をするかに応じて、長期的にはより良いプログラマーになるかもしれません。キャリアの早い段階で、必要なさまざまなスキルをどれだけ早く習得するかに影響する場合があります。ただし、長期的に役立つスキルと情報を取得している可能性があります。何らかの運動をすることも害になりません。

週に約40週間のパフォーマンスのピークを示すかなりの量の研究があります。長時間稼働することもできますが、長期的には効率が低下します。私が見た調査によると、80週間働いている人は週40時間働いている人とほぼ同じくらい生産的です。

パフォーマンスを向上させるために、オフ(またはオン)の時間に反映できることがいくつかあります。

  • 何してるの?もっとうまくできますか?あなたはそれをする必要がありますか?
  • あなたは何を学んでいますか?何を学ぶ必要がありますか?
  • どんな問題に遭遇していますか?それらを解決するのに最適なのは誰ですか?何ができる?

趣味としてのプログラミングは、ビジネスの仕事で何時間も働いたという意味ではありません-これは間違いなくスケーリングしません。ただし、ObjCでiPhoneのゲームを趣味としてプログラミングすると、職場でのスキルと総生産性が向上します(仕事がJava EEで金融アプリを書く場合など)。
ハイコラップ

@Heiko本当ですが、プログラミング以外にも、あなたをより優れたプログラマーにできるスキルがたくさんあります。優れた開発者には、プログラミング以外にも多くのスキルがあります。
-BillThor

もちろん:)特に、「40時間での最大生産性」について言及していました。これは、5時間の趣味プログラミングを行うと、仕事で35時間しかできないように聞こえました。これは私が考えていない権利である
ハイコ・ルップ

1
@Heiko作業が十分に異なるため、両方を実行できる場合があります。卒業後最初の数年間、私は定期的に週40時間を超えていましたが、さまざまなスキルを応用していました。多くのことを学びましたが、パフォーマンスの壁にぶつかったようには見えませんでした。ありがたいことに、夕方のどこかで私をオフィスから引きずり出す友人がいました。別のプロジェクトでは、午前10時から何も達成していないことに気付いた2PMに帰宅しました。まだ4時間を請求しました。
-BillThor

15

仕事以外で余分なことをすることなく、優れたソフトウェア開発者になることは可能ですか?

絶対に。

スキルを磨くために余分な時間を費やす場合よりも時間がかかる場合があります。また、フルタイムで働いており、勤務時間外にほとんどプログラミングを行っていない場合、自己改善に十分な時間をかけることは難しいと感じています。

私が若かったとき、私は今よりもはるかに多くの時間を学習に費やしました。私が日々使用している概念はこの時点で深く染み込んでおり、私の経験の下でこの経験を使って追加の知識を習得するのは簡単だと思われます。

「良い」プログラマーは、本質的に強迫観念を持ち、反社会的な目的に向かっており、プログラミングと問題解決サイクル全体を本当に楽しんでいるため、余分な時間を費やすようです。


13

物事の大きなスキームでは、人生の正しいバランスを見つけることがすべてです。

重要なのは、プログラミングを楽しんでいるかどうか、そしてどのレベルにいても学習し続けるかどうかです。仕事以外でプログラムするかどうかは、自動的に「良い」または「悪い」プログラマーになるわけではありません。

個人的な見方をするために、私は約25年間プログラミングを行ってきました(最初は子供の頃、次にプロとして)。大好きです。

ただし、仕事以外でプログラムすることはほとんどありません。これはいくつかのことと関係しています:

  • 仕事で毎日、一日中好きなことをすることができてとても幸運です。
  • 簡単に言えば、人生には他のこともあり、一日に多くの時間しかありません。

-1:はい、人生には他のものがありますが、それは質問に答えません。あなたは単に自分が最良の道を選んでいると自分自身を納得させようとしているだけです。
ジムG.

9

特にキャリアをうまく​​管理している場合、仕事中にコーディングするだけで優れたプログラマーになれます。ただし、最高のプログラマーは、勤務時間外にもコードを作成します。そうは言っても、多くの学習機会のある良い仕事を選んだり、仕事で時間を使ったりする人は、自宅でコーディングする人よりも優れたプログラマーになります。仕事の日。

自宅でコーディングすることは貴重ですが、職場環境の価値を最大化すること(同僚から学び、良い仕事を選び、積極的にキャリアを管理すること)は、しばしばさらに価値があると思います。優れたプログラマーは両方を行い、さらに他者の学習と指導に対して優れた態度を持っています。


「しかし、最高のプログラマーは、時間外にもコードを作成します。」 これについての証拠はまったくありません。
djechlin

7

本当の問題は、新しい開発者が数十万行の練習コードを通り抜けてまともなプログラマーになるために十分なコーディングを行っているかどうかです。

理論的には、これは職場で、または自分の時間、あるいはその両方で行うことができます。練習はある程度自主的に行われる必要があるため、学習する必要があるものを学ぶことができます。それは少し柔軟な仕事を意味します。

多くの場合、エントリーレベルのジョブは、あなたに良いことを教えてくれないバグ修正やその他の作業の束です。あなたがする必要があるのは、最初からたくさんのコードを書くことであり、そのコードはおそらく悪いでしょう。雇用主がこれを支払うのは難しいです。だからこそ、人々はオープンソースプロジェクトを傍らでやったり、スタートアップを立ち上げたりするのです。

空き時間にプログラムしなければならないと人々が言うとき、それは本当に何年も意味のある練習を早い段階で実行しなければならないことを意味すると思います。練習を行い、大規模なコードベースをゼロから作成して維持するために必要なことは何でもする必要があります。おそらく悲惨な一連のプロジェクトをゼロから書くために誰もあなたにお金を払っていないなら、暇な時間が唯一の選択肢です。

若くしてすでに優れたプログラマーになったときにすでに練習をしている場合、ベースラインスキルを後で9対5のままにしておけば、ベースラインスキルを失うことはないと思います。後ほど、それほど時間のかからない新しいテクノロジーに遅れずについていく必要があります。

しかし、そもそも優れたプログラマーになるためには、それだけで実践の量と質を提供することができる珍しいエントリーレベルの仕事です。新しい開発者は、エントリーレベルのタスクを行うエントリーレベルのジョブにたむろするのではなく、率先して学習する必要があります。

すでに家族がいて、ワークライフバランスを重視している場合、ゼロから優れたプログラマーになることは本当に難しいでしょう。医者になったり、名手ミュージシャンになったり、そのような状況で他の何かになったりするのは本当に難しいでしょう。人々が何千時間もの練習を経験する傾向があるのは、年上の時よりも若い時のほうが理由です。


5

次の6か月で暇なときに基本的なゲームを開発していましたが、他のすべての条件が同じであると仮定すると(どちらも同じではない場合)、私たちのうちのどれがもっと知っているでしょうか?私たちのうち、より多くのスキルと経験があるでしょうか?

以前の営業時間外の知識が新しい仕事と新しい営業時間外の知識につながるため、この効果は累積的です。

そして、だからこそ、私が知る限り、暇なときにプログラムすることを勧めます。


5

素晴らしいものと悪いものの間には、多くのレベルがあります。1日8時間かそれだけで、優れた開発者になることはできません。非常に限られた分野の問題に取り組むこともあります。

あなたの仕事が十分に多様な場合、あなたは「まともな」または「達成した」またはあなたが好むどんな形容詞になることができますが、あなたが少し精神的でなければならない素晴らしい開発者になるには、私は恐れています。

趣味のプログラミングを行うもう1つの理由は、仕事ではしばしば準最適な基準を遵守し、一般的に妥協する必要があり、新しいことを学んだとしても、それを使用することが許可されない場合があることです。

さらに別の、もっと面倒なことは、職場で書いたコードはすべて雇用主が所有しているということです。あなたはそれに戻り、数年後、あなたが誰かのために働いているときの古い間違いから学ぶことはできません。


5

何でもエキスパートになるには10,000時間の努力が必要です。[マイケル・グラッドウェル、「外れ値」]

そのため、そのレベルに到達する前に余分な作業を行うと、実際のエキスパートステータスへのパスに沿って速くなります。

そのレベルを超えると、より多くの時間を費やすことで、利益が小さく/減少します。


3
しかし、何かの「もの」とは何ですか?「プログラミング」は単一の「もの」ですか、それとも「ハスケル」、「lisp」、「java」、「python」などですか?または「機能プログラミング」、「GUIプログラミング」、「低レベルプログラミング」など?それ自体では、何もわかりません。
アンドレパラメス

4

すべてのスキルのように、より多くの練習が1つをより良くするだけであるので、あなたはそれを「それは私を悪いプログラマにします」と見るべきではありません。

ですから、現在よりも良くなりたい、そしてあなたの仕事が許さない新しいテクノロジーとドメインを学びたいのであれば、余分な労力と時間が費やされます。

しかし、コーディングに余分な時間を費やすことは(誰かに余分にコーディングしたことを証明するためだけ)、盲目的にカット/コピー/ペーストするのではなく、あなたが何をして何をするかを学び、既に知っていることを改善しない限り、必ずしも優れたプログラマーになることを意味しませんハックをまとめる。余分な時間を費やして同じことを何度も繰り返すことは、改善に役立つとは思いません。


OPのポイントは、一部のプログラマーが仕事以外でプログラミングしないと悪いプログラマーだという考えを広めることだと思います。SO、ここ、および他の場所で投稿を見た回数のカウントを失いました。誰かが将来の新入社員を面接するとき、彼らは面接者が行っているサイドプロジェクトを尋ねます、そして答えが「なし「その場合、インタビュー対象者は、仕事に対して考慮されていないほどプログラミングに情熱を傾けているとは見なされません。
グリーンマット

+1-あなたがしているのが、あなたがすでに仕事でしていることだけである場合、それはあまり良くありません。
ダンク

ただ練習するだけではあなたは良くなりません。あなたが実際に悪い習慣を身につけ、さらに悪化することができる正しいことを実践しなければなりません。
HLGEM

4

日中は、プログラミングはショートベットです。稼げるお金があり、正確にいくらで何のためにあるかを知っています。そして、あなたは給料以上の利益を得ることができません。

夜は長い賭けに取り組んでいます-主にまったく機能しないクレイジーなアイデア。これらは、ランクとファイルからあなたをカタパルトするプロジェクトです。これが、PHPを使用するコードモンキーではなく、PHPの発明者になる方法です。

私は多くのプログラマーにインタビューしますが、彼らが労働時間外に面白い奇妙なことをしたかどうかは、即座に青信号になります。驚くほどまれです。

私はこれを言いますが、労働時間以外に多くのクールなことをした人が、完全に雇い主であることが判明したことがありました。私はまだその男に困惑しています。


3

良いソフトウェア開発者であることは、本当にあなたの心にかかっています。あなたは偉大なミュージシャンになろうとすることができ、音楽に多くの時間をかけることができますが、それでもあなたを良いミュージシャンにすることはできません。しかし、今では私の好みのために、通常の仕事以外のソフトウェアで余分なことを始めました。それにより、通常の仕事でのパフォーマンスが向上し、ソフトウェアに関係しない他の活動に参加するための多くの時間も与えられました。だから、ベースラインはあなたがすることを楽しんでいて、あなたは最終的に必要なことをするでしょう。


3

本当の問題は、あなたが一日中何をしているのかです。アスリートやミュージシャンへの類推は、通常正しく適用されません。仕事の一部を本物の「練習」で過ごす明確な能力を持たない限り、あなたの一日の仕事は練習ではなく、パフォーマンスです。どうして知っていますか?「正しい」ことをする時間がないか、新しい言語/テクノロジー/フレームワークなどを完全に学ぶ時間がなければ、練習しているのではなく、実行しています。プロのアスリートやミュージシャンは、試合中やコンサート中は良くなりませんが、集中練習では良くなります。だから、もしあなたがたいていの人なら、本物のコーディング「練習」のためにあなたが持っている唯一の時間は仕事以外です。そうは言っても、焦点を合わせている場合にのみ価値があります。一日中ハックしてから一晩中ハックすると、疲れるだけで良くなりません。

たとえば、作業中のコードを最適化する必要があり、通常のプロファイリングツールを使用して速度を50%上げて次のタスクに進みますが、他にも役立つことがあると思いますそれ以上ですが、試してみる時間がありません。そのコードを持ち帰り、実際にそれを圧縮するために数時間余分に費やすなら、あなたは次に何かを最適化するときにあなたを良くするテクニックを学んでいます。自宅で仕事と同じことをしているわけではありません。

練習はスキルとホーニングスキルを追加することであり、それらのアクティビティは必然的に人為的な方法で行われます(ジムで筋肉群を隔離するようなもので、通常の身体活動では誰もそれを行いません)。自宅でアプリを構築することは、自動的には行われません。自宅での仕事は、最終製品ではなく、技術とプロセスに焦点を当てるべきです。最終製品があなたがやる気を起こさせるために必要なものであるならば、素晴らしい。職場で行うのと同じ方法で開発するというtrapに陥らないでください。

コーディングカタムーブメントは、プラクティスのすべての例です。


3

あなたの質問に答えるために:いいえ、それはあなたを悪い開発者にしません。

しかし、それはあなたの職業生活を少し難しくするかもしれません。あなたがあなたのキャリアパスを促進するのに役立つ新しい技術を絶えず学んでいる仕事を持っているなら(それはあなたの現在の仕事での昇進であろうと、異なる会社での新しい仕事であろうと)、そうです。

しかし、現在使用されているテクノロジーがめったに変更されない会社で働いている場合、2年後または5年後10年後には、その次の仕事を得ることが難しくなるかもしれません。自宅で新しいテクノロジーを使ってコーディングしていて、それを表示するもの(アプリ、ウェブサイト、オープンソースプロジェクトなど)がある場合、次の仕事を得るのがはるかに簡単になります。

もちろん、次の40年間、まったく同じことをして完全に満足するかもしれません。あなたの会社と技術が存在し続ける限り、あなたは準備ができています!


1

私の人生の中で、仕事以外で多くのコーディングを行ったり、他のことに取り組んでいたので何もしなかったことがありました。常に学習する必要がありますが、暇なときにプログラミングについて常に学習しなければならないという意味ではありません。他のスキルに取り組みたい場合は、空いた時間に大工仕事、針仕事、ガーデニングなど、人として成長するのに役立ちます。

プログラミングについて知っておく必要のあることをすべて知っていると考えるのではなく、学習をやめることができます。


1

これは確かに興味深い投稿です。私は10年前からソフトウェアを開発しており、私の仕事が大好きです!私も趣味がたくさんあり、それらを適切に管理しようとしています。しかし、寝る前に、PCの前で1〜2時間過ごす新しいことを試してみてください。私の場合、ゲームコードの研究と作成にはまっています。私はいつもゲームをプレイする時間がありませんが、ゲームに関するコードを読むのが大好きです。正直に言うと、私が今まで見た中で最高のコードはゲームから来たものだと思うので、これらのスキルを仕事中のコードに適用します。私は常に毎日を学んでいるので、もしあなたが開発者であれば、IMOはピークに達することは決してないでしょう。


1

これは素晴らしい投稿です。

いいえ、それはあなたを悪いプログラマーにしたわけではありません。レビューが良好で、タスクを時間通りに完了できれば、まったく逆になります。正直に言って、私はあなたが仕事中にあなたのコードを埋めることをうらやましく思います。

暇なときにプログラムする主な理由は、仕事で何をするかはあまり気にせず、好きなことをするために暇な時間を使うからです。私が楽しんでいるのはビデオゲームのプログラミングです。私が住んでいる場所で働くための有効なゲーム会社はありません(私は今ここに家族がいます)。かゆみを治す唯一の方法です。一日中好きなことをやったら、暇なときにやらないだろう。


1

私のアドバイスは次のとおりです。通勤時間を使って物事を学び、あなたに情報を提供します。ITの本を読んだり、Devポッドキャストを聴いたりします。そうでなければ、あなたは退屈な人になります。


1

それはあなたを悪い開発者にすることはありません。あなたをある種の「良い」開発者にすることさえできません。しかし、本当に優れたハッカーであるほとんどの人は、新しいことを試みるのを好む傾向があると思います。いつでも多くの異なる言語、データベース、ウェブフレームワーク、ロボットなどを調査しています。私には2人の小さな子供と妻、住宅ローンがあります。しかし、2つまたは3つを得ることができるのを楽しみにしていますものをハックする時間。確かに、C#と.NETは給料を稼ぐのに十分であり、実際に仕事を楽しんでいますが、ここ数ヶ月でScalaとLiftをいじるのは本当に楽しかったです。自分自身を「情熱的」と分類する開発者と、単に「やってくる」開発者がいます。


1

これは、私が「本当の」ソフトウェア開発者ではないことを意味しますか?

絶対違う。コーディング以外のことをするのが好きだということです。それには何の問題もありません。開発者であろうとなかろうと、他の誰よりも良くも悪くもなりません。

仕事以外で余分なことをすることなく、優れたソフトウェア開発者になることは可能ですか?

もちろん。その一部は、作業環境がどのようなものかによって異なります。退屈で魂を吸う仕事をしていて、すべての時間を退屈にして、退屈なメンテナンス作業をしている人がいる場合、仕事時間を使ってスキルを伸ばすことは非常に限られています。探求し、学びたいことを行う自由度があるような環境がある場合は、その機会を利用して、雇用主や同僚を助ける新しいスキルを開発してください。

あなたがもっと知りたいと思って、仕事でそれを使う時間や可能性がない面白いものを見つけたら、それをあなたの時間、家族、友人、趣味などの他の要求と比較する必要があります。


+1。はい、それは本当に作業環境に依存します。チームとして、自分が何をするかを気にし、絶えずすべて(最終製品、基礎となるコード、ツール、職場の状況など)の改善に努める、賢い(できれば自分よりも賢い)人がいる場所たとえあなたが自由時間をコンピューターの前よりもどこかで過ごすことを好むとしても、素晴らしい開発者になるということです。
ジョニック

1

私は最近、プログラマーを雇うために多くのインタビューに参加しています。プログラマーとしても、一緒に仕事をする気もない人としても、私を最も感動させる候補者は、非プログラミングの追求(特に音楽だけでなく、純粋な数学、哲学と文学)。確かに、ほとんどの人は趣味のプログラミングもしていますが、バランスの取れた関心も持っています。


ミュージシャンにそのことを納得させるだけなら...彼らはあなたが複数のことを上手くできないと考えているようです。音楽とプログラミングは非常に似ています。
マイケルK

あなたは全く異なる質問に答えました。一緒に仕事をしたい人のタイプは、おそらく優れたプログラマーのために作る人のタイプとはかなり異なるでしょう。一緒に働いている人々を楽しみ、社会的に楽しい時間を過ごしたいのなら、多分、プログラマーは最適ではないでしょう。ただし、12か月のプロジェクトを完了するのに通常のワークロードが2〜3か月である場合、uber-programmerが仕事以外の人生を送ってくれることを発見しても、その性格はそれほど重要ではありません。より多くのプログラミングを行います。
ダンク

補足として:インタビューで最も感銘を受けた人は、私が最も気にしなければならない人であることがわかりました。私の初期のキャリアでは、面接で最も社会的に有能で説得力のある人であることが判明した採用に推薦した唯一の人たちもたまたまありました。
ダンク

1

完全に魅力的な知的体験を提供する仕事がある場合、それがあなたの精神生活になる可能性があります-外の仕事は蒸気を吹き飛ばすためです。あなたの仕事があなたを引きつけないなら、あなたは勤務時間後に知的満足を見つける可能性がはるかに高くなります。コーディングだけでなく、あらゆるビジネスに当てはまります。

オフィスでコーディングすると、あなたの創造性、期間が失われます。少なくとも1日8時間、あなたの心は誰かの代わりに継続的なスプリントを行っています。それから出て、コンピュータに戻りたくないのは普通のことです。オフィスで働いていたときも同じでした。家に帰って料理をしたり、映画を見に行ったり、友達とハングしたり、テレビの前のゾーンに行きたいだけです。その後、2001年から2004年頃まで、私が働いていた会社がタンクに入れられ、解体した後、私は中退してタクシーを運転し、テーブルを待っていました。それは私が実際に私のオフ時間にコーディングを始めたときです。

真実は、誰もが1日8時間以上の質の高いコーディング時間を費やしているとは思わないということです。多くのコーダーは2〜3人しかいませんが、彼らは最も効率的な人かもしれません。それはあなたがそれをどのように使うか、あなたがそれを広げる方法です。


1
OSS開発者のことは一度もありませんか?コーディングが情熱になると、24時間一気にコーディングしたくなることがあります。
マーティンピーターズ

1

仕事以外で余分なことをすることなく、優れたソフトウェア開発者になることは可能ですか?

それはあなたが働いている業界に依存します。他のものより競争力のあるものもあります。

自分で新しいことを学びたくない場合は、現在のスキルレベルにとどまる可能性があります。それで十分かもしれません...またはそうではありません。

専念する時間ではなく、好奇心であり、知識と習熟への渇望です。明らかに、それは最新の状態を維持することとは関係ありません。それは、コンパイラ、モナド、メモリアーキテクチャなど、基本的な(多くの場合ハード)ものに関するものです。

自宅でコーディングしたいということは、重要な副作用にすぎません。しかし、それを過小評価しないでください。そうしないと、学習はしばしば浅いものになります。

私が知っている最高の開発者はすべて、これらの特徴を持っています。


1

いいえ、それはあなたを他の誰よりもプログラマーにすることはありません。あなたはもっと社交的です。正直にうらやましい。

コードを書くために余暇をすべて使う必要はありません。私の仕事はとても簡単です:サーバー管理。仕事で多くのことをする必要がないので、私はたくさんのコードを書きます。それは私を誰よりも良くも悪くもしない。プログラミングに情熱があるなら、フリーランスの仕事をしてみませんか?私はしばしば自分のサービスのためにCraigslistの広告を出し、そこからかなりのお金を稼ぎます。また、スタートアップや大規模なWebサイトでも作業できるので、素晴らしい学習体験です。お役に立てれば。:)


趣味のプログラミングにより、本質的に「よりソーシャル」になります。単独で完全に問題なくプログラミングできます。
ムファサ

0

私は数日後に同様の質問をしました。人々は、一日中だけでなく、私たちの個人的な生活のために利用できるすべての時間を捧げると、私たちの仕事にもっと情熱を傾けるように見えます。

暇なときにコードを書くこともありますが、プロとしての成長や認知を得ようとするためではなく、楽しみのために書いています。私はそのエネルギーを持っている人々に拍手を送りますが、あなたは実際に何かに精通するよりも、より多くの時間と余分なプロジェクトで燃え尽きるようなものです。

結局のところ、重要なのは、(特に仕事で)新しいことを学ぶ能力、うまくコミュニケーションをとる能力、および優れた時間管理スキルを持っていることです。あなたがあなたを良いプロに変えること。


1
重要な点を見つけたと思います。自宅でのプログラミングが余分な作業を行うようなものである場合、それはあまり役に立たず、おそらく有害ですらあります。しかし、私が知っているほとんどの(すべてではないにしても)人々は、それが彼らにとって楽しいので、自宅のプログラムがそれをすることを知っています。彼らは私が私のプロジェクトに望んでいるのと同じ人たちであるのは、たまたま彼らがそうでない人たちよりもはるかに熟練しているからです。自宅でプログラミングすることは、彼らがより熟練している理由かもしれませんが、多分、そうでないかもしれません。また、時間を割かないとスキルを最新の状態に保つのは非常に困難です。
ダンク

0

仕事以外で余分なことをすることなく、優れたソフトウェア開発者になることは可能ですか?

私にとっては、バランスがすべてです。

私はプログラミングが大好きですが、それは私の片側にすぎませんが、他にも興味があります。私がこれを見ると、私が満足している(他の好きなことをしている)ことを見て、長期的にはより良いソフトウェア開発者になろうとしているよりも、自分の仕事が面白くてやりがいがあると思います(私はやります)。

PSこのページの以前の投稿をすべて読んだわけではありません。


なぜ-1なのか?その完全に合理的な答え。+ 1
zzzzz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.