8 ms·
This makes me laugh exactly because the number of jobs I've seen advertised after I've left them to do other things because they weren't challenging enough, onl
by balabaster 5y ago
This makes me laugh exactly because the number of jobs I've seen advertised after I've left them to do other things because they weren't challenging enough, only to see that the prerequisites posted for the "new" job would've screened me out before I even had the chance to interview and are far beyond what is necessary to do the job well.
99% of the jobs that high quality developers could do that they're screened out of are because of poor concepts of what is needed to be successful.
If someone has decent problem solving and analytical skills, can understand the problem domain and has the capacity to learn a new language/framework/construct in a short period of time (which frankly most of us can, and do with frightening regularity), unless you have something miraculously niche and technical, they're capable of doing the job. All you need to worry about is are they a competent developer and whether they'll be a good personality fit for the team.
They say we rise to the level of our incompetence, but most developers never really grow out of solving problems and only get better with time and experience.
Most degrees and professional certifications are meaningless to people who only care about the knowledge - there's no point in chasing paper that's out of date the minute the course is designed. We don't want that knowledge, it's old. We want current information which the courses and qualifications haven't been designed for yet.
- l33t2328 5y ago> Most degrees and professional certifications are meaningless to people who only care about the knowledge - there's no point in chasing paper that's out of date the minute the course is designed. This is a stretch. Most of what you learn in a CS curriculum is extremely useful. Things like algorithms, computer organization, object oriented programming, operating systems, networking, mathematical approaches, etc. aren’t going anywhere anytime soon.
- balabaster 5y agoFair. Perhaps I was over-zealous to include degrees in my statement.
- throwawayboise 5y agoYes and no. I have never implemented so much as a linked list never mind any more complicated data structures at $JOB. These things are provided by standard libraries. But knowing what they are, and when to use them, is useful. As is the general background knowledge when it comes to understanding something new (since everything devolves to machine language eventually).
- Sebb767 5y ago> Yes and no. I have never implemented so much as a linked list never mind any more complicated data structures at $JOB. And I never divided four digit numbers per hand, yet I don't think we should drop the requirement for primary school math. I fully agree with your second point, but I think the critic is getting too hung up on the vehicle used for teaching these concepts. You don't need to implement a linked list per hand in your day job, but you need to grasp the concept and have an easy task to learn to program on.
- reader_mode 5y agoSo when should you use linked lists ? My undergrad course didn't say shit about losing cache locality + indirection overhead, allocation cost per entry, etc. You will almost always be better off using whatever the default List implementation is in your standard library, and if performance really matters you will be better off using some optimized tree or whatever fits your use case and measure. Languages these days are not C, you are provided with really good defaults, reading the usage docs and ignoring the internals will yield better results than basic theory without testing your assumptions. You really need to know what you are doing to beat the standard library offerings - and knowing what is available > having a grasp of the underpinnings. Knowing about algorithms can be useful, recognizing your data structure is a cyclical graph or a DAG, implications of it, knowing how topological sort works, etc. is useful - but even there - if you are good with search you can find the solution to your problem, you will just take more time.
- feoren 5y agoIt's extremely easy to "beat" the standard library offerings by incorporating what's unique and specific to your situation. They have to be super generic to be in a standard library. Of course, don't re-implement a completely generic list data structure. But implementing a particular kind of dictionary that takes advantage of assumptions that are true for your use case (but not true in general) and is custom tailored to your environment is extremely valuable.
- Clubber 5y agoMy step son is getting into programming and he told me about a console app he wrote where he stored the data in a flat file. I suggested he look into storing it in json format. For me, the biggest benefit of a degree is more to show you what you don't know in pretty broad strokes. It's up to you to investigate deeper either on the street or with a more specific curriculum. Broadening the possibilities of knowledge is pretty big. I've known of several otherwise great self-taught developers who didn't know much about database design because they just never really ran across it.
- makeitdouble 5y agoIt often resolves to “we want someone that is supposed to be 100% efficient from day one” When that assumption is explicitly discussed and dropped, the job postings can be backed to realistic levels of expectations and interviewers get more leeway on choosing profiles that could be interesting down the line instead of just playing Tetris with the listed qualifications.
- balabaster 5y agoNobody can be 100% efficient from day one, because even with all other things being equal, the new guy still has to learn all the idiosyncracies of your existing codebase (which is quite likely full of technical debt and poor decisions), your team, your process, your management style, your politics. Realistically, even the basic "we want someone that's 100% efficient from day one" is the most unreasonable expectation you can have as a hiring manager, and is usually the one spurring the "high quality candidate shortage" complaints.
- avgDev 5y agoIMO, if someone thinks you are going to get much work done the first week they are out of their minds, or their software is a trivial console app contained in handful of classes. I could probably jump into a new position and start cranking out code fast, but it would be different than any code in the existing code base, and could apply techniques not used by anyone on the team. This would result in an awful piece of code to maintain for the team. There are just so many different ways of writing code that a dev would probably need a few weeks to get comfortable with the code base. I speak openly about this during interviews. One interviewer from a fortune 1k company said I would be given about 6 months to get comfortable with the code base and start with smaller tasks. Another company said I would be building trivial things for a few weeks before touching the codebase. Unless it is a fresh project there is no such a thing as jumping in and cranking out code day 1.
- saagarjha 5y agoI've written code on day one at some positions. Usually it's something simple like a bugfix or refactor, but it is certainly working code. Of course, most of the time I spend doing this is figuring out how to work with the codebase and how to submit my changes.
- UncleOxidant 5y ago> If someone has decent problem solving and analytical skills, can understand the problem domain and has the capacity to learn a new language/framework/construct in a short period of time (which frankly most of us can, and do with frightening regularity), unless you have something miraculously niche and technical, they're capable of doing the job. Agreed. And this was how hiring was done up until about 15, 20 years ago. For example, if you knew C++ they figured you could pick up Java. Or if you knew Perl, you could be assumed to be able to pick up Ruby or Python. But in recent years that's not been the case - you mostly get screened out well prior to any human seeing your resume if you don't have all the right buzzwords. Hopefully the tightening job market with companies (supposedly) having trouble finding people will get us back to more sane hiring practices.
- kh_hk 5y agoI beg to differ on that. On my experience, both interviewing and being interviewed, capacity to learn and adapt to different languages and proven experience of having done that lifts the bar significally and accounts for most of the tecnical requirements, the rest being just practical knowledge or solid fundamentals. For sure there will be places on which the person weeding out resumes might miss that a competent programmer on most interpreted languages can jump between them and get up to speed pretty quick. Such places I would avoid anyway. At least on my echo chamber, I thought these were on the minority nowadays?
- 908B64B197 5y ago> Agreed. And this was how hiring was done up until about 15, 20 years ago. For example, if you knew C++ they figured you could pick up Java. Or if you knew Perl, you could be assumed to be able to pick up Ruby or Python. That's why FAANG still do whiteboard/algorithm questions. If implemented properly you get a good idea of who can code and solve problems, and who can't. Of course, there are false positive and false negatives, but the signal to noise ratio is pretty good.
- balabaster 5y agoThis is how I interview as well. Though I usually have a fairly good idea who I want based on my network before HR ever get involved.
- hinkley 5y agoThere’s no resume entry for polymath, and what you’re describing is a developer who is at least a mediocre polymath. Not all of us are.
- wolverine876 5y ago> most developers never really grow out of solving problems Do you see that as a maturation process? Is this about moving into management? > Most degrees and professional certifications are meaningless to people who only care about the knowledge - there's no point in chasing paper that's out of date the minute the course is designed. We don't want that knowledge, it's old. We want current information which the courses and qualifications haven't been designed for yet. A couple of additions or objections (depending on how some of those terms are understood): If you care only about knowledge, then you don't care if it's the latest thing or has any application (though I rarely encounter knowledge that has no application). It you care about job skills, and about knowledge only to the extent it serves those skills, that's a different matter. Also, you can learn about all those technologies, old and new and future ones too, by learning theory. Theory is the most applicable knowledge; it applies to and predicts everything - just like theories in physics predict how every object behaves, now and in the future, not just specific objects in specific contexts. Theory empowers you to solve novel problems and learn the novel tech. Generally, I think the best way to learn knowledge, including theory, are good degreed programs: They are designed by experts (how do you design a course of study for a subject you don't know?), you have experts guiding and coaching and mentoring you along the way, and you have access to assets from labs to libraries to peers.
- balabaster 5y agoSo I can only speak for myself personally. But my perspective is that all the stuff on the exams, I already learned long before the courses became current and have moved onto the next thing. So by the time the course arrives, I no longer care about the content it's delivering because I already did all that. By the time the course comes available for the things I'm learning now, I will already know it and have moved onto the next thing. So that's why those who care about the knowledge don't tend to care about the certificate - because it's a waste of time for us to go back and cram for an exam that's based on technology that has evolved (and thus the material is out of date/no longer accurate, flat out wrong).
- hnick 5y agoI think it is a filtering problem. Back then game companies would advertise on the manual. Local ads got posted. You heard about something and picked up a phone. In the online world, job ads are not hard to find. People apply to them en masse. You might as well just set a harsh limit so you only consider the best and don't waste your time. I guess the other approach is to just hire the first 'good enough' to walk in. But everyone wants value for money. It's the exact same as having a UAI/TER score to get into University here. Sometimes it indicates required intelligence, but often it's just a popularity cutoff. They can't accept everyone.