Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

You know when you read blogs like Joel on Software or Jeff Atwood? Well, I'm one of the people they talk about when they say programmers who don't love what they do should leave the industry. I guess I'm going to have a hard time finding people who feel the same way on a programming forum, but maybe some of you have ex-colleagues who were the same, and could offer advice.

The thing is, I "know" quite a lot of C# and C++, and could probably fool a lot of companies into hiring me. I studied mathematics at university - this is how I came across programming actually. I had no great love of playing around with commodores or whatever as a 14 year old. If you ask me low level details about garbage collection or something in the CLR I can probably tell you, but only because I'm the sort of person who reads about that stuff, and if you want to throw some ridiculous pseudo-mathematical brain teaser at me, I'm going to be fine with that too. But when it comes to taking an idea and making an app work I'm completely useless... I'm not the sort of person to right click -> new project and just create something. I'm not a stupid guy, but it's completely inappropriate for me to work as a developer, because I'm bad at it and I'm stealing someone else's job, and a salary from my employer. I'd really like to find something where a little programming is maybe a "secret weapon" that can help me do something else, maybe a little more analytical than creative. I'm sorry if this isn't creative, but if you read Jeff Atwood maybe you think it is, because it'll mean there'll be one fewer bad programmer out there... Any ideas or experience?

Edit:

Thanks, you've all been pretty kind in your responses, and raised a few issues I didn't think about e.g. maybe it's the specific environment/situation, not me. It's probably not that constructive to talk about me personally, because maybe other people think the same things and maybe they're right, (and maybe I'm right). It would be great to see stories about people who ended up doing programming as an auxiliary task, and how they made the move. Also it would be great to see more stories about people who were not having such a great time doing development in one place, made a move to somewhere more suitable, and what to look out for when deciding where else to work.

share|improve this question
2  
I applaud you for admitting that you may not have all of the necessary skills, but is there any reason you don't feel that you can improve or that you even should improve? – Bernard May 1 '12 at 21:08
7  
You are an unconfident programmer, not a bad one. How old are you and what kind of teams have you worked in? – CodeWorks May 1 '12 at 21:09
3  
but only because I'm the sort of person who reads about that stuff that's actually all we expect of you ;-) That's what makes you one of the guys that Spolsky is talking about. The ones writing code at 14 on old Commodores are going to do great things, maybe. The ones reading up on garbage collectors are going to write great code, however, because they are going to know their platform well. But as said below, you don't have to write code to be in software development. – jcolebrand May 1 '12 at 21:32
8  
Go read thedailywtf.com and see if your code is as bad as those examples. – kevin cline May 1 '12 at 22:04
4  
I feel you brother, but what are you really asking here? What should you do? You should go to Burger King for lunch today. It is too broad to be answerable, but there really is some good advice posted. If you want to find out what kinds of questions are good to ask then please read the FAQ for more information. If you are struggling with particular aspect of programming or software development and need help then post back. Good luck. – maple_shaft May 2 '12 at 1:39
show 6 more comments

closed as not a real question by maple_shaft May 2 '12 at 1:34

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, see the FAQ.

8 Answers

up vote 18 down vote accepted

Not everyone on a team needs to be a coding guru. A well balanced team will consist of a bunch of skills:

  • database design
  • UI design
  • UX design
  • OO design
  • Broad architecture
  • Coding
  • Performance tuning
  • "The vision thing"
  • Project management
  • Product management
  • Client/Business liaison and BA

No one person will have all these skills, but a successful, large-scale project will need them all. Join a largish team (10+ coders), find your niche where you can add value and learn from those around you.

share|improve this answer
What is the difference between an UI designer, an UX designer & a web designer? – Songo May 2 '12 at 8:26
1  
@Songo UI is a part of UX but UX also touches on other things a user might experience e.g. performance, branding, marketing, purchasing anything the user experiences – jk. May 2 '12 at 13:11
3  
@Songo simplistic answer: ux.stackexchange.com/a/7175/7627 and ux.stackexchange.com/q/10400/7627 – Ben Brocka May 2 '12 at 13:25

You could be a Business Analyst or maybe a QA Tester. They don't usually need to program, but having programming knowledge can certainly help be a good tester since you have some idea of how the program you're testing was built. Knowing about programming can also help you be a good analyst, as you will understand when developer try to explain why certain requirements are easy, and others are difficult.

Also, I know some testers who will write small scripts to automate certain types of tests. I know some BAs who make heavy use of VBA and Excel formulas to build fairly sophisticated spreadsheets that can automate many other things. Sure, non-programmers can learn to do these things (script automation and complex spreadsheets), but they're less likely to even try than someone who already knows programming.

