11 ms·
I've been doing some job interviewing lately, at 37. I do find that companies seem to know how to evaluate young programmers: just test them on their knowledge
by erikpukinskis 8y ago
I've been doing some job interviewing lately, at 37.
I do find that companies seem to know how to evaluate young programmers: just test them on their knowledge of your tech stack. Any young coder who is good and is working in that stack will know the basics. The bad ones won't.
For older coders, I'm not sure that same signal works. I've forgotten more frameworks than most coders will ever learn. I mostly don't care about programming languages, they're roughly the same and I can learn a new one in a couple weeks.
I know technologies like Rails and SQL, but I don't play with the new toys as much as I used to, becuase lately I would rather solve a new problem or build a new tool than learn a new tool.
But how do you evaluate a coder on their ability to solve problems? Much harder.
Even more difficult, how do you get a 24 year old coder who only knows react and FireBase to evaluate a 37 year old coder who has built web frameworks from scratch?
It's another world, and a lot of companies just don't bother.
Thankfully I have no desire to work at any of those companies. I solve problems. If a company can't hire for that I don't belong there. There are plenty of companies trying to hire people to solve actual problems, not just put coder butts in seats.
- scarface74 8y agoFor older coders, I'm not sure that same signal works. I've forgotten more frameworks than most coders will ever learn. I mostly don't care about programming languages, they're roughly the same and I can learn a new one in a couple weeks. Why not? I’m older than you and I have passed plenty of technical interviews on the $latest_tech. Sure you can learn a language in two weeks but a language is far more than syntax. There is the ecosysystem, frameworks, third party packages, etc. And honestly, I would be more concerned about hiring someone who built their own bespoke framework from scratch than someone who used an existing one. Building frameworks rarely adds business value.
- jgust 8y ago> And honestly, I would be more concerned about hiring someone who built their own bespoke framework from scratch than someone who used an existing one It's almost like you're pretending the years between 2008-2012 never happened, but I'm sure that's not the case.
- scarface74 8y agoIn 2008 I was in my mid 30s, had been working at one job for nine years as a C/C++ bit twiddler and writing COM/DCOM objects that interop’d with VB - in other words I had a skillset they was woefully out of date. I got lucky and found a job that let me pivot into being a modern “enterprise developer” and barely survived rounds of layoffs for the next three years. I learned my lesson. For the last 10 years I’ve kept my resume competitive with whatever the $cool_kids technology is and haven’t had a problem competing in the market.
- Joe-Z 8y agoWhat are you referring to?
- sk5t 8y agoDitto, if something extremely special happened in the years 2008-2012 with regard to frameworks, its cataclysmic significance seems to have escaped my notice. Rails? /shrugs
- erikpukinskis 8y agoI think maybe they are just referring to the fact that in that era pretty much everyone had to build their own "framework" to get a big web app up, because there weren't a lot of established choices.
- scarface74 8y agoBetween 2008-2012 there was ASP.Net Web Forms and MVC was becoming popular. I didn’t play in the Java space back then but there were plenty of Java frameworks (https://dzone.com/articles/what-serverside-java-web-framework-will-be-next-2008 https://dzone.com/articles/what-serverside-java-web-framewor...) Ruby on Rails was released in 2005. Knockout JS was introduced in 2010. Django was released in 2005. There was also Mojolicous for Perl also released in 2008.
- jgust 8y ago
- organsnyder 8y ago> And honestly, I would be more concerned about hiring someone who built their own bespoke framework from scratch than someone who used an existing one. Building frameworks rarely adds business value. If I were interviewing such a candidate, I'd dig into why they built a custom framework. The answer to that question could be quite enlightening, especially if they mention business reasons for doing so, or if they talk about what they've learned since then. When I started my own business a decade ago, I decided that existing web frameworks wouldn't suit my needs and built my own. Though I built a framework that suited my needs extremely well, it was a massive distraction from my actual business (which wasn't even tech). In interviews, I freely discuss how my NIH syndrome contributed to my inability to get the business off the ground; I've found that it tends to go over rather well with interviewers.
- erikpukinskis 8y agoSame. The way I work at home is no way to run a business, and I am painfully aware of that fact. I go to work to be on a team and pull in one direction and support the leadership and make hard compromises. I write code at home to understand where the industry will be in 10 years.
- marcosdumay 8y ago> And honestly, I would be more concerned about hiring someone who built their own bespoke framework from scratch than someone who used an existing one. Building frameworks rarely adds business value. Hum... My experience is that whatever framework a business use in any widespread manner, I do always have to build another one on top, because generalist libraries completely suck for productivity. Unless you are a single app shop, then you can just hard-code everything. I don't get how improving development speed does not add business value.
- scarface74 8y agoIt means that the next developer will have to learn your bespoke logging, authentication, etc. and other cross cutting concerns instead of just being able to go to stack overflow and finding an answer. If their is a problem, they have to wait for a response from the one Guru who wrote it. Most architects who think their problem is a special snowflake usually isn’t.
- mcguire 8y agoSo you are against encoding domain knowledge in the software? It's better to re-invent the wheel with every application so that "the next developer" can google their questions?
- scarface74 8y agoFrameworks aren’t about domain knowledge. They are about cross cutting concerns. You can’t imagine how many badly written custom ORM, logging, authentication, web frameworks I’ve come across.
- zbentley 8y agoI don't grant your premise (that it's wheel-re-inventing), but yes: it's usually massively better to build with familiar, boring, transferrable, google-able tools. Even if it takes a little bit more time to build.
- marcosdumay 8y ago
- _bxg1 8y agoI would presume he built his own as a learning exercise/for fun.
- james_s_tayler 8y agoGiven the amount of spaghetti I've seen... It's my understanding that being able to think in frameworks is a rare skill. If you find someone who is actually good at designing frameworks maybe, just maybe they have some real skill and they built their own framework to practice and hone their craft because that's a necessary condition for getting good at something? Granted, I hear what you're saying, but I'm not convinced your blanket dismissal is the right analysis without digging deeper on the individual details.
- jnbiche 8y ago> And honestly, I would be more concerned about hiring someone who built their own bespoke framework from scratch than someone who used an existing one If they're over 45, then they likely worked in the late 90s and early 00s. If they were like many of us, then they worked on at least some web applications back then. This was far before jQuery and even Prototype.js on the frontend. Java, PHP and Perl were commonly used on the backend (or where I lived, more often IIS with asp). But the start of the career of someone in their 50s and even 45+ was before any commonly-used framework in open source scripting languages used for web development (unless you consider PHP to be a framework). Even Spring framework was only created in 2003 (I just checked to confirm). Symfony in PHP was 2005. And those took several years to catch on in their respective ecosystems. Tons of companies had in-house frameworks back then. Who did you think wrote them? Even if someone working back then never explicitly built a framework, they used design patterns that mirror today's frameworks. If not, they were writing spaghetti code (and to be fair, that was pretty common back then). Based on your username and your assertion ("older than you"), you're what, 45? Have you forgotten what it was like back then?
- scarface74 8y agoIn the late 90s early 2000s every website was a bunch of spaghetti code with a mix of code and html - the original VB based active server pages, JSP, or even ugly Perl and PHP. But when he said he “made his own web frameworks”, I’m assuming he was talking about this decade.
- jnbiche 8y ago> But when he said he “made his own web frameworks”, I’m assuming he was talking about this decade. I re-read the comment in question. Not sure why you would have assumed that. Someone who is now 37 likely started programming before the age of web frameworks.
- erikpukinskis 8y agoNo, your parent was correct. I am currently building a complete web application hosting toolkit that I started in earnest in 2015. I worked on it this week. I wouldn't call it a framework, because it's built of small independent pieces, but it's a similar scope to something like Rails. I did start coding long before web frameworks existed though. :)
- erikpukinskis 8y ago> a language is far more than syntax. There is the ecosysystem, frameworks, third party packages, etc. Agreed. However, if you're a software company you've already likely made all of those decisions. If I come work for you, I'm stuck with them. It doesn't matter if I like the package manager or the frameworks. That's just the background against which we work. Our work is making our lives better, and solving the company's problems to the best of our ability, given all those constraints. > honestly, I would be more concerned about hiring someone who built their own bespoke framework from scratch Yes! I feel honestly quite nervous about sharing that aspect of my work, because I worry people will see me as out of touch. But I am quite up front that I don't advocate using my toolkit in production environments. My professional advice is usually quite conservative. I tend to advocate for minimal disruption and using standard tools as they were meant to be used. However, because I do that all day at work, I see all the cracks and warts in the architecture and when I go home I want to work on the future. And even though you are correct "building a framework rarely adds business value"... that's not what motivates me. I do think there is value being created, and I will eventually be able to cash in on that. But I am doing it because I am interested in the future, and I want to work on tools that transcend the pointless busywork I have to deal with day to day, in the name of meeting quarterly goals (which TBF is crucially important in a business context). I get direct enjoyment from working in my own little hobby world where those constraints don't exist, and that is enough motivation for me.
- scarface74 8y agoAgreed. However, if you're a software company you've already likely made all of those decisions. If I come work for you, I'm stuck with them. It doesn't matter if I like the package manager or the frameworks. That's just the background against which we work. Let’s say you learn C# in “two weeks”. Is that going to be enough time to get proficient with ASP.Net MVC? Entity Framewor? IIS? The built in logging framework? The DI framework? Middleware? What if they are using Xamarin for mobile? Let’s say you did pick up Xamarin (which I haven’t). Would you know the fiddly bits about doing multithreaded processing with desktop apps using Windows Forms?
- thaumasiotes 8y ago> But how do you evaluate a coder on their ability to solve problems? Much harder. With an IQ test, the same way you evaluate anyone else on their ability to solve problems.
- milquetoastaf 8y agolol
- sidlls 8y agoThat evaluates a person on how well they solve IQ test problems.
- james_s_tayler 8y agoIt evaluates the quality of the substrate.
- deleted 8y ago[deleted]
- mcguire 8y agoHaving a high IQ doesn't mean you are going to be able to hit the ground running, solving problems and writing production code in your first week. Better to hire for your particular skills. And younger is cheaper.
- mkozlows 8y agoThis whole "learn a new one in a couple weeks" mindset is toxic and needs to die. Yes, you can learn anything at a superficial level in a couple weeks. If you've spent the last ten years maintaining an ASP.NET WebForms app running on IIS, then within a couple of weeks, you can contribute code to a Go microservice running in Kubernetes and using Kafka. And that kind of "basic competence, with the ability to learn more" is what hiring managers want out of a junior dev, so if you don't keep your skills up, well, great, you're as useful as a junior dev. But what they want out of senior devs is people who know the ins and outs, who understand what to do and why to do it and can explain that to others, who can avoid the pitfalls of bad tech choices and misguided implementation patterns. If you've got decades of experience on your resume, my guess is that you want to be evaluated as a senior dev. And if you're a senior dev who doesn't know modern tech, then... you're not that useful. Your encyclopedic knowledge of the WebForms event lifecycle doesn't give you any particular insights into the design challenges of a microservice ecosystem; your ability to tweak IIS for maximum performance won't help you write a Helm chart. If you want to be hired as a senior dev, you need to understand how the modern world works, and all the posturing around "I could learn it in a week" or "I prefer to focus on problems" doesn't impress anyone.
- vp8989 8y agoIt's not toxic, it's dumb.
- Joe-Z 8y agoI get where you're coming from, but I didn't get the impression that GP was ignorant to new developments. In my experience the most important thing is really wrapping your head around a domain to be able to solve concrete problems in it. Whatever framework or programming language you choose to solve those problems with is peripheral, really. Also, most coding is maintenance. So yes, an experienced developer in some language is really worth a lot when you initially start out designing your system. But most of the work spent on that system will be maintaining and extending it and to be able to proficiently do that you need to: 1. Grok the problem domain, so you can connect the real-world / problem you're trying to solve with the code in front of you 2. Have a grasp on the limitations of your own system, which will come with experience as you work longer on it
- commandlinefan 8y ago> I can learn a new one in a couple weeks. To play devil's (or manager's) advocate - have you ever crunched the numbers on what it takes to pay you for a couple of weeks? That's not a trivial investment, especially considering the risk that you just thought you could learn a new language in a couple of weeks but were wrong.
- zeveb 8y agoSure, but you also have to weigh that against what it takes to pay people to develop the wrong architecture at the wrong time, and the opportunity cost to the company as a whole to be saddled with those bad decisions. That's not trivial, either. (although I agree with the sibling comment — one doesn't really learn most languages in a few weeks)
- scarface74 8y agoWell let me tell you the story about some older experienced “infrastructure consultants” who thought that AWS was just like on prem infrastructure, did a lift and shift, moved my former company “to the cloud” and ended up costing more because they thought they had “learned AWS”. Architecture and processes that was fine for one environment was horrible for the other. In development terms, you can write FORTRAN in any language. Let’s not talk about the one Java developer who thought he could pick up C in two or three weeks. It was ugly.
- grimjack00 8y agoBut during that time, they're not just learning the new language, they're also learning your environment, applications, and tools, which they have to spend anyway. In my opinion, that could accelerate their learning of the language, by seeing it used "for real", rather than in a more restricted tutorial context.
- erikpukinskis 8y agoEvery job I've ever worked I felt I produced more cash value for the owners than I took. I'm actually quite proud of that fact. It's important to me, and it's one of the things I think about all the time as I'm making decisions on how to work.
- seanmcdirmid 8y agoIsn’t the whole point of asking programmers to work out and and write code for alien dictionary from Leetcode to test their problem solving ability? There are really no easy answers to interviewing people for jobs, I guess.
- erikpukinskis 8y agoYeah, I'm talking about people being upset that I had to look up the syntax for ActiveRecord associations because I haven't written any in a while.
- LorenPechtel 8y agoLearn a language in a couple of weeks? No way! A couple of weeks is plenty to understand the mechanics of the language, but the biggest aspect of a language is the library. I do agree that testing for the ability to solve problem is hard and gets neglected.
- rb808 8y agoAs a 40+ yo dev I want to agree with you but: >I've forgotten more frameworks than most coders will ever learn. Forgotten knowledge is worthless > I mostly don't care about programming languages, they're roughly the same and I can learn a new one in a couple weeks. I used to think that, its possibly true, but the platform that comes with the language certainly can't be learnt in a couple of weeks so I dont think this is true as it used to be. > I know technologies like Rails and SQL, but I don't play with the new toys as much as I used to, becuase lately I would rather solve a new problem or build a new tool than learn a new tool. This is a real problem for you if companies are hiring for people that know the new toys. > It's another world, and a lot of companies just don't bother...Thankfully I have no desire to work at any of those companies...There are plenty of companies trying to hire people to solve actual problems That's great now, but in the future the job market might not be so tight and then people with your attitude might find it really tough.
- cloverich 8y agoI think the point on forgotten frame works / new tech is -- nothing is _really_ new. Knowing ten web frameworks inside out isn't really 10x more than knowing one, because they have a tremendous amount of overlap. Relatedly, I've forgotten how a couple frameworks work because there's nothing interesting left behind, that isn't present in the newer ones. I'm quite sure if I had to go pick one back up, it would look very familiar. perhaps I know more about it now than I did when I "knew" it.
- rb808 8y agoGreat, but that means that for the "knowing frameworks" box, there is no advantage in hiring an experience dev over a younger one.
- deleted 8y ago[deleted]
- mcguire 8y agoThe general thrust of this thread is that there is no advantage in hiring an experienced developer over a younger one. You might be getting a mid-six-figure salary in your first job, but you probably ought to be socking it away because you can't expect raises.
- colllectorof 8y agoIf at 37 you consider yourself "older programmer", the industry is fucked. The minimum social security retirement age in US is 62. That is older programmer. Full retirement age is 66.
- gedy 8y ago"Why is that old guy still working? Must not have worked hard enough like I do! I'll be retired at 45 from my stock options and 401k" e.g. extrapolating from last 5-10 years of stock returns, which is all they've known...