3 ms·
First, there is no such thing as a "systems programmer". This is a useless, career-limiting, HR-invented categorization. When I made the mistake of signing on
by Xurinos 16y ago
First, there is no such thing as a "systems programmer". This is a useless, career-limiting, HR-invented categorization. When I made the mistake of signing on with a few recruiters on a job hunt a while back, they looked my recent job experience and labeled me a "systems programmer". This was differentiated from things like web design and GUI. It is wrong wrong wrong. We are software developers. It should not matter what layer of architecture we are coding in. Every layer has so-called "business rules"; everything has MVC. Label yourself, and you limit your thinking and your evolution.
This article does have a valuable lesson, in spite of the miscoloring. What we see in this article is an example of overthinking the problem. With experience, your debugging/problem-solving skills will get better, and this kind of mistake will not be often repeated. It took me many years to get out of the habit of speculating and to get closer to actually debugging. I had learned that it was faster to look at what was really happening than to guess at it. It helps even more to come to a detailed understanding of your system, but if you do not have time for that... Never start at the bottom first: start with the symptom.
- sausagefeet 16y agoAre you sure about this? I tend to think of a Systems Programmer as one who is more skilled in a particular area of the stack (closer to the OS). For example I wouldn't generally hire a self described "Web Programmer" to work on the guts of VMWare if I worked there. Sure, a good programmer can pick up on that stuff but a good programmer can also pick up basket weaving, it doesn't mean basket weaving is a useless career limiting hr invented categorization.
- Xurinos 16y agoI wouldn't generally hire a self described "Web Programmer" to work on the guts of VMWare if I worked there. When people describe themselves as something, it is to indicate what they are interested in doing. Hiring a self-titled "Web Programmer" to do VMWare work is probably not a good fit, not interesting for them. But it is not unreasonable to find that they are capable of doing the work if they wanted to. We need to be careful about categorizations. I see your point about basket weaving, but when I went to school, I did not see a class for it in my CS curriculum, and I also did not see "systems programmer 101" or "web development 101". These are applications. In CS, we learn how to navigate in all these fields, whatever their rules... that is, out in the field, we can learn enough of basket weaving to create a software model for it. The point is that we can solve the problem in software. Really, it is because of this nonsense that I gave up on recruiters entirely and learned to go directly to the technical hiring managers. The good ones do not use requirements checklists with bullet points like "knows C++", "has programmed in linux", and "knows basket weaving". Edit addition: This thinking would be career-limiting on me because I have adopted a mindset that boxes me in, focusing in the wrong things.
- billswift 16y agoAt the University of Maryland College Park, Systems Programming is, or was, course CMSC 415. Maybe you should have gone to a better school or, more likely, have paid attention when you were there.
- Xurinos 16y agoI have never heard of University of Maryland College Park. I had a course in OSes. And a course in databases. And a course in graphics. And a course on compiler design. So on and so forth. All part of the curriculum. They taught us to be computer scientists, not systems programmers or web engineers or whatever fancy title is nice. I should add that the university I attended is one of the top in the US for CS. Also, in interviewing candidates, I did see that there are several schools that do teach about the toys rather than about CS. I generally ignore that and look for good developer qualities instead. Your second sentence is pretty personally insulting, beyond the call of simply disagreeing with me. Please consider an edit?
- sp4rki 16y agoAnd who are you to patronize other people because of their university choices? The university I went to didn't have a systems programming specific course either. So what's the deal here? The only good university is the University of Maryland College Park? He made a good point, people often dismiss candidates because they see some buzzword they don't like. A good programmer is a good programmer regardless of what he calls him/herself. It's more important to assess a programmers competence, desires, and fit within a company than discriminate on what "type" of programming you think he should be doing.
- sausagefeet 16y agoI'm not really sure what point you are trying to make. If someone self-titles with "Web Programmer", and by your own admission that denotes an interest level than that seems like its limiting their career in a way they desire. The OP is refers to himself as a Systems Programmer which seems to fit just fine into your definition of self-titles. This sounds much more like you're projecting frustration with recruiters rather than making a useful point on categorization.
- rxin 16y agoFor sure there is. I'd call the group of engineers "systems" hacker/engineer/programmer if they are working on work on OS, database, networking, and distributed infrastructure kernels. These type of programming requires a distinct skill set and usually more experiences than for example web frontend development (PHP, JSP, etc).
- Locke1689 16y agoAnecdotally, I can recall exactly how to manoeuvre the TSS register in real mode to successfully boot a VMM guest but I couldn't for the life of me recall how to make a speckled background in CSS. Asymptotically there's no such thing as a systems programmer but that's not really how the real world works.
- Xurinos 16y agoI think we are well aware of the arbitrary definition, and it misses the point. A software developer hacker/engineer/programmer solves problems, using the software as a tool to that end. There are surely several domains in which they may work, but the real skills -- the ability to put together code, debug, etc and not the memorization of the business rules of each domain -- are what makes the programmer. I can understand if a hiring manager wants somebody who has some experience in some OS, in using Dreamweaver, in knowing the Java language, or in some other platform. These are just toys, though. I agree that that experience is a bonus, but the real core skillset has nothing to do with any particular toy. The hiring manager will easily miss good developers with such a narrow-minded focus. And certainly, strong experience in any of the items of this list should not suggest that the developer cannot also do GUI programming, web programming, JavaScript, or any of the like. These are simply environments. Everyone has to learn the local company's codebase or some business's specific rules. I have never seen an educational institution use these terms. Nobody gets a serious degree in "systems programming" or "web frontend development". If they do, avoid that institution! What you want in a developer is the ability to learn, the ability to think, and the ability to communicate on things that make some hardware operate. But call them a "systems programmer", and we do a grave disservice to our industry. Distinct skill set? No way. Don't let the pencil-pushers carve us into tidy little imaginary fields. They do that because they are trying to measure the work. As someone who has experience in all the levels from our computer's digital circuits up to databases and sideways to some pretty graphics and sound, I can assure you that these definitions are ridiculous. I provide maintainable solutions. I am not a systems programmer. I am not a web developer. I am not a game designer. I am a software developer: I can do all these things and more -- and specifically, I personally have, so I know the differences. I do not hire people because of the toys they have used; I hire them because they are capable of learning and extending mine.