3 ms·
I've been programming for the vast majority of my life, professionally for something like 30 years. I've done other jobs as well. My general advice to people
by mikekchar 8y ago
I've been programming for the vast majority of my life, professionally for something like 30 years. I've done other jobs as well. My general advice to people thinking of becoming a programmer: Go ahead if you like programming. If not, then there are almost certainly better jobs than this.
Don't get me wrong. On paper it's attractive. Quite high salary. Casual dress. Often flexible hours. No heavy lifting. High demand for skilled workers.
On the other side: You have to concentrate to a level that most people can't even understand -- and you have to do it all day, every day. Nobody understands what you are doing and most people under appreciate the difficulty (which is actually a huge understatement). Many managers believe that the reason things are going more slowly than they would like is because you don't have enough stress in your life. Unfortunately, the reality is that while you don't have much day to day stress (unless you are are in dev ops), you have ridiculous long term stress. No matter what you are working on, you don't have enough information to do your job. As soon as you learn enough to do your job, the job changes. Your tools change on a yearly, if not monthly basis -- and the amount of learning necessary to get good at your new tools is a full time job in itself. On top of all that, the field is immature to the point that it is likely that every single person on your team has a different way to solve every problem. And they are all convinced that everybody else's solution is crap. And they are all correct (pause to let the implication sink in). You're going to get it wrong almost all the time, and it will take you something like 30 years (if I'm any measure) to realise it. But even when you finally figure something out, nobody will listen to you, because they all think you are wrong (and they are probably correct about that too).
It's a terrible job. Only do it if you really, really want to do it.
On the other hand, I've known a few people who are able to clock in and clock out, do a competent job, and not get too stressed about stuff. I'm still trying to figure out how they do it.
- throwawayjava 8y ago> On the other hand, I've known a few people who are able to clock in and clock out, do a competent job, and not get too stressed about stuff. I'm still trying to figure out how they do it. This is an amazing skill I only learned during a PhD, and only after burning out half way though. Obviously, step 0 is clear boundaries and reasonable work hours. Clock out at 5 or 6 (or 7 or whatever -- point is, put in your 40 hours and leave). After that, things get more difficult. For me, the answer was to work out directly after work (so before the commute home even!) and to listen to an interesting audiobook/podcast during my workout. That way, when I got home, I would have something on my mind other than work. Fortunately, my personality is such that as long as the audiobook/podcast was interesting, that's what I will focus on/think about the rest of the night.
- dvlsg 8y agoWorking out before going home works great for me, too. And it has the added bonus of helping you skip some of the traffic on that commute home by pushing the start time of that commute back a bit. Depending on where you live and when you work, I suppose.
- commandlinefan 8y agoNice to hear I'm not the only one who feels this way. I finished a bachelor's degree in CS back in '94, have been programming professionally ever since. I went back and got a Master's degree ten years later, while I was working. At this point, I have a LOT of education, and a LOT of experience. More, I imagine, than most anybody out there. Yet I'm continously hammered for not being fast enough, not catching all the problems before they happen, sometimes not knowing the answers to questions on the spot... if I didn't have a degree in CS, I might think, "well, maybe they teach you this stuff in college". If I didn't have much experience, I think, "well, maybe you learn this stuff with experience". But I have all that and still find myself unable to solve every problem instantaneously with no margin for error. Either I'm REALLY stupid, or this is harder than they think it is.