プログラミングキャリアの4〜5年は「ミッドライフクライシス」ですか。


330

私はもう4年以上C#を専門的にプログラミングしています。過去4年間、「ウェブ/広告代理店」、小規模な業界固有のソフトウェアショップ、小規模な新興企業など、いくつかの中小企業で働いてきました。私は主に、高レベルのプログラミング言語(収集されたガベージ)を使用する「ビジネスアプリ」を行ってきましたが、全体的な経験としては、これまでに行ったすべての作業がより専門的である可能性がありました。多くのことは、主に人々が常に「今」何かを望んでいるというコスト要因と、最小の出費で、(急いで)間違って行われました。もっと大きな会社やプログラマーに適した会社、あるいはどこかで働くことができるかどうか考え続けました。長期的でよりメンテナンス性の高いものを実際に構築するためのお金と時間を手に入れました。4年間のキャリアを案内してくれる「メンター」はいません。私は、学士号以外のブログ/グーグル/独学のプログラマーです。

また、「私の作業環境」のいわゆる「シニア」プログラマーは、実際にはそれほど上級スキルではないという別の問題を観察しました。彼らは長年のプログラマーだからこそ「シニア」ですが、彼らが書いたコードや彼らが下した決定は絶対にゴミです!彼らは学びたくなく、より良くなりたくないだけで、彼らはただ給料を受け取りたいと思っており、彼らが言ったことを理にかなっていることをします。たぶんそれが彼らが今いる場所である理由です。しかし、私は彼らのようになりたくない、私は良くなりたい。私は精神状態に陥り、将来のキャリアのためにプログラマーになるつもりはありません。おそらくもっと良いものがあると考え始めました。ブログを読むほど、「ベストプラクティス」が多くなり、「自分の現実」から離れていると感じるようになりました。しかし、私は偉大なプログラマーではありません。さもなければ、今の自分がいるとは思いません。4〜5年は、一歩前進したキャリアになるか、あなたがいる場所から抜け出すことができる段階だと思います。

上記で述べたことについて、他の人が何を言っているのか、過去のプログラミングのキャリアで同様の状況を経験したか、どう対処したかを聞きたかっただけです。ありがとう。


73
4-5、すみません、私はそれが45年を読んだと思い、いくつかの興味深い議論を促進するかもしれません。あなたの子供たち:
ハイパフォーマンスマーク

7
最近は何かが上手いのはとても簡単だからですが、ほとんどの場合、何か上手になることはもうやめられないのです。彼らが何をするのが得意なマックス。

5
興味深い質問ですが、本当の答えはありません。コミュニティWikiのステータスを強くお勧めします。
デビッドソーンリー

3
コミュニティwikiへの別の投票

4
プログラミングは習得するのに長い時間がかかり、ほとんどの人が企業の政治を演じてお金と栄光を追い求めます。 norvig.com/21-days.html ここでは、上級プログラマーを想定しています。私は20年以上後、フェンスの向こう側にいます。私はこれらの人々を雇わなければなりません、そしてあなたが上級プログラマーであると本当に主張できる誰かを見つけることはしばしばありません。これらの人々のほとんどは、最初の1年を5回もほとんど完了しておらず、5年間の構築と成長と同じではありません。

回答:


195

非常に興味深い質問を開きます。私は心からあなたに同意します。私も同様の観察をしました。

私は数年前からプロとしてプログラミングを行ってきましたが、私が観察したことは、彼らの仕事を愛し、品質と情熱を持ってそれを行うことができる優秀な開発者の世の中にいる優秀なプログラマーの数はほとんどゼロに近いことです。何かを教えてくれる人はたぶん一人しかいなかった。私が知っていることのほとんどは、本やフォーラムを読んだり、フォーラムで質問したり、啓示の考えをグーグルで調べたりして、自分で学んだことです。

しばらく後、私はこれほど後悔していません。

多くの場合、作業環境で学習するオプションは限られています。あなたは物事を始めません。あなたはそれらを終えません。設計も、改善も、リファクタリングも、アーキテクチャについても考えずに、コーディングとハッキングを一緒に行うだけです。それがほとんどの店の仕組みです。あなたは何も学ばないだけでなく、ソフトウェアを開発しない方法をほとんど間違ったことを学ぶ可能性が高くなります。私の周りには恐ろしいもの、あなたが聞いたことがあるすべてのアンチパターンが絶えず見ています。さらに悪いことに、私はそれらを自分でやらざるを得ません。

私はそれがどのように起こったのか分かりませんが、なんとか入力障壁を構築することができました。私はオープンで、耳を傾け、自己改善の可能性を見つけたら研究し、おそらく何らかのテクニックやアイデアを採用します。しかし、BSを通過することはできません。私は長い間、ひどく実行されたプロジェクトで働いてきましたが、私は自分のためにそれらの悪いテクニックを採用していません。

プログラミングに満足したいなら、仕事を忘れて、あなた自身の個人的なプロジェクトがあることを私はすぐに理解しました。それは、あなたの愛、情熱、知識をすべて適用して、高品質レベルで物事を正しく行うことができる場所です。退屈な企業スタッフをハッキングする際に、これまでさらされたことや挑戦されたことのなかった無数のことをたくさん学びます。私は給料のためだけに仕事をし、自分の個人的なプロジェクトに満足しています。

私が本当に理解していないことの1つは、この状況が今日どのように可能かということです。ソフトウェア開発は非常に成熟しています。良い経験も悪い経験もありました。多くの成功したプロジェクトと多くの失敗したプロジェクト。長期プロジェクトの経験があり、いずれかの組織がプロジェクトにもたらす長期的な影響を理解しています。多くの研究が利用可能であり、良い本が書かれています。「実用的なプログラマー」、「コードの完成」、「神話のマンマン」、「日常的なもののデザイン」など。なぜ私たち以外の誰も、プログラマーがそれらを読むことはないのですか?ITで20年働いた後でも、ほとんどの開発者やマネージャーは、方法論の本を読む時間を見つけられなかった可能性があります。彼らはこの薬を最も必要とする人のために書かれていますが、ほとんど読まれません。