And finally, are you sure you're as bad as you think?

share|improve this answer
1  
You missed Operations, where scripting can be a very useful tool. Nonetheless, +1. – pdr May 1 '12 at 21:50
@pdr: Indeed, my answer was mostly based on who was within line of sight when I wrote it. ;) dave's answer: programmers.stackexchange.com/a/146802/13156 also had some good suggestions. – FrustratedWithFormsDesigner May 1 '12 at 21:52
1  
Ahh yes, and therein lies another advantage of being in operations. Out of sight and mind. ;P – pdr May 1 '12 at 21:56

I know plenty of people whose job titles are "Economist" or "Mathematician" or "Analyst" or "Systems Engineer" that solve very difficult mathematical/domain specific problems that do a small amount of programming as part of there job. I'd recommend finding one of those jobs where programming is just a bonus but not the core competency.

share|improve this answer
I down-voted because I don't think you should just change a job based on what he has said. He is a programmer, maybe a really good one, but with little confidence and experience. He might belong in academic world of CS, rather than out in industry, but by no means you should just go and change a job. – CodeWorks May 1 '12 at 21:10
3  
@CodeWorks: He stated in the question he doesn't love programming. Why should he stay at his current job if he doesn't enjoy it? – seand May 1 '12 at 21:12
Indeed. With the growing use of doing statistical analysis on large datasets, there are many roles that involve mathematics where simply being able to talk programmer-speak is a huge advantage. – Telastyn May 1 '12 at 21:14
3  
I used to hate programming for few of my previous employers. I used to think I was a bad engineer and I wasn't made for this. Problem was in a company, lack of knowledge sharing, big egos, little resources, I can go on for ages. If he had very little experience working in industry (under 3 years), then I think that a lot must be learned and experienced before making such a strong conclusion. – CodeWorks May 1 '12 at 21:14

From what I'm reading, you don't sound like a bad programmer to me, just an inexperienced one. But if you like reading up on details of stuff and learning to solve problems, and if you're humble enough to admit when you don't know something, to be blunt that makes you better than a lot of the professional coders whose jobs you worry about "stealing." You have an engineer's mindset; now you just need to learn to apply it.

Why don't you try "fooling some company into hiring you" as a junior developer? Make friends with one of the more senior devs there and get him to mentor you and show you the ropes, and you'll start to learn stuff. And once you've put in about 10 years of serious study and experience solving problems, you will be a good programmer.

share|improve this answer

Well, In my humble opinion there is no such thing as a good or bad programmer, but there is an Active and a lazy one.

Anyone can write code and that code will work. Does that make you a programmer? NO... That makes you a Coder. A person who once he gets some requirements he starts writing code.

A real programmer/developer can analyze, design, implement and verify (Software Life Cycle ?).

I have been programming for about 2 years now. I wasted a whole year just coding without paying much attention to the other aspects that make someone a programmer. It was just code, code and more code. Nobody cared if I wrote good OO code and adhered to the principles of clean code. It was "As long as it works then it's fine". I couldn't design a simple module for a small website. I didn't know where to start just like you, but it was fine coz my TL used to do all the design (thinking :D) for us.

Then I reached a point where I was thinking about changing companies. That's when it hit me: "I can't do anything other than coding".

That's when I made a decision to actually become a REAL programmer. I started reading books weekly, following blogs, downloading training courses and even doing some freelance jobs.

Actually Stackoverflow became my No. 1 bookmark that I check daily to see if there is something interesting out there.

Really you are not a bad programmer, just think about it "If you were a bad programmer, then what are you doing on a site full of geeks like programmers"

Note:

If you love programming, but don't want to be a developer there are plenty of options out there like being a system analyst, tester and much more. A good knowledge of programming will give you bonus on your colleagues.

share|improve this answer

You know when you read blogs like Joel on Software or Jeff Atwood? Well, I'm one of the people they talk about when they say programmers who don't love what they do should leave the industry.

I personally don't think that Joel test would tell you anything about company that I work for. It's too brief, it doesn't ask specific and very important questions. More rant here:

The Joel Test's equivalent for measuring a programmer

Jeff Atwood is an exceptional person, just like many others that work for large corporations. Yes, it's a good idea to chase other people and compare yourself to other people, but this shouldn't put you off. They've done this stuff for decades.

I guess I'm going to have a hard time finding people who feel the same way on a programming forum, but maybe some of you have ex-colleagues who were the same, and could offer advice.

The thing is, I "know" quite a lot of C# and C++, and could probably fool a lot of companies into hiring me.

