コーディングが退屈だと感じ始めたら、どうすればいいのでしょうか?[閉まっている]


33

私はCommodore 64で6歳のときにプログラミングを始めました。現在28歳です。コンピューターサイエンスの学士号から4つのコースを修了する必要があります。

私はこれらすべての年の後にコードを書くことに飽き始めています。理論的なコンピューター言語でコンピューターサイエンスのコースを受講し、ネットワークセキュリティの分野で10年間のCシステムコーディングを経験しましたが、コードを書いても刺激は得られません。

C、C ++、Python、またはあなたが望む言語でコードを書くことができますが、私がやっていることに興奮することはできません。私は挑戦を感じることができません。特定のアルゴリズムスキルを必要とせずに、マルチスレッドコード、HTTPS MITMプロキシ、およびWSGIアプリケーションを記述しました。

この新しいものはすべて同じで、より単純な(またはより多くの)抽象化または自動化が行われているように感じますが、すべて同じように聞こえます。何回も。計算可能な言語はすべてチューリング計算可能であるため、コーディングは、部分関数のこのサブセットの類似パターンの複製にすぎません。

私の日常の仕事では、バグを探したり、コードのベンチマークを行ったり、ライブラリX、Y、Zの問題を修正したりするのにも退屈だと感じています。

私はとても好奇心が強い人です。私はいつも何かに刺激されます。しかし、優れたコードを見たとしてもできません。私は物事がどのように機能するかについてより快適に感じています。

私のキャリアを前進させる時ですか?または、コンピューターサイエンスでもっとやりがいのあるものを手に入れたいですか?たぶん、CSの主要な学位を取得しますか?

プロジェクト管理に関する最初の本「Peopleware」を読み始め、ソフトウェア開発のライフサイクルにより興味を持ち始めています。あなたは何をすることを提案しますか?

おそらく、私の友人がやったように、Google、Microsoft、またはAppleに参入しようとしているのかもしれません。または、おそらくより経営的なキャリアパス。また、コミュニケーションのルールと「人格」についての良い本を見つけて、管理に入る可能性に備えようとしました。

助言がありますか?

PS:私は多くの興味を持っている、私は落ち込んでいない :)私は山、トレッキング、写真撮影を愛し、私はスポーツクライマーであり、私は泳ぐことおよびスポーツ全般を愛し、時々私は実行します、実際に私はACから今日までの私の国(イタリア)の物語を読んで、旅行が大好きです(この夏、スペインの多くの場所を見て、そこに登るのに4000Kmを作りました。たった3週間で、休日ではなくマラソンです) 、24 kmのトレッキングでヘルニアがけがをした)、演劇と生活全般が大好きです。


すべてのおかげで、すべての答えを考えることで、自分の道をより明確にする機会が与えられます。

要約の目的で、最も投票された回答について一般化することができます。

まず第一に、人々は私たちの仕事をあなたの人生の支えにし、人生にとどまる唯一の理由(これは私の場合ではない)にする必要性に賛成票を投じます。本当に憂鬱な状況に。ピープルウェアが言うように、ウィーンはあなたを待っていません:)

このリマインダーの後、人々は次のことを提案します。

  • 技術的な複雑さを増す実際に取り組んでいるのは、チャレンジを増やし、それについて飽きないようにするためです。
  • 専門分野をマネージャーになろうとする非技術分野に変更したり、仕事に関連する非技術分野で介護者を昇進させたりする。
  • 別の種類の技術的課題の専門分野を変更します。あなたはシステムプログラマですか?便利なソフトウェアを使用して人々をより快適に見ることができるように、人間向けのアプリケーションの開発に飽きないようにしてください
  • アカデミックパスでコンピューターサイエンスの学位をある程度向上させる

私の目的にとって、正しい答えはコンピューターサイエンスを進歩させることです。私の感覚では、プログラミングがコンピューターサイエンスを得る唯一の方法ではなく、ソフトウェアエンジニアリングの介護者とは異なるコンピューターサイエンスの他の道をより良く感じることができると思います。


