私はC#を専門的に4年以上プログラミングしています。過去4年間、私は「ウェブ/広告代理店」、業界固有の小さなソフトウェアショップから小さなスタートアップまで、いくつかの中小規模の会社で働いてきました。私は主に、高水準プログラミング言語(ガベージコレクション)を使用する「ビジネスアプリ」を行っており、私の全体的な経験では、これまでに行ったすべての作業はより専門的である可能性があります。多くのことは、主に人々が常に「今」何かを使いたいという費用要因が原因で、(ラッシュで)誤って行われました。大企業や、プログラマーにより適した会社で働くことができるのか、それとも長期的でメンテナンスしやすいものを本当に構築するためのお金と時間のある場所で働くことができるのか、と私は考え続けました。 4年間のキャリアを導いてくれた「メンター」はこれまでいませんでした。私は、学士号のIT学位以外は、ブログ/グーグル/独学のプログラマーです。
私はまた、「私の職場環境」でいわゆる「上級」プログラマーのほとんどが、それほど上級のスキルではないという別の問題も観察しました。彼らは長い間プログラマーであったという理由だけで「上級」ですが、彼らが書くコードや彼らが行う決定は絶対にゴミです!彼らは学びたくないし、もっと良くなりたくないし、給料をもらって、言われたことを実行したいだけなのです。多分それが彼らが今いる場所にいる理由です。しかし、私は彼らのようになりたくありません。もっと良くなりたいです。将来のキャリアでプログラマーになるつもりはないという精神状態に陥りました。たぶん、もっと良いことがあると思い始めました。ブログを読むほど、「ベストプラクティス」の数が増え、「現実」から離れていくように感じました。しかし、私は優れたプログラマーではありません。さもなければ、今の自分がいるとは思いません。 4年から5年は、キャリアを一歩前進させるか、あなたが今いる場所から一歩外れることができる段階だと思います。
上記で述べたことについて他の人が何を言わなければならないのか、そしてあなたが過去のプログラミングのキャリアで同様の状況を経験したかどうか、そしてどのようにそれに対処したかを聞きたかっただけです。ありがとう。
あなたは非常に興味深い質問を開きます。私は心からあなたに同意します。私は同様の観察をしました。
私は数年前から専門的にプログラミングをしてきましたが、私が観察したことは、仕事を愛し、品質と情熱を持ってそれを行うことができる優れた開発者の優秀なプログラマーの数は、ほぼゼロに近いということです。たぶん私に何かを教えてくれる人に会っただけだろう。私が知っていることのほとんどは、自分で学んだこと、本やフォーラムを読んだり、フォーラムで質問したり、啓示の考えを探したりすることです。
しばらく後悔はしません。
多くの場合、作業環境で学習するオプションは制限されることがあります。あなたは物事を始めません。あなたはそれらを終えません。設計も、改善も、リファクタリングも、アーキテクチャも考えず、コーディングとハッキングを一緒に行うだけです。それはほとんどの店が働く方法です。あなたは何も学ばないだけでなく、ソフトウェアを開発しない方法をほとんど間違ったものに学ぶ可能性が高くなります。私は周りで怖いもの、あなたが聞いたすべてのそれらのアンチパターンを見てきました。さらに悪いことに、私はそれらを自分で行うことを余儀なくされています。
どのようにして起こったかはわかりませんが、なんとかして入力バリアを構築することができました。私は心を開いて、耳を傾け、自己改善の可能性を見つけたら、調査し、おそらく何らかのテクニックやアイデアを採用します。しかし、どのBSも通過できません。私は長い間、うまく動かないプロジェクトで働いてきましたが、私はそれらの悪いテクニックを自分のために採用していません。
プログラミングに満足したいのなら、仕事を忘れて自分の個人的なプロジェクトを持っていることはすぐにわかりました。それはあなたがすべての愛、情熱、知識を適用して、高品質レベルで正しいことを行うことができる場所です。退屈な企業スタッフをハッキングする際にさらされたり、挑戦されたりすることのない無数のことを学ぶことができます。私は給料のためだけに仕事をし、自分の個人的なプロジェクトに満足しています。
私が本当に理解していないことの1つは、この状況が現在どのようにして可能であるかです。ソフトウェア開発は非常に成熟しています。良い経験と悪い経験があります。多くの成功したプロジェクトと多くの失敗したプロジェクト。長期プロジェクトの経験があり、一方または他方の組織がプロジェクトにもたらす長期的な影響を理解している。利用可能な多くの研究があり、書かれた優れた本があります。 「実用プログラマ」「コードコンプリート」「神話男月」「日常のデザイン」他なぜ私たち以外の誰もが、プログラマがこれを読むのですか? ITで20年間働いた後でも、ほとんどの開発者とマネージャは、どちらか一方の方法論の本を読む時間を見つけられなかった可能性があります。彼らはこの薬を最も必要とする人のために書かれていますが、ほとんど読んでいません。
キャリアの視点について。従業員の就職市場で私が一般的に気付いたことは、質の高い仕事への関心が失われている雇用主(かつてそれを持っていたと想像してください)が、入手可能な最も安い工作物を求めてますます買い物をしていることです。宇宙についての知識、経験、理解を誰にでも売り込むのは難しいと感じます。需要はありません。求められているのは、経験がなく、専門的な仕事をしたいという後輩たちによってあなたのプロジェクトを台無しにすることです。安い人が使われ、虐待されて、次のラウンドが始まるように捨てられます。また、プロジェクトは低賃金の目的地に外部委託されており、プロジェクトだけでプログラミングを学び始めたように見える人々によって行われています。それは私が本当に理解していないことの1つです。
私は将来、採用されたプログラミング作業をやめるという考えをますます楽しませています。私は自分のスタートアップで自分のプロジェクトで働きたいと思っています。そうでない場合、私はフリーランスを試すか、おそらく有給の仕事の性質を変えることを検討しています。結局のところ、勤務時間中はほとんど何も学びませんし、満足感もまったくありません。私は9〜5なら何でもでき、自分の個人的なプロジェクトには常に満足しています。私はオンラインコミュニティから多くを学びます。私はここで注目を集め、自分のアイデアをサポートし、場合によっては自分の仕事や同僚と一緒に得ることができなかった認識さえも受け取ります。私が将来どこにいるのかがわかります。
Jeff AtwoodによるCoding Horrorへの投稿 があり、これはおもしろいと思われています。そして、ソフトウェア開発者であることの仕事の説明の一部はあなたの仕事を楽しんでいます。そうでなければ、それはあなたにとって本当に退屈で面倒な職業になります。
仕事を改善する方法を絶えず模索していて、新しいものやベストプラクティスについて常に情報を得ているという事実は、仕事を自然の中で楽しんでいることを示しています。だからあなたへの私のアドバイスは新しい仕事を探し始めることです。
しかし、大企業で働くことが必ずしも労働条件を改善するとは思いません。ソフトウェア開発者にとって最良の環境は、中小企業であり、人々は彼らがやっていることを好きです。最善の方法は、決定を下す前に企業を検索してチェックアウトすることです。新しい会社がそれに値することを確認してください。
最初のこと:大きな警告:あなたが10年間開発している場合(私のように)、開発するよりも他にできることはありません。したがって、何か他のこと、新しいことをしたい場合は、すぐに実行してください。そうしないと、手遅れになり、他のことをするのが得意ではなくなります。
自分の見解を共有するだけです。私は自発的な人間であり、独学です。私はalone純粋なC、C#、Amiga C開発、Windows、COM、Delphi、PHP、Cinema4D、そして今はBlenderとPythonを学びました。私はほとんどいつも一人で働いてきました。これが私がこれまでに遭遇した最大の問題です:中小企業が生き残りをかけ、あなたはそれを存続させるものの1つです:それは非常にストレスを感じますが、それはまたやりがいがあります:より多くの仕事をし、より速く学び、そして多くのものすぐに、あなたは製品をより速く作ります(あなたがしばしばあなたの仕事を適切に行うことができない場合でも)。とにかく、ストレスが多すぎる。逆に、big企業は常に存続しますが、問題は人々に関するものです。それはジャングルですが、はるかに悪いです:はっきりしていることはありません:一緒に働いている人があなたよりも優れていると感じた場合、彼らは最善を尽くします上るのを助けるためではなく、あなたを撃つためだけに彼らは自分のキャリアを恐れているからです。それはフランスでそれが機能する方法です(私は他の国では知りません)。
簡単に言うと、自分の居場所であると感じている中規模の会社を探してみてください。プログラミングをしている時間が長くても、仕事をしていても、車に乗り込んで仕事に行き、「仕事に行ってよかった」と思う日があなたが見つけた日あなたの場所。
それは4年から5年の問題ではありません。
注意:「仕事に行ってよかった」と「これをやるから仕事に行ってよかった」とは大きな違いがあります。私はこれとそれを学ぶからです。」 「これとあれをやるから」と思ったら、これは「これとあれ」が1日で終わり、その後は幸せにならないかもしれません。これは私の12年間のプログラミング経験です。そして、私は先輩です。給料は十分ですが、20歳から25歳だと実感しています。人々は私よりも速く考える。彼らは私の経験をまったく持っていないので、私は彼らが物事を行うのを助けることができることを認めました、彼らはそれをより速くしますが、私はそれらを適切に作るのを助けます(これは開発を始めるときはほとんどありません)。
完璧ではない私の英語で申し訳ありません。適切な英語にするために私の投稿を修正することを躊躇しないでください。
私は21年間ソフトウェア開発者をしてきました-とりわけ、これは私がこれを飲み続けるのに十分な時間を費やしてきたことを意味します! ;-)しかし、真剣に、しかし、私は他に何かをしたり、プログラミングほど楽しいことをすることは想像できません。私はどうやらloveこの仕事を本当にしている珍しい鳥の1人です。
私は最近、履歴書を更新していましたが、過去20年間に多くの仕事を抱えていることに気付きました。しかし、その長いリストを見て私が気付いたのは、私が最も愛した仕事(そして私が最も長く滞在した仕事)は、ソフトウェア会社、つまり顧客へのソフトウェアの販売を含むビジネスモデルの会社でした。以下の理論はおそらく普遍的に適用できるわけではありませんが、私の経験を説明するために遠くまで行きます。
私が見ているように、ソフトウェアショップと一般的なITショップの違いは驚くほど明白です。それは単に上層部の人々が何を理解しているかの問題です。会社がソフトウェアからほとんどの収入を得れば、トップの真ちゅうは本当にソフトウェアとそれがどのように作られたかを理解するでしょう。しかし、ウィジェットの販売から収益を得ている場合、ソフトウェア開発の背後にあるプロセスは言うまでもなく、ITインフラストラクチャの稼働を維持するために何が必要であるかについて、それらは一般に最も微妙なことを知りません。さらに悪いことに、彼らはタスクをITスタッフに委任しているにもかかわらず、ITプロセスを彼らが知っているものにマッピングしようとし、結果は一般に失望から悲惨なものまで及んでいます。
1つの理由は、単に有能なものからソフトウェアの巨匠まで、さまざまな才能があることです。これは、未熟練者や半熟練者のポジションに非常に効果的な、万能のクッキーカッターに完全に逆行します。ある開発者が同様の "スキルセット"を持つ他の開発者に置き換えることができるという期待は私たちには滑稽に思えるかもしれませんが、多くの場合、生の数値に焦点を当てた管理構造には完全に合理的です。これがすごいと思われる場合は、Waterfallモデルを機能させるためにまだいくつのショップがまだ試しているかを見てください。
チームのすべての名手が必要なわけではありませんが、少なくとも1つまたは2つは必要です。そして、彼らの役割の一部は、彼らがその役割に成長することができるようにジュニア人々を指導することです(または洗い流す-それは起こります)。さもなければ、それに付随するミスファクタリングと肥大で、平凡な悪いジュニアコードが優勢になります。癌が発生すると、コードが急速に保守できなくなり、チーム全体の生産性が急激に低下し、人々は燃え尽き始めます。
これは、最終的に誰かが「私たちはこれを続けることはできません!廃棄してやり直そう!」と言うまで、売上高を生み出します。レガシーコードベースへの投資は枠を超え、プロセスは最初から始まります。 「しかし、今回は違うだろう」とあなたは約束する。そしてしばらくの間です。その後、誰かがあなたのロックスターを雇い、無指示のジュニアの人々があなたの光沢のある新しいコードベースを何度もゴミ箱に捨てます。
泡。怒鳴る。悔い改め。
でも、余談ですが、元の質問に答えると、いいえ。半年はソフトウェアキャリアの中期ではありません。それは、おそらくAge of Reasonです。おそらく、あなたのキャリアの中で目がかりから落ちて、それが何であるかについてビジネスを見始めます。実現はすべての人にとって異なる順序で行われ、それはあなたが途中で描くかもしれない結論を色づけます。しかし、そこにこだわる-あなたが反対側の正気を取り戻した場合、あなたははるかに健全な見通しを持ち、最終的に私たちがこれまで以上にやりがいのあるこのクレイジーなビジネスを見つけるでしょう。
あと5年の経験が必要だと思います。そうすれば、妥協案を受け入れることができ、何ができるかを喜んで修正できます。
少なくともそれは私の経験でした。約5年後(専門家になるまでにかかる時間)、私は実際に「理解した」と思います。私は自分のコードがくだらないことに気づきました。アプリを動作させる光沢のあるハックは、まさにハックだと気づきました。上司を幸せにして給料を振り続けるためだけにサブパーコードを作成していたことを理解するようになりました。
同時に、私はボスの欲望は変わらないだろうと気づきました。彼らはいつも良いツールにお金を費やすことなく、昨日それを望んでいました。私が特定のデザインパターンを使用しても、彼らは気にかけませんでした。私は単一責任原則を慎重に適用することによって保守性を高めたので、彼らが畏敬の念を抱くことは決してありません。
また、経験の浅いプログラマーによって体現された自分の若い自分と戦うことにも気づきました。プログラムをハックして高速に動作させるプログラマー。私が理解するのに何年もかかった愚かなことすべてに抵抗した若いプログラマー。 5つのクラスを持つと考える若いプログラマーは、すべてを行う1つの巨大なクラスを持つよりも混乱します。
しかし、私は10年の時点で、これらの欲求不満が最初の5年間に経験した欲求不満と同じであることがわかりました。新しいスキルの習得に伴う欲求不満です。しかし、今回のスキルは対人関係です。スキルは、プログラマーでない人に、カウボーイの道を行くことの限界を理解させることです。そして、これらのスキルは、私が最初の5年間に取得したコーダースキルよりも、グランドスキームの中でより重要かもしれません。
しかし、この仕事について本当に驚くべきことは、私が経営者と共に働きながら、技術的なスキルによって発展することを続けることができ、実際に続けなければならないことです。
だから私はあなたにそれを続けると言います!テクノロジーに慣れたので、人間と呼ばれるどろどろしたものを扱うスキルに取り掛かることができます。
相対的な幸福には2つの秘密があることがわかりました。
あなたが欲しいものすべてを求めるのではなく、あなたが持っているものすべてを求めようとする
人生それは厳しいです-それはあなたが打つことができるどんなに難しいことでもありません(良いあなた、個人的にそして専門的に);それは常により強く反撃します。どれだけの打撃を受けても、次に進むことができるかが重要です。
結局のところ、それはすべて公園を散歩することであり、ビットやバイト、実践などのものよりも重要なものがあります。すべての体験をそのまま楽しんで、できる限り反撃してください。
多分 The Passionate Programmer をご覧ください。
ほとんどの場合、驚くべきキャリアは偶然ではありません。彼らは、あなたが間違いを犯したときに、考え、意図、行動、そしてコースを変える意欲を必要とします。私たちのほとんどは、自分のキャリアが私たちをどこにでも連れて行かせてくれることにつまずきました。制御する時間です。
IMOあなたが明らかに感じる不満は危機ではなく、むしろあなたが特定のレベルに達した兆候です。あなたは「私はただのプログラマー」スロットを超えました。これで、現在の状況の欠陥とそれを修正する方法を確認するのに十分な理解が得られました。
次のステップは、潜在的な改善と見なすものと、あなたが働いている会社がそのように見なすものとの間の関係を見つけることです。次に、これが上手くいく方法であることを上司に説得する必要があります。
物事を理解し、物事を行う方法を知るだけでは十分ではありません。また、自分がやっていることを知っていることを人々に納得させることができるはずです。そして、それが売上高のように聞こえるなら、それはそうです。しかし、これが「素晴らしい」になるには絶対に必要です。あなたはコンピュータではなく、人々のために、そして人々のために働いています。あなたは自分のアイデアを売ることができなければなりません。
もちろん、一部の企業はあなたのアイデアを受け入れるには保守的すぎるため、あなたが着ているネクタイの色が原因で上司がそれらを拒否することがあります。アイデアを売ることはアイデアを生み出すことより簡単ではないことを覚えておいてください。そして、販売の失敗は必ずしも上司の悪い動機の結果であるとは限らず、それはあなたの側の不適切なプレゼンテーションである可能性があります。
私はニコスに完全に同意します。多分あなたが必要としているのは、テクノロジーと製品に焦点を当てた会社を見つけることだと思います。ソフトウェア開発者が自分たちの仕事だけを開発と見なしている企業があり、彼らは自分の時間でこのことについて考えたことはありません。通常、作業環境は、開発者がマインドワークを行うよりも、デスクワークを行うマネージャの方がはるかに調整されています。開発者の平均水準は一般的に低くなります(ただし、「グル」を1つ受け取ることもあります)。彼らは、バージョン管理、テスト、プロセスなどのようなものに手を抜く(あるいは回避する)傾向があります。会社は通常、その仕事をするソフトウェアを出荷しますが、それはしばしば醜くバグが多く、誰も特に気にしないようです。
一方で、開発者がとにかく自宅でやっていることをやっている会社もあります。彼らは夜に家に帰り、自分の家の開発プロジェクトに取り組み、余暇に新しい言語や技術を学びます。作業環境は通常、開発者中心であり、優れたモニター、優れたツール、思考に役立つ優れた雰囲気を備えています。開発者は、多くの場合、高い水準にあり、自分は毎日、すべての同僚から学んでいます。彼らは通常、バージョン管理、テスト、プロセスなどを真剣に受け止めます。バグや欠陥がある場合、開発者が個人的に受け取るため、同社は通常、まともな品質のソフトウェアを出荷しています。
より大きな会社を見つけることが必ずしも問題を改善するとは思いません。実際、多くの場合、大企業は悪化し、問題はより深く根付き、制度的になっています。
明らかに私は少し極性を変えています...しかし、もしあなたが本当のソフトウェアエンジニアであるなら(そしてあなたの履歴書だけでなく)、あなたは後者のタイプの会社の1つを試してみて見つける必要があります。あなたが尋ねることができるいくつかの良いインタビューの質問を考えてくださいthem、会社がそのような場所であるかどうかを調べるために。
多くのプログラマーが理解していないことは、すべての決定が技術的であるとは限らないということです。悲しいことに、「正しい」ことをすることは必ずしも選択肢ではありません。これにより、多くの開発者は上司が愚かだと思ったり、悪い決断を下したりします...そうです、そうです、それは確かにそうですが、それと同じくらい頻繁に、会社が廃業したり、会社を失ったりすることもあります。プログラマがスケジュールを設定し、すべての技術的な決定を下すことを許可した場合、完全に仕事をします。
悲しいことに、政治的または財政的な制約の中で仕事をし、最善を尽くすことが私たちの仕事である場合があります。
経験から学ぶことの1つは、保守的であることです。最新の技術は証明されていない可能性があり、たとえそうであっても、それらを強く理解していない可能性があります。マネージャーは、何か新しいことを学びたいという理由だけで、新しいテクノロジーにすぐに慣れるために時間を費やすことを好みません。
プログラマーは、多くの企業がソフトウェア企業ではないことを忘れています。これらは、ソフトウェアも行う<ビジネス業界をここに挿入>企業です。プログラマーとしてのあなたの仕事は、完璧なソフトウェアを書くのではなく、ミッションクリティカルプロセスを促進することです。それらは同じものであることが時々判明しますが、実際には非常にまれです。
記述されたコードの点で私は関連付けることができますが、何かが99.99999%の確率で機能するかのように、完璧主義者である可能性があるという行が必要です。ほとんどの人にとって100%に十分ではありません。 ?私の否定的な思考パターンとの葛藤の一部は、完全主義と激しい自己批判と判断であり、多分私はそれと過度に同一視することができます。
IMOは、いくつかのことを理解するには4〜5年で十分です。
「 より優れたプログラマーへのロードマップ 」や「 「より速い」プログラマーになる方法 」のような他の質問があります。あなたのスキルを向上させます。
私はまた、上級レベルの称号が、スキルのレベルを達成するのではなく、単にフィールドで長い間生き残るために誰かに与えられることを経験しました。これを世界の仕組みの一部として受け入れるか、別の場所で実行する場所を探すことができます。実際にはいくつ存在するかわかりませんが、仕事のやり方や会社や同僚が仕事を成し遂げるために何を使っているかという点で、良い場所を見つけることができると言えるでしょう。
" Sources of Insight "は私のお気に入りのブログの1つであり、ほぼいつでもそれを楽しんでいます。材料は、書かれたものに多くの知的要素があるという点で少し頭が重いですが、人が取ることができ、彼らの人生を少し良くすることができるナゲットがあり、少なくともそれは私の経験です。
私は子供の頃、4歳から5歳で転校が頻繁にあったことを思い出します。最初の学校が8歳だったとき(幼稚園から6学年)、2歳でした(7と8学年)。 、4年(私の場合11/12が1年で行われた9年生から13年生の高校)と4年(大学の学士号)。
私は、人生のさまざまな段階で危機が来るという考えを受け入れることができます。大学を卒業すると、自分が誰なのか、しばらく働いた後、それだけの価値があるのかと疑問に思われるかもしれません。
「 開発者のバーンアウトの原因 」および「 開発者のバーンアウトストーリー」という質問が何度かあったため、いくつかの場所は素晴らしい職場として表示され、他の場所はバーンアウトにつながる可能性があります。 」、その他の質問はその逆、「 あなたの動機は何ですか 」、「 プログラミング(脱)動機とさらなる計画... 」
ここでの回答の背景として、1998年2月に大学を初めて卒業し、仕事をしていない8か月の干ばつを除いて、ここ12年ほどWebサイト/アプリケーションを開発しています。これは、いくつかの異なる環境で常にこれを行ってきました。いくつかのドットコム、アプリケーションサービスプロバイダー、そして現在は地元のテクノロジー企業の情報システム部門のWeb開発チーム内にいます。これは長い答えだと思いますが、尋ねられた質問は私の心に短い答えを持っているとは思いません。
私の意見では、それは中年の危機ではありません-私は新婚旅行が終わったと思います。
私は10年間のプログラミングで同様のことを見つけましたが、これらはかなり一般的な出来事だと思います。 (学界とは対照的に)ビジネスの世界では、お金(またはお金の不足)と時間が、プログラミングのスケジュール、機能、および品質を左右します。多くの場合、これらのリソースは、物事を完全に正しく行うために不足しています。これは、問題を解決する最も効率的な方法を見つけるための主要な動機です。この状況により、私のプログラミングは、必要以上の機能を含むものを構築するのではなく、(将来の検討を加えて)目の前の問題のみを解決する必要があることに注意してください。私の意見では、これは学ぶべき重要な教訓です。
「シニアプログラマー」についてのコメントも、残念ながら私の経験では一般的です。その理由は2つあると思います。まず、経験豊富なプログラマーの多くは、自分のキャリアで使用したツールと方法のみを使用して怠惰になります。しかし、テクノロジーは進歩を続けており、これにより、これらの経験豊富なプログラマーは「恐竜」になります。第2に、しばらくプログラミングした後、ちょっとした傲慢さの餌食になりやすくなる可能性があります(「これまでのところ、私の才能は私を惹きつけてきたので、私はかなり良いプログラマーでなければなりません」)。私は自分の問題を解決するための新しい方法やテクノロジーを継続的に学習することで、これらの問題の両方に対抗しようとします。これは、上記の「必要なものだけを構築する」レッスンの状態と矛盾する場合がありますが、目標は、2つの間の健全なバランスのために努力することです。
あなたが持っている経験を動機として継続的に改善することをお勧めします。コードをエンジニアする情熱を失ったため、約5年後に自分でプログラミング業界を辞めました。しかし、プログラムを作成するためのかゆみを取り除くことができず、数か月後に業界に戻りました。私はあなたが自分が楽しんでいることを自分でやらなければならないことを学びました-もしあなたがプロジェクト管理をしたいなら、あなたがプロジェクトを管理できるポジションを見つけてください。終日コーディングしたい場合は、それを行うためのポジションを見つけてください。あなたに挑戦し、あなたの欲望を満たす仕事を見つけることは、幸せな存在の素晴らしくて必要な部分です-あなたがそれを見つけるのに幸運を祈ります。
私は同じ質問をし、おそらくあなたが持っているものと同じもの(素晴らしいスタートアップ、インスピレーションを与えるアドバイス、素晴らしいものを生み出すやる気を起こさせる人々、あなたの頭を作るアルゴリズム)を見ただけで、現在または以前の同僚にそれを見つけられなかった、私が知っている人でビジネスをしている人もいません。したがって、この深い関心を有給の仕事と一致させるという難題は、ひどくぐっすりと眠る夜と、独創的なプロジェクトを探すことを意味しました。多くの人のように、私にはサポートする家族があり、個人的には、ブラジル市場をターゲットとするスタートアップで何かを構築するのにかかるエネルギーは、それが完全にITっぽくてつまらないと十分に費やされないと思います。そして真剣に?私は一日中ITっぽくて退屈なことをしています。
だから私にとっての答えは、ある場所で学び、向上し、別の場所で働く意志を保つことです。私はprocessing.orgを取り上げ、より多くの描画、書き込み、および調理を試み続けています。正直に言うと、それは私にとって素晴らしいことです。あなたが尊敬する人々と一致し、偉大な達成者のパンテオンに夢中になっていることに夢中になって、あなたが誰であるか、そして人生に価値があると感じさせるものについての深刻な事実を無視してしまうことがあります。生活。そして、仕事は1日のかなりの部分を占めるものですが、それが何を意味するのか、そしてどこへ行くかについて心配するのをやめた瞬間が、そこに行くのに必要がないことに気づいた瞬間です。それが好きなものであればコーディングを続け、自宅でソフトウェアを書き、情熱的なプロジェクトに貢献してください。この種の満足感は、ほとんどの人の給料から得られることはほとんどありません。おそらくあなたもそうです。
プログラマーとして、完璧を求める欲求と、実用的な製品を求める雇用主の欲求とのバランスを常に保つ必要があります。一部の企業では、これらの2つの欲求は互いにより近くなり、ほとんどの企業では、2つの欲求はかなり離れています。
日々の仕事の浪費に対処するための私の最良の提案は、側で個人のプロジェクトを開始することです。それは、締め切りがなく、通常は仕事をしていない領域で仕事をすることができる場所です。決定。私が書いた中で最もやりがいのあるコードはWii開発者として働いていたときだったので、ゲームを書くことをお勧めします。プログラミング、3D、ネットワーキング、AIなどのあらゆる側面に触れることができます。すでに.Netを使用しているので、取得することをお勧めします [〜#〜] xna [ 〜#〜] または nity
上級プログラマーがあまり知らない限り、おそらくあなたは正しいです。大企業のほとんどの上級プログラマーは、彼らがよく知っているときに、または仕事を成し遂げることができたときに昇進しました。彼らが年長になった今、彼らは主にマネージャーとしてさまざまな責任を負っています。彼らのコーディングスキルは少しずれると予想されます。他の人より優れている人もいれば、知っている人がいるために昇進した人もいますが、私がこれまでに一緒に仕事をしたほとんどの上級プログラマーは、確かに(時には時代遅れですが)スキルセットを持っていました。
まとめると、個人的なプロジェクトを実行して、毎日の退屈を緩和し、先輩を楽にして、割り当てられた時間内にできる限りの最善の仕事をすれば、大丈夫です。
おいおい、質問を読んで本当に良かった。あなたがそう書いてくれてうれしい。あなたは何を知っている、あなたは今あなたが何を理解しているのか理解していない。あなたが書いたものは私にあなたがこれまでに経験したことを理解させ、そしてこの経験はすべてのプログラマーが彼らの人生において持つことができるものではないと私に信じています。あなたは自己主導の人、自己学習です。現在、あなたは中小企業で4年間働いた後、非常に成熟した心の状態にあります。あなたが大企業に入ったとしたら、あなたは経験と見なされるものは何もなかっただろう。これで、この業界がどのように機能するか、物事がどのように行われるか、そしてどのように行われるべきかについて理解できました。これらの「シニア」と呼ばれるレベルはどの程度か。あなたにとても良い自己学習者で、4年以上自己学習を実践しているなら、あなたはキャリアとしてフリーランスを試してみませんか?あなたは自分のために働いて、もっと楽しんでいると信じてください。
最後に、過去4年間に行ったことを後悔しないでください。それは素晴らしい経験であり、ほんのわずかの人がこれを人生で持っています:)
経験のある人について話す場合、上級プログラマーと後輩プログラマーの違いは、一般的には給与ベースの違いです。タイトルを変更するために組織が評価するものには多くのばらつきがあり、多くの場合、採用時に要求するものによって決定されます。
Apple] [+でプログラミングを始めたが、それが24年のポイントかもしれないので、私は10年のプログラミング中期の危機を抱えている。知らないプログラマーに魔法を期待しないでほしい。
私のキャリアの中で見た赤い糸は、自分が環境をコントロールできない状況に巻き込まれたと感じたとき、つまり退屈し始めたときだということがわかりました。他の人があなたに言っていることをするだけです。自分の領域(IMHO)が完全に責任を持つことが重要です-おそらくあなたの仕事にも欠けていますか?
その場合、あなたはあなたのマネージャーと話をするべきです、あなたの現在の仕事にはいくつかの解決策がありますか?より多くの責任を求めることは常に良い行動です。
私の経験では、最初の数週間(多くても数か月)はプロジェクトの全体的な品質にとって重要です。他のプログラマーがすでに混乱している場所(悪いコーディング標準、バージョン管理なしなど)で作業を開始した場合、マネージャーにとって、改善を確立することは非常に困難であり、ほとんどの場合、不可能です。その後、締め切りと問題の発生により、ほぼすべてのプロジェクトが見苦しくなりますが、基盤が十分に機能していれば、被害は限定的で管理可能です。
そのため、悪いプロジェクトで悪い仲間と協力しなければならない状況に陥った場合は、新しいプロジェクトに割り当てられるか(会社で可能であれば)、新しい仕事を見つけてください。悪い習慣は伝染するので、あまり長く待たないでください。
さて、あなたは別のドメイン(数学、AI、データマイニング、BI、統合なんでも)を学ぶべきです。次に、この新しいドメインを習得した後、実際のビジネスニーズに対応する新しいアイデアが生まれる可能性があります。
この段階で優れたプログラマーであれば、スタートアップを作る必要があるだけです。まあ、それは危険ですが、はるかに楽しいです。
プログラミングだけでなく、さまざまなスキルや能力を学び、それらを組み合わせて、誰も考えたことのない新しいものを作りましょう。それは簡単です、あなたはすでにこれまでで最高のハンマーを持っています:プログラミング。
私の個人的な経験はあなたが言うものと同じです。ほとんどの場合、私が最近取り組んでいるプロジェクトはすべてRushで作成されており、すべてが改善される可能性があります。私は約7年間プログラム開発者をしており、同じ中規模の会社に所属しています。管理には手掛かりがなく、すべてのプロジェクトを「非プロジェクト」として実行しています。カオスの秩序はほとんどありません。
私が最も恐れていることは、私があなたが話しているピットに落ちて、「キャリアのない」プログラミングと愚かな決断を始めて、私のキャリアを前進させることです。それが起こったら、頭を殴られる誰かがそこにいるといいのですが。
私はあなたのシニア開発者になる時だと思います。私はこの市場に新しく、学び、改善していますが、雇用主は人間を探していません。彼らは6年以上の経験を持つジュニア開発者のようなモンスターを探しています。イライラする。
良い質問ジェフリー。あなたはまだプログラミングを楽しんでいますか?あなたはそれについて情熱を持っていますか、あなたは暇なときにそれをしますか?それとも、今までに経験したひどいプログラミングの仕事にうんざりしているだけなのでしょうか。
プログラミングが自分に向いていないと感じている場合は、プロジェクト管理、販売、プリセールス、アナリストなど、キャリアのこの時点で分岐して実行できる分野が他にもたくさんあります。これらの機会は、あなたがジュニア/グラッドだったときには存在しなかったので、コードをカットする以上のことを考え始めていなかったかもしれません。おそらく、雇用主にアプローチして認定試験を後援してもらったり、新しいテクノロジー(Azure/Silverlight/WPF?)を探索したりすることもできます。
一方、あなたの職場が実在するディルバートのコミックに似ていると感じた場合は、次に進むときです。大企業で働いている場合は、いくつかの新興企業の面接、またはその逆はどうですか。あなたは仕事に応募している人に誰かに話す必要はありません、そしてあなたが申し出を受け取ったときでさえ、あなたはすでに仕事を持っているのであなたは素晴らしい交渉の立場にいます、あなたは申し出が現在の状況よりも良いかどうか単に決めることができます、そうでない場合は、探し続けます。大企業ほど、キャリア開発の機会とトレーニングを改善できることがよくありますが、小企業の場合、会社の成功に対する責任、柔軟な勤務時間、ストックオプション、企業の優先順位/敬意などの具体的な要素が得られます。大きな打撃。
慰めになれば、職場の先輩もまったく同じだと思いました。先週、エビデンスに基づくレポートを提出しました。今週は、マネージャーとの1時間にわたるミーティングで、マネージャーについての正式な苦情を提出しました(私はジュニアであることを考慮に入れています)。それはいくつかのボールを育てるか、私の仕事に不満でした。それは悪意のある苦情ではなく、建設的な苦情です。違いがあり、それは確かにあなたの仕事の幸せに大きな影響を与える可能性があります。
[〜#〜]編集[〜#〜]
また、人との問題があるので、「あきらめる」ことだけをしないでください。ここにいる人の多くは「仕事をやめる」とだけ言っているようですが、真実はあなたが職場で違いを生むことができるということです。不自然に聞こえますが、変化を起こし、変化に積極的に取り組んでいれば、もっと尊敬を得られると思います。上司を脇に置いて不平を言うのを怖がらないでください。私は持っていますが、すでに大きな違いを生み出しています。私は新しいテクノロジーを採用し、作業手順を変更し、より正式にアプローチするタスクをすべて私が言ったこと(そして私はジュニア開発者です)のために
うわー!この会話がいかに価値があるかが好きです。私は5.5年以上の経験を持つWeb開発者で、大好きです。投票はできませんが、AZの言葉を引用します。同意する!
相対的な幸福の2つの秘密があることを発見しました:-欲しいものはすべて持っているのではなく、持っているものすべてが欲しいのです-人生はつらいです-どれだけ強く打つことができるかは問題ではありませんそして専門的に);それは常により強く反撃します。どれだけの打撃を受けても、次に進むことができるかが重要です。
私がお勧めする本は: http://www.Amazon.com/Software-Measurement-Estimation-Quantitative-Engineering/dp/0471676225
私の2つのポイント:
私は業界でわずか2年後に私の物を打ちました。私は自分を良くし、学ぶことでそれを克服しました。
ほとんどの場合、同じことを何度も繰り返しているために起こります。そして、同じことを何度も繰り返していると...まあ...あなたはそれを間違っているのです。
常に改善します。常に学ぶ。そして、地獄、あなたの現在の会社があなたにその雰囲気を与えていないならば、そうするものを見つけに行ってください。私はそうしました、そして過去2年間は私の人生の中で最高の時間でした(私はおそらく私も2年前よりも私の仕事で100倍優れています)
プログラマーはたくさんいますが、品質の高いソフトウェアエンジニアはごく一部です。それはどんな職業でも本当だと思います。
現実の世界へようこそ...残念ながら、あなたが描写していることは、彼らが何をしているかについて十分に情熱を持っていない人々とのほとんどのキャリアで起こります。選択肢は1つしかありません(つまり、自分の仕事が好きな場合):仕事に適したより良い店を見つけなければなりませんが、今日では簡単ではありません。
私はまた、「私の職場環境」でいわゆる「上級」プログラマーのほとんどが、実際には上級のスキルではないという別の問題も観察しました。彼らは長い間プログラマーであったという理由だけで「上級」ですが、彼らが書くコードや彼らが行う決定は絶対にゴミです!彼らは学びたくありません、彼らはより良くなりたくありません
... に続く ...
将来のキャリアでプログラマーになるつもりはないという精神状態に陥りました。たぶん、もっと良いことがあると思うようになりました。
次に、調査を開始し、アクションを実行します。なぜなら、もしあなたがこの態度でプログラマーであり続けるなら、あなたはあなたが明らかに軽蔑するそれらの「年配の」人々のようになってしまうからです。手術の言葉は「閉じ込められている」:あなたは何か他のものに移動することを正当化することができない十分なお金を稼ぐでしょう、そしてあなたのスキルは業界内で移動することができないほど狭すぎるでしょう。
おそらく大学院に行くことを検討していますか?それにより、別の、より長期志向の種類の仕事の機会が開かれるかもしれません。
私は2つの異なる大陸の2つの会社で働いていましたが、精神はまったく異なりますが、どちらもプログラマーを気にしないという共通点があります...プログラマーは通常、最下位の企業に関連付けられています...そして、最低賃金を持っています...プロジェクトマネージャー、建築家などは...通常、より多くのお金をかけ、より少ない仕事をします...
私はほぼ4年間働いており、あなたと同じ気持ちを持っています...プロジェクトを切り替える...可能なすべてのプログラミング言語を試す... C、C#、php、ASP.NET、WinForm、C++、 Python、VB.NET、VBA ...そして私が一緒に働いたいくつかの言語でした...上司があなたに与える任意の言語でそれを作ることができることを上司が発見した瞬間から、彼らはあなたにタグを付けます"good"リソースを使用して、すべての汚い仕事をします...
私はまた、私のキャリアを通して私を導くためのメンターもいません...そして、ここに書いた多くの人のように...私が個人的なプロジェクトを行うときだけ私は満足を見つけます...しかし、残念ながら通常、長時間の仕事は真面目な仕事をさせないで...
結論として、情熱的な開発者の大多数があきらめて、退屈な建築家のポストを取り、より多くの現金を手に入れると決めるまで、私は数か月を失うことになります。
どういうわけか似た感じです。どちらも5年の経験があるのか、それとも「クリーンコード」を読んだ人々の組織的な増加が原因なのか、と私は思います(ドイツでは、「クリーンコード開発者」イニシアチブを中心に非常に活発なコミュニティがあります) )、「実用的なプログラマ」、「ALT.NETなどの「コード完了」など。すべてのブログには、正しくクリーンな方法を実行するためのアイデアが満載です。
ですから、5年の経験は単なる偶然の問題であると考えていますが、主な理由は業界の変化です。これはまったく新しいことです。住宅と橋は数千年から建設されており、機械は多くの年に建設されています何年も後悔し、より高度な医療は100年、コンピューターは約50年を経て、私たちは20年以来、第3世代言語でコーディングしています。ポイントがわかりますか?業界にとって成熟するまでには時間がかかり、業界は思春期の時代を迎えていると思います:-)
この質問は、私たちの業界の悲しい状態をかなりよく説明しています:プログラミングは素晴らしいですが、ほとんどのプログラミングジョブは失敗します。
視点を変えることは非常に重要です
私たちプログラマーは多くのことについて文句を言い、泣きます。私たちはすべてが「perfect」であることを望んでいます(=私たちはすべてが私たちの道であることを望んでいます)。私は(まだ変えようとしている)あなたのようでした。しかし、Chad Fowlerの「 The Passionate Programmer 」を読むと、すべてが変わりました。私は自分がプログラマーであることが幸運だと思っています。私は週52-55時間の仕事をしています(そうです、そうです)。 「perfect」ではありません。でも、情熱を持って仕事をしています。私はインドのアウトソーシング会社で働いています。私たちが得た仕事の種類は、やりがいのあるものとはほど遠いものです。プログラマーは、クリエイティブな衝動を満たすためのさまざまな機会を持つことができて幸運です。私たちは自分のプロジェクトに取り組むことができます。オープンソースプロジェクトに取り組むことができます。週末はフリーランスできます。他の分野のほとんどの専門家には、そのような贅沢はありません。
「仕事」に対する不満と「仕事」に対する不満を混同しているのではないかと思います。他の人が言ったように、あなたは状況の変化を必要とするだけかもしれません。
基幹業務(LOB)プロジェクトではなく、製品に重点を置いた開発では、品質と成果に対する努力/欲求の間に、より強い関係がもたらされる可能性があります。商用製品を最高の状態にしようとするとき、特に市場が技術/プログラマー領域にある場合は、他の人の努力に非常に集中して調整します。たとえば、ソフトウェアツール開発者になる必要があるかもしれません。 ?
とにかく、私は確かにより多くのお金で大企業を探すことはお勧めしません。
マネージャーの視点を申し上げます。コーディングの機会の世界的な供給は、それらに対処するために利用可能な才能時間を大幅に超えています。マネージャーはビジネスを営んで利益を上げます。そのため、利用可能な才能時間を可能な限り多くのコーディングの機会に適用しようとします。そのため、物事がラッシュで行われ、安価で行われることは、結果は収益に影響しません。
私の経験では、大企業のskunkworksプロジェクトとして、またはオープンソースプロジェクトに取り組んでいる自発的な寄稿者によって、経営陣が見ていなくても、最良の仕事は成し遂げられます。
私のアドバイスは、コスト管理の規律を採用し、スカンクワークの機会を探し、空き時間に従事するオープンソースプロジェクトを見つけて管理に入るということです。
PS。私は12年間C/C++開発者でしたが、Javaをディレクターとしてコーディングしています。
これは自分を超えてあなたを魅了するチャンスだと考えてください。あなたの雰囲気を改善するために率先して取り組むことをお勧めします。失敗したり成功したりしても、途中でたくさんのことを学びます。
肯定的な変更を加えるよりも、文句を言う方がはるかに簡単です(私もこの言葉が好きではないことを知っています)。あなたはコミュニケーションをとることができるはずです;あなたは共通の基盤を組み立てることができるはずです;あなたはしつこく忍耐強くなければなりません。あなたは自分のビジョンで他の人の話を聞いたりやる気にさせることができるはずです。 これらは、あなたの人生全体に役立つ、決してデータがなくなることのないスキルです。
プログラマーとしての仕事に長けていると、企業生活で遭遇するほとんどの人は、得るより失うことが多くなります。上級管理職はあなたの能力から利益を得るでしょう、そしてあなたはあなたが彼らのサポートを持っていることを確実にする必要があります。
あなた自身のメンターを見つけてください。あなたがこのゲームを愛しているなら、あなたが成長するのを助ける人を見つけるのはあなたの責任です。
10年の経験と1年の経験の10回には違いがあります。
しばらく同じ感じです。私は大企業のITショップにいて、同じようなものを見ています。高齢者はほとんど停滞していて変化に抵抗力があり、その抵抗力は非常に染み込んでいるため、ソフトウェアのユーザーインターフェイスを合理化することさえできず、オリジナルをほぼ正確に複製することになります。
元のソフトウェアがほとんどひどいことは助けにはなりません。設計は非常に複雑で、非常に非効率的であり、同様にエラーが発生しやすい...しかし、経営陣は私たちに同じアーキテクチャ上の決定の多くを行わせなければなりません。
だから私はフリーランスへの移行に取り組んでいます...
興味深い投稿。私は4年目の途中で、専門的に.net開発を行っています。私は現在の仕事に本当に不満です(私は探していますが、今のところそのことについて言うことはあまりありません)。
私はかつて、すべてを文書化することを強調するために彼の方法からばかげて行ってしまった先生がいました。コードではなく、「すべて」を意味します。そして、それでもおそらくまだ十分ではないと述べました。まあ、物事を知ることと理解することには違いがあり、私はそれを理解するようになりました、そして彼は正しいです。十分ではありません。私は文書に失敗しましたが、最近の会話を持ち出します、私は失います。文書化すると、何かを誤解していると言われます。私はこれまで自分自身を長くハードに見てきましたが、私自身の欠点のいくつかは間違いなく働いていると思います。しかし、コミュニケーションは双方向の道であり、私はいつも邪魔するわけではありません。私が何かを提案したり、問題に対処したりすると、さらに悪いことに、それらはその時に吹き飛ばされて、後で出てきます。彼と私の上司が、最近リリースされたアプリの特定のページで何もしなかった理由を尋ねたので、私は最近VPのオフィスに戸惑いました。それでも、開発中にそのことについて質問したところ、打ちのめされました。このようなことは私の好みではあまりにも頻繁に起こっています。
スキルの習得/維持などは時々議論されますが、私たちはそれを行いません。私たちは仕事でこれを行う機会を持っていますが、私たちはまだそれをしていません。期待はずれの。私は、最新の技術/ツールが登場するたびにジャンプすることを期待していません。しかし、例えば.net 3.5開発を行う必要があります。 3.5開発を行わないことについては議論はありません。しかし、2.0の開発はまだ行っています。それは愚かです。私の上司が新しいことに不信感を持っているのは、ほとんどの場合良いことですが、ばかげています。私は最近(3.5への移行を主張しているとき)LINQを彼に説明してみましたが、彼の返答は「その英語のクエリのように聞こえます」でした。問題の一部は、LINQを説明する上手な仕事をしていたことがわかった。しかし、双方向のコミュニケーションの道に戻ると、それは相手の話を聞きたくない人でした。メンタリングを最優先事項にしてくれるとは思わない。しかし、私のグループ(わずか3人の開発者)は、学習を促進するためにより多くのことができます。
会社での私のグループの地位は、昨年1年半でやや改善しました。しかし、まだ問題があります。私たちのVPがこれを主に担当しています。それはイライラさせられますが、仕事の他の特定の側面がより充実していれば、私はこれで生きることができました。
Ironspeed Designer-あなたを憎む神。そして、問題は、コードジェネレーターが役立つ理由を理解していることです。私は、人生の中である特定のタスクのためのコードジェネレーターを求めていました。しかし、私たちはIronspeed主導のグループになりつつあるようです。仕事で成長する能力を著しく阻害するので、私はこれが好きではありません。
私はソフトウェア開発とプログラミングの技術に関心がありますが、両方とも不十分です。私はソフトウェア開発/プログラミングの技術に関心のある人とは協力しません。コードレビューなし。私はしばしば、物事をテストする助けを得ることができません(そして、昨年は物事がそこで良くなったとしても、ユーザーをテストすることができません。そして、バグがリリースで本番に移行する場合、怒鳴られます。私は。一人の男です。私はそんなにしかできません)。
だから私は独力で学ぼうとします(私が学んでいるのを見たいと思っている人の周りでもっとうまくやろうと思います)。仕事以外でプログラミングしたい段階と、我慢できない段階があります。つい最近私はかなりの残業をするという特に忙しいプロジェクトを完了したので、約6週間で仕事から実際に学んだことはありません。しかし、私はそれに戻って、DepthでSkeetのC#を再度読んで、MVCをいじくり回します。 。 。
私はこの1年半、多くの疑問と戦ってきました(とにかく自信が私の長所の1つではありませんでした)。私はそれを危機とは呼びません。私はdoをするのが好きだから、私は兵士をつけた。安っぽい仕事でも働いています。
これが本です:
アジャイルソフトウェア開発でのキャリアを計画している場合、この本には良いアドバイスが含まれています。序文はワード・カニンガムによるものです。 著者のサイト も参照してください。 125ページ。
プログラミングの知識ですでにやりたいことをやっている仕事を見つけない限り、プログラミングの関連するまだ興味のない部分にフルタイムで取り組むと、最初にやりたいことに興味が鈍くなります。
あるいは、フルタイムでWeb開発作業を行う最新の経路計画アルゴリズムを使用したセルフガイドロボット工学に強い関心を持っている人は、おそらく自宅のコンピューターを見たくないでしょう。彼らが実際に望んでいたキャリアへの道を進んでいて、途中で止まらない同じ人は、多くの場合、週40時間を超えて喜んで働き、幸せに家に帰り、朝休んで目覚めます。
理論的には、少なくとも。
私は定期的にこれらを持っています。何が起こるかというと、一般的に自分の仕事に興味を失い、新しいスキルを習得しようとすることです。その後、私はこれらのスキルを仕事に取り入れようとしますが、チャンスはほとんどありません。これは、マイクロ管理と絶えず変化する会社の方針によるものです。
最悪なのは、国の別の場所に移動しない限り、現在の雇用主に多かれ少なかれ行き詰まっていることです。
私たちと一緒にいる唯一の「シニア」開発者は実際には開発者ではありません。少なくとも私の目には、彼は本当に生産的ですが、彼がコードを書くのを見たことがありません。そして、私の知る限りでは、彼は私たちの他の人よりもはるかに長い経験を積んでいません。
ボートを造ったり、何かをしたいです。しかし、私は8年間で本当に折り返し点を過ぎたと感じています。
でも、何か違うことをする機会があったら、どういうわけか、自分が誰なのかというと、帰ってくる気がします。私はコードを知っています。
もちろん機会があれば、あなたはしばらく他のことをすることをお勧めします。 ITコンサルティング、データウェアハウジング、販売、さらにはサポートなど。
あなたはプログラミングへの情熱を再発見し、それに戻ってとてもうれしい(これは私に起こったことです)か、新しい仕事に満足して、以前は考えていなかった別のキャリアを追求するでしょう。
プログラミングに戻ると、以前とは異なるテクノロジーを使用して、他の業界のさまざまなプロジェクトに取り組む可能性が開かれる可能性もあります。これも良いことです。
多くの人が基本的に「何かを学ぶ」と言っていますが、私もそれに同意します。特に、あなたが特別に興味を持っているドメインを見つけて、それを使ってgoodを取得することをお勧めします。 「本当に3Dアーティストになりたかったが、どうすればよいかわからなかった」というWebデザイナーが多すぎます。興味深いプロジェクトや技術を採用するための最善の方法は、他の興味深いプロジェクトや技術を経験することです。満たされてはいないがまだ十分ではない職場を有利に利用して、新しい概念を取り入れるための精神的な呼吸の部屋を与えることができます。
一般に、私がこれらの状況で聞いた最良のアドバイスは、前向きに考えるのではなく、建設的にを考えることです。私のキャリアはどこですか?どこになりたい?ここからそこにたどり着くには、どのような手順を踏む必要がありますか
自分の会社の活動を実践的かつ全体的にとらえると、見栄えがよくなります。現状のワークフローにどのような現実的な代替案を実装しますか?あまり混乱させることなく導入できる小さなコンポーネントはありますか?新しいモデルの提案書とその一部の作業コードを提示すると、ビジョンと技術的能力が示されます。優れたジュニアプログラマーと優れたシニアプログラマーの違いは、作成するために必要なソリューションの範囲です。
(また、9から5の4ビットの年は、フィールドに投入された10,000時間にも相当します。特に関係はありませんが、知っておくと良い目安だと思いました!)
プロジェクトはものです。本当に。私は自分の小さな会社と中規模および大規模のチームを経営しています。私が目にする最大の最大のものは、プロジェクトを掘り起こすときに誰もがやる気を起こさせるということです。プロジェクトが本当にかっこいいなら、もっと安くはないですか?自分がやっていることに完全に没頭し、他の人が同じように感じているのを見るように請求されているときは、もっと長く働きませんか?
私たちは最善を尽くします。それで、あなたがあなたの手形を支払う誰かのために働いているとき、どのようにあなたはあなたのキャリアに価値を注入することができますか?イノベーションを通じて。革新して他の人と共有してください。それはそれを新鮮に保ちます。
あなたの経験が4年未満だったと想像してみてください。女性であり、可愛く、開発者としてのあなたの仕事を完全に愛し、誰もあなたを真剣に受け止めないでください。あなたが知識の中で何度もつぶした場合でも、あなたを取り巻く男性はあなたを愚かな女の子であると常に装う必要があります。はい、時々それは本当にイライラします、しかし私はライブのすべてがあなたがあなたがすることをどれだけ愛するかであると私は思います、そして確かに本当に本当に学ぶ唯一の方法は私たち自身の努力によるものです。
私の経験から、いくつかの大企業でも状況は同じです。重要なのは、組織の価値とポリシーであり、規模ははるかに小さいです。
あなたがより情熱的であるソフトウェアエンジニアリングのサブフィールドを見つけて、どの企業がその分野で仕事をしているか、どのように働いているかを調べてみてください。
通常、高齢者は長い間そこにいたか、重要な地位(チームリーダー、アーキテクトなど)を持っている人ですが、1つの会社に長期間滞在するとマイナスになる傾向がありますあなたが彼らの状況と彼らが使用するテクノロジーに慣れ、物事を変えたり新しいアプローチを試そうとする努力を減らすので、影響力があります。 -新鮮な心は非常に重要です、社内での経験はその会社で物事を成し遂げる方法を知るために重要です。会社は両方の組み合わせを持っている必要があります。
また、あなたの職場をできるだけ多くの外部コースに送るようにしてください。そうすれば、あなたの技術的知識と作業方法が改善されると思います。
実際には、経験の長さは、能力に関しては、いかなる種類の保証にもなりません。何が起こるかについての良いモデルは Dreyfusスキル獲得モデル です。これは、もともと看護で一般化されていましたが、ソフトウェアエンジニアリングに少しの復活がありました-これが Rubyに適用された例 です。 (個人的に私はマッピングについて少し疑わしいですが、それでも興味深い読み物です)。
悲しいことに、ほとんどの人は自分のスキルの「上級ビギナー」ステージを超えて自分自身を引っ張ることはありません(モデルはスキル全体に対してではなく、スキルごとに適用する必要があることに注意してください)-自己改善を実践するだけでなく、あなたを次の段階へと導く正しい種類の学習。これが、多くのコースを受験し、試験に合格し、それでもゴミになることができる理由です。
スキル開発の特定の段階(有能または熟練)に達し、自分を他の人からよりよく区別できるように思えます。一般的なパターンは、特定の重要なスキルの専門家になるまでに10年かかることですが、ほとんどの人はそうすることはありません。
40年以上のハッキングの後、おそらく新しいキャリアが整うのではないかと疑問に思っている人からのいくつかのとりとめのない話... :-)
いや。私はこれが大好きです。パンチカードや紙テープから、CDCメインフレーム、PDP-*、4004、Alpha、Nova、Eclipse、Eagle(ソフトウェアよりずっと前に登場したハードウェア)、Mac Miniなど、あらゆるものに至るまで。そして、多くの人々が来て去った後も、まだ新しい技術に興味を持っている私たちが何人かいます。私の最初の告白は、ミニコンピュータ業界の子供として、Cobol/Mainframe時代の古いフォギーを見て、私たちの若いホイッパースナッパーが技術的な日を節約し、何百万ものことは言うまでもありません。
その間ずっと、やり残しが多すぎるため、実際にプログラミングを離れることを真剣に考えたことはありませんでした。その多くは、無知な管理者がラッシュで作成した5か月の赤ちゃんを何度も何度も届けるために作成されています。そしてそれは、9-5ersやオフショアリングによって行われる面白くない仕事の大部分であるその仕事です。
興味深いことは、スタートアップ、中小企業、およびAppleとGoogleのような企業がさまざまな理由で創造的なプログラミングを促進する作業環境を作成したことで行われています。首を突き出して、時々頭を垂れさせてくれる人。そこに行って、それをやり直します。1日の終わりに、そのアプリケーションを見るのと同じぐらいだからです。 、システムまたはライブラリが実際に動作して使用されていること、そして何よりも重要なことですが、あなたの努力によっては、最終製品はさらに悪化します。
心配無用。あなたがこれを好きなら、あなたは30年後にそれをするでしょう。そうでない場合は、運が良ければ、自分の好きなことを見つけることができ、それが内部の満足度につながり、うまくいけばもっとたくさんなるでしょう。いずれにせよ、深く感じた情熱を表現する機会さえあれば素晴らしい質問です。
私は過去4〜5年間、大規模な(エンタープライズ)ソフトウェア会社で働いていましたが、質問で説明されているように、実際の考えやデザインなしに、多くのソリューションが一緒に投げられているのを見てきました。私は幸運にも何人かの素晴らしい人たちと仕事をすることができましたが、同じ過ちが何度も繰り返されているのを見ると少し憂鬱になります。多くの場合、問題は技術的なものではなく、不十分な管理の結果です。
麻薬の取引を始める時のようです。
自分のために言えば、サイクルがあります。私が専門的に開発を始めたとき、私は興奮し、熱心で、すべての新しい問題に取り組む素晴らしい時間を過ごしました。数年後、会社への旅行に数ヶ月かかりました。私は実際に必要な旅行の量に準備ができていなかったので、次へと進みました。私が働いていた次の会社は、大きすぎて明確に焦点が合わないという問題がありました。私が行っていたコーディングには、明確な意図やビジネス上の理由はありませんでした。結果として、それは主に満杯の時間でした。
その後、コンサルタントになり、FTEの仕事とそれほど大きな違いはないことに気付きました。私は通常、複数年の任務に携わっていますが、最終的には仕事になってしまいます。他の人が言ったように、あなたは仕事を成し遂げるために多くの邪悪なことをしなければならず、新しくて面白いものとは対照的に、あなたが使っているテクノロジーに夢中になります。私は数年を費やして、テクノロジーについてあまり気にしていませんでした。十分な回数のサイクルを見てきたので、1〜2ラウンドを無視した場合、実際には自分自身を破滅させることはありません...しかし、バンドワゴンに戻って、重要な変更。前回インタビューを行ったとき、ユニットテストとMVCは.NET空間には実際には存在せず、パターンは.NETコミュニティではほとんど話されていませんでした。
私が「正しく行う」かどうかの最良の決定要因は、週末と夕方に自分でコーディングするかどうかです。もしそうなら、私はテクノロジーに情熱を傾け、興味を持ち、学びます。もしそうでなければ、私の仕事はおそらく私を道に行きすぎているか、私に同じことを何度もやってもらい、興味を失っています...その場合は、次に進む時間です。
覚えておいてください:あなたの上司はあなたの仕事を担当し、あなたはあなたのキャリアを担当しています。 (ブライアンプリンスの優れた開発者としての素晴らしい講演から露骨に盗まれた)
:-)私はあなたに、市場に出すためのコードの法則が次のようであることを保証します:
企業が市場に出るまでの時間が最短であるほど、プロジェクトのタイムラインは小さくなり続け、製品を最も早く発表するための競争により、「完璧な」ソリューションを書く時間はほぼゼロになります。
私の個人的な経験では、大企業、中小企業、次に中規模企業での8年以上の開発-最も時間を集中して磨くことができたプロジェクトはSMME(小規模な人)でした-確かにコストがかかりますが、自分も売らないで!
開発者が現実的な時間枠に立ち向かうときは、磨きをかけるのに十分な時間を見込んで、提供した内容について気分が良くなるようなゲーム計画を立ててください。計画を立てることは失敗する計画のようなもので、これまで多くの人が作り出した言葉です。
あなたの将来の計画/キャリアで最高の幸運。
私の答えはノーです。私は現在、7年間ソフトウェア開発者を務めていますが、私の楽しみはまだ改善されています。 (現在、C#でデスクトップアプリを実行しています)
自分が年長者だと感じないという点で、私は2つのことをお勧めします
おかしい私はこれに出くわしただけです...私は十分なプログラミングをし、去る予定がありますが、あなたが望むキャリアを持っていたようです。たぶんこのスレッドをフォローするのが最善であり、うまくいけば答えは私たちの両方に役立つでしょう: https://stackoverflow.com/questions/2055669/how-to-find-part-time-development-it-work =私はあなたの欲求不満を理解しています
プログラミングを本当に楽しんでいるなら、仕事以外で、興味のある自分のプロジェクトに取り組む時間を作ることをお勧めします。あなたが夢の仕事を手にしたとしても、プロレベルのソフトウェアに取り組んでいる日々の現実は、人生の他の何かと同じように、多くの場合それから楽しみを奪うことができます。
プログラマーが十分な報酬を得るのには十分な理由があります(ソフトウェアシステムの構築と保守は非常に難しく、妥協が必要であり、多くの場合、厳しい時間制約の下で作業しています)。
私のアドバイスは、仕事中に一生懸命働き、あなたの周りに詳しい人や経験を積んでいる人から何ができるかを学び(たとえ自分よりも上手にできると思っていても)、この混乱に巻き込まれたことを楽しみ続けることです。そもそも、プログラミングへの情熱。
私は4年間と同じ状況にありますJava big企業のプログラマー。私もあなたが言及した問題に直面していることを確認できます。
私の解決策は、新しい課題を見つけるために、コンピューターサイエンスでPHDを取得することです。
私は現在、3番目の仕事をしています。私は最初の仕事で4年間働いた後、2番目の仕事でも4年間働きました。
何かをやりたいと思っていることと、キャリアの機会と仕事のオファーの組み合わせだと思います。
つまり、1年ほど仕事に就いてヘッドハンターから連絡があった場合、「申し訳ありませんが、現在の仕事に満足しています」のようになります。しかし、それから数年後のように、その限界点に到達して本当に他の何かを探しているまで、より良い機会を探し回るように誘惑されるかもしれません。
ちょうど約2か月前に小さな会社で働き始めました。プログラミングが本当に好きなら、プログラミングはまったく退屈ではありません。また、自分の質問に対する回答を検索するためにインターネットを利用していますが、マネージャー(開発者/プログラマーでもあります)からも質問できます。まあ、それはすべて莫大な収入を稼ぐことではなく、物事を成し遂げることへの情熱です。いくつかのスキルを追加してみてください。私はプログラミングだけでなく、執筆もしています。私はデータベース設計にも興味があります。暇なときに、個人的なプロジェクトを始めます。今は自分のやっていることを楽しんでいて、5年経ってもまだ楽しんでいます。
「個人的なプロジェクト」で十分な学習やモチベーションが得られなくなったら、どうしますか?
コードを改善するために私が見つけた最大の戦略は、コードレビューです。それほど年長ではない開発者でも、改善を見つけて提案することがあります。最も難しいのは、自分のエゴをプロセスから除外することです。