キャリアの観点について。私が従業員の雇用市場で一般的に気づいたことは、そこにいる雇用主は質の高い仕事への興味を失いつつあることです(一度持っていたと想像してください)。宇宙に関する知識、経験、理解を誰にも売ることは難しいと感じています。需要はありません。求められているのは、経験がなく、専門的な仕事をしたいという後輩によってプロジェクトが台無しになることです。次のラウンドが始まるように、安価な人々が使用され、虐待され、その後捨てられます。また、プロジェクトは低賃金の目的地に外注されており、あなたのプロジェクトだけでプログラミングを学び始めているようです。それは私が本当に理解していないことの一つです。

私は、将来のある時点で雇用されたプログラミングの仕事をやめるというアイデアをますます楽しんでいます。私は自分のプロジェクトで自分のスタートアップで働きたいです。そうでない場合は、フリーランスを試すか、有給の仕事の性質を変えることを検討しています。結局のところ、私は勤務時間中にほとんど何も学ばず、満足感を得られません。私は9〜5の何でもでき、自分の個人的なプロジェクトに常に満足しています。私はオンラインコミュニティから多くを学びます。私はここで注目を集め、自分のアイデアをサポートし、時には仕事や同僚とは決して会えないことさえ認められました。私が将来どこに行くのかがわかります。


26
あなたが説明したことは、まさに私の過去の経験の大部分です。"" "何も学ばないだけでなく、ソフトウェアを開発しない方法についてほとんど間違いを学ぶ可能性が高くなります。" "" 100%が同意します。

6
80年代と90年代は懐かしく、今ではすべてがあまりにも簡単で安くなっていますが、欠けているのは生活の質と楽しさです。

16
私はこれに賛成したい、私は多くの点で同じように感じるが、これは本当にあまりにも多くの運命と暗がりです。ワークスペースはそれほど哀れではありません。あなたが本当に素晴らしい人であるなら、本当に素晴らしいではない会社のために妥協しないでください。私は自分が信じている会社、そしてどこで会社を育てることができるか、どこで会社を育てることができるかのためにのみ働きます。私の専門知識により、20年間のキャリアでこの贅沢を得ることができました。私は最初の仕事が大好きで、ポジションを得るために戦いました。2番目の仕事も得るために戦わなければなりませんでしたが、3番目の仕事は私が選んだもので、自分でチケットを書き、今では栽培者だけを雇っています。

11
この憂鬱でやる気を起こさせる投稿に多くの人が同意するのを見るのは悲しいです。プログラミングは5年ほどしか経っていませんが、今までどこでも仕事をして他の人から学ぶことができました。私の同僚の大半は、彼らの仕事にある程度情熱を傾けてきました。私のマネージャーは仕事で学ぶことを奨励しています。私は常にアジャイルを実践してきたので、リファクタリング、ペアプログラミング、アーキテクティングを数多く行ってきました。私はうまくいけば、あなたが仕事は、コードの仕事は楽しいですそこにあることを知っているように、自慢し、このいずれかを言わないよ

2
@DumbCoder、あなたの名前はあなたをとてもよく説明しているようです。;)
アーレンベイラー

70

Coding HorrorにJeff Atwoodの投稿があり、これは楽しいはずだと言っていました。そして、ソフトウェア開発者であるという仕事の説明の一部は、あなたの仕事を楽しんでいます。そうでなければ、それはあなたにとって本当に退屈で面倒な職業になります。

仕事を改善する方法を継続的に検索し、新しいものやベストプラクティスを常に把握しているという事実は、仕事を自然で楽しんでいることを示しています。ですから、あなたへの私のアドバイスは、新しい仕事を探し始めることです。

しかし、大企業で働くことが必ずしも労働条件を改善するとは思わない。ソフトウェア開発者にとって最適な環境は、人々が自分たちのしていることを好む中小企業だと思います。最善の方法は、決定を下す前に会社を検索してチェックアウトすることです。新しい会社に価値があることを確認してください。


17
「ソフトウェア開発者であるという仕事の説明の一部はあなたの仕事を楽しんでいます。そうでなければ、それはあなたにとって本当に退屈で面倒な職業になります。」キャプテン救助に明らかに!
P Shved


3
あなたが言ったように、私はコーディングを楽しんでいますが、私が現在直面しているのは、「理想的な」世界と「現実の」世界のギャップです。理想的に機能する人は少なく、ほとんどの人は平均以下のレベルで機能します。私はまだバランスポイントを見つけていないようです。また、転職が解決策だとは思いません。しかし、私は準備ができていないと機会が来るとき、私はそれを見逃すと信じています。

2
企業規模と、ゲリラ/草の根のプロセス改善イニシアチブを管理できる可能性との相関関係は、実際にはありません。環境を変更します。

2
開発者向けの会社の範囲に同意します。中小企業は、人々が自分のしていることを愛しているので最高です。
タリック

50

最初のこと:大きな警告:10年間開発している場合(私がそうであるように)、開発よりも良い方法は他にありません。したがって、何か新しいことをしたい場合は、すぐにそれを行う必要があります。さもないと手遅れになり、他のことをするのが得意ではなくなります。

私自身の見方を共有するだけです。私は自己主導の人間であり、独学です。純粋なC、C#、Amiga C開発、Windows、COM、Delphi、PHP、Cinema4D、そして現在BlenderとPython だけを学びました。私はほぼ一人で働いてきました。ここに私がこれまでに遭遇した最大の問題があります:小さな会社は生き残りをかけ、あなたはそれを生き続けようとしています:それは非常にストレスがありますが、やりがいもあります:あなたはより多くの仕事をし、より速く学び、そして多くのものを迅速に、製品を高速化できます(イベントを頻繁に適切に実行できない場合があります)。とにかくストレスが多すぎる。それどころか、大きい企業は常に存続しますが、問題は人々に関するものです。それはジャングルですが、はるかに悪いです:何も明確ではありません:あなたが一緒に働く人々があなたが彼らよりも優れているように感じる場合、彼らはあなたが上に行くのを助けず、あなたが恐れているのであなたを撃つだけのために最善を尽くします自分のキャリア。フランスでのやり方です(他の国ではわかりません)。

