I love programming and I think I have the talent to do it professionally. But I'm scared. Based on what I see on HN and elsewhere, the workplace seems to be where the excitement of programming goes to die. Is it true? Does the joy of solving difficult problems with elegant code get buried where you work? Is your workplace special because it's not like this? How to find a place where coding still rocks?
Heh. Ever heard the expression, you gotta kiss a lot of frogs?<p>Finding the right place for me is very different from finding the right place for you. For example, where I work (zulily) there is a ton to do. I think about all the cool problems I get to solve. But at the same time, I have to deal with a lot of "not how I would have done it" solutions. Don't get me wrong, I'm fully aware that any decisions that I make will be castigated by current/future workers (the wheels on the bus go round and round).<p>With that said, find an industry that interests you right now. Find companies that are using software to solve problems in that industry. Then just start working. When you are there, you have 2 outcomes - one is that everything is amazing and nothing needs to change (unlikely) and the second is that it's mostly OK.<p>If it's mostly OK, you can decide to put up with it (because the challenges and coding are tilting in the favor of happiness) or you can (cliche alert) be the change you want to see. If you see a process that you don't get, question it and find out why it got instituted. If no one can give you a good reason (and good is subjective I know), then change it. Get rid of it. Nuke it from orbit (it's the only way to be sure). If your boss says things like "Because I said so" - find somewhere else to work.<p>A lot of people will tell you "Just code on side projects". That's an awesome idea. but you can work on side projects about 2-3 hours a day (assuming you've got friends and other hobbies). Is that 2 hours a day really enough to make up for the soul sucking 8+ hours you spend at an office? I know it isn't for me. I've got side projects, but most of them revolve around how I can learn a new technology to help the company I'm currently working for.<p>And just to answer your original question: Yes. I'm still excited by programming.
Business hates the idea of people solving difficult problems with elegant code. Most businesses wants dumb people solving easy problems through repeatable patterns. There are lots of different kinds of software development. If you pick the wrong company you could be doing lots of repetitive work. Even if you pick the right company there will be enormous pressure from all sides to turn your job into being a typist. The best solution is ownership and management of the firm by developers, which is how many successful firms are started.
Not every task is the same, and, yes, you will have to deal with tasks you would rather be doing something else - no matter what career you pick - this is why discipline is usually more important than 'talent' (which is a scam, talent is just result of hard work, you always start at zero talent). Keep in mind that even programming that 'rocks' will get old and you will want to move to something else.<p>Be careful with the definition of 'difficult problem'. Building a HTTP server from scratch is not a difficult problem. Trying to understand a 30 page generalization of financial calculations and implement it on a programming language when you are not a mathematician is a difficult problem. Most programmers, specially 'juniors', have a very shallow understanding of what difficult means. Nothing you know how to do is difficult, it can just be lengthy, only new things / things you don't fully understand are difficult.<p>This is valid for pretty much every career, really.<p>The only advice I give to people entering this career is to get ready to deal with the complete, absurd social ineptitude of the majority of technically great professionals in the field. Which is not all bad, with a bit of social skills, you will lead.
For me, it ebbs and flows. There are times when I feel challenged, and there are definitely times where politics, the types of problems, etc. tend to extinguish the flame to get excited and work hard. I think the trick is, when you feel your "programming fire" starting to get extinguished, find a side project that inspires you (granted, if you have the time to do so). This gets me through the burn out and piques my interest when the day to day coding doesn't do it for me.
Coding rocks in places filled with top performers. If you're really good and don't settle for working with mediocre people, you'll find an interesting place. Also, your creative expression for coding has to be something that persists longer than a single job.
You can burn out. Make sure you keep learning new things and solve different problems.<p>Luckily the field is really vast to keep you interested for decades.
Absolutely - this is in fact a golden age for programmers. Working conditions are a lot better than 10 years ago, and the power at our fingertips is beyond what I could have imagined.