37

I started programming at the age of 6 on a Commodore 64. Now I'm 28, and I have to complete 4 courses from a first degree in Computer Science.

I'm starting to get bored with writing code after all these years. I've taken a course in Computer Science in theoretical computer languages and 10 years of C system coding in network security field and I just don't get any stimulation from writing code.

I can write code in C, C++, Python or whatever language you want, but I can't get excited about what I'm doing. I can't feel any challenge. I've written multi-threaded code, HTTPS MITM proxy and a WSGI application without the need of any specific algorithms skill.

I feel that all this new stuff is all the same, with simpler (or more) abstractions or automation in it, but it all sounds the same to me. Over and over again. The computable language is all Turing computable, so coding is only a replication of a similar pattern in this subset of a partial function.

In my everyday work I'm feeling bored even with searching for bugs, or doing benchmarks on code, or fixing the problem with the library X,Y,Z.

I'm a very curious person. I always get stimulated by something. But I can't even when I look at great code. I feel more comfortable in how the things work.

Is it time to make an advance in my career? Or to get more challenging stuff in Computer Science? Maybe get a major degree in CS?

I've started to read my first book on project management "Peopleware" and I'm getting more interested in the software development lifecycle. What do you suggest to do?

Perhaps trying to get into Google or Microsoft or Apple like some friends of mine have done. Or perhaps a more managerial career path. I have also tried to find a good book about communication rules and "people personality" to prepare me for the possibility of getting into management.

Any suggestions?

P.S: I have a lot of interest, I'm not depressed :) I love mountain, trekking, take photo shoot and I'm a sport climber, I love to swim and sport in general, sometimes I do running, actually I'm reading book about my country (Italy) story from AC to today and I love trips (this summer I made 4000Km to see a lot of place in Spain and climb in it, all over in only 3 week, not a holiday but a marathon, 24 km of trekking made my hernia injury), I love theater and life in general.


Thanks to all, thinking about all the answer give to me the opportunity to make my path more clear.

For a summary purpose we can generalize about the most voted up answer.

First of all all the people vote-up the necessity to made our work a support of your life and not the only reason to stay in life (this is not my case), so, if you only reason of life if working you come fast to a really depressive situation. As peopleware say, Vienna don't waiting for you :)

After this reminder people suggest to:

  • increase technical complexity I'm actually working on to increase challenge and get less bored about it.
  • change the field of expertise to a non technical field trying to become a manager or make some carer advance in a non technical fields related to your work.
  • change the field of expertise in another kind of technical challenge, are you a system programmer ? try to get less bored developing about application for human so you can feel more comfortable viewing people using your useful software
  • make some advance in your computer science degree in your academic path

For my purpose the right answer is to advance in computer science, for my feeling i think programming is not the only computer science way to get and i think i can feel better getting other path in computer science different from software engineering carer.

gnat
  • 21,442
  • 29
  • 112
  • 288
boos
  • 803
  • 2
  • 7
  • 13
  • 10
    This is really depressing. Why do you want to be a manager? –  Jan 19 '11 at 18:26
  • 14
    Unfortunately for you, and while it may sound harsh, managers need to understand how to communicate effectively. What you wrote above is extremely unclear and barely comprehensible. If you are planning a career change into management, I would work on your communication skills before anything else. Sorry for your situation. – George Jan 19 '11 at 18:32
  • 9
    @George: I think (but I admit I am not sure) this is written by someone who does not speak/write English as their first language. – FrustratedWithFormsDesigner Jan 19 '11 at 18:35
  • 1
    I did spelling / punctuation correction as best I could. – Josh K Jan 19 '11 at 18:36
  • How can you not get stimulus from writing code yet you claim to get stimulus from anything? – JB King Jan 19 '11 at 18:37
  • 2
    See [What's the use of metaprogramming](http://stackoverflow.com/questions/3468246/whats-the-use-of-metaprogramming/3468426#3468426) for a fun metaphor on this topic (doing the same thing all over). –  Jan 19 '11 at 18:44
  • 1
    @navi: This is not really depressive, it's only a change of mind, i cant find many stimulus on writing code, at least all common problem are some sort of search/ordering algorithms. – boos Jan 19 '11 at 18:47
  • Gah! Had to severely edit that. Made my eye twitch. – Gary Jan 19 '11 at 18:51
  • 2
    @George: off course, English is not my first language. i start to do some edit to improve my English and explain my frustration about coding. – boos Jan 19 '11 at 18:51
  • You should correct the title of your question to reflect the question you are really asking. – Nicole Jan 19 '11 at 18:53
  • 2
    This question is an excellent candidate for someone to do a severe editing job on. In its current state its an exact example of what's not allowed on the site in the FAQ ("I’m curious if other people feel like I do") - minus the rant of course. – Walter Jan 19 '11 at 19:11
  • @Boos, I meant something more along the lines of "What should I do if all coding begins to feel boring and more of the same?" – Nicole Jan 19 '11 at 19:11
  • @delvan: nice metaphor ;) – boos Jan 19 '11 at 19:32
  • @boos, the decision to mention turing machines in the title is yours, but I would advise against it, I think you will get less interest, and it's too detailed. You already explain that thought in the body of the question. – Nicole Jan 19 '11 at 20:17
  • "I can write code in C, C++, Python..." it really sounds like you only have experience with straightforward imperative languages. Why don't you try something a little different? Give Haskell or Prolog a spin. – Anon. Jan 19 '11 at 20:33
  • 1
    @boos, I would rarely advise this, but ... are you attracted to theory / math? Perhaps doing research is what would make you happy? I knew one guy who left industry and got his PhD at the age of 32 (it took him 4 years, including completing a BS degree). Only you know what you want to do, but not being challenged enough is a good problem to have ... because you are capable of doing more. Another alternative is to have kids :) but that might lead to an actual depression (if you are stuck at a job you do not love). I personally like the challenge of math/bio/what have you. So,change an industry? – Job Jan 19 '11 at 22:46
  • I have reached the same point responding to another question, i think i need to start to study a lot again. thanks, FYI also a cousin of my parent get a BS degree at the age of 45. have fun :) http://programmers.stackexchange.com/questions/11721/is-computer-science-software-engineering-an-excuse-to-teach-programming-poor – boos Jan 19 '11 at 22:56
  • @boos, Are you challanged teaching programming to yet dumb people, like me? Eh. – Abdillah Jun 22 '15 at 08:11

11 Answers11

51

That was bound to happen.

If your primary interest lies with code, it will drive you crazy, frustrated and depressed once in a while, some day permanently.

Get interested in developing products and enjoy seeing people use them. That's the ultimate goal of writing the code, right? Code is merely a tool to get something bigger done.

  • My first interest is not only on coding, I'm a sport climber, i love to go at theater, love to take trip and see new place, 2/3 European city every years and 4000Km on my summer holiday. this is not the point. i have think about i have reached the point of no return about coding. all problem at my work is not so difficult to handle and i cant get more challenge. i think the right answer is to change job and get more challenge in more complex problem. actually I'm already in a research&development division. – boos Jan 19 '11 at 19:31
  • @boos, try http://clojure.org/Jobs – Job Jan 20 '11 at 04:10
  • 3
    +1 What good is aimless coding? Its akin to keeping on building a wall instead of a house. – Mayank Jan 22 '11 at 17:43
  • +1 I've started coding and continued until now (more than 10 years) only to make games and see people enjoy them. I've been in some really hard periods where I started to understand that I didn't know anything in the end. I re-learned everything from the start at that moment, because I still wanted to make games for people. – Klaim Jan 22 '11 at 18:21
  • This has certainly worked for me. I recently did a small gratis development job for my wife's firm and while supporting the software is a bit of a pain in the ass, it has reignited an enjoyment in coding that I haven't felt for a while. – hermiod May 25 '11 at 20:21
  • +1 Some programmers think that they need to improve their technical skills to grow career-wise and not get bored. I think it's better to apply those skills to solve problems that real people have. Even if you have to learn a few other things as well. – steamdragon Apr 15 '21 at 13:22
21

I'll answer your question with a question...

Is a programmer's job to code or to problem-solve?

You say you are bored because writing code seems like something you've done before, like every bit of code has already been done before.

But how did you come to the conclusion that that code is the code that should be written? Most problems have hundreds of ways to solve it, but there is only one best way.

If you really find no challenge, curiosity, or interest in finding solutions, or in problem-solving, then you really are due for a change. Although I'm not sure that would be software development management. I wouldn't want to work for a software manager that felt that amount of apathy about problem-solving. It probably should just be a different industry, with a different set of problems.

If you love problem-solving but don't love coding, maybe you aren't finding enough problems to solve. Any time my work starts to feel tedious I believe there is a problem to solve. Why am I doing busy work? What solution can I come up with that will remove the busy work from my job? That is the beauty of programming.

Nicole
  • 28,111
  • 12
  • 95
  • 143
  • 1
    @Rnesis: i love to problem-solve, I'm stop to love coding! this is the heart of my "question". All programs problem is always the same things, search a stuff, order another one, if this do that, if other, to otherthings, connect to a DB, make a connection to a remote service, communicate to it, back to another service, etc. – boos Jan 19 '11 at 18:55
  • 1
    @boos - Thanks for the response, added a paragraph for "if you love problem-solving". – Nicole Jan 19 '11 at 19:00