簡単に言うと、自分の場所だと思う中規模の会社を探してみてください。どれだけ長くプログラミングをしていても、どれだけ長く働いていても、車に乗って仕事に行き、「自分の仕事に行って幸せだ」と思う日があなたが場所を見つけた日。

4〜5年などの問題ではありません。

NB:「仕事に行くのがうれしい」と「これをやるから仕事に行くのがうれしい」との間には大きな違いがあります/ / /「仕事に行くのがうれしい私はこれとそれを学ぶので働く」。「これとそれをやるから」と思うなら、これは「これとそれ」がいつか終わることを意味し、あなたはその後幸せではないかもしれません。これは私の12年のプログラミング経験です。そして、私は年長者で、給料は十分ですが、20〜25人の人々が私よりも速く考えることを実感しています。彼らは私の経験を持っていないので、私は彼らが物事を行うのを助けることができると認めました、彼らはそれをより速くしますが、私は彼らがそれらを適切に作るのを助けます(あなたが開発を始めるときはほとんどありません)。

私の英語は完璧ではないのでごめんなさい、適切な英語にするために私の投稿を修正することをheしないでください。


あなたの意見に同意します。大企業についても同様のコメントを聞いたことがあります。

+1。また、「私は学び、これとそれをやるので、私は私の仕事に行くことが幸せ」を探して

2
@Arnis、寿司を作ることは、10年間の開発者になってからキャリアパス全体を変えることとまったく同じだとは思いません。35歳になり、弁護士/医師/ジャーナリスト/会計士などになりたいと決めたら、必要な基本レベルに達するまでに少なくとも45歳になります。

3
申し訳ありませんが、私は自分自身を説明しなかったかもしれません。私は売り手ではなく、「良い嘘つきであることは良い売り手である」仕事でもありません。私はあなたが他の人よりも優れたパフォーマンスを見せたら、彼らはあなたが助けを必要とする日だけあなたを撃つことを試みることを意味しました。実際の例:20h00(私は独身で、まだ働いていました)パスワードでPCにアクセスする必要がありました。よくない55歳の男性に尋ねると、彼は答えた:「あなたはすっごく元気です、なぜあなたはそれを割ってみませんか?」今晩はパスワードを取得できませんでした。これらのことは大企業でのみ複数回起こりました。
オリビエポンス

4
「だから、何か新しいことをしたい場合は、すぐにそれをやらないと、手遅れになる可能性があり、他のことをするのが苦手になるでしょう。」- 違う。間違っている。私は45歳まで企業の仕事に従事していた人々を知っていましたが、その後、医学部に戻ることを決めました。彼らは彼らの仕事を愛しているので、彼らは非常にうまくやっています。重要なのは、心を開いてさえいれば変更するのに遅すぎることはないということです。25歳以降の脳萎縮については、昼間テレビをずっと見ていなかったとしても、真実ではありません。 。

36

私は21年間ソフトウェア開発者でした。とりわけ、飲酒に十分な時間をかけてきたことを意味します。;-)しかし、真剣に、しかし、私は他の何かをすることを想像することはできませんか、またはプログラミングと同じくらい楽しい。私はどうやらこの仕事を本当に愛している珍しい鳥の一人です。

私は最近、履歴書を更新していましたが、過去20年間に多くの仕事をしていることに気付きました-ほとんどが契約です。しかし、私がその長いリストを見て気付いたのは、私が最も愛した(そして私が最も長く滞在した)仕事はソフトウェア会社、つまりビジネスモデルが顧客にソフトウェアを販売することを伴う会社であったことです。以下の理論はおそらく普遍的に適用できるわけではありませんが、私の経験を説明するために遠いところまで行きます。

ご覧のとおり、ソフトウェアショップと一般的なITショップの違いは驚くほど明白です。それは、単に経営者が何を理解しているかという問題です。同社が収益の大部分をソフトウェアから得ている場合、トップのブラスはソフトウェアとその製造方法を非常によく理解するでしょう。しかし、ウィジェットの販売から収益が得られる場合、一般に、ソフトウェア開発の背後にあるプロセスは言うまでもなく、ITインフラストラクチャの実行を維持するために必要なことを微々たるものではありません。さらに悪いことに、彼らはタスクをITスタッフに委任しているにもかかわらず、ITプロセスを自分の知っているものにマッピングしようとします。その結果は、一般的に失望から悲惨なものに及びます。

理由の1つは、単に有能な人材からソフトウェアの名手まで、幅広い才能があることです。これは、スキルが不十分なポジションやセミスキルのポジションで非常にうまく機能する、あらゆるサイズの万能型の考え方に完全に反しています。1人の開発者が同様の「スキルセット」で他の開発者に置き換えられるという期待は、私たちにとっては馬鹿げているように思えるかもしれませんが、多くの場合、生の数値に焦点を当てた管理構造にとっては完全に合理的です。これが信じられないように思える場合は、Waterfallモデルを機能させようとしているショップの数を見てください。

チームのすべての名人が必ずしも必要なわけではありませんが、少なくとも1人または2人は必要です。そして、彼らの役割の一部は、彼らが役割に成長することができるように、後輩を指導することでなければなりません(または、洗い流されます-それは起こります)。そうでなければ、付随するミスファクタリングと肥大化とともに、中程度から中程度の劣悪なコードが優先されます。その癌が発生すると、コードは急速に維持できなくなり、チーム全体の生産性が急激に低下し、人々は燃え尽きます。

これにより売上高が増加し、最終的に誰かが「このことを続けることはできません。それを廃棄してやり直しましょう」と言います。従来のコードベースへの投資は途方に暮れ、プロセスは最初からやり直されます。「しかし、今回は違うでしょう」とあなたは約束します。そしてしばらくの間です。それから誰かがあなたのロックスターを雇い去り、あなたは無指向な後輩たちがあなたの輝く新しいコードベースを再び破壊することになります。

泡。暴言。悔い改め。

