Hacker News new | past | comments | ask | show | jobs | submit login

I'm a middle-aged programmer. I read only the beginning of this article and I didn't want to continue.

"- little or no required education": maybe, but only for the rare prodigy. "Software engineers" without an understanding of math and some amount of formal computer science are necessary evils rather than assets. Or are doing low-level, low-thought work.

"- No health or legal risks": a software engineering career will mess your body up bad if you don't intentionally work against that. For those of you who are young and don't believe me (and are programmers, sysadmins, devops, or otherwise spend all day on a computer), come back to me in a decade or so.




> "- little or no required education": maybe, but only for the rare prodigy. "Software engineers" without an understanding of math and some amount of formal computer science are necessary evils rather than assets. Or are doing low-level, low-thought work.

The key here is required education. You will be expected to have certain skills, but how you acquire those skills is up to you. At one past job, there were 6 developers on my team, and only 2 of us had CS degrees. The others had degrees in physics, bioengineering, electrical engineering, and one without a degree. In contrast, every doctor you meet will have a medical degree, and every lawyer will have a law degree. Both of these are expensive and require years of post-graduate education.

> "- No health or legal risks": a software engineering career will mess your body up bad if you don't intentionally work against that. For those of you who are young and don't believe me (and are programmers, sysadmins, devops, or otherwise spend all day on a computer), come back to me in a decade or so.

There's a difference between a job that literally wears your body down (construction, for instance), and a job that can lead to health problems because of a lack of physical activity. There's nothing you can do about the former, while you can address the latter by finding time to exercise a few times a week.


I programmed for a long time (decade or more) before I went to engineering school. The difference in understanding is night and day. Like I said, if the programmer is doing relatively low-level tasks, they won't understand their deficiency.


FWIW, the strongest programmer on the team was the guy with the physics degree.


That's very possible since he has a strong mathematics background, and has learned to think abstractly.


> There's a difference between a job that literally wears your body down (construction, for instance), and a job that can lead to health problems because of a lack of physical activity.

You don't think of yourself as a person who works with their hands, but you do. I had a bad habit of hitting keys on a keyboard really hard (due to a few early keyboards I had to work on). That can wear your body down, too - especially your fingers.


There are no direct health risks. What hits you in old age is not programming but bad habits - bad posture when sitting, too much sitting and not enough physical activity and excercising, and others. Those are possible to offset or fix. Comparing to manufacturing where you have same or similar bad habits as well as direct health risks of something or somebody accidently hurting you. Programming therefore can be considered to be without health risks.


My worst injury wasn't from the rugby or the skiing or the swimming; it was from the mouse: frozen shoulder. There are health risks.


> "Software engineers" without an understanding of math and some amount of formal computer science are necessary evils rather than assets. Or are doing low-level, low-thought work.

I read this as the author talking about a career change from programming--not describing the requirements to become a programmer.


I have been doing computer work for over a decade. no discernible health effects. That could change, but I would say it is less risky than a manufacturing job. The data clearly shows that some jobs have a higher risk of occupational injury than others.


It can come on quickly. I'm at over 30 years experience now and once, about 11 years ago, my shoulder just started having this shooting pain almost immediately whenever I sat in typing/mousing position. It was kind of terrifying. At times, it was so bad that I legitimately thought that I might have to give up sitting at a computer. I ended up investing in a better chair, focusing on better posture, taking breaks, doing exercises, and also switching my mouse to the left side for about 6 months (the pain was in my right shoulder and was particularly bad in the mouse position, so I thought learning to left-mouse would be a good idea). Ultimately, it worked out, but I had to make some pretty serious changes to make that happen, and now that I'm in the better habits, I wish I'd made the change much earlier.


Yeah, right shoulder pain os what let me to have vim everywhere, using trackball on left hand, but obly when absolutely necessary.


Are you 1) pretty young or 2) pretty physically active otherwise?


Good for you, but wait till it's been 25.


> without an understanding of math and some amount of formal computer science are necessary evils rather than assets

I mean it's not like you need to be a prodigy to pick up enough math and computer science concepts without a formal education.

I'm a high school graduate and I've made it far enough to be an L6 at a well known tech company. I'm not prodigy, I just I spent large amounts of time coding over the years.

And I certainly don't consider what I do low-level, low-thought work, even though I can't invert a binary tree without looking it up.

If someone who's from a more traditional background grills me on CS topics they'll probably find me quite lacking. But the reality is, prodigy or not, if you're curious enough to teach yourself programming, you're not going to suddenly fall short trying to learn "enough" of the math and formal CS stuff.

Enough to me is not being able to whiteboard implementations and manipulations random data structures, but rather knowing which ones exist and when to use them... then hopping on Google to find the details.

And I mean, someone has to write the search engine processing more data than I can fathom, and maybe their work would be prohibitively difficult if that wasn't all literally on their fingertips, but there's infinitely more people doing complex system design that can afford the few seconds of context switching.

-

I find if anything people from a formal background overestimate the importance of math and CS sometimes.

It's been so long I forgot the details, but I remember as a fresh dev in my first "real" job a co-worker very proud that their refactor of a function in our hot path was working 30% faster than before.

I took one look and saw something like

    void blahBlah(blahblah){ //made this faster
       loadABunchDataIntoStringsUsingPoorlySizedBuffers() 
       processABunchOfData() //by making this very fast
    }
Use a simple memory mapped file instead of "loadABunchDataIntoStringsUsingPoorlySizedBuffers" broke his benchmark. Now the "blahBlah" function took "no" time.

Stuff like that is everywhere in programming. Times where people choose the most formally correct data structure instead of a simple cache friendly array. Or destroying performance with GC unfriendly, but highly "type sound" code.

At the end of the day, to me nothing can replace time spent coding. And in my experience, people who can make it over the initial hump of difficulty in coding are people who end up spending a lot of time doing it (of course I might be a bit biased there)


I was a programmer many years before I went to engineering school. The problem is, you don't know what you don't know until you break that barrier.


> The problem is, you don't know what you don't know until you break that barrier.

How does that follow?

There's two barriers. Knowing enough to look up the details, and knowing enough to vomit it on a whiteboard.

Now the latter is much more impressive, but the improvement in useful output for even the highest tiers of devs is marginal in my experience.

After all, what the average CS grade knows after 4 years isn't theoretical physics or PhD level CS something. It's not unknowns unknowns all the way down that you need years of study to get to the surface of what is unknown.


The same can be said about the "making it far enough to be an L6 at a well known tech company" barrier. Actually, I believe this is a better qualification in terms of capacity, since it's more selective.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: