Ad. 1 - fixing bugs and debugging <i>is not</i> boring. Aside from being bread and butter for every programmer (everyone makes mistakes) it's challenging[1] and fun, even without time constraints. It's close to base jumping when you deal with important production systems and serious bugs that affect people.<p>Ad. 2 - well, in some environments programmers need to be "idea guys", in others they do not. The level of influence a programmer has on the product varies wildly from domain to domain and from job to job. I tend to believe that developers naturally gifted with "idea factory" brains end up in positions where their ideas are being implemented and the others just do what they are told to do - both ways can be equally satisfying.<p>Ad. 3 - CS background is not needed. Discipline, passion and energy... are not needed either, however they all do help :) I won't talk about which of those things is the most important, because it isn't that important at all - I just want to note that CS background does not (usually) hurt (a lot).<p>Ad. 4 - no idea about this one, sorry.<p>Anyway - I had no idea that misconceptions like that even exist, but it's good that the author spent some time on fighting them when he noticed them. The post is maybe a bit <i>too</i> optimistic, but it tries to fix the spotted problem (with people's thinking) which is what every true Scotsman does as his first instinct :)<p>[1] "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." -- Brian Kernighan
Programming is awesome. If you can learn how to code, do it. If you can get better, do it. Learn skills, get better, build an independent credibility. It's a lot of fun, and you can do important technical work.<p>That said, your original insight-- that most software engineers do boring shit and work in environments where engineers have low status-- is accurate. It's even true of the VC darlings that still call themselves "startups". This is a great industry if you can stay on top in terms of getting the best projects and continuing to learn. It sucks if you end up as a grunt. Unfortunately, it's hard to tell how it will play out when you join a company. A nice title and high salary do not guarantee interesting work.<p>I recommend software if (a) you're willing to spend a lot of time and energy "self-mentoring" (which gets easier every year, thanks to online resources) and (b) you can tolerate frequent job changes-- once every 2 years not being unusual.