しかし、私は脱線します...だから、あなたの元の質問に答えるために:いいえ、五十年はソフトウェアのキャリアの中年ではありません。それはおそらくAge of Reasonです-あなたのキャリアの中でスケールがあなたの目から落ちて、それが何であるかビジネスを見始めます。実現はすべての人にとって異なる順序で行われ、それはあなたが道に沿って描くかもしれない結論を彩ります。しかし、そこに固執する-あなたが反対側の正気を出せば、あなたははるかに健康的な視点を持ち、最終的に私たちがこれまで以上にやりがいのあるこのクレイジーなビジネスを見つけるでしょう。


3
ソフトウェアショップと典型的なITショップの違いについてのあなたの説明が大好きで、完全に同意します。正直に言うと、ソフトウェアショップよりも典型的なITショップで働いたことがあり、なぜ過去2年間でプログラミングスキルがあまり向上していないのも不思議ではありません。私は新しいテクニック/プラクティス/パターンを読み続けていますが(現在CQRSを学んでいて、物事がどれほど単純化されているか驚くべきことに気づきました。最初は複雑で価値がないように思われるかもしれません)。私の個人的なプロジェクトを除いて、私が学んだものを実際に適用します。

あなたが説明したように、これらのITショップで上司やマネージャーのほとんどは、他に何も見ないだけです!しかし、公平を期すために、これらの典型的なITショップは、それらのソフトウェアショップよりも多くの雇用機会を提供しています。例外として、ITショップの大部分は、手っ取り早いお金を稼ごうとする無能なITスタッフに裏打ちされた野心的なビジネスマンによって運営されています。

32

5年以上の経験が必要だと思います。そうすれば、妥協点を受け入れて、できることを修正することができます。

少なくともそれは私の経験でした。約5年(専門家になるまでにかかる時間)で、私は実際に「それを手に入れた」と思います。私は自分のコードがくだらないものであることに気付きました。アプリが動作するようになった私の光沢のあるハッキングは、まさにそれであると気付きました。私は、上司を喜ばせて給料の支払いを続けるために、パー以下のコードを作成していたことを理解しました。

同時に、ボスの欲求は変わらないことに気付きました。良いツールにお金をかけずに、昨日はいつもそれを望んでいました。特定のデザインパターンを使用しても、彼らは気にしませんでした。単一責任原則を慎重に適用することで保守性が向上したため、彼らは決してa敬の念を抱くことはありません。

また、経験の浅いプログラマーに体現された若い自己と戦うことに気づきました。プログラムを高速化するためにプログラムをハッキングしたプログラマー。私が理解するのに何年もかかったすべての愚かなことに抵抗した若いプログラマー。5つのクラスがあると考えている若いプログラマーは、それをすべて行う1つの巨大なクラスを持つよりも混乱します。

しかし今、私は10年目の時点で、これらの不満は最初の5年間に経験した不満と同じであることがわかりました。新しいスキルを習得することに伴う不満です。しかし、今回のスキルは対人的です。スキルは、プログラマ以外の人にカウボーイの道を進むことの限界を理解させています。そして、これらのスキルは、私が最初の5年間に習得したコーダースキルよりも、物事の壮大な計画においておそらくより重要です。

しかし、この仕事の本当に素晴らしいのは、経営陣と協力しながら、技術的なスキルで開発を続けることができ、実際に続けなければならないことです。

だから私はあなたにそれを続けると言います!テクノロジーに慣れてきたので、人間と呼ばれるどろどろなものを扱うスキルに取り組み始めることができます。


3
+1あなたはとても正しいです!コミュニケーションスキルは、優れたソフトウェア開発者になるための次のステップです。
ディミトリC.

大学を卒業してフルタイムで1年間働いた後、私のコレクションは100%のプログラミングから50-50のプログラミング/人のスキルになりました。この投稿を本当に理解しています。誰かがかつて私に言ったように:「それが彼らにとって正しいと感じるなら、それは彼らにとって正しい」。

「技術スキルで開発しながら、経営陣とも協力すること。」これについては完全に同意します。私は最近の変化が嫌いなのに、現在の仕事にこだわっています-マイクロマネジメント、学習に割り当てられた時間、良い仕事や改善に気づかず、あまりにもプレッシャーがかかり、汚い政治。良いことは、ソフトスキルに関する私の問題について助言する人が2-3人いることです。ソフトスキルを学んでいないと感じたら、やめます。これは、これらのスキルが技術的なスキルよりも明らかに重要であることを認識し始めたためです。
ムゲン

29

相対的な幸福には2つの秘密があることがわかりました。

  • 欲しいものすべてを探し求めるのではなく、持っているものすべてを探したい

  • 人生は厳しいです-あなたがどれほど激しく打つことができるかは問題ではありません(個人的にも職業的にも良いです); 常に激しく反撃されます。どれだけ打撃を受けても先に進むことができるかが重要です。

結局のところ、それはすべて公園の中を歩いているだけで、ビットやバイト、プラクティス、およびものよりも重要なものがあります。すべての経験をそのまま楽しんで、できる限り反撃してください。


1
本当にいい点です!

8
+1、旅は目的地よりもずっと重要です。私は自分がどこへ行くのか分からず、行き先は私には興味がありません...

22

たぶん、見とる情熱プログラマーチャドFowlerのを... Webページからの引用:

ほとんどの場合、驚くべきキャリアは偶然ではありません。考え、意図、行動、そして間違いを犯したときに進路を変える意欲が必要です。私たちのほとんどは、私たちのキャリアがどこへでも連れて行ってくれるようにつまずいてきました。制御する時が来ました。


19

IMOあなたが明らかに感じる不満は危機ではなく、むしろあなたが特定のレベルに達したという兆候です。あなたは「私はただのプログラマー」スロットを大きくしました。これで、現状の欠陥とその修正方法を確認するための十分な理解が得られました。

次のステップは、潜在的な改善とみなされるものと、あなたが働く会社がそのように見えるものとの間の関係を見つけることです。それから、上司にこれが道であると確信させる必要があります。

