When I look back it seems I'm experienced at hearing other peoples software requirements and implementing them.
From university to the workplace, I seem to be very good since those who receive the end result always benefit.
Done it so many times, for others and for my own ideas.
But check this out, occasionally in a dry period, when I feel I should find a job and get an interview.
I get asked a puzzle, unrelated to anything, no benefit to the interviewer or their company, in a language that requires a thicker than the bible manual, to program in some corner case that I would never find myself in and to someone to see the solution in the future to also feel the urge to puke.
And don't even get me started on the latest frameworks buzzword bingo crap.
You know, the tipping point was once when I got a rejection email where the top guy said I wasn't even good at a particular language, one which I'd programmed several applications for some years.
Some guy, who last "coded" by "clicking" on a button which generated a TODO list single page web fucking app.
Fuck all of you because we do what you dream of wanting to do that you'll never be able to do, not because you are running out of time, it's because you just don't have the chops.
You really should be doing something else with your life.
Don't get me started on the framework buzzword bullshit. I'm so sick of developers that launch into 50 tool stacks just to tick the boxes. Whether it's resume driven development or just plain ignorance, it seems to be pervasive.
I hate that every other interaction I have with the developer community is suggesting that a newbie back up a few steps and understand the problem they're trying to solve before introducing a solution, or worse yet, suggesting that the person trying to help them shut the fuck up and stop recommending things this beginner has no business using. The mindset is literally everywhere. It's like I'm surrounded by a cult of redux middleware worshippers that is trying to drain my will to live before they hand me a cup of cyanide.
I'm interviewing candidates for front-end roles at the moment and every other one is someone that has launched into a huge React project with barely any basic understanding of Javascript or web development. Half the candidates have every buzzword under the sun in their resume, and a GitHub full of little React projects with all the dependencies checked off nicely, then you get them into an interview and half of them can't name a single HTTP method, while the other half have done 5+ years of jQuery, and yet couldn't tell a closure from a prototype.
One of my first questions is always to ask them what front-end tools they are familiar with, and then follow up with "what problem does that tool solve?". 90% of the interviews are pretty much donezo by the time that question is answered (or more often not), and it feels like the rest of the time is wasted just running out the string.
Since most of the people in this thread are candidates rather than interviewers, if anyone has any suggestions about how to make the interviews more inviting and find out quicker and easier whether someone is the right fit, please let me know! I feel like I'm strugglinga bit.
I will try to offer some empathy on the other side. I have no CS background, just changed careers and I am now a junior web dev. I spent around 3 months only studying css, html and js. Then went on to build projects using React. Most of them even using create-react-app. Why would I do that if I lack a lot of very basic and fundamental CS knowledge? It was a pragmatic decision to acquire basic skills to get a job. Now I have a job where I use Ember. Now I have pragmatic reasons to acquire skills in Ember and other skills like improve my code to readability and maintainability, understand architectural decisions of the product, learn design patterns, proper use of git, doing code reviews of others. I still have important gaps in my CS education though.
I'm self-aware that there are gaps and that these gaps will cost me in the future. But, right now, I will deliver more value to the company by filling other gaps. Not only to help my company but myself, giving me better prospects in the future.
I am now investing more time in learning javascript more deeply. I bought a good book to learn more about algorithm designs. I do have trouble finding a good resource on fundamental CS concepts for someone in my position. I don't believe lengthy academic books and MOOCs have a good ratio of important knowledge by time invested.
I have this impression that I am not the right fit. If you wanted to screen me out there is an easy way to do that before the day: ask for a CS degree with good grades. I think it will be a mistake, but maybe is the right thing for you.
The fact that you're learning about design patterns, architecture, and even (ugh, ok they still have their value, but hardly) algorithms, means that you'll be a great asset to a company.
Don't undervalue yourself. Many devs I've encountered without any formal training have no interest in learning design patterns, good architecture, and (ugh) algorithms...but not only do you know that the value is in learning these concepts, you are actually taking the next step and learning them. If you steer the interview in a direction of design patterns and algorithms, and showcase that you have knowledge on it, you'll stand out.
Asking for a C# developer with more than a few years experience. They can't do a simple Console app to read the contents of a file and create a collection of objects from the read data. They don't understand async / await, they don't udnerstand (or in some cases have never heard of) dependency injection, inversion of control, unit testing, mocking etc. Some from the tests they return don't understand even basic things like encapsulation.
That's not even getting into web stuff.
The console app they can do in their own time as well, so it's not even like we are asking them to code in front of us at the interview.
This is people who are currently working as developers as well, not graduates. People who claim to have experience in the field. It's mind boggling how they got employed at all.
The company I worked for had an awful recruitment arrangement resulting in poor candidates. Company committed long term with a service provider, who at some point could simply afford to stop caring about quality or competence or even any number of available candidates. They were basically farting out once a week a CV of a person with embedded programming experience for a web development opening. It didn't help that we were trying to find short term subcontractors on below market rates (it's EU so the rates would be actually funny for someone from US or even London). Not fully aware of the whole process I was thinking "if this is what the candidate market has to offer, I could find a job within 3 days".
Well it happened that couple of months later I indeed ended up looking for a job... and... YIKES!
Comments
I'll raise my hand.
When I look back it seems I'm experienced at hearing other peoples software requirements and implementing them.
From university to the workplace, I seem to be very good since those who receive the end result always benefit.
Done it so many times, for others and for my own ideas.
But check this out, occasionally in a dry period, when I feel I should find a job and get an interview.
I get asked a puzzle, unrelated to anything, no benefit to the interviewer or their company, in a language that requires a thicker than the bible manual, to program in some corner case that I would never find myself in and to someone to see the solution in the future to also feel the urge to puke.
And don't even get me started on the latest frameworks buzzword bingo crap.
You know, the tipping point was once when I got a rejection email where the top guy said I wasn't even good at a particular language, one which I'd programmed several applications for some years.
Some guy, who last "coded" by "clicking" on a button which generated a TODO list single page web fucking app.
Fuck all of you because we do what you dream of wanting to do that you'll never be able to do, not because you are running out of time, it's because you just don't have the chops.
You really should be doing something else with your life.
Don't get me started on the framework buzzword bullshit. I'm so sick of developers that launch into 50 tool stacks just to tick the boxes. Whether it's resume driven development or just plain ignorance, it seems to be pervasive.
I hate that every other interaction I have with the developer community is suggesting that a newbie back up a few steps and understand the problem they're trying to solve before introducing a solution, or worse yet, suggesting that the person trying to help them shut the fuck up and stop recommending things this beginner has no business using. The mindset is literally everywhere. It's like I'm surrounded by a cult of redux middleware worshippers that is trying to drain my will to live before they hand me a cup of cyanide.
I'm interviewing candidates for front-end roles at the moment and every other one is someone that has launched into a huge React project with barely any basic understanding of Javascript or web development. Half the candidates have every buzzword under the sun in their resume, and a GitHub full of little React projects with all the dependencies checked off nicely, then you get them into an interview and half of them can't name a single HTTP method, while the other half have done 5+ years of jQuery, and yet couldn't tell a closure from a prototype.
One of my first questions is always to ask them what front-end tools they are familiar with, and then follow up with "what problem does that tool solve?". 90% of the interviews are pretty much donezo by the time that question is answered (or more often not), and it feels like the rest of the time is wasted just running out the string.
Since most of the people in this thread are candidates rather than interviewers, if anyone has any suggestions about how to make the interviews more inviting and find out quicker and easier whether someone is the right fit, please let me know! I feel like I'm strugglinga bit.
I will try to offer some empathy on the other side. I have no CS background, just changed careers and I am now a junior web dev. I spent around 3 months only studying css, html and js. Then went on to build projects using React. Most of them even using create-react-app. Why would I do that if I lack a lot of very basic and fundamental CS knowledge? It was a pragmatic decision to acquire basic skills to get a job. Now I have a job where I use Ember. Now I have pragmatic reasons to acquire skills in Ember and other skills like improve my code to readability and maintainability, understand architectural decisions of the product, learn design patterns, proper use of git, doing code reviews of others. I still have important gaps in my CS education though.
I'm self-aware that there are gaps and that these gaps will cost me in the future. But, right now, I will deliver more value to the company by filling other gaps. Not only to help my company but myself, giving me better prospects in the future.
I am now investing more time in learning javascript more deeply. I bought a good book to learn more about algorithm designs. I do have trouble finding a good resource on fundamental CS concepts for someone in my position. I don't believe lengthy academic books and MOOCs have a good ratio of important knowledge by time invested.
I have this impression that I am not the right fit. If you wanted to screen me out there is an easy way to do that before the day: ask for a CS degree with good grades. I think it will be a mistake, but maybe is the right thing for you.
The fact that you're learning about design patterns, architecture, and even (ugh, ok they still have their value, but hardly) algorithms, means that you'll be a great asset to a company.
Don't undervalue yourself. Many devs I've encountered without any formal training have no interest in learning design patterns, good architecture, and (ugh) algorithms...but not only do you know that the value is in learning these concepts, you are actually taking the next step and learning them. If you steer the interview in a direction of design patterns and algorithms, and showcase that you have knowledge on it, you'll stand out.
We are also interviewing at the minute and I can't believe how low the bar is for people to claim they are software developers.
I'm sure these learn to be a web developer in 8 weeks courses don't help, but even people with years of experience seem to be absolutely hopeless.
Maybe it's you, in asking irrelevant questions for their experience and/or the role. As touched on by OP.
Asking for a C# developer with more than a few years experience. They can't do a simple Console app to read the contents of a file and create a collection of objects from the read data. They don't understand async / await, they don't udnerstand (or in some cases have never heard of) dependency injection, inversion of control, unit testing, mocking etc. Some from the tests they return don't understand even basic things like encapsulation.
That's not even getting into web stuff.
The console app they can do in their own time as well, so it's not even like we are asking them to code in front of us at the interview.
This is people who are currently working as developers as well, not graduates. People who claim to have experience in the field. It's mind boggling how they got employed at all.
Sounds like you are not offering enough or have a poor recruitment consultant
The company I worked for had an awful recruitment arrangement resulting in poor candidates. Company committed long term with a service provider, who at some point could simply afford to stop caring about quality or competence or even any number of available candidates. They were basically farting out once a week a CV of a person with embedded programming experience for a web development opening. It didn't help that we were trying to find short term subcontractors on below market rates (it's EU so the rates would be actually funny for someone from US or even London). Not fully aware of the whole process I was thinking "if this is what the candidate market has to offer, I could find a job within 3 days".
Well it happened that couple of months later I indeed ended up looking for a job... and... YIKES!