10
これは本当に憂鬱です。なぜマネージャーになりたいのですか?

14
残念なことに、そして耳障りに聞こえるかもしれませんが、マネージャーは効果的なコミュニケーションの方法を理解する必要があります。上記で書いた内容は非常に不明瞭で、ほとんど理解できません。あなたが管理職への転職を計画している場合、私は何よりも先にあなたのコミュニケーションスキルに取り組みます。ごめんなさい
ジョージ

9
@ジョージ:私は思う(しかし、私は確信していない)これは彼らの第一言語として英語を話す/書くことはない誰かによって書かれています。
-FrustratedWithFormsDesigner

2
このトピックに関する楽しいメタファーについては、メタプログラミングの使用法を参照してください(すべて同じことを行います)。

2
@ジョージ:もちろん、英語は私の第一言語ではありません。英語を上達させ、コーディングに対するフラストレーションを説明するために編集を始めます。
ブーイング

回答:


50

それは必ず起こることでした。

主な関心がコードにある場合、それは時々、いつか永久に、あなたを狂わせ、イライラさせ、憂鬱にさせます。

製品の開発に興味を持って、人々がそれらを使用するのを楽しんでください。それがコードを書くことの最終的な目標ですよね?コードは単に何かを大きくするためのツールです。


私が最初に興味を持っているのはコーディングだけではありません。スポーツクライマーです。劇場に行くのが好きで、旅行して新しい場所を見るのが大好きです。毎年2/3のヨーロッパの都市と夏休みに4000Kmです。これはポイントではありません。私は、コーディングについて何の見返りも得られなくなったと考えています。私の仕事でのすべての問題はそれほど難しくなく、私はこれ以上挑戦することはできません。正しい答えは、仕事を変えて、より複雑な問題に挑戦することだと思います。実際、私はすでに研究開発部門にいます。
ブーイング

@ boos、clojure.org / Jobsを試してください
仕事

2
+1目的のないコーディングは何が良いですか?家の代わりに壁を作り続けることに似ています。
Mayank

+1ゲームを作成し、人々がそれを楽しんでいるのを見るためだけに、コーディングを開始し、これまで(10年以上)続けました。私は本当につらい時期を過ごしてきたので、最終的には何も知らなかったことを理解し始めました。私はまだ人々のためのゲームを作りたかったので、その瞬間に最初からすべてを再学習しました。
クライム

これは確かに私にとってはうまくいきました。私は最近、妻の会社のために小さな無償の開発仕事をしました。ソフトウェアをサポートすることはお尻に少し苦痛を伴いますが、しばらくの間は感じなかったコーディングの楽しさを再燃させました。
ハーミオイド

21

質問であなたの質問にお答えします...

プログラマーの仕事はコーディングですか、それとも問題解決ですか?

あなたは、コードを書くことはあなたが以前にやったことのように見えるので、あなたは退屈だと言います。

しかし、そのコードは書かれるべきコードであるという結論にどのように到達しましか?ほとんどの問題には、それを解決する方法が数百ありますが、最善の方法は1つしかありません。

あなたが本当に挑戦、好奇心、または解決策を見つけることに興味がないか、または問題解決に興味がないなら、あなたは本当に変化の責任があります。それがソフトウェア開発管理かどうかはわかりませんが。私は、問題解決についてその程度の無関心を感じたソフトウェア管理者には働きたくありません。それは、おそらく、異なる問題のセットを持つ、異なる業界であるべきです。

問題解決は好きだが、コーディングは好きではないのなら、解決するのに十分な問題を見つけられないかもしれません。私の仕事が退屈だと感じるたびに、解決すべき問題があると信じています。なぜ忙しい仕事をしているのですか?仕事から忙しい仕事を取り除くために、どのような解決策を考え出すことができますか?それがプログラミングの美しさです。