物事を理解し、物事を行う方法を知るだけでは十分ではありません。また、自分が何をしているかを知っていることを人々に納得させることができるはずです。そして、販売のように思えるのは、それが理由だからです。しかし、これは「偉大」になるために絶対に必要です。あなたはコンピューターではなく、人のために働いており、人と一緒に働いています。あなたのアイデアを売ることができなければなりません。

もちろん、いくつかの会社はあなたのアイデアを受け入れるにはあまりにも保守的であり、上司はあなたが着ているネクタイの色のためにそれらを拒否することができます。アイデアを販売することは、アイデアを生成することよりも簡単ではないことを念頭に置いてください。また、販売の失敗は必ずしも上司の不本意の結果ではなく、悪いプレゼンテーションになることもあります。


完全に同意する!多くの人々が「人々」に言及しているように、取り組むべき次のタスクです!

18

私はニコスに完全に同意します。おそらく必要なのは、技術と製品に焦点を当てた会社を見つけることだと思います。ソフトウェア開発者が開発を自分の仕事だけと考えている企業があり、彼らは自分の時間にこのようなことを決して考えません。通常、作業環境は、開発者がマインドワークを行うのではなく、デスクワークを行うマネージャー向けに準備されています。開発者の平均的な標準は一般に低いです(ただし、「指導者」を1人取得することもあります)。彼らは、バージョン管理、テスト、プロセスなどのようなものにコーナーをカットする(または回避する)傾向があります。会社は通常、仕事をするソフトウェアを出荷しますが、多くの場合、ugくてバグがあり、特に気になる人はいません。

一方、開発者が自宅でやろうとしていることをやっている会社があります。夕方には家に帰り、自分の家の開発プロジェクトに取り組み、空き時間に新しい言語/技術を学びます。作業環境は通常、開発者中心であり、優れたモニター、優れたツール、思考に役立つ優れた雰囲気を備えています。多くの場合、開発者は高水準であり、毎日自分の仲間から学んでいます。通常、バージョン管理、テスト、プロセスなどを真剣に受け止めます。バグや欠陥がある場合、開発者は個人的にそれを取得するため、会社は通常、良質のソフトウェアを出荷します。

大企業を見つけることが必ずしも問題を改善するとは思わない。実際、多くの場合、大企業はより悪く、問題はより深く根付いており、より制度的です。

明らかに私は物事を二極化しています...しかし、あなたが(履歴書だけでなく)ソフトウェアエンジニアであるなら、あなたは後者のタイプの会社の一つを見つけて見つける必要があります。あなたが求めることができますいくつかの良い面接の質問を考え、それらを企業が場所のようなものであるかどうかを調べるために、。


1
仰るとおり!現在、私は私が深夜や早朝は本当に仕事をしなければならない場合でも、私は主に私の個人的なdevのプロジェクトを楽しむ相にしています
ニコスSteiakakis

14

多くのプログラマーが理解していないことがわかったのは、すべての決定が技術的なものではないということです。悲しいことに、「正しい」ことをすることは常に選択肢とは限りません。これにより、多くの開発者は上司が愚かだと思うか、下手な決断を下すことになります...そして、はい、しばしばそうですプログラマーがスケジュールを設定し、すべての技術的な決定を下せるようになった場合、完全に仕事をします。

悲しいことに、時々、仕事の政治的または財政的な制約の範囲内で働き、できる限りのことをすることが私たちの仕事です。

経験から学ぶことの1つは、保守的であることです。最新のテクニックは証明されていない可能性があり、たとえそうであってもあなたはそれらを強く把握していない可能性があります。マネージャーは、何か新しいことを学びたいという理由だけで、新しいテクノロジーに慣れるために時間を費やすことを嫌います。

プログラマーは、多くの企業がソフトウェア企業ではないことを忘れています。彼らはまた、ソフトウェアを行う<ビジネス業界をここに挿入>する企業です。プログラマーとしてのあなたの仕事は、完璧なソフトウェアを書くことではなく、ミッションクリティカルなプロセスを促進することです。これらは同じものであることが判明することもありますが、実際には非常にまれです。


1
単語アップ、よ...
ポールネイサン

あなたはマネージャーのように聞こえます。あなたが説明したことは本当ですが、私は同意しません。

私はマネージャーではありません。25年の経験があり、何百もの製品を提供してきました。
エリックファンケンブッシュ2009年

...しかし、企業は従業員を育成するという道徳的な責任を感じなければなりません。中規模から大規模の会社では、会社の金銭的な状況で眠りに落ちるべきではありません。より高い上昇は、おそらくあなたが利益を分かち合うことを許さないでしょう。それで、なぜそれらについて気にしますか?

10

私の意見では、それは中年の危機ではない-私は新婚旅行が終わったと言うだろう。


いいえ、私の「新婚旅行」は約12〜15か月続きました。4年は「プログラミングハネムーン」を切望する方法です。

3
20年、私はまだプログラミングで毎日情熱的な瞬間を持っています!何か違うことを試してみてください。恋のように新しいことを試してみたいというプログラミングでは、ほんとうに消えていく炎を復活させることができます。

ハハ、非常に真実です!
fastcodejava

10

書かれたコードのほうがいいかもしれませんが、99.99999%の時間で何かがうまくいくように、ほとんどの人にとって100%に近いとは言えない、完璧主義者である可能性のある行が必要です。 ?ネガティブな思考パターンとの闘いの一部は、完璧主義と激しい自己批判と判断です。

IMO、4〜5年で十分です。

  • あなたが望むもの-あなたは現在のポジションでどんなプラクティスを楽しんでいますか?
  • あなたに合ったもの-これは、あなたが望むものとは限らないという点で少し異なります。
  • あなたのディールブレーカーは何ですか-IDEを持たせない会社に就職できますか?極端な例ですが、それがポイントをいくらか説明することを望みます。

より良いプログラマーへのロードマップ」や「「より速い」プログラマーになる方法」のような他の質問があります。あなたのスキルを向上させたいなら、あなたに提案があるかもしれません。

また、スキルのレベルを達成するのではなく、長年にわたってフィールドで生き残るためだけにシニアタイトルが与えられる場所も経験しました。これを世界がどのように機能するかの一部として受け入れるか、実行が異なる場所を見つけようとすることができます。実際にはいくつ存在するかはわかりませんが、仕事のやりかたや、会社と同僚が仕事を成し遂げるために何を使用するかという点で、良い場所を見つけることができると言うことができます。

Sources of Insight」は私のお気に入りのブログの1つであり、ほとんどの場合それを読んで楽しんでいます。書かれたものには多くの知的要素があるという点で、この資料は少し頭が重いですが、自分の人生を少し良くしたり、少なくともそれが私の経験だったナゲットがあります。

私が子供の頃、私が最初に学校に通っていた8年生(幼稚園から6年生)、2年生(7年生および8年生)のように、4-5年後に頻繁に移行したことを覚えています。 、4年(私の場合は1年で11/12が行われた9〜13年生の高校)、および4年(大学の学士号)。

私は人生のさまざまな時点で危機が来るという考えを受け入れることができます。

いくつかの場所は仕事に最適な場所として表示される場合もあれば、「開発者の燃え尽き症候群の原因」と「開発者の燃え尽き症候群の話」で度か質問された燃え尽き症候群につながる場合もありますが、 「あなたのモチベーションは何ですか」、「プログラミングの(モチベーション)モチベーションとさらなる計画...

ここでの答えの背景のために、私は1998年2月に大学を卒業して初めて仕事をしていなかった8ヶ月の干ばつを除いて、ほぼ12年間ウェブサイト/アプリケーションを開発してきましたいくつかの異なる環境で常にこれを行ってきました:いくつかのドットコム、アプリケーションサービスプロバイダー、そして現在、ローカルテクノロジー企業の情報システム部門のWeb開発チーム内。これは長い答えだと思いますが、尋ねられた質問には私の頭に短い答えがないと思います。


9

私は10年間のプログラミングで同様のことを発見しましたが、これらはかなり一般的な出来事であると推測します。(学問とは対照的に)ビジネスの世界では、お金(またはお金の不足)と時間がプログラミングのスケジュール、機能、および品質を左右します。多くの場合、これらのリソースは、物事を完全に正しく行うために不足しています。これは、問題を解決するための最も効率的な方法を見つけるための主要な動機です。また、この状況は、必要以上の機能を含むものを構築するのではなく、私のプログラミングが当面の問題のみを解決する必要があることを覚えておく必要があります。私の意見では、これは学ぶべき重要な教訓です。

「上級プログラマー」に対するあなたのコメントも、悲しいことに私の経験ではよくあることです。その理由は2つあると思います。まず、多くの経験豊富なプログラマーは、自分のキャリアで使用したツールと方法だけを使用して怠け者になります。しかし、テクノロジーは進歩を続けており、これにより経験豊富なプログラマーは「恐竜」になります。第二に、しばらくプログラミングした後、少しhub慢に陥りやすくなります(「私の才能がこれまでのところ私を獲得しているので、私はかなり良いプログラマーでなければなりません」)。私は、私の問題を解決するための新しい方法や技術を継続的に習得することにより、これらの問題の両方に対処しようとしています。これは、上記の「必要なものだけを構築する」というレッスン状態と矛盾する場合がありますが、目標は、両者の健全なバランスを保つことです。

あなたの経験を動機として、継続的に自分自身を改善することをお勧めします。約5年後にプログラミング業界を辞めたのは、コードを設計する情熱を失ったからです。しかし、私はプログラムを構築するための悩みを取り除くことができず、数ヶ月後に業界に戻ってきました。プロジェクトの管理をしたい場合は、プロジェクトを管理できる立場を見つけてください。終日コーディングしたい場合は、それを行う位置を見つけてください。あなたに挑戦し、あなたの欲望を満たす仕事を見つけることは、幸せな存在の素晴らしい必要な部分です。


7

こんにちは、質問を読んで本当に良かったです。あなたがそう書いてくれてうれしいです。あなたは何を知っている、あなたはあなたが今何を持っているか理解していません。あなたが書いたことは、あなたがどんな経験をしたかを理解させてくれます。そして、この経験はすべてのプログラマーが人生で持つことができるものではないと信じています。あなたは自己駆動型の人、自己学習です。今、あなたは中小企業で4年間働いた後、非常に成熟した精神状態にあります。もしあなたが大企業にいたら、経験とみなされるものは何もなかっただろう。これで、この業界のしくみ、物事がどのように行われ、どのように行われるべきかを理解できました。これらのいわゆる「シニア」のレベル。あなたがとても良い自己学習者であり、4年以上にわたって自己学習を実践しているなら、私はあなたに提案をします。フリーランスをキャリアとしてみてください。あなたは自分自身のために働いて、もっともっと楽しんでくれると信じています。

最後のメモとして、過去4年間に行ったことを後悔しないでください。それは素晴らしい経験であり、彼らの生活の中でこれを持っている人はわずかです:)


そうでなければ、この質問を書かなかったと思う。中小企業は私に多くの「実生活の経験」を教えてくれました。「大企業」とは、実際にはプログラマーに適した企業、または「ソフトウェア資産」を重視する企業を意味します。会社の規模を意味するものではありませんでした。まだプログラミングをしているのであれば、来年はフリーランスになることを考えていました。ご存知のように、私は現在精神状態にあります。^ _ ^

はい。不満は良いです。自分が今いる場所に満足しているなら、ジェフリーが言及する「シニア」の人のように満足します。残念ながら、彼らは業界の大多数の人々を形成しているようであり、私たち全員が事実に対処することを学ばなければなりません。

7

上級プログラマーとジュニアプログラマーの違いは、まったく経験のある人について話すとき、一般的には単なる報酬ベースのものです。組織がタイトルを変更するために重視するものには多くのばらつきがあり、多くの場合、採用時に要求するものによって決定されます。

それが慰めであれば、私は10年間のプログラミング中期の危機に直面していますが、Appleでプログラミングを開始しました] [+。知りません。私はただ、人々がプログラマーに魔法を期待しないことを望んでいます。


7

私のキャリアで見た赤い糸は、退屈し始めたときのように自分の環境をコントロールできない状況に巻き込まれていると感じたときでした。他のみんながあなたに言っていることをするだけです。完全な責任を負うために、自分の領域(IMHO)を持つことが重要です-あなたの仕事にも欠けているのかもしれません。

その場合、マネージャーと話す必要がありますが、おそらく現在の仕事に何らかの解決策がありますか?より多くの責任を求めることは、常に良い動きです。


プログラマーがコントロールマニアであることを暗示していますか?

彼は間違っていないだろう;)
ホッブズ

