4 ms·
Is "programmer" a coherent group? How much does a Senior Engineer doing something like writing kernel code have in common with a fresh high school grad writing
by throwawaygh 5y ago
Is "programmer" a coherent group?
How much does a Senior Engineer doing something like writing kernel code have in common with a fresh high school grad writing on something like a single threaded ASP/PHP codebase for an internal tool that has fewer than 100 daily users?
I've done both of those jobs, and they both involve the same set of general tasks (requirements, brainstorming, coding). But in actuality they have almost nothing in common. The fact that both involve writing code is mostly a red herring.
More to the point: is a convenience sample taken by a university research group representative of the profession?
I'm generally suspicious of Emperical SE research that doesn't either:
1. focus on specific sub-populations of the programming profession, or else
2. make an extremely strong case that their research questions are highly likely to generalize across all research labor.
(edit: changed wording because many folks made the worst-possible interpretations of my original comment.)
- nickysielicki 5y ago> Is "programmer" a coherent group? Well, it's a profession, so yes. > They have almost nothing in common. They both write code all day. Professionally. I'm sorry for the snark. You might be able to make a case that this study doesn't take income into account but that's not the comment you're making here.
- gumby 5y agoI think there's a fundamental complexity and skills-required difference between someone writing kernel code or microcode and someone writing a generic CRUD app.
- haswell 5y agoMost devs at “$FANCY_CO” aren’t writing kernel code or microcode either. There is merit to the idea that different developers focus on different kinds of problems, but the positioning of the parent comment - that this variance is due to the size/prestige of the org - is incorrect.
- nickysielicki 5y agoYeah but do salaries represent that? The biggest mistake I've made in the past 10 years of my life is choosing to focus on low level instead of just chasing the latest and greatest react/rails stuff. Fresh grads with experience only in Java at $FANCY_CO outearn me by a factor of 2.5 because they get on the web/app track. Meanwhile over in embedded I'm writing highly performant const-correct modern asio C++ applications requiring custom kernel drivers. Parent comment had the nerve to imply that I'm not even a true programmer. None of this shit makes any sense anymore, I can't wait for the bubble to pop.
- Apocryphon 5y agoThere are hot companies in need of embedded programmers. Plenty of auto companies, both self-driving and not, it's a big space. Ditto for IoT, which has gone from an enthusiast's hobby to a mainstream category over the past five years. Representing these spaces, Rivian and Samsara both went public in the past two months, respectively. Nearly every FAANG makes consumer electronics, and at least a couple are into cars.
- throwawaygh 5y ago> Parent comment had the nerve to imply that I'm not even a true programmer. That wasn't my intention. > Fresh grads with experience only in Java at $FANCY_CO outearn me by a factor of 2.5 because they get on the web/app track. 1. In fact, my example of "less complex job" was "web dev". 2. Most fresh grads doing web dev make $55K or so. The $FANCY_CO engineers are an outlier. And, FWIW, within those companies, the low-level C++ people tend to make a lot more than the fresh grad web dev people.
- Beefin 5y agopoint is, what does it matter how complex the programmatic effort is, cognitively? judge the ability to be high during the tasks by its' earning potential :)
- 8note 5y agoProgrammer isn't a profession though. It's missing things like licensing groups to limit the supply of labour. Similarly, while some programmers are highly educated, plenty are self taught or started working after a couple weeks of boot camp.
- nickysielicki 5y agoWhat?! What word would you prefer to use to refer to the group of people who get paid to program?
- throwawaygh 5y agoYou're taking this extremely personally. My comment is about a scientific paper, not about you. > Well, it's a profession, so yes. I meant from a scientific perspective. I.e., here's the point: "can we lump all programmers together, randomly sample, do a correlational study or survey, and draw conclusions about the underlying population?" I assert that such studies will generally fail to replicate and will mostly tell you about the properties of a skewed convenience sample. > They both write code all day. Professionally. You could say the same thing about people who work in hospitals. Or people who work in offices. What's the difference between a novelist and a listicle author? They both write all day, professionally. Heck, what's the difference between a journalist and a lawyer? Again, they both write natural language all day. Professionally. And sometimes you can do studies that generalize. But, generally speaking, an empirical study about what makes novelists productive won't necessarily tell you how to make legal clerks more productive. It's not income. In fact, I didn't even mention the salary of the senior engineer in my hypothetical! $FANCY_CO was supposed to be a sign-post for difficult problems and/or complex politics, not compensation. (The $10/hr web dev does sign-post the complexity of the work, and wasn't meant as a hyperbole... I started my career making $10/hr doing PHP dev for local businesses. It was really easy work. Requirements were simple, code was trivial, and there was never more than 1 counter-party. The job was low-paying for a reason.) It's the type of work. I've done a lot of programming, of lots of varieties at nearly all pay scales. Here are some buckets: There's a lot of programming that is easy and mechanical (at all payscales). There's a lot of programming that is extremely complex and requires intense symbolic/mathematical reasoning. There's a lot of programming where the code is simple but you need to think long and hard about some complex technical topic separate from the code. There's a lot of programming that is extremely social and requires an incredible amount of intentional interaction with customers or internal stakeholders. These are the same job in the same sense that all medical professions are the same job or all people who write natural language all day have the same job. There is a strong relationship between pay and the degree to which an inebriating drug would impair your ability to perform well. But it's of course not a perfect correlation. Some highly paid people do trivial work. Some low paid people do complex work.
- haswell 5y agoI’ve also done both of those jobs, and they have quite a bit in common. The scale of the problems to be solved may be different, and that naturally results in some differences between the roles, but the fundamentals are all the same. It’s unclear what kind of point you’re trying to make and how it had any bearing on the cannabis angle.
- throwawaygh 5y ago> but the fundamentals are all the same. Sure. Also, any job that requires writing English all day has some cross-cutting fundamentals. I'm making a general point about empirical software engineering research: "does the question that's being asked get at the fundamentals that are shared between all programmers, or do we need to be more careful about specifying what we mean when we say 'programmer'?" > It’s unclear what kind of point you’re trying to make and how it had any bearing on the cannabis angle. I could probably do the "$local_shop web dev job" high all day. Not probably. I definitely could write straight-forward iPhone apps or Django web apps all day long while high as a kite. No problem. I definitely couldn't do other programming jobs high all day -- either because I need to spend a ton of time in careful conversation with other people, or because the technical problems require sobriety, or more usually a combination of both. Apparently the basic observation that some programming is easier than other programming is divisive here. That's fine for an HN comment thread. But I'd love to see a paper that goes something like "here are some buckets of programming jobs. Let's try to replicate a bunch of empirical SE studies with samples selected from each of these buckets and see what happens."
- haswell 5y agoI don’t think there’s any question that some kinds of programming is harder than others. The only thing that seems to be divisive is automatically assuming that the size or prestige of the org is what drives the complexity of the work. It’s easy to find easy programming work in big shops, and not uncommon to find hard work in small shops. As I said in my previous comment, there is absolutely a difference between different kinds of work.