9

Sounds to me like you've done a LOT of procedural programming and grown tired of it - which I fully understand. Specifying step by step is much the same in every procedural language.

Since it sounds like you have plenty of non-work activities I would suggest into learning some of the concepts that do not resemble what you know now, and - yes - there are plenty, but to start I would recommend Haskell because it is

  • functional - you write functions you put together to make larger functions eventually resulting in a program.
  • lazy evaluation - instead of specifying step by step, the runtime pulls the values needed as needed. This means that it is very common to deal with infinite lists in your programs.
  • pattern matching - instead of having large if structures, you list patterns for what the parameters look like, and the runtime selects the appropriate pattern and executes the corresponding code.

Here is a complete sorting function:

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

(See http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding for an explanation)

If any of this is new to you, I would encourage you to start adventuring.

Good luck - have fun.

  • +1 That's the same conclusion I come to after reading the OP. The OP needs to move away from procedural. The programming world is so much bigger, he just needs to go out and explore! :) – Darknight Jan 21 '11 at 09:46
8

Computers are boring consumers. When you are coding machine to machine interactions all day, they machine reacts the same every time. Good to get the project done, but tedious after a while. It really helps to break up the monotony with something that isn't directly machine related.

I've found inspiration with both photography, and studying user experience. Think about it, how is it that Apple can get gobs of people salivating over themselves for the next thing to come out of Santa Clara when other venders get luke warm response? Do you seriously think that Android would have gotten as big a response if Apple hadn't resisted releasing iPhone on Verizon for so long? I'll give you a big hint: it's not necessarily that these products are so technilogically advanced. There's a huge psychological component to the mania.

Understanding product design and user experience is something that many of us have a lot to learn about. What makes someone tick? How do you design something cool enough to make people leave the established solution? How do you create your own technology cult like Apple (not that I'm aspiring to be a cult leader mind you)? These are all very interesting and stimulating questions. They feed back into software development--but now your focus is different.

Berin Loritsch
  • 45,784
  • 7
  • 87
  • 160
  • 1
    +1 I find a lot of satisfaction in programming and I think I like it because of the design aspects, but I do admit the lack of a visual aspect to programming leaves me not completely fulfilled. I too love photography and try to practice other types of design, such as graphics or architecture. – Nicole Jan 19 '11 at 19:03
  • Try game programming :D, it's mostly visual problems – Dominique McDonnell Jan 19 '11 at 22:56
7

Probably you just don't get enough technical challenge?

  • Try highly-distributed systems. Can you easily code a system to collect logs from 1000 computers in a cluster, with microsecond precision?
  • Try hard-realtime. Pack all your processes in one rotation of an engine.
  • Try computer vision or image processing. Math skills, formula-to-code skills, optimization skills all come in handy.
  • Try AI. See how IBM's computer plays Jeopardy? Probably some algorithmic sophistication is involved in this area.

Etc. Of course, be ready to initially earn less in a field where stuff is challenging for you, not boring.

9000
  • 24,162
  • 4
  • 51
  • 79
4

I found motivation by moving to a field that has no "correct" solutions, I'm writing editorial tools and my work is as good as the users find it useful. I get to meet a lot of non-technical people and together we're trying to cook up ways to improve the software they need to work with, I find human interaction and the need to constantly switch perspectives thoroughly enjoyable and suddenly coding isn't so tedious anymore.

I know it's not for everyone though, some handle the insecurity of not having an objective measure of your work's quality harder than others.

But it is an option that may be worth considering.

biziclop
  • 3,351
  • 21
  • 22
4

Yes, I sometimes do get the feeling that one is in reality writing the same sort of code over and over and over again. But no, I'm not yet bored with it. Why is that?

Because I basically enjoy discovering new ways of coding, and new, concise, elegant ways of expressing something in code. There's two possible ways how to go about this: Learning new programming languages, or learning new libraries or frameworks.

Learning a new programming language has become easier for me with each language I've tried. And after some time, it stopped being very interesting. But then, about one or two years ago, however, I've finally got to functional programming, which as a programming paradigm is different enough from OOP to be a new challenge. I feel this has really enriched my programming capabilities and given me a new perspective from which I can look at a programming problem. I'm now trying to discover different programming paradigms, instead of just different programming languages. That's a bigger challenge.

Second, learning a new library, framework, or API: As you've correctly said, new frameworks often don't solve new problems; they just solve it in a different way, e.g. by adding an additional layer of abstraction. This is perhaps possible because today's computers are more powerful than earlier machines; or, perhaps, because we as a whole are getting better at writing software.

This last bit probably needs some explaining. I'll give an example: For the longest time, while practicing my programming skills, I never truly gave a serious thought to maintenance of the code I was writing. Since I've started programming on a job, my perspective has changed. Writing maintainable code is often very important in a corporate environment, because every hour that you spend on coding costs real money, so a corporation will try to hold on to existing code if possible, and chances are that you'll eventually have to pass over your code to a successor.

I find that writing maintainable code is actually a big challenge. It often means that you won't write super-clever and highly optimised assembly code (remember The Story of Mel – A Real Programmer, anyone? ;-) Instead, you're more likely to take advantage of abstraction. The closer you can get your code to some business rules and the problem domain, the better. That's where all those new libraries come in. If they allow you to write down code so that it's clean, clear, concise, and easy to understand, then that's a good thing.

Sorry if this answer is somewhat lengthy. I tried to show where my motivation in programming comes from... and I would be interested to know if at some time you felt the same way, and whether (and why) your motivation eventually left, anyway.

stakx
  • 2,138
  • 18
  • 29
  • all language and all paradigms and in a general way can be reminded to a "Turing Machine" whatever you learn a new language a new framework, all calculus can be made by a turing machine, so i cant get more excited about coding. i love to write clean code, and sometimes i love to write really strange code snippet to joke with my colleague, like a sort of little obfuscation. – boos Jan 19 '11 at 19:18
  • 1
    +1 I also feel this way. I think my personal favorite challenge isn't so much doing something new, but doing it in the best possible way. The best compliment I could get is, "I read your code and understood in perfectly." I love code reviews where no one can think of anything to make better. – Michael K Jan 19 '11 at 19:45
  • @boos, if you do like theory, then there are thousands of topics in cs/math/physics to lose your head in. – Job Jan 19 '11 at 22:58
3

If you are tired of writing code, if it doesn't excite you, if it bores you, it might well be time for a change. You could look into moving into a management position, and manage and guide other coders with your years of experience. Or try to move sideways into system architecture, where you could design and plan systems and other people would do most of the implementation.

Or, you could switch careers completely, to something that has absolutely nothing to do with computers. Have you asked yourself what your dream job would be, if someone could give it to you?

FrustratedWithFormsDesigner
  • 46,105
  • 7
  • 126
  • 176
3

Start playing with microcontrollers. It's the most refreshing and exciting application of programming talent I can think of.

Rob S.
  • 2,068
  • 2
  • 18
  • 23
2

It sounds like the starting points of our backgrounds are similar in that we both started programming about age 6 on similar machines and have both been in and out of programming for various reasons. None of my degrees have anything to do with programming -- I have all music degrees -- though I have taken some graduate-level computer science courses.

You are right, I think, in observing that programmers often solve the same problems repeatedly and that the "new" is all based on the "old." That you realize this fact is to your credit; too many developers and business people see new technologies as completely disconnected from old ones.

So, solving those kinds of problems is uninteresting to you. What would be interesting? Do you like problem-solving generally? Maybe a life as a "business" software developer is not for you.

I know I have provided more questions than answers, but I hope that answering these questions will provide some insight into a direction you should take.

Andrew
  • 508
  • 4
  • 13
2

It sounds to me like you're stuck. You're in a situation you don't want to be in and you don't know how to get out of it. My advice is simple: do something different just for the sake of doing something different. Even if it doesn't solve your problem, it will probably get you unstuck.

I can write code in C, C++, Python or whatever language you want, but I can't get excited about what I'm doing. I can't feel any challenge. I've written multi-threaded code, HTTPS MITM proxy and a WSGI application without the need of any specific algorithms skill.

Don't take this the wrong way (these are decent accomplishments), but this is hardly a comprehensive list of all of the challenging and exciting problems in programming. There are still plenty of challenging problems out there to solve. The most challenging problems involve working at scale. You've written a WSGI application, but have you written one that can handle a billion page views a day? You've written multi-threaded code, but have you written multi-computer code (with hundreds of computers)?

In short, if you want to try doing something non-technical, go for it. But don't do that because you feel that you've solved all the problems there are to be solved because that isn't the case.

Jason Baker
  • 9,625
  • 8
  • 44
  • 67
  • Off course, i know there is a lot of challenging stuff out here :) I'm a little coder right now! the problem is that the complexity around programming stuff not make me happy. With all the response i get the point, i need to study more academic stuff to feel betten. Anyway thanks :) – boos Jan 23 '11 at 11:36