「自分のキャリアで見た赤い糸は、退屈し始めたときのように、自分の環境をコントロールできない状況に巻き込まれていると感じるときでした。」まさに!
ビン・チェン

@ジェフリー、いいえ、それは一般的な人間の特性です、私たちが私たちの状況/環境を制御することが少ないほど、私たちは悪い気分になります。
アンデルス

7

私の経験では、最初の数週間(せいぜい数ヶ月)はプロジェクトの一般的な品質にとって重要です。他のプログラマーが既に混乱を引き起こしている場所でコーディングを始めた場合(コーディング標準が悪い、バージョン管理がないなど)、マネージャーにとって改善が非常に難しく、新しいピアにとってはほとんど不可能です。後に、締め切りと問題の発生により、ほぼすべてのプロジェクトにsomeさが生じますが、基盤がうまくできていれば、損害は限定的で管理しやすくなります。

そのため、悪いプロジェクトで悪い仲間と仕事をしなければならない状況にいる場合は、新しいプロジェクトに割り当てられるか(会社で可能な場合)、新しい仕事を見つけてください。悪い習慣は伝染するので、あまり長く待てないでください。


7

私は同じ質問をして、おそらくあなたが持っている同じもの(素晴らしいスタートアップ、インスピレーションのアドバイス、素晴らしいものを作る意欲的な人々、あなたの心を作るプロセス、アルゴリズム)を見て、現在の同僚または以前の同僚でそれを見つけられなかった、また私がビジネスに参加していることを知っている人にも。したがって、この深い関心と有給の仕事を一致させるこの難問は、多くのひどく眠った夜と、側に連れて行けるが、抜け道を提供するのに十分なほど早く独自のものに成長することができる非常に独創的なプロジェクトの検索を意​​味しました。多くの人と同じように、私には支援する家族がいます。個人的には、ブラジル市場をターゲットとするスタートアップで何かを構築するのにかかるエネルギーは、完全にITっぽくて退屈でなければ、十分に使われません。そして真剣に?私は一日中ITっぽくて退屈なことをしています。

だから私にとっての答えは、ある場所で学び、改善し、別の場所で働く意志を保つことでした。processing.orgを取り上げて、さらに描画、作成、料理を試みています。正直に言って、私にとってはすばらしいことです。時には、尊敬する人々との出会いに夢中になり、偉大な功績者のパンテオンに巻き込まれて、自分が誰であり、人生に価値があると感じるものについての深刻な事実を無視することがあります生活。仕事は1日のかなりの部分を占めるものですが、それが何を意味するのか、どこに行くのか心配するのをやめた瞬間は、そこに到達するために必要ないことに気づいた瞬間です。あなたが好きなものであればコーディングを続け、自宅でソフトウェアを書き、情熱的なプロジェクトに貢献してください。このタイプの満足度は、ほとんどの人の給与からはほとんど得られません。


少し悲観的ですが、すべて同じように現実的です!あなたはこれについて素晴らしい立場を持っていると思います。
ニコスステアカキス2009年

7

プログラマーとして、あなたは常に、完璧に対する欲求と、働く製品に対する雇用主の欲求のバランスを取る必要があります。一部の企業では、これらの2つの欲求は互いに近くなりますが、ほとんどの企業では、2つの欲求は遠く離れます。

日中の仕事の流出に対処するための私の最善の提案は、締め切りのない個人的なプロジェクトを開始することです。決定。私が書いた中で最も価値のあるコードは、Wii開発者として働いていたときでした。ゲームを書くことをお勧めします。プログラミング、3D、ネットワーク、AIなどのあらゆる側面に触れることができます。すでに.Netを使用しているので、XNAまたはUnityを入手することをお勧めします。

上級プログラマーがあまり知らない限り、あなたはおそらく正しいでしょう。大企業のほとんどの上級プログラマーは、多くのことを知っていたとき、または仕事を成し遂げたときに昇進しました。彼らはシニアであるため、主に管理者としてさまざまな責任を負っています。彼らのコーディングスキルが少し落ちると予想されます。一部の人は他の人よりも優れており、一部の人はおそらく彼らが知っているために昇進しましたが、私が過去に働いたほとんどの上級プログラマーは堅実な(時には時代遅れな)スキルセットを持っていました。

それをまとめるために、日々の退屈を和らげるために個人的なプロジェクトを行い、あなたの先輩を楽にして、割り当てられた時間内にできる限り最高の仕事をしてください、あなたは大丈夫です。


+1「プログラマーとして、あなたは常に、完璧に対する欲求と、働く製品に対する雇用主の欲求のバランスを取る必要があります」。
ビン・チェン

6

Sr、開発者になる時期だと思います。私はこの市場で新たに学び、改善していますが、雇用主は人間を探していません。彼らは6年以上の経験を持つJr.開発者のようなモンスターを探しています。イライラする。


2
絶対的に正しい!私が大学を卒業したばかりのとき、いわゆる「ジュニアポジション」は少なくとも2年以上の経験を持つ新卒者のようでした。私は幸運にも良い場所を見つけて、そこで2年間働きました。

1年の言語で5年の経験の後、シニア?外出して、他のプログラミング言語やオペレーティングシステムの経験を積む必要があります。それはあなたが上級開発者になる道を開くでしょう。

6

ジェフリー、良い質問です。あなたは今でもプログラミングを楽しんでいますか?あなたはそれに情熱を傾けていますか、暇なときにやりますか?または、あなたが持っていたひどいプログラミングの仕事にうんざりしていませんか。

