I realize this might be an obvious question, but is anyone else annoyed by how programming has transformed from an understanding of concepts into blatant marketing speak?
75 21 Feb 2016 01:52 by u/ELS_BrigadeWarning
It's just a frustration I've found dealing with companies I've applied for. They don't care about a programmer's understanding of the concepts involved, they latch on to marketing terms like Câ„¢, C++â„¢, Javaâ„¢, Javascriptâ„¢, C#â„¢ and so FORTHâ„¢. Of course, that's simply not enough, so they have to throw frameworks and toolkits into the mix too: Node.jsâ„¢, SQL Serverâ„¢, MFCâ„¢, .NETâ„¢. Everywhere I go, I also see programmers talking this way too, they use Schemeâ„¢, Haskellâ„¢, etc.
It seems to me as if programmers have become more interested in pimping products than discussing programming concepts. When and why did we become salesmen? Why do we do this to ourselves? If you want to become a truck driver, no one asks you whether you have experience in Freightlinerâ„¢ or Peterbiltâ„¢ and hires you based on that. They know the concepts transfer. But at some point in the 90's, it seems to me, we became product-obsessed and adopted the identity politics of branding. I'm no longer a programmer, I'm a Câ„¢ Programmer - so now if someone wants to hire me, then I have to look for Câ„¢ programming jobs. If I apply for a Javaâ„¢ programming job, they'll turn me down because I don't have experience in Javaâ„¢ - doesn't matter if I have the skillset to implement the Java language myself. If you're not wearing the correct NASCAR patch on your uniform, you're wrong for the job. These products used to be selling points for a company, now they've become buying points for a programmer.
It just makes me wonder: as the products unfold into thousands of them are we going to reach a point where no company can hire anyone because no single person meets their product checklist? It's becoming fucking ridiculous. The one sense in which I can understand is if the languages have fundamentally different concepts, but that's usually not the case. Haskellâ„¢ is conceptually very different from other languages, but even then why can't we just pull out the concepts instead and see if the programmer understands those? Do you understand OOP, procedural programming, functional programming? Do you know what a linked list is, a hash map, a BTree? Do you know how to write an event handler?
Sorry for the rant, it's so fucking frustrating seeing this shit everywhere and I felt compelled to get it off my chest.
21 comments
36 u/Crashmarik 21 Feb 2016 03:05
It's always been that way. HR people have no clue about what it takes to create good software, so they hit checkboxes. I remember seeing a job posting in 97 listing required 5 years experience in Java. Neat trick seeing as Java came out in 95.
7 u/Nietzsche__ 21 Feb 2016 03:43
And on the other side, every dick who sets up a thermostat seems to call himself a programmer nowadays.
6 u/Crashmarik 21 Feb 2016 03:48
Wow usually they tell me they are network engineers.
14 u/idk 21 Feb 2016 07:02
Yup, I saw a job that wanted 5 years experience in Windows 10.
25 u/Mylon 21 Feb 2016 03:02
These terms are not trivial. Programming is becoming more complex so that while you may understand the concepts, different languages and frameworks can also have different tools and IDEs and ecosystems to pull snippets from. Companies are used to getting exactly what they want and they'd rather not wait even 2 weeks getting someone up to speed with the ecosystem before they spend 6 weeks getting them up to speed with the code base.
Also... They love impossible requirements so they can claim they meet H1B visa requirements.
14 u/noblefool 21 Feb 2016 03:44
After you've learned C/C++, Javascript (or another scripting language) and one full Object Oriented language, you're basically equipped to learn anything that exists presently for programming. It only gets easier, so at some point the boasted tech stops mattering as much as what it's actually supposed to accomplish. Some things you can very readily work around, other things, not so much. (Or at all in some cases.)
3 u/Men13 21 Feb 2016 15:50
Can confirm. Been programming in C++ and python for over a decade, and php for around a year. Just started a new job where they work in Java.
No problem. "everything is a pointer, . is actually ->, there's no *, that's it".
Annotations still annoy me (in the sense that I don't have a good enough understanding of them to create my own), but other than that - I don't feel like I'm missing anything.
4 u/ForgotMyName 21 Feb 2016 05:23
Some frameworks are massive. Understanding their intricacies can be as essential as understanding basic algorithms. I've worked with new people that know the frameworks and with new people that don't. It's a lot easier to on board the people that are already familiar with them.
10 u/kltpzyxm 21 Feb 2016 02:57
Well said. Gone are the golden days of fly-by-your-pants coding where you'd simply binge on coffee and disconnect the phone until you had a functioning program and an understanding of what you are doing. Now you have to have the right credentials from a school you cant really afford to do something you dont really care about for a corporation that doesnt care about you and repeat constantly, until death or liberation.
5 u/ZigZagWanderer 21 Feb 2016 12:52
Go self-employed. Build your own stuff and sell it. Out-compete the drones.
9 u/OrionBlastar 21 Feb 2016 04:34
Programming jobs have changed, HR and Management use marketing terms because they don't understand how programming works or what programming concepts are.
They auto-reject people based on resumes using AI programs to read in Word documents and index them. Those who meet the strict requirements and keywords get the interviews and are asked to build a sample app in one hour that does something like messaging in Java using frameworks and OOP and best practices. When they fail to hire someone they go for H1B Visa quotas.
You find some stuff like 5+ years of Visual C# 2015 as a requirement, it is insane.
8 u/noblefool 21 Feb 2016 03:40
Buzzwords. The people who don't understand how things work think that you're some kind of god if you present more of them than anybody else.
6 u/Tecktonik 21 Feb 2016 06:33
It is part of the "rock star programmer" appeal of the profession. Programmers have been in such high demand for so long, it has attracted a lot of inexperienced folks who want to get a foot in the door. If you want to be a literal rock star, you have to already know how to play your instrument, you can't go in all like "Well I studied music theory for three years and I've been playing the guitar for 3 months" and expect to get recognition for your knowledge. You can't want to be a rock star, you have to simply be a rock star, and of course some people are better at assuming this attitude than others. You can't be willing to learn a new framework on the job, you have to know the framework, even if that just means you've been reading a bunch of blogs can make smart remarks about the latest beta features - "I am really looking forward to dynamic threading in the next release, it is going to make things so much easier!"
Also I find it strange that people now place an emphasis on the difference between OOP and procedural programming. They are orthogonal to each other. Declarative versus procedural is more meaningful.
6 u/unixfreak 21 Feb 2016 10:58
Just about every "startup" ever.
Personally, i couldn't care less what something is programmed in. If it runs and does the job it's intended to do... fair game. Alot of experienced programmers can maintain a codebase in a language they've never even learned, all it takes is logic and hacks until you become familiar with it. But hey, that's unprofessional -- can't be unprofessional now can we, better go put on my suit and sit down for a nice plate of node.js.
0 u/dchem 24 Feb 2016 22:30
Having programmed Node.js applications for cloud, Node.js addons for another application, and just plain old POSIX C programs for embedded devices, I can tell you that Node.js does a lot of things right, and I have so much more appreciation for standard API that Node.js provides now that I've coded in C and had to re-implement some of those functionalities.
Node.js does allow a lot of higher level abstractions to be installed and used relatively painlessly, and the accolades it get isn't just from the HR people - originally they are from the frustrated devs who switched to Node.js and found out that it's super effective at going from 0 to 1.
HR people eventually saw the productivity and figured, if Joe Hacker can pump out functional code with Node.js, why not every Tom, Dick, and Harry? That's why it's now over-hyped.
So, please don't be too hard on Node.js. It's not the framework that's bad, it's the un-enlightened people who think Node.js is the panacea for all development woes.
2 u/markrod420 21 Feb 2016 05:12
Yeah no while the generlized skills transfer there can be significant differences between languages. Differences which can take weeks or even months to become aclimated with. Weeks and months that can be very expensive for a business. A new employee is already a monetary risk. A new employee that does not actually have the skills you are looking for but has some very similar skills. Thats a more significant monetary risk. Its perfectly understandable that they dont want to waste all that money for you to learn a new language on their bill.
2 u/idk 21 Feb 2016 07:23
Or how about when they don't advertise a job as programming, but you end up doing it anyway?
I'm not a programmer, I'm a Business Analyst, but holy shit - I need to take "SharePoint" off my resume. Sure - I can make a basic HTML/CSS page, but stop asking me to make your departmental website in Java. You don't need that.
But of course, the boss-man wants something flashy to show his director.
1 u/Amadameus 21 Feb 2016 04:16
I'm not a programmer, but I'm almost one. I can hack up quick sketches for my Arduino and that's good enough for me.
Programming in high level languages seems to be the issue for me. One of the most relentlessly intelligent programmers I've ever known specializes in embedded systems and is often hired to write in assembly.
1 u/dirething 21 Feb 2016 22:00
For any higher level position I disagree, the specificity is logical:
These days you are hiring into a position the person is probably stuck in for the duration of the 3-5 years they are going to be at your company and you are going to be paying the rate that is their current salary plus whatever increases they didn't get at their last gig.
You can hire someone that works in the toolchain you work in, save on costs because their time getting up to speed is lower, and they are more likely to write something your existing developers are going to follow, or you can hire someone with a solid background, spend time teaching them, and lose time when your other developers encounter their early attempts which look like their last framework's top ideas ported crudely to the toolchain you use.
You get to keep the person about the same time either way, but the second situation gives you less return on investment, and there are plenty of candidates to choose from so why not make the selection that gives you more results for similar expense?
On top of that, some of the concepts, while possible to implement in various languages are very much the wrong way to do something in certain languages for low level technical reasons. It started with the C vs C++ crowds, spread into the various flavors then outward into new languages as they developed with the various compilers/runtimes being built with different assumptions.
I know what a binary tree, hash table, linked list and event handler look like in many languages, I have implemented them in many, but I also have many years of experience on when to avoid them like the plague in my chosen language and enough sense to know that even if I learned a new language to the point I was fluent in it I couldn't legitimately demand the same pay as I can in the language I have more than a decade of experience in.
What I do see is in the lower tier of dev jobs they are posted the same way as the more senior jobs. This I agree is a probably a bit unnecessary as almost all Jr candidates are useless right off of school, but the market isn't tight enough to post even Jr positions as no experience needed, and if you are going to ask for experience you might as well ask for related experience as those candidates are out there.
The other factor at play in the REALLY specific job postings is large organization politics, or god forbid: unions. If a manager's grade is determined by the number of staff they manage keeping an open position open lets the manager keep their position and meet budget sometimes. Other times having a position that cannot be filled provides the justification to bring the rest of the department's rate up to market levels.
Companies with union dictated hiring rules are the only companies I have ever observed actually "unable" to fill a position due to the checklists, and even that isn't that common, but we did have a couple local employers that would post things like Level X platform Y developer with Z years experience where Z was 3x the number of years Y had existed. I applied for some of those initially our of school assuming it was a mistake only to find our from the hiring manager that all employees at level X require Z years of experience since their last collective bargaining with the mechanical and electrical unions. I had no relationship with the union so I could only respond that I had worked in that platform since z/3 years ago when it was initially released and the hiring manager apologized for wasting everyone's time.
That position remained posted until the company closed all of the local locations and reopened several states away with no union the year before Z years would have actually been possible.
I am sure there are people playing games with it for H1B purposes as well, but at least in the geographic area I work in, most companies that were going to try that route already did, many learned their lessons and are already pulling back from it. From what I have seen, the level of fraud in the overseas universities and technical schools is going to solve the H1B problem faster than legislation will everywhere except for possibly the west coast.
1 u/Torchhead 08 Mar 2016 15:27
I agree. It is very annoying. My personal theory is that recruiters are laze and instead of trying to figure out if you know programming or not, they just count how many libraries you have used in your projects. People are collecting libraries like they are stamps. They are also following libraries like they are fashion trends.