1
@Rnesis:私は問題解決が大好きです、コーディングが大好きです!これが私の「質問」の中心です。すべてのプログラムの問題は常に同じものであり、ものを検索し、別のものを注文します。これがそうであれば、他のものに、DBに接続し、リモートサービスに接続し、それと通信し、別のサービスに戻って、など
ブーイング

1
@boos-回答いただきありがとうございます。「問題解決がお好きなら」の段落を追加しました。
ニコール

9

あなたはたくさんの手続き型プログラミングをして、それに飽きてきたように思えます-私はそれを完全に理解しています。ステップごとの指定、すべての手続き言語でほぼ同じです。

仕事以外のアクティビティがたくさんあるように聞こえるので、私はあなたが今知っているものに似ていない概念のいくつかを学ぶことをお勧めします-はい-たくさんありますが、開始するにはHaskellをお勧めします

  • 機能的-最終的にプログラムになる大きな機能を作成するために、組み合わせた機能を作成します。
  • 遅延評価-ステップごとに指定する代わりに、ランタイム必要に応じて必要な値を取得します。これは、プログラムで無限リストを扱うことは非常に一般的であることを意味します。
  • パターンマッチング-大きなif構造を持たせる代わりに、パラメーターの外観のパターンをリストし、ランタイムが適切なパターンを選択して、対応するコードを実行します。

完全なソート関数は次のとおりです。

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

http://www.haskell.org/haskellwiki/Introduction#Ease_of_understandingを参照してください説明については、を)

このいずれかが初めての場合は、冒険を始めることをお勧めします。

幸運-楽しんでください。


+1これは、OPを読んだ後の結論と同じです。OPは手続きから離れる必要があります。プログラミングの世界は非常に大きく、外に出て探索するだけです!:)
ダークナイト

8

コンピュータは退屈な消費者です。マシン間の相互作用を終日コーディングしている場合、マシンは毎回同じように反応します。プロジェクトを完了させるのは良いことですが、しばらくすると退屈です。機械に直接関係しないもので単調さを壊すことは本当に助けになります。

写真と、ユーザーエクスペリエンスの学習の両方からインスピレーションを得ました。それについて考えてみてください。他のベンダーが温かい反応を得るときに、Appleが次にサンタクララから出てくるために自分自身の上に唾を吐く人々の塊を得ることができるのはどうですか?Appleが長い間VerizonでiPhoneをリリースすることに抵抗していなかったら、Androidは大きな反応を示したと真剣に考えていますか?大きなヒントをお伝えします。これらの製品が必ずしも技術的に高度であるとは限りません。マニアには巨大な心理的要素があります。

製品のデザインとユーザーエクスペリエンスを理解することは、多くの人が学ぶべきことです。誰かがカチカチするのはなぜですか?人々が確立されたソリューションを離れるのに十分なクールなものをどのように設計しますか?Appleのような独自のテクノロジーカルトをどのように作成しますか(カルトリーダーになろうと思っているのではありません)。これらはすべて非常に興味深く刺激的な質問です。それらはソフトウェア開発にフィードバックされますが、現在は焦点が異なります。


1
+1プログラミングに多くの満足を感じており、デザインの面で気に入っていると思いますが、プログラミングに視覚的な面が欠けていると、私は完全に満たされていないことを認めます。私も写真が大好きで、グラフィックや建築など、他のタイプのデザインを実践しようとしています。
ニコール

ゲームプログラミングを試してください:D、それは主に視覚的な問題です
ドミニクマクドネル

7

たぶん、あなたは十分な技術的な挑戦を受けていませんか?

  • 高度に分散されたシステムを試してください。クラスター内の1000台のコンピューターからログを収集するシステムをマイクロ秒の精度で簡単にコーディングできますか?
  • ハードリアルタイムを試してください。エンジンの1回転ですべてのプロセスをパックします。
  • コンピュータービジョンまたは画像処理をお試しください。数学スキル、フォーミュラからコードへのスキル、最適化スキルはすべて便利です。
  • AIを試してください。IBMのコンピューターがJeopardyをどのようにプレイしているかをご覧ください。おそらく、この分野にはアルゴリズムの高度化が関与しています。

もちろん、退屈ではなく、物事があなたにとってやりがいのある分野では、最初は収入を少なくする準備ができています。


4

「正しい」解決策のない分野に移動することで動機付けを見つけました。編集ツールを書いていますが、私の仕事はユーザーが役に立つと思うほど良いものです。私は多くの非技術者と出会うことができ、一緒に仕事をする必要があるソフトウェアを改善する方法を整えようとしています。人間とのやり取りがあり、常にパースペクティブを完全に楽しくする必要があり、突然コーディングすることはありませんもう退屈です。

私はそれがすべての人のためではないことを知っていますが、一部はあなたの作品の品質の客観的な尺度を他の人よりも厳しくしないという不安を扱います。

しかし、これは検討する価値があるオプションです。


4

はい、実際に同じ種類のコードを何度も何度も書いているような気がします。しかし、いや、私はまだそれに飽きていません。何故ですか?

なぜなら私は基本的に、新しいコーディング方法と、コードで何かを表現する新しい簡潔でエレガントな方法を発見することを楽しんでいるからです。これを実行する方法は2つあります。新しいプログラミング言語の学習、または新しいライブラリまたはフレームワークの学習です。

新しいプログラミング言語を学ぶことは、私が試した各言語で簡単になりました。そしてしばらくして、非常に面白くなくなりました。しかし、その後、約1〜2年前、ついに関数型プログラミングに到達しました。プログラミングのパラダイムは、OOPとは十分に異なり、新たな課題になります。これによりプログラミング能力が本当に豊かになり、プログラミングの問題を見るための新しい視点が得られたと感じています。私は今、さまざまなプログラミング言語ではなく、さまざまなプログラミングパラダイムを発見しようとしています。それは大きな挑戦です。

第二に、新しいライブラリ、フレームワーク、またはAPIを学ぶ:あなたが正しく言ったように、新しいフレームワークはしばしば新しい問題を解決しません。抽象化のレイヤーを追加するなど、別の方法で解決するだけです。これはおそらく、今日のコンピューターが以前のコンピューターよりも強力だから可能です。または、おそらく、私たち全体としてソフトウェアの作成が向上しているためです。

この最後のビットはおそらく説明が必要です。例を挙げましょう:長い間、私のプログラミングスキルを実践しながら、書いているコードの保守について真剣に考えたことはありませんでした。仕事でプログラミングを始めてから、私の考え方が変わりました。メンテナンス可能なコードを書くことは、多くの場合、企業環境では非常に重要です。なぜなら、コーディングに費やす1時間ごとにお金がかかるため、企業は可能であれば既存のコードを保持しようとするからです。コードを後継者に。

保守可能なコードを書くことは、実際には大きな挑戦であると思います。多くの場合、非常に賢く高度に最適化されたアセンブリコードを記述しないことを意味します(The Story of Mel –本物のプログラマを思い出してください、誰かますか?;-)代わりに、抽象化を利用する可能性が高くなります。コードをいくつかのビジネスルールと問題の領域に近づけることができれば、それだけ優れています。そこで、すべての新しいライブラリが登場します。コードを書き留めて、簡潔でわかりやすく簡潔に理解できるようにすれば、それは良いことです。

この回答がやや長い場合は申し訳ありません。私はプログラミングの動機がどこから来たのかを示しようとしました...そして、いつかあなたが同じように感じたかどうか、そしてとにかくあなたの動機が最終的に去ったかどうか(そしてなぜか)を知りたいです。


すべての言語とすべてのパラダイムを一般的な方法で「チューリングマシン」に想起させることができます。新しい言語を学習する場合、新しいフレームワーク、すべての計算はチューリングマシンで作成できるため、コーディングに興奮することはできません。私はきれいなコードを書くのが大好きで、時にはちょっとした難読化のように、本当に奇妙なコードスニペットを書いて同僚と冗談を言うのが大好きです。
ブーイング

1
+1私もこのように感じています。私の個人的なお気に入りの挑戦は、新しいことをすることではなく、可能な限り最高の方法で行うことだと思います。私が得た最高のcompめ言葉は、「私はあなたのコードを読んで、完全に理解しました」です。私は、誰も改善するものを考えられないコードレビューが大好きです。
マイケルK

@boos、理論が好きなら、cs / math / physicsには何千もの話題があります。–
Job

3

コードを書くことにうんざりしている場合、それがあなたを興奮させない場合、それが退屈する場合、それは変更のための時間であるかもしれません。管理職への移行を検討し、長年の経験を持つ他のコーダーを管理および指導することができます。または、システムアーキテクチャに横に移動して、システムの設計と計画を行い、他の人がほとんどの実装を行うようにします。

または、完全にキャリアをコンピューターとはまったく関係のないものに切り替えることもできます。誰かがあなたにそれを与えることができたら、あなたの夢の仕事はどうなるか自問しましたか?


3

マイクロコントローラーで遊んでください。それは私が考えることができるプログラミングの才能の最も爽やかで刺激的なアプリケーションです。


2

私たちのバックグラウンドの出発点は、同じマシンで6歳頃からプログラミングを始めており、さまざまな理由でプログラミングに出入りしているという点で似ています。私の学位はプログラミングとは関係ありません-私はすべての音楽の学位を持っています-いくつかの大学院レベルのコンピューターサイエンスのコースを受講しました。

プログラマは同じ問題を繰り返し解決することが多く、「新しい」ものはすべて「古い」ものに基づいていることを観察することは正しいと思います。あなたがこの事実を認識していることはあなたの功績です。開発者やビジネスマンが多すぎると、新しいテクノロジーは古いテクノロジーから完全に切り離されていると見なされます。

したがって、これらの種類の問題を解決することはあなたにとって面白くない。何が面白いでしょうか?一般的に問題解決が好きですか?「ビジネス」ソフトウェア開発者としての人生はあなたのためではないかもしれません。

私は答えよりも多くの質問を提供したことを知っていますが、これらの質問に答えることで、あなたがとるべき方向への洞察が得られることを願っています。


2

あなたが立ち往生しているように聞こえます。あなたは自分が入りたくない状況にあり、そこから抜け出す方法がわかりません。私のアドバイスは簡単です:何か違うことをするためだけに何か違うことをしてください。それがあなたの問題を解決しないとしても、おそらくあなたは動けなくなるでしょう。

C、C ++、Python、またはあなたが望む言語でコードを書くことができますが、私がやっていることに興奮することはできません。私は挑戦を感じることができません。特定のアルゴリズムスキルを必要とせずに、マルチスレッドコード、HTTPS MITMプロキシ、およびWSGIアプリケーションを記述しました。

これを間違った方法で受け取らないでください(これらはまともな成果です)が、これはプログラミングにおける困難で刺激的な問題のすべての包括的なリストではありません。解決すべき挑戦的な問題がまだたくさんあります。最も困難な問題には、大規模な作業が含まれます。WSGIアプリケーションを作成しましたが、1日あたり10億ページビューを処理できるアプリケーションを作成しましたか?マルチスレッドコードを記述しましたが、マルチコンピューターコード(数百台のコンピューター)を記述しましたか?

要するに、技術的ではない何かを試してみたい場合は、それを試してください。しかし、そうではないので、そこにあるすべての問題を解決したと感じるので、そうしないでください。


もちろん、ここには多くのやりがいのあるものがあることを知っています:)私は今少しコーダーです!問題は、プログラミングに関する複雑さが私を幸せにしないことです。すべての反応が得られたので、私はより多くの学問的なことを勉強して、気分を良くする必要があります。とにかく感謝:)
boos
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.