プログラミングが自分に向いていないように感じている場合は、プロジェクト管理、販売、プリセールス、アナリストなど、キャリアのこの時点で分岐して実行できる他の多くの分野があります。これらの機会は、あなたが後輩/卒業生だったときには存在していなかったので、コードを切る以上のことを考え始めなかったかもしれません。おそらく、認定試験のスポンサーとして雇用主にアプローチしたり、新しいテクノロジー(Azure / Silverlight / WPF?)

一方、職場が本物のディルバートコミックに似ていると感じた場合は、先に進むべき時かもしれません。あなたが大企業で働いているなら、いくつかのスタートアップにインタビューするのはどうだろう。求人に応募している人に伝える必要はありません。求人を受け取ったとしても、すでに仕事を持っているので、交渉の立場にあります。求人が現在の状況よりも良いかどうかを簡単に判断できます。そうでなければ、ただ見続けてください。大企業は多くの場合、より良いキャリア開発の機会とトレーニングを提供できますが、中小企業では、企業の成功に対する責任、柔軟な労働時間、ストックオプション、企業のif / whenの後任/敬意など、より多くの無形資産を取得できます大当たり。


6

それが慰めであれば、職場の先輩についてもまったく同じように感じました。先週私は証拠に基づいた報告書を提出し、今週私は管理職について公式に苦情を申し立てるために(私は後輩だということを考慮に入れて)職員と1時間の会合を持ちました。それは、いくつかのボールを成長させるか、私の仕事で不幸だった。それは悪意のある苦情ではなく、建設的な苦情です。違いがあり、仕事での幸せに大きな影響を与えることは確かです。

編集

また、あなたは人々に問題があるので、「あきらめて」はいけないと言います。ここにいる多くの人が「仕事を辞める」と言っているようです。真実は、職場で違いを生むことできるということです。私は知っているが、安っぽいように聞こえますが、物事が変化することに積極的に取り組んでいるなら、あなたは変化を起こし、もっと尊敬を得ると思います。上司を脇に置いて苦情を言うのを怖がらないでください。私は持っており、すでに大きな違いを生み出しています。私は新しいテクノロジーを採用し、作業手順を変更し、より正式にタスクに近づいていますが、それはすべて私が言ったことです(そして私はジュニア開発者です)


正義感を維持してください、先生。

6

さて、別のドメイン(数学、AI、データマイニング、BI、統合など)を学ぶ必要があります。次に、この新しいドメインをマスターした後は、実際のビジネスニーズに対応する新しいアイデアが生まれます。

この段階で、あなたが優れたプログラマーである場合は、スタートアップを作成するだけです。まあ、それは危険ですが、もっともっと楽しい方法です。

プログラミングだけでなく、さまざまなスキルと能力を学び、それらを組み合わせて誰も考えていない新しいものを作成します。それは簡単です、あなたはすでに最高のハンマーを持っています:プログラミング。


6

私の個人的な経験はあなたが言及したものと同じです。私が最近取り組んでいるほとんどすべてのプロジェクトはすべて急いで行われ、すべてが改善される可能性があります。私は約7年間プログラム開発者であり、同じ中規模の会社に所属しています。経営陣は手がかりを持たず、すべてのプロジェクトを「非プロジェクト」として実行しています。カオスには秩序がほとんどありません。

私が最も恐れていることは、あなたが話しているピットに落ちて、私のキャリアで前進するために「くだらない」プログラミングと愚かな決定を始めることです。もしそうなったら、誰かが私を頭にぶつけてくれることを願っています。


5

うわー!この会話がどれほど価値があるかが好きです。私は5.5年以上の経験を持つWeb開発者で、大好きです。私は投票できませんが、AZの言葉を引用します。私はそれに同意します!

相対的な幸福には2つの秘thereがあることがわかりました。および専門的に); 常に激しく反撃されます。どれだけ打撃を受けても先に進むことができるかが重要です。

私がお勧めする本は:http : //www.amazon.com/Software-Measurement-Estimation-Quantitative-Engineering/dp/0471676225


5

私の2つのポイント:

私は業界でわずか2年後に私のものを打ちました。私は自分自身を改善し、学習することでそれを克服しました。

ほとんどの場合、あなたは何度も同じことをしているからです。そして、あなたが同じことを何度も繰り返しているなら...まあ...あなたは間違っています。

常に改善します。常に学ぶ。そして、もしあなたの現在の会社があなたにその雰囲気を与えていないなら、そうするものを見つけに行きましょう。過去2年間は私の人生で最高の時間でした(おそらく、2年前よりも仕事で100倍も上手です)



5

現実の世界へようこそ...残念ながら、あなたが説明していることは、自分のやっていることに十分な情熱を持っていない人たちのほとんどのキャリアで起こります。選択肢は1つしかありません(つまり、仕事が好きな場合)。より良い店を見つける必要がありますが、それは現在では簡単ではありません。


5

また、「私の職場環境」の「シニア」プログラマーと呼ばれるほとんどの人が、実際にはそれほど上級スキルではないという別の問題も観察しました。彼らは長年のプログラマーだからこそ「シニア」ですが、彼らが書いたコードや彼らが下した決定は絶対にゴミです!彼らは学びたくない、彼らはより良くなりたくない、彼らはただ支払いを受けたい

... に続く ...

私は精神状態に陥り、将来のキャリアのためにプログラマーになるつもりはありません。おそらくもっと良いものがあると考え始めました。

それから、探し始め、行動を起こす時です。あなたがこの姿勢でプログラマーであり続けるなら、あなたはあなたが非常に明らかに軽deするそれらの「年長者」のように終わるでしょうから。効果的な言葉は「閉じ込められた」ものです。他の場所に移るのを正当化できないほど十分なお金を稼ぎ、あなたのスキルは非常に狭くなり、業界内で動けなくなります。


3

おそらく大学院に行くことを考えていますか?それは、より長期的な別の種類の仕事の機会を開くかもしれません。


プログラミングは価値のある、長期志向の職業ではありませんか?

大学院は研究と仕事の別の層を開きます。今日の人気企業(google、microsoft)は、卒業生を雇うことを好みます。接続します。:-)
ポールネイサン

申し訳ありませんが、私は異なる種類のプログラミング作業、異なる種類のプログラミングを意味していました。
マックスストリーニ2009年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.