You know how to use the tools, but I guess that you don't have enough industrial experience, so you just can't run a project from start to finish. This is absolutely fine and you'll get better.

I had no great love of playing around with commodores or whatever as a 14 year old.

Yes, there are people who start programming or breaking programs at an early age. There are quite a few of them, and I'm not one of them. By no means I think this had a negative effect on me. I was socialising, learning, travelling and gaining other equally important skills that would help in my life.

I'm not a stupid guy, but it's completely inappropriate for me to work as a developer, because I'm bad at it and I'm stealing someone else's job, and a salary from my employer.

On my experience, developers who think that they are "bad developers" are normally very good developers who strive to improve. I don't believe you that you just can't make a project work. There are things that you can do, and things that you find very difficult or boring to do. That's the problem and there are many ways of addressing these kinds of problems. For me, personally, I can't work on any project unless I see a finish line, so I have a range of feedback mechanisms to make my life easier. I can't work on large tasks, so I break them down into smaller tasks, each taking from one to three hours.

Few more things to keep in mind

  • What industry do you work in? I wouldn't want to work in finance industry. On other hand, I like working on eCommerce sites, online gaming platforms and content management systems.

  • How technical are people that you work with? If you are the most "senior" in your department and there is nobody to guide you, then it'll be difficult. Yes, you can read books and blogs, but it's nothing in comparison to sharing knowledge with another experienced developer.

share|improve this answer
How are you supposed to get better with no guidance? You can't just work it all out from books or blogs - it just doesn't work that way. Talking to a lead developer of an enterprise application for half a day will teach you what no book can. If you can come here and say that I can lie through interview and get a job, not literally, then why not just apply for a different job as a junior developer on a condition that there will be people to guide you and make you a better developer. Just give it a go, what is a worst case scenario? – CodeWorks May 1 '12 at 21:43
Okie, you are talking about business logic within an application. It sounds to me like you are interested in working on what the business logic is built upon - framework. Our technical lead can't write business logic as they find it dull and not challenging. Because of that they constantly work on a low level framework on which our systems run. Don't be fooled, you'll have to write some business logic and dull features until someone will allow you to work on what's "under the hood". – CodeWorks May 1 '12 at 21:46

Everybody is different, but I think one thing that attracts a lot of people to programming is the fun of making something. You get a good (or not so good) idea, you spend a few hours or a few days banging on a keyboard, and you're finally ready to fire the thing up for the first time. Usually, it doesn't work. So, you scratch your head for a bit, make some more changes, and try again. At some point during this process, even if it's not working perfectly, you see your idea working for the first time. On one level, this is completely unsurprising because you've just spent a day or three putting all the pieces in place that are, after all, supposed to make it work. But even though you fully understand (or think you do) how it works, it seems magical. I don't think you have to write code to get that feeling -- there's some of the same appeal in such activities as putting an engine together, cooking a meal, building a nice piece of furniture, having a baby... It's just the joy of creating something new.

I don't know if everybody gets so much satisfaction from making stuff. I'd guess that some do and some don't, and if you don't you probably know it already. I do know that writing code wouldn't be very appealing if you never got that satisfaction. If that's the boat in which you find yourself, then you're smart to figure it out now. Look for the things in life that you do find satisfying. Maybe you enjoy helping other people, or organizing things, or being off in the woods by yourself for long periods... whatever it is, find a way to do that. On the other hand, if you do get some satisfaction from programming but also find it incredibly frustrating, well, welcome to the club. I don't know if it gets easier or if you just get used to it, but programming is all about solving problems. You have to have a problem before you can solve it, so at times the occupation makes you want to tear somebody's hair out.

There's a fulfilling career out there for you somewhere. Maybe it involves programming, maybe not. Keep looking until you find it.

share|improve this answer

I have a relative who taught me BASIC when he was 9 or 10 and I was a few years younger. I think his dad gave him a BASIC book and he took off running. He was far more adept at it than I, perhaps because of the age difference, but he definitely has a natural affinity for programming.

When he went to college, he ended up getting a degree in Mathematics, also studying Actuarial Science. He currently works for a large financial firm as an actuary. He tells me that he uses programming in one form or another daily, whether it's massive Excel spreadsheets or programs to parse large amounts of data.

Point being, there are plenty of jobs out there that involve a lot of programming but don't have the job title of "programmer" or "developer" or any such thing. You might be a really good fit for such a job.

That being said, I think that with your work ethic and willingness to study and learn, you could learn to be a great programmer. Good programming isn't necessarily making a project from the ground up; often it's designing a small component, function, or method very well.

share|improve this answer

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