Hacker News new | ask | show | jobs
by adamrezich 3553 days ago
Cross-posting my comment from reddit:

I don't know about anyone else, but the problem I personally have with the crazy, messy JavaScript ecosystem is:

- I am a relatively experienced amateur programmer (with limited [nine months] professional experience)

- I can learn any new programming language, library, methodology, or whatever pretty easily

- I don't have any formal experience using anything of this newfangled stuff; like the author of the article, my frontend experience involves plain ol HTML/CSS/JS, with a little jQuery to make things easier

- nobody wants to hire me unless I have `n` years experience with newfangled language/framework/methodology `x`, `y`, and `z`

- I don't have a CS degree

Unless you're a massive operation like Facebook or something... just give me a week to look through your website's codebase, I'll figure out how you guys do things and I'll start being productive before you know it. If you're using stuff that I've never used before, I'll learn it.

I should be a more attractive hire than someone who has `n` years of experience only using `x`, `y`, or `z`, because the way I think about getting things done with computers isn't tied down to any one specific framework... but it seems that this isn't how hiring works in the industry right now... which is directly at odds with the rapidly-changing nature of web development!

As a result, I don't feel inclined to learn any of this new crap. What's the point? Apparently I should've learned it all `n` years ago, and it's too late now?

6 comments

It sounds like your gripe isn't with the knowledge base, but with the people doing the hiring. The issues there are very real in that, if you're dealing with a non-trivial codebase, there's no way to tell whether someone with very little real world experience is a competent programmer or just "faking" until you've got them working on it for a few weeks, and even then they may not be worth the time you put into training them until a couple of months down the line. And the people in HR for most organisations don't have a clue how to tell the difference.

So they make up a bunch of gatekeeper requirements that allow them to filter out anyone that doesn't fit the mold early in the process. They're still likely to find someone who can do the work this way even if it means throwing out a decent percentage of other candidates.

It's messed up, but it's kind of where the lack of technical knowledge in HR, and the need to avoid any potential lawsuits have left us.

This has been my exact experience. I just had a week of phone calls and emails about a very promising, well-paying frontend job opportunity. All of them were with no-technical-knowledge buzzwordy HR types who were very friendly and assured me that my resume and portfolio were great, and that I would be a good fit for the job. The whole thing ended with a phone call that went something like:

"Hi, so, your resume says you have nine months of experience?"

"Well yes, but I have countless personal projects under my belt, I designed and built game engines with teams of students..."

"Yes, but this position requires four years of professional experience."

"Well I still think I'd be a great fit for your company, I have experience with the specific technology stack you use, you can ask my previous employer..."

"Yes, but this position requires four years of experience, so, I'm sorry, but you don't meet the qualifications."

"Oh. Okay, thanks, bye."

Another story:

I got a call about a job I'd applied to. The guy on the phone said I looked like a promising candidate, but my resume didn't list the start and end dates of my previous job (nine months total), as I'd accidentally sent an old version of my resume. I emailed the correct version of my resume, and nearly immediately got an email back, saying, and I quote:

"Needed 1+Years of Experience so if you can change the duration time"

After a few minutes of consideration, I edited my resume to change the end date of my previous job to be one year from the start date, saved it as a separate copy, attached it, and sent it back. The guy immediately replied asking me to verify that the 50k starting salary would work for me. (Before anyone says 50k is too low, rent is due and I'm desperate.) This was just last week and I haven't heard back since but this is the most promising opportunity I've been able to find after months of searching.

---

The thing is, I don't even want to do frontend web development. I want to work in game development, but apparently to get a start doing that professionally, I need professional programming experience on my resume to look good because those positions are so competitive. Okay, fine, I can do web development, front- or backend, I thought. That'll be great for padding out my resume, and, y'know, paying rent. But it turns out that landing one of these jobs is also really difficult!

What frustrates me about all of this is not so much my own position, but about the future of the industry. As time goes on, I think we're going to see more and more people take the path I took of learning stuff on their own instead of at college. Formal CS education is far from useless, but if this stuff's all available for free online, people are going to download it, play around with it, and learn how to use it... it just seems crazy to me that companies are hiring just-out-of-college CS graduates over people who have made a ton of stuff on their own over the years.

Two things:

All of them were with no-technical-knowledge buzzwordy HR types who were very friendly and assured me that my resume and portfolio were great

I don't inherently agree that this is how it should be. I do understand that businesses want to minimize risks (don't hire bad employees for 6 months) while saving time (don't interview them in the first place). One of the easiest ways to achieve the latter is by having minimum requirements.

The rebuttal to that is always having a good interview process that measures the candidate on a personal level while also getting a feel for their technical prowess. This is another problem. Some people think all-day interviews are perfect for this. Others want to show up for an hour or two, white board something relevant, and call it a day. Some want take home project. Others demand that potential employers pay them if they're so keen on giving a take home project.

I don't think there is a silver bullet. I think there are objectively better ways than other when evaluating talent such as being flexible. For example, a new graduate will almost never have 2 years of professional experience. A new graduate may have an impressive GitHub profile filled with completed, demo-able projects alongside contributions to other people's projects. While not a direct substitute, this is a damn good indicator.

No one can seem to agree on the entire process though, so we're stuck with HR Henry and his checklist.

(Before anyone says 50k is too low, rent is due and I'm desperate.)

Depending on your location, $50k can be plenty, Where I live, $50k is great salary for a single person. Also, pay isn't the only thing that makes a job worthwhile. My starting salary was competitive, but definitely at the lower end. The work/life balance, however, came slightly before salary.

Speaking as someone who has been the one hiring devs for about 8 years now, I think you need to take a bit of control of the hiring / interview process, because you're not going to make many inroads if you go by their playbook. Companies are getting wary of front end developers without much professional experience since there tends to be a pretty massive talent differential, and no real easy way to judge who's capable.

Find a way to speak directly to someone in engineering - preferably someone who is doing the hiring. If you can meet someone in person at a meetup that's best, but e-mail works otherwise. Offer to do a project for them to demonstrate your skills. Almost every company is going to have something that's not on the critical path that they could use help with. You should get paid for this - try to figure out what freelancers make in your market and price within it, but on the low end (don't try to undercut the entire market).

Hi! Person who hires other people here. I too am self-taught, so I'm sympathetic. But these two things in combination scare me:

> [nine months] professional experience

> just give me a week to look through your website's codebase, I'll figure out how you guys do things and I'll start being productive before you know it.

I get why you think you can be productive. But a person with 9 months experience has no experience with long-term maintainability. Your definition of productive and mine are likely very different. And that you don't know that there's a difference means I can't trust you to write production code. You're in the "hazard" stage of expertise:

http://blog.gardeviance.org/2008/04/three-stages-of-expertis...

Novice programmers are great, and I've successfully hired them in the past. But that requires a context where they can work closely with experts who help them improve while keeping them away from doing things that feel productive but are long-term harmful. Left unsupervised, they can, with the best of intentions, be fountains of technical debt.

> the way I think about getting things done with computers isn't tied down to any one specific framework

This is a dangerous way to think. In software, everybody is bright. Everybody is a quick learner. If your operating theory is that you're just way smarter than those fools who have spent time learning something more deeply, you're going to keep yourself from advancing in your chosen work. To me, you come across like this:

https://xkcd.com/793/

> Apparently I should've learned it all `n` years ago, and it's too late now?

Find yourself a context where you can spend n years and dig in. Go make things. Go maintain things. Go find the edges of your knowledge and develop a little humility. Because without it, you're going to have a very hard time successfully asking people to give you a job where there going to have to give you a lot of help.

Nine months professional experience, over a decade of making websites, web apps, games, and game engines, in a wide variety of languages, frameworks, etc.... but all at an "amateur" level, which is not what hiring departments are looking for right now. I've been making websites since HTML4. In high school (graduated '09), I had a thumbdrive with Portable Notepad++, Firefox, and XAMPP, and I'd work on stuff in the library between classes and during lunch. I've been almost always working on at least one personal project at a time for the past decade, and while none of them are groundbreakingly impressive, my portfolio shows that I know what I'm doing... but that doesn't matter to hiring departments, apparently, because it's not "professional experience".
You seem to skate past the substance of what I said, which is unfortunate.

Professional experience matters. Plenty of people are amateur cooks, but that doesn't mean they can step into a restaurant and do well. My brother does furniture-making and carpentry for a living, and it's the same thing there. I imagine it's true for most professions. That you can't see a difference does not mean there is no difference.

If you really think you can handle the work, then I'd suggest you apply at places without "hiring departments". Find small companies, where the person you first deal with is the hiring manager. The more people involved in deciding to make an exception, the less likely it is to happen. But you'll have a much larger chance of getting that exception made if you can see yourself through their eyes, which is as a person who's probably going to need a lot of help.

I've been in your position. I know you're frustrated, but please read the parent post objectively. It is a nonjudging and kind but very fair viewpoint. Humility will help you.
A thousand times this. When I started at my first professional gig, I had to learn their language (Perl) from scratch. So I sat down for two solid days and dug through perldoc until I knew my way around. Two months in, I'm explaining the subtleties of Perl's syntax and behavior to senior developers who've been coding in Perl for 5+ years.
1. Rule out any company that says they want 10 years of X. Especially if X hasn't been around 10 years. These companies are looking for such a narrow set of individuals it isn't worth your time. Or, the company doesn't understand technology and you'll be pulling your hair out (assuming you have any; it's cool if you don't) in no time.

2. Understand that rule 1 rules out 99% of tech companies.

3. (And I suck at this) Network. Network. Network. I truly wish I was better at this. I'm currently doing C#/Java/C++ (yes, it's that kind of project. It's been fun, but my interests are changing.) and want to transition to Python full time. I live in a mid size but rather secluded city with an absolute dearth of tech companies, so networking is extremely difficult here.

Same boat as you but I do have a CS degree.

I have almost 2 years of professional experience but technically it's like '6 months 4 times' considering they were internships/contractual employment.

I've done projects with several frameworks and libraries on my own but not professionally. Regardless, recruiters/HR will tell me they're looking for people with "more experience" without being specific even though they're hiring for a junior level position.

In reality it seems more like they want to hire a senior-level developer and pay them at a junior-level rate.

I've actually heard a headhunter say that an open position they're looking for people to fill would like someone who knows and has worked with Polymer for 1-2 years. smh

We are not currently hiring, but we do 100% of our hiring based on our personal interactions. We are a Rails shop, and rarely if ever do our developers know Rails coming in. In fact, one of my best hires came straight out of high school.

I agree that the HR path is ridiculous. We can go another route because we are small. I don't know how you would balance the needs of large-scale hiring with the intricacies of tech at a big company.