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.

18
  • 10
    This is really depressing. Why do you want to be a manager?
    – Navi
    Jan 19, 2011 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, 2011 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. Jan 19, 2011 at 18:35
  • 2
    See What's the use of metaprogramming for a fun metaphor on this topic (doing the same thing all over).
    – user7043
    Jan 19, 2011 at 18:44
  • 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, 2011 at 18:51

11 Answers 11

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.

6
  • 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, 2011 at 19:31
  • @boos, try clojure.org/Jobs
    – Job
    Jan 20, 2011 at 4:10
  • 3
    +1 What good is aimless coding? Its akin to keeping on building a wall instead of a house.
    – Mayank
    Jan 22, 2011 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, 2011 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, 2011 at 20:21
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.

2
  • 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, 2011 at 18:55
  • 1
    @boos - Thanks for the response, added a paragraph for "if you love problem-solving".
    – Nicole
    Jan 19, 2011 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
  • +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, 2011 at 9: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.

2
  • 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, 2011 at 19:03
  • Try game programming :D, it's mostly visual problems Jan 19, 2011 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.

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.

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.

3
  • 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, 2011 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, 2011 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, 2011 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?

3

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

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.

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.

1
  • 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, 2011 at 11:36

Not the answer you're looking for? Browse other questions tagged or ask your own question.