Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: How does a hobby programmer get hired?
198 points by neontomo on Jan 1, 2023 | hide | past | favorite | 252 comments
I've been tinkering with code since a young age and I like thinking my way through problems and understanding the way computers work, but I've never had a programming job. For the longest time, I went in other directions even though I enjoy it a lot, because I was told that I shouldn't spend my life in front of a computer. It turns out that I do that anyway, just not being paid for it.

Without any programming jobs on my CV, what is a good way to penetrate into the market? I've had job interviews where I did a bunch of coding challenges (and passed), but didn't get accepted because of lack of experience. I considered that maybe I need to do a bootcamp as an initial way to back my skills up.



Late to the party, but maybe I can help. I've helped in the hiring of many developers.

(grain of salt, just my opinion, etc...)

* Don't do bootcamps. It's a red flag for me. This can be said for any 100% online college. (again, I'm just being honest). Community colleges are fine.

* You having a Github that you've committed stuff to often-ish will most interest me. I don't give a crud if you contribute to open source. But just the fact that you're coding is what I care about. Yes, I will snoop around and see how good it is. No, I won't care if your code sucks. (side note: if your code is actually good, than that's better than a four-year degree at a college I've heard of imo)

* Don't get discouraged. I remember I searched for a programming job for two years before I got hired. The 70-ish times I was told "no" didn't matter after the one "yes".

* Be honest about where you are at (not programming professionally). I've always been open to hiring people outside the industry for entry-level programming jobs.

* Coding challenges are beyond useless to me. I will concede that they are valuable to some.

Hope that helped some. 80% of the advice given here is helpful as well.

Good luck. Please don't get discouraged <3.


Ah crap, I messed up here, and I'm quite sorry.

I was wrong when I said that bootcamps were red flags.

When I stated "Don't do bootcamps. It's a red flag for me"... I should have said "Don't have bootcamps be nearly your only source of experience." Like, if a person rolls up with either a super-expensive boot camp, or a side project that they've kept up with for two years... It's no contest. I certainly won't be mad at you taking the bootcamp. The criticism in the replies is valid.

Again, sorry. I'll continue to work on that whole "maybe you should type what you mean." thing.

As an aside: I forgot to mention how much I care about attitude. I'll take someone with two years of experience and a genuine hunger to learn over a guy with four years' experience who has an attitude. /shrug.


> I certainly won't be mad at you taking the bootcamp.

Why would anyone expect you to be mad? Weird.


it's an American turn of phrase, possibly related to the Tupac song "I Aint Mad At Cha." Casual sarcasm.

See also: "I wouldn't kick her out of bed for eating crackers."


I've been training juniors and taking part in technical interviews for a few years now, and I can say that bootcamp hires were generally the best performant.

Particularly those in late twenties/early thirties who were coming from an entirely different field - we had tons of applications from former architects and biologists for some reason - tend to outshine younger software engineers fresh out of school in just a few months.

I could understand this opinion to be controversial, but considering bootcamps a red flag vs just a hobbyist programmer with no education? Sounds ridiculous to me.


Bootcamps are a form of training designed for you to pass a job interview and use a scripting language to solve problems within a very well-defined problem space.

Their deliverables require supervision because they don't have the technical depth to identify common non-functional requirements.

Occasionally, troubleshooting the technologies you use is necessary, but this scenario is also beyond bootcamp training.

But if you work in a startup that's making a functional prototype for some web application, where things don't really have to truly work or scale, you can waive the supervision and they may even be "the best performant".

I've worked with bootcamp graduates and I've seen scenarios where they are unqualified to contribute.

But to do them some justice, some universities are worse than bootcamps. And, these days, there's an abundance of material you can learn from... but it takes time, initiative and sometimes, mentoring to know what to prioritize.


I think there's a difference between a professional using a boot camp to switch fields, and someone using a boot camp to avoid going to college or something


I think it’s because boot camp graduates often have no experience prior to the boot camp, so they’ll often only have 3 months coding experience total. Whereas most other applicants will have much more experience than that even if they have no professional experience.


But in those few months, they were often trained intensively on exactly the tech stack you're looking for, and they built some things, in a team, that look a lot like what's actually done day to day in many businesses. In an up to date way. That helps!

We have only one boot camp graduate, who came from a completely different career. He's been productive from day 1, has carefully listened to all advice he's got since and is always working on figuring out better ways to do things, and he's just very good after two years.


There are knowledge holes a mile wide with bootcamp curriculums though. The programs I’ve seen don’t teach:

- Information security

- Anything lower level than Python/Ruby

- Unix (streams, files, processes and threads, syscalls, etc)

- Debugging. (Except incedentally)

Not knowing these things can be fine in a feature factory workplace. But having an engineer on your team who has no idea about infosec is an active danger. “I make a sql query from this string builder” / “we save the passwords in this database table” / “the AWS credential is here in the javascript code in the repository” / etc.


I’d argue that if any of those reach production it’s never going to be the junior dev’s fault. Where’s the review process?

Stronger point even: it is beneficial to have a person capable of messing up that way so you can check that your quality control is working.


> I’d argue that if any of those reach production it’s never going to be the junior dev’s fault. Where’s the review process?

That's true, but issues getting into production isn't the things that might be problem. Junior devs requiring hours of review time for relatively simple tasks can also cause a lot of problems for an organisation, bringing productivity to a halt in extreme cases.


A tiny minority of places I've worked do code review for every commit. Or have careful enough processes that they would catch every mistake made by incompetent engineers.

Most companies simply trust their employees most of the time. Hardening a process against programmers you don't trust has a massive cost.


> A tiny minority of places I've worked do code review for every commit.

In the past three jobs I have had, over 13 years, all changes were code reviewed before merge. I don't know the industry's general stance on this, but I wanted to describe my experience here which is very different from yours.


Same here.


I have a CS degree from a top university and I didn’t learn any of the above in college (except for perhaps debugging), including an internship.

Actually 10 years later I’m a senior engineer at a FAANG (mobile specialty) and I still don’t know most of the things you listed. Except for debugging - I got that down!


And most college courses also don’t teach that.


Can you substantiate this? It's incredibly hard to believe that the majority of universities offering a programme in computer science would not have a class on operating systems or information security, or anything more abstract or concrete about those topics.


At least at my school, the CS degree was open ended. You take a handful of required corses (intro to programming, algorithms, operating systems) but aside from that, it was up to you to pick the classes which interested you. If you were interested in security, or databases or mobile app development, you could take those classes, but they weren't required.

The things I learned in college which were actually applicable to a software engineering job was:

* A basic ability to program

* Maybe some low level concepts about operating systems. But this is a big maybe, because my operating systems class was pretty early on and was long forgotten 3 years later when I went to apply for a real job.

I learned nothing about version control, the typical client-server model, html/css/javascript, REST, servers, databases, doing a pull request, teamwork, etc. I think those classes may have been available, but I never took them and graduated just fine.

I am not convinced this 4 year CS degree was any more useful than a bootcamp, which teaches you the actual useful things you need to be a junior dev.

I think the difference between CS and a bootcamp is more of intent and followthrough. People often pick bootcamps because of promises of easy money, versus someone who does a 4 year CS degree is possibly more committed and won't give up as easily. But in terms of their actual preparation, I doubt one is better than the other.


The other difference is that one takes 4 years and the other 3 months. That’s 16 times longer, so if you spent only 5 hours a week working on or thinking about programming, then that would be an equivalent amount of time. Which is not mention that sometimes things take a while to sink in.


Most college courses don't but most curriculums have some sort of security class. When we were learning assembly we used gdb to exploit faults in a C program (and we didn't get the source code so we had to read the assembly). There was also one for finding exploits exposed for a website that has a DB in the backend.

Nothing prevents bootcamps from having those classes though.


> Nothing prevents bootcamps from having those classes though.

Time.

They don't have time for things like that. If they took the time to teach low level programming, data structures and algorithms, security, operating systems, networking and so on, they'd need to teach students for 3 years instead of 3 months. And then you may as well get a degree.

The sales pitch for bootcamps is that they can teach you enough to get started in a career in CS in 12 weeks. Then you can get a job and learn the rest while working. This breaks down when you don't learn things that you'll need. And it breaks down around areas you'll probably never pick up on the job, like (for me) learning how page fault handlers work in the kernel by implementing my own. Or how you can use gdb to reverse engineer C programs.

There's only so much you can learn in 12 weeks. And there's only so much your job will take the time to teach you.


And none of that has anything to do with

> can be fine in a feature factory workplace. But having an engineer on your team who has no idea about infosec is an active danger. “I make a sql query from this string builder” / “we save the passwords in this database table” / “the AWS credential is here in the javascript code in the repository” / etc.


> he's just very good after two years

Right, but a self-taught developer might well have years of non-commercial experience and be good in two months or even from the get-go.


The word "might" is doing a lot of work in that assertion.


Most likely the difference in performance is due to differences in expectations. The two greatest common failures I see repeated among software developers is:

1) The inability to consider diverse perspectives

2) The inability to differentiate writing instructions from building something larger

For example many developers cannot imagine the career requirements associated with other careers. That could be due to lack of experience diversity, poor empathy, or weak imagination.

Likewise, many developers cannot write original software. The very idea is frequently both horrifying and disgusting. The alternative is just a little help from a tool or framework, because they write instructions not applications. The interesting part of that is how people respond when confronted about it.


I am having a difficult time inferring your meaning for "writing instructions".


I have seen developers confused by the words writing instructions before, suggesting either they do not know what writing is, what instructions are, or that they cannot differentiate between writing an application and writing a few instructions.


Not OP, but I infer that "writing instructions" equates to a lot of basic scripting - change the colour of that button, show a calendar, trigger that animation, send data to the validation script and display an X or a tick depending. As differentiated from, or opposed to, writing complex applications that require thought, design and awareness of best practice.


I've been a hiring manager for a couple of years now, and have nearly 10 yrs professional dev experience in the industry.

Bootcamps are a red flag for you? What? Do you have any rationale for that? Makes zero sense to me. If someone has done a bootcamp, that's a big plus. Online college is neutral.

The rest I agree with.


I've hired from bootcamps multiple times, it's a great source of junior developers. It is however a show of the absolute minimum amount of skill a person could possibly have before you take them on as a developer.

If this person says that they've been coding for years, then that puts them at a way higher level than a recent bootcamp grad.

Instead of doing a bootcamp, spend a week or two building simple apps in whatever category you want to work in. If you want to be a web dev, a little node.js backend with a react frontend perhaps, or similar with Django or Rails.

Plonk it on your github, make sure you put on your resume that you're a junior that's been coding for years but never put anything in production, and you'll definitely be ahead of the bootcamp grads in my book.


That still doesn’t make bootcamps a red flag. Also, there are many self-taught programmers who complete a bootcamp just to gain confidence, make connections, etc.


I know someone who took a bootcamp after completing a college CS degree because he felt that the CS curriculum didn't actually give him enough practical programming experience. Some CS programs are terrible, so I'm not surprised he found the bootcamp to be a benefit.


I think it's a red flag when it's also attached to a certain kind of confidence that their bootcamp experience was on-par with years of experience or education. As in, the kind of attitude where that they feel that because they went through the exhausting bootcamp stage, everything next is just an application of what came from the bootcamp. It's something I've only seen with programmers from bootcamps.


Honestly, never encountered that. In my experience bootcampers are usually self-conscious about their background. Maybe they behave differently at small companies/startups (my experience is at a big tech co)?


That could be it. I work outside of "tech" these days at smaller orgs that naturally attract people with significantly different personal motivations to those in the tech world.


Agreed


Yea, this is weird. Bootcamps can be useful or useless (depending on a course, instructors and a person), but surely they don't do any harm?

Not everyone goes there to get technical skills, there are people going there for soft skills (practicing working on assignments, especially group assignments, etc.) and networking (at least some bootcamps advertise they have some relationship with recruiting agencies).


His red flag for bootcampers is a red flag for his managerial skills


Interesting. I’ve hired At least 100 developers in my career And have never seen coding challenges or boot camps as Red flags, rather I see them as someone going out and trying to learn and improve. On the contrary certain universities and employers certainly are( too much indoctrination(and ego in some cases) to undo). I know a number of boot camp graduates working in FANG level companies.

Coding challenges are very important, leetcode questions come up a lot in interviewing loops at most big companies and I think their use is expanding. As much as I hate LC, it’s still a good skill to have if wanting to become a software engineer.

I’ve never once looked at a candidates GitHub. There is no proof they wrote anything there. Plus I’ve usually worked in domains that always required tools and knowledge you most likely wouldn’t have anyways, no point in testing, so I hire based on if your a good person with the propensity to learn, grow, and do good things.


I don’t have hiring authority, but I was on a lot of technical interviews at my company for a while.

When people put their GH handle on their resume, I definitely checked it out. Sometimes I would even see if I could get it running on the first try. This has been an indicator of some of practices they have.

But it’s only ever a small piece of the picture. Some people push their code to github when they are very junior, and it doesn’t represent where their skills are currently at.

There is the issue of forgery, but I lump it in the same category as lying on a resume- the deception is equally as serious.


That’s what I see a lot too. Old code from when they were learning stuff, usually not reflective of their current levels. Most things you do for an employer can’t be shared, so that’s why I’ve always given it low credence.


I absolutely check out somebody's GitHub if they include it on their résumé. Usually I'll pick out some parts of the code during the interview and we'll discuss why they made certain decisions (both architectural and technical). I find that this weeds out forgeries relatively quickly.


Contributing to open source can be a valuable sign. It shows the candidate could navigate a large repository, communicate with the maintainers, and successfully merge something-- the ancillary soft skills needed when developing software in a team environment.


Sorry if I gave the wrong impression when I mentioned the OSS angle... My (hindsight: almost meaningless) point was that the whole "open / vs closed source ideology" doesn't matter. You could contribute to the Donald Trump C# repo for all I care... It's the contribution that matters to me.

If an "amateur" (or whatever) programmer can contribute to OSS... That means so much! You list the implications very well, so thank you.

I try to hire based on ability, not qualifications (welcome to Arbitrary Definitions 101?).

Boils down to: if you work at a gas station, and get a PR merged into the Linux Kernel... Yeahhhh... We can talk about that senior dev position ;) Is five weeks vacation okay with you?


Long time hobby programmer. I wasn't able to get into college programs for comp sci because I had transferred under a different major. I decided to do a bootcamp just to get connections

It ended up working pretty much exactly as planned. Made some lifelong friends, one of whom seems to know someone in every city in the country. She got me an interview and I'm now making more than many people I know who went through a full 4-year CS degree at my very expensive university


Agreed on the boot camp thing.

I’ve interviewed more than a few folks who got their start with boot camps but couldn’t answer some basic questions about web development.

Not knocking those who are motivated to go through a boot camp, just saying you can’t stop there. The content covered in a boot camp is just a single slice of a much larger pizza.


In my experience working as an interviewer I am far more interested in passionate side projects that you've worked on then a checkbox indicating you went to some fly-by-night six week code camp.


The counterpoints to all of this:

No brownie points help as you still have to pass the technical interview, 99% of the time. Places with technical interviews have recruiters. Recruiters are not technical and will not actually be gauging you on any of this, they just need to be able to find you. They look for githubs and linkedin profiles.

This person is someone avoiding coding challenges and has just as arbitrary metrics as a replacement.


Thank you, a very insightful comment. I've recently started adding to my Github, I will keep it up and be honest about my level of skill. I find it hard to know where my level is though, as I don't have much to compare it to other than seeing Stack Overflow answers and the stuff I find on Github.


Aw crud... I completely forgot about Stack Overflow @.@. I think because I'm off today, and don't have it opened in 17 background tabs...

A Stack Overflow profile is another wonderful thing on a resume. It demonstrates you're curious and/or helpful (among other things, I suppose).

A note on your Stack Overflow profile... I don't care if you don't have a lot (or any) points from answering questions. Points for asking is just as good (to me).

Tips on actually building up rep on the site (hope they're mildly useful; I had a hard time TBH):

* If you're legitimately stuck on a problem, and have actually tried finding the answer elsewhere, take 30 minutes (or whatever you can spare) to write up an intelligible question. You [usually] won't be downvoted for asking a question that is well put together and hasn't been asked before. Most of my rep comes from asking esoteric questions about Git or Visual Studio, rather than answering them.

* Don't be afraid to answer old questions with new answers. Just make sure it's actually useful, and not a copy/paste (or rewording) of what someone has already said.

* Don't feel bad if a reply is blindingly obvious in hindsight (most of mine have been). You're asking an extraordinarily large number of nerds for help.

Cheers.


>This can be said for any 100% online college.

I'm curious about this part. Do such students tend to underperform at interview?


They absolutely do. Without fail.


Fingers crossed I can make it happen this year! Thanks for your tips!


If you can pass employer coding challenges as easily as you say, the rest is low hanging fruit. It’s hard for me to imagine what the problem is on your end. I have the complete inverse problem.

Here’s what I would do:

Make up a name for your own personal company and get a matching domain. Make a basic website with your domain. Under the resume/CV entry for this make-believe-company write that you perform contract work and list projects you’ve done.Frame the entry to implicitly infer they were paid gigs. Don’t lie about them being personal projects but don’t say they were for free either! In the date entry for the job type a value that spans a time value of your choice, say 3 years.

Congrats you’ve now been writing code professionally for three years. With your new contracting company you have the scaffolding to get new paid projects to boot.

Welcome to professional programming.


Not sure this is an effective strategy (but who knows, it may work in some cases).

As a dev who's been on the hiring side, it's very easy to spot people who adopt this strategy (where devs even define themselves as CEOs/CTOs... of fictitious companies), and for me it's a yellow flag.

I personally prefer somebody who's very explicit (that is, looking for a junior position), but has considerable projects to showcase.


I followed a similar strategy and was hired as a senior. Granted I had ~8 years programming experience before being hired but none of it was as a salaried SWE.


I founded a community called #! 20 years ago where anyone can show up and start hacking on community projects and get some mentorship.

We sometimes put bounties on things we wish to see done for the community, but in general we are a non-profit digital hackerspace and do not pay ourselves or anyone else. We encourage anyone that contributes that is unemployed to put it on their resume and we are happy to be referrals for them.

Helped a ton of people get jobs in tech over the years.


Plug for exercism.org (I'm not affiliated). They have "learning paths" for a large number of different programming languages and volunteer experts that will do code reviews for you. The community is fantastic


This is a great idea! Would be curious how you got started. I’d love to start something similar in our local community.


Do you have a link to this organization?


https://hashbang.sh

Not much on the website. You will find us at the end of the rabbit hole.


For a junior it's not usually the coding challenges that are the biggest hurdle. It's getting an interview in the first place. Let alone having your resume looked at if you don't have prior industry experience


It's easy to see right through this little charade. If you label yourself as "CEO" or some related nonsense, any competent HM will throw your application directly into the garbage.


At least in the U.K. one-person contracting companies are reasonably common. Though I do find the GP suggestion weird.


I work as a contractor in a single-man company because in Poland it's incredibly beneficial to regular employment contract tax wise and 60-80% of polish developers do the same. I don't think I know even one person that would call himself CEO of his 'company', while working as a contractor. It would be... honestly, cringe.


I’m sure it is, but I don’t think it’s really relevant to my comment: working at a “one-person contracting company” makes you an “independent contractor” and absolutely NOT a “CEO”— not even a little close.


Oh, I think I misread your comment above, sorry.


Just say independent contractor


> It’s hard for me to imagine what the problem is on your end.

I imagine there are plenty candidates who can also pass the screens, but have a more substantial resume, among other things.


This doesn't suit me very well, but thank you for the suggestion.


this. i did the same :)


Job experience is a cheap proxy for the ability to get things done: if you've had multiple programming jobs, then you've probably been able to get things done and so hiring you is a safe choice. The absence of programming job experience doesn't mean you can't get things done, it just means you need to demonstrate to employers that you can get things done in other ways.

You don't need to do a bootcamp (and I'd argue it would not help at all) rather you need to ship something and then layer that with previous non-programming job experience to demonstrate that you can deliver things as part of a team. My greatest value (as a software engineer) is in the non-code value I bring to my team. Given the choice between 2 candidates, 1 with only experience as a software engineer, and 1 with experience of non-programming jobs, I'd be giving strong consideration to the person with a broader range of experience. Leverage your non-programming work experience to show that you can deliver value.

Regarding passing coding challenges: coding challenges are a very lazy method that companies use to filter out candidates. Passing a coding challenge is easy and doesn't mean much (they're also just as easy to fail) so don't focus on them at all. Your focus should be almost exclusively on interviews, and you should work towards giving the interviewer as much confidence as possible that you'll be a valuable member of their team.

Also, don't assume that levels (junior, mid, senior) correspond to the amount of programming job experience you have. If you can ship code yourself, you're already mid or senior level at most companies.


> Passing a coding challenge is easy

Something must be wrong with me then because I've been programming for decades in multiple areas productively, but successfully completing three leetcode medium/hard within 45 minutes while also talking through my thought process is not something I'd call easy.

> so don't focus on them at all

I'd suggest most people aren't going to get past the first level if they follow this advice.

As for the OP though, since they already passed coding challenges, the advice might be appropriate for them. I'm actually surprised that there was no offer on any of the interviews where "a bunch" of coding challenges were passed.

> If you can ship code yourself, you're already mid or senior level at most companies.

I'd go with this idea. Make it clear that you can ship. If you can complete coding challenges, then you should be able to make a small game. And a decent website. And a SaaS project. And so on. Get a portfolio going.


Regarding coding challenges, I meant to say that they're just as easy to pass as they are to fail, meaning you can fail one test and pass another and it mean nothing about your ability or value as a software engineer. I've failed some embarrassingly easy coding challenges and completed others in the best manner the hirer has ever seen. They're meaningless. You should not consider them as a reflection on your value or prospects.

If you're consistently failing coding challenges, you have a couple of options.

1. Find companies that don't use them. 2. Push back against any coding challenges and instead offer to complete a small project for them that you believe will represent the way you work in totality -- advocate for the pointlessness of coding challenges and encourage the company to change their practices. 3. Cheat (and in the unlikely situation in which you're caught, just say "I solve problems by googling, like any good software engineer") 4. The worst option is to waste your time grinding through leetcode etc. and become good at passing these dumb coding challenges. I can see why that option appeals to us (it feels like a video game, like we just need to practice more to level up) but it has nothing to do with software engineering.

The fact that no offers were received by the OP after passing coding challenges should show how little they're thought of by hirers: they're a lazy half-baked way to exclude a bunch of applicants and feel like it was helpful / fair / meritocratic. A company using coding challenges may as well just randomly select 20% of applicants to go through to interview.

Imagine you work at a company that uses coding challenges as part of their interview screen. Imagine they need to hire someone for your team. Imagine you worked with someone in a previous job who is an amazing software engineer and you know they would provide incredible value to your team. Imagine that person fails the coding challenge. Would that person get the job or not? In any rational company, you would just discard the coding challenge result, because you have a much stronger signal: one of your team is vouching for them. Any company willing to disregard a candidate because they failed a coding challenge is a company that is falling far short in their ability to hire the best people. For some companies, they don't care about hiring the best, they just need a bunch of people who can meet the bare minimum coding challenge requirement, but that's not a company worth working at.


> Regarding coding challenges, I meant to say that … They're meaningless.

They’re not meaningless. I worked as a technical screener for a recruiting company a few years ago. We interviewed thousands of people and had good data on this stuff. Programming challenges had high signal - doing well at ours was positively correlated with all the other parts of our quantitative assessment (knowledge, software anrchitecture, etc) and ultimately with getting hired.

There’s a reason they’re popular. It’s not all cargo culting.


If you design a hiring process that values a coding challenge then of course people who do well at the coding challenge will do well in the process.

The problem with coding challenges is that they do not require the same skills that software engineering requires. The value of a hired software engineer is measured over many years, you can’t possibly measure the success of a prospect based on whether or not they get hired.

You could hire a dozen people who grind leetcode all day to be one team, and hire 2 people who wouldn’t pass a coding challenge screener to be the other team, and the latter team could very plausibly out perform the former team over 12 months.

My experience is that a company that has designed a hiring process that does not require a coding challenge has a much higher quality team because they’re not relying on something as arbitrary as a coding challenge. Instead, they’re assessing candidates on what is actually relevant to the company.

They’re popular because they’re an easy way to cut down numbers, which makes them feel effective.


> Instead, they’re assessing candidates on what is actually relevant to the company.

Great question - what is relevant to the company? This is the #1 purpose of technical screening: To assess whether the candidate can do the job you're trying to hire them for. If the job involves programming, one of the things you need to assess is whether the person can program.

Telling me your job history, verbally solving hypothetical architecture problems, or pointing to a github repository with some code in it does not assess whether you can program. All of these things are good signals, but past experience can be misleading, and github activity is trivially easy to fake.

I've interviewed over 400 people. All of them passed an automated screening process before they talked to me. About half of the people I talked to failed to solve a simple 1st year programming problem, using their own computer and their favorite language in the half an hour we allotted to the task. Beginners I understand, but its shocking the number of people who have somehow worked in the industry for 20+ years yet only seem to be able to paw ineffectually at eclipse when you ask them to write fizzbuzz.

Any interview process that doesn't screen these people out is useless. Its harsh but, if you are one of these people I love you but I don't want to hire you.

Lots of people seem to hate programming challenges. But I've yet to hear a viable alternative. Whats yours?


> All of these things are good signals, but past experience can be misleading, and github activity is trivially easy to fake.

And coding challenges... have integrity? If someone goes to the effort to fake GitHub activity (whatever that means?) then why would they not also go to the effort to cheat in a coding challenge?

You can learn more from past experience, job history, hypothetical contextual problems and GitHub repositories than you can from a 45 minute fizzbuzz exercise. If you cannot assess a candidate by having a conversation with them then how on earth do you expect to be able to work with them? If you need a fizzbuzz exercise to trust that they actually know what they're talking about (which, again, proves absolutely nothing other than their ability to do fizzbuzz) how can you trust them in a collaborative setting?

The success of a screener cannot be measured by how many people in screens out, otherwise, the perfect screener for Software Engineering would be the ability to jump 20ft in the air from sitting down.

> its shocking the number of people who have somehow worked in the industry for 20+ years yet only seem to be able to paw ineffectually at eclipse when you ask them to write fizzbuzz.

So either there's an epidemic of people who can wax lyrical and provide meaningful insight into software engineering in a professional context but haven't actually worked in the industry... or you're churning through a dry checklist exercise of common interview questions that anyone who does the bare minimum preparation could answer.

The point I make (to technical and non-technical people alike) when I'm involved in hiring is that if you cannot qualify a software engineer in a conversation then you're asking the wrong questions. Most people interviewing software engineers have no idea how to effectively assess someone, and in my experience end up reading off some list of "software engineer interview questions". The reason supposed experts can pass these interviews and then fail at actually programming is that the interviews are terrible, and they're just being asked questions they've heard a dozen times before because someone half-assed the process and found them via a "software engineer interview questions" blog post.

If you need to know that someone can write code and you cannot confidently assess them in conversation, that's fine, not everyone has that ability, but the solution is to have them tackle a small contextual problem as a project (and pay them for the day of work) and not give them some arbitrary challenge that does not represent the real world.

Coding challenge fans make the mistake of believing that there needs to be some step where you have an applicant do a little dance to prove that they can write code, and so a coding challenge is a natural and necessary part of the interview process and that anybody objecting to coding challenges has to provide an alternative that will have an applicant do a little dance to prove that they can write code.

I've attended lots of interviews in my career, on both sides of the table, and I know exactly why coding challenges are used: because the rest of the process is so bad that someone who couldn't write code could easily get through. If you need coding challenges to prevent that, so be it, but it's because your interviews are bad.

The fact that there's an entire cottage industry of leetcode training and people who spend months "grinding leetcode" should be evidence enough that coding challenges test a candidates ability to... do coding challenges.

And, for the record, when I interview software engineers, I send them the questions I am going to ask in advance so they have time to research and prepare because that's what the real world is like... and I remain confident that even then I can still assess them effectively.


I think three in 45 mins is a bit hyperbole. Interviewing at Google I got 45 mins for each. At Amazon I got an hour for each. (Both mediums)


Not hyperbole. Direct quote and confirmation from FAANG recruiter. Maybe even after confirmation they were misinformed. Or maybe that was the suggested practice goal rather than what would actually happen in the interview.


Definitely hyperbole. I dabbled in competitive programming many years ago in high school. There's are only a handful of people I know that might be able to correctly complete 3 leetcode hard questions within one hour (they're the ones that end up in ICPC for example). There's no way the bar is actually that high, otherwise they wouldn't be able to recruit many thousands of people every year.


That recruiter shouldn't have said that as its probably caused lots of people who aren't inadequate to feel like they are.


Yes, most places it’ll be one question with follow ons related to it if you do well.


Reportedly Facebook asks two mediums in 45 minutes.


There is a difference between leetcode in fang and normal code challenges in normal companies

Leetcode has zero correlation to your practical working life, code challenges are what you would do in a normal day at work.

I never prepared for code challenges; if I had to prepare for leetcode I'd need a few months to have any hope.


Might it be fair to say that Leetcode as a proxy for much real world programming is like using heavy duty mental arithmetic to judge one's quality as a research mathematician?

I think doing some Leetcode type challenges are important at some point - they open a door in your brain around problem solving, but that door tends to stay open thus grinding those challenges to me offers diminishing returns - if people get more out of them and enjoy them that is great, but I think anyone who has had the thrill of solving hard problems to contribute to a high quality project with real application has a unenthusiastic feeling towards Leetcode type challenges and the hollow achievement from finishing them relative to real work.


leetcode is a horrible proxy for evaluating critical thinking ability - it's simply performative measure of "preparation" and the ability to regurgitate on-demand. at least that's my take after a few decades in the game.


If you know how to study and practice passing programming challenges are definitely significantly easier than programming for decades in multiple areas productively


I'd argue that part of "the ability to get things done" is exactly what OP is likely missing as a hobbyist: the ability to work with peers and superiors effectively. Doing a bootcamp is IMHO a good way to help on the ability to work with peers; while it's not the focus and you might get bored on the coding side of things, that's also good because it gives you time to think and act on how to collaborate more effectively (but only if the money you pay is something you can happily spend; don't go into trouble otherwise IMHO).

Then you also need to be able to get your boss, stakeholders, etc. tasks and needs into account to build something for them. As advice here, you could probably try freelancing to get more knowledge. As a hobby, now you get an idea and have self-learned how to implement it. With clients or bosses, you need to get them to explain the idea, and go back and forth enough to understand it well enough without becoming annoying/more trouble than it's worth. Some clients will delegate more and give you more creative freedom, some will delegate less, and both might have different abilities to express their thoughts. It's your task to make sure you understand it all and are able to execute on their idea, complementing it with your creativity when needed.

If you are in a good enough position, I'd start trying freelancing for family and friends small business at a discount, then try to get more and more real-ish clients. Once you have become good enough at freelancing that you are ready to find a job, you might even be able to convert some of those freelancer jobs into part or fulltime jobs, or at the very least showcase your work so far. I did that with a couple of internships and then a bit of freelancing.

Note: this advice won't get you in Google, but IMHO it's a good path to get in the industry.


> I'd argue that part of "the ability to get things done" is exactly what OP is likely missing as a hobbyist: the ability to work with peers and superiors effectively

Completely disagree: in plenty of other jobs people learn to get things done, and how to work with peers/bosses/reports. There is not much signal about the OPs soft skill level so you are making an assumption.

Interpersonal skills tend to be strongest in people that are always working with others (particularly clients and peers) rather than sitting in front of a computer. I would rather work with a cook/hairdresser/etc that became a software programmer than developers completely lacking in motivation or lacking interpersonal skills (I have had the distinct displeasure of working with plenty of low-EQ developers in my past).

There are specific interactions in software that are somewhat specialised. However the generalised interpersonal skills are what it is difficult to be good at, and the specialised software soft skills are learnable. (Edited: clarity)


Agreed, I've made an assumption and I explicitly added adjectives to note so, like "likely", "IMHO", etc. It's not a crazy assumption though, OP seems pretty lost career-wise, no previous dev experience, unable to land a job in a world hungry for devs, and I'd argue they don't seem to have enough people-skills to figure these questions without resorting to the internet, all of which suggest to be either a student or pretty early in their career. Could be mistaken of course, just saying assuming it's someone early in their career to base my answer on something tangible doesn't seem crazy.


It turns out your assumptions were somewhat hasty ;)

Neontomo wrote in comments (perhaps after you commented): “I'm 29 and started working at 18! I've worked outside the service industry too (recently at Apple) but yes that's my main experience.”, and “I did some work for a hotel and sped up their marketing and IT stuff quite a bit with automation”.

And georgyo wrote “There is a lot of comments, but no one took a moment to look at your profile and visit your website.” —— I always forget to do that! Even though I sometimes backtrawl all comments by a particular hn user (which might have been useful in this situation).

> without resorting to the internet

Asking for “expert” (?) advice on HN seems like a reasonably skilful approach, if used with other information sources (hard to know given we don’t know their context). It looked to me that they got heaps of really valuable feedback, validating their approach?

To me your second comment seems to repeat the mistake of the first. I hope I don’t come across to you as foolishly critical - I think we are all trying to help!


Thank you for making this comment. This thread was immensely useful to me, as it helped me get 2 interviews at really cool places where I hope I can be of use and learn something. Currently focusing on learning a very specific stack too, because of the comments here. Thanks to everyone who answered.


We may think coding challenges are easy - but after interviewing many "senior" engineers I've found that it's very helpful to have _some_ sort of coding as part of the interview. Algorithm and Data Structures based questions are not really popular, but they are at least a known quantity and can be studied for as a candidate.

I prefer more realistic scenario type coding interviews (ie implement a new feature, fix a buggy function, etc), but in any case it is impossible to actually verify what a candidate actually coded in their previous jobs.


I don't see how expecting candidates to know algorithms by heart or solving complex algorithms is useful.

Whenever I encounter that at work I research the topic extensively and learn or re-learn whatever it is I need.

I completely agree on testing on real tasks, given some candidates who perform terribly on those manage to squeeze by (even thanks to them passing leetcode bs interview without having real world experience).


I think I broadly agree for most programming jobs.

Algorithm problems are based on the philosophy that if you can implement a binary tree in 20 minutes, you’re smart enough to figure out just about anything else that comes up. They were popularised by Google, who hire with the goal of never hiring incompetent people even if it means missing out on some good people.

There’s two problems with algorithm problem interviews:

1. All the people who do great at this stuff can make $300k+ at cashed up companies. There are not many people like this who want to work for you.

2. There are plenty of people who will do a great job fixing issues and adding feature to your web app who don’t know what a B-Tree is. You probably still want to hire them.

So yeah, I agree generally with the advice. Most programming problems given in interviews should be relevant to the actual job on the ground.


I think raw DSA has its place but shouldn't be 100% LC style: too isolated and abstract.

You can probably learn more by wrapping it as a tiny 'project' note: not a take home -- just a DSA/LC style 'problem' diguised inside a git repo. I'd rather see 2Sum with a Cargo.toml in a repo, seeing them scaffold this in the lang of their choice, or within an existing codebase.

Justifying the full end-to-end "how is this going to be deployed and maintained", "how would you test X" is a bit more informative than "please repeat Djikstra's algorithm into the void".

Of course, being good @ LC in isolation is still a proxy for (math) intelligence perhaps unpopular - but in SWE being smart isn't enough, you gotta grift, ship or hustle your way through; thinking is mostly optional.


Yeah I agree 100%. A good technical interview should involve a lot of different parts. Some programming, some conversational.

Essentially, there's 100 different things you need to know to do your job well. The job of a good technical interview is to give you a (biased) sample from those 100 elements of knowledge. So, some practical programming work. Some conversational - "how is this going to be deployed and maintained". Etc.


imo falling back on those kinds of code challenges indicate a lack of imagination and creativity on the part of the hiring personnel. the industry has grown so much and there are so many new tools available, people work in so many new and creative ways, that there's no reason to use methods that predate when most candidates these days were born.


I don’t agree at all. If it’s so cut and dry for you, what other forms of assessment would you recommend instead?

I think technical assessment needs to assess lots of skills, but obviously one of the skills to test is how good someone is at programming.

There’s a few ways to do that - my personal favourite is to have a few hundred lines of buggy code with failing tests and ask the candidate to debug it for you. But from the data I’ve seen, asking someone to code something from scratch also provides a lot of signal even if you also get them to debug something. (If you were going to pick one test, coding from scratch is a better assessment for juniors and debugging is better to assess seniors).

But I think some form of practical programming assessment is necessary. You won’t learn if someone can program well by talking to them. And take home programming tasks are too easily gamed.

I do think you should make the programming challenge relevant to the job though. If you’re hiring a frontend dev, get them to make a webpage. A backend dev? Get them to make a set of rest endpoints wrapping a simple database. Algorithm challenges make sense for systems programming, or when you’re hiring generalists at FAANG and such.

(Source: I’ve interviewed over 400 people and worked with data scientists who looked at the per question results.)


I also feel that broad experience with general technical exposure is very valuable. But it can be hard to sell it to the management.

In my previous job I was highly respected, both technically and as a technology PM, but I still failed to sell many candidates without a good paper background.

"Her degree is in music? That's not great.", even though it was science focused, she had several acoustics and waveform analysis projects, strong math background and would fit well in our signal processing group.


mid to senior with no work experience seems quite unrealistic… work experience is not only a proxy for shipping code, but also for working well in a team, communicating well, being dependable and… so much more.


I agree that the coding challenges are quite different from real world application of code, they always catch me a bit off guard as the type of problem to be solved is so far from what I've solved before. It's fun though, and I enjoy the challenge even when I get a bit stuck. Thanks for your comment.


Being able to ship code yourself is a requirement for getting to junior level at most places. It's much easier than working on an existing codebase as part of a team


This was me years ago. The short answer is: contract work. Consulting or freelance. This is the way to get experience without having to struggle with finding a salaried position.

How do you find opportunities?

Go to LinkedIn, search for staffing companies, and message their recruiters letting them know you are available. They will ask for a resume. However, a contractors/consultant resume is different than a salaried resume. You are open to include projects you’ve worked on in detail without them being part of a “job”.

Do you have a portfolio? If not, a small simple one works.

Bootcamps won’t help.

Feel free to email me. Happy to support you through the process.


Genuine question: how is he expected to contract/consult/freelance as a hobbyist with 0 YOE? Outside of race to the bottom Fiver gigs that you probably don't want a lot of good contract work is more "getting shit done" than salary roles; which usually requires selling yourself with a track record/network.

Personally I'd just ship some crapware on the app store of your choice and spin it as a 'venture'. As others have noted always nice when they can play with your skinner box rather than glaze over when they see a Makefile.


I started doing exactly this ~20 years ago, namely getafreelancer.com, fighting with developers at 20$ an hour.

Over time I kept some good contacts from there and supplanted the low paid jobs with better clients.


Same. I started at 15 GBP / hr 13 years ago on peopleperhour, doing cheap jobs and building up trust. This slowly evolved into a network, enough experience to launch my own startup, and now I've been CTO of two startups and I run my own consulting company, at 20-50x the rate I started at.


It's perhaps not a terrible idea to host a simple "blog-type" site that goes through your journey and documents some things about your experience expertise, maybe a blurb/portfolio and things of that nature.

Many developer-types seem to have personal sites these days that cover that kind of stuff.

I'm not a hiring manager, but I've led lots of interviews and this, IMO/E demonstrates competency in a few areas (this varies depending on how the site was deployed):

- basic comprehension of "web stuff" - what "hosting" means in practice (registering a domain + setting up DNS, some sort of service/server to host your assets) - some means of deploying it

It's often a good conversation starter too--you mention experience (maybe something on your "blog"), interviewer asks about it, conversation pivots to how you set the site up in the manner you did:

"I chose $FRAMEWORK/simple static assets and hosted on $SERVICE as I felt this was a straightforward way to host a site, and I like how $OBJECTSTORE makes hosting easy opposed to setting up a server to just serve static assets."

Personally, I like talking about that stuff so it's always a good talk when that comes up during a candidate interview.

There's a lot of potential in those conversations, especially given a large portion of software-type jobs are web-related today.

Also, regarding the comment above, this is likely helpful if you're a consultant where you can advertise your services more explicitly.


Is it easy to find the right freelance? I think there are stuff that I can do well, however I don't even know if a freelance job would be too difficult for me or not. There are bunch of web development jobs but it is an area that I'm not good at


Thank you for your offer and the great advice, I will be more proactive on Linkedin!


> Without any programming jobs on my CV, what is a good way to penetrate into the market?

freelance work.

Sign up on Upwork.com (or similar). Do a bunch of contracts. Put them on your resume.

I did freelance work for years before deciding i was sick of constantly hustling for clients. Then I applied for jobs and said "here's all the things I've done" and they were like "cool. interview. yup. you're hired"

Also, pro-tip: make contributions to big name open source projects. Not only will it be great to be able to honestly say "yeah, I'm a Rails contributor" (or whatever) BUT it is also great experience for working with others. The large projects tend to have high standards and require good code and unit tests. You'll frequently get a code review and need to make some tweaks before it gets merged. Good experience.


I'd like to add that freelance on Upwork can lead to long term relationships with clients, which have kick-started many people's careers as software engineers, including mine.


Don’t you have to sign contracts forbidding you from working with them except through the platforms?


This is what I did. Started with one small contract job on Upwork at a modest hourly rate. Then I raised my rate a bit for the 2nd contract, raised it a bit more for the 3rd contract, and so forth. In the process of doing these contract jobs, I got to know people, they introduced me to other people, and soon I had all the work I needed at a rate I was happy with.


I have a mental block with this. I don’t know if I’m ready to create what a customer might want. What happens if I can’t deliver? How do you estimate well? Do people on Upwork expect that hiring someone there could be great or could be iffy?

I guess I have a confidence issue with putting myself out there.


Thank you. That's hopeful.


Did you have issues getting paid on upwork?


I've had two (main) careers -- I was a journalist for 20 years, starting as a sport reporter for a local weekly, and ending as the legal affairs editor for Europe for a international news service. But I had also been a computer geek for at least as long. My Dad worked for IBM and I had one of the first IBM PCs, which was utterly useless when the family got one unless you could program in BASIC. I took a few CompSci classes in college (but got a degree in history) and used those skills often in my journalism career, even creating one of the earliest web sites (and announcing it on TBL's email list at CERN).

My second career is as a software engineer. I did it by leveraging my domain knowledge and going into R&D -- looking at how to design software for journalists to help them be more accurate and faster. For example, how to draw the eye toward areas where mistakes are commonly made and how to handle mundane things automatically. (These kinds of things are important on a news wire, where competition is measured in seconds.) Eventually, it was evident that I knew as much about programming as the programmers and things took off from there. I'm now a Principal at the BBC.

(Edit: I've been paid to program now since 2007, so I'm probably well on my way to having a second 20-year career before I retire.)

So, basically, start where you are, using what you already know. That's more valuable than you think. Most programmers know relatively little about their users, and one who knows can be very valuable.


This is great because it highlights something a lot of people don’t understand about writing software professionally: you are a translator of domain knowledge into useful applications. If you have a lot of domain knowledge in something, regardless of what it is, if you also write software it would be a waste to not improve that domain for all of those who are just like you but do not write software.

It’s not about being a 10x developer, it’s about identifying a problem and solving it.


That's a great perspective. I enjoy the idea that people can come in from the sidelines and change things because of their novel way of seeing things.


Have you considered contribution to an open source project on GitHub? Then in your interview, when your lack of experience comes up, you can point to your open source experience.

Next, consider getting a certification or two. For someone with no experience or formal education in development, it can help.

Finally, if you're losing out to more experienced candidates, then maybe consider applying to true entry-level jobs to get your foot in the door, where experience is not required.


I have not considered it, no. Thank you, it was not on my radar but now it is.


Two ways in I have witnessed:

1) Ship something. "App Stores" make that easy. Interviewer can easily download your app(s) and have plenty of material to ask you about during the interview.

2) Get hired into "QA" — preferably for a position that allows you to write (code) tests. Many of our "testers" where I worked moved into engineering when they were seen as willing and able to make the move.


> Interviewer can easily download your app(s) and have plenty of material to ask you about during the interview.

In my experience, this never happened.

I strongly suspect that was because they had already decided they weren’t going to hire me (I was 55, when I was interviewing), and didn’t want to waste the time.


I can't argue with your experience but will simply add that I did download apps from the two candidates I interviewed that did have apps on the AppStore.


I had one chap refuse to check my portfolio, because "I probably faked it."

Here's my GH ID: https://github.com/ChrisMarshallNY

You can easily see that I faked over a decade of checkin history, dozens of repos, in multiple organizations, over 20 shipped apps, lots of blog posts, tutorials, class modules, etc.


>I had one chap refuse to check my portfolio, because "I probably faked it."

I don't know the context of how that came up, but I'd probably let the recruiter know of their unprofessional behavior if that happened to me.


That is a "gray area." There's another thread, going on, about "illegal questions," and most applicants won't confront their tormenters, because it's an easy way to get blackballed (labeled a "troublemaker").

In my case, since I had been experiencing veiled insults and condescension from almost every interviewer (and being "ghosted" by recruiters, when they find out my age), I just said "Bugger this for a lark," and decided to retire early.

I doubt anyone misses me, but I am pretty sure that I could have helped at least one of the companies from going titsup.


Sounds like your interviewer just a a grudge against you or something.


Gray hair has resulted in a lot of grudges. I've even had a couple of folks just come out and say it.

I know that my generation (and the one before) have caused many issues, but I'm not your typical "OK boomer."


I’m sorry. Not only is that unethical, it is illegal. These companies need to stop discriminating on age.


Depends on what country you're in. It's illegal here in Australia, but almost universally practised regardless. The law is not in reality available to most people, nor is it by and large adhered to by business except where absolutely necessary (ie. predictably enforced). Every large company I've worked for has broken the law with impunity.

There good cause for "the law" in daily reality (as opposed to "The Law" as an abstract good) not to be held in any esteem by ordinary folk.


> it is illegal

But it is not enforced. Tech companies don't bother to hide it at all. They run job ads that all but say "Bros only."

When money is being made, the authorities tend to look the other way. That has been going on in the finance industry for decades (and don't get me started on crypto).


Or against something in his profile. People have ridiculous preconceptions of the world.


refusal to take a good look at GitHub, a shipped product, or portfolio is a red flag that indicates bad org health, and to avoid.


I downloaded apps by the person we most recently hired. Why wouldn’t you?


I would have killed for a portfolio like mine. I never had that chance, when I was a hiring manager. My portfolio was designed for people like I was, when I was a manager.

However, I gave the opportunity to a few, and they ignored it. In at least one case, their ignoring it was a fairly blatant move to get me to give up. It worked.


There is a lot of comments, but no one took a moment to look at your profile and visit your website.

Pointed advice, specifically for you.

1. There is no links to any of your code. If you are actually in front of a computer so much, surely you have somethings you can share.

2. Your writing is pretty good, but you don't write about any tech stuff. Since your writing is good, write about some of your programming projects.

2b. The Linux post for example is pretty bare. You talk about weeks of customization, but you never explain what customizations. Just that everything works now. This is a boring and uninteresting read, and doesn't inform me at all about your ability.

3. The blog also has sone questionable material, which is fine, however the most recent post where you talk about events that lost your job or nearly lost your job are pretty big red flags.

4. I see ~22yrs in the service industry. This is also fine, but all the above is amplified. People are innately more understanding of an 18 year old not having anything to showcase, but someone in their 30s and 40s is less likely to be hired just for their eagerness to learn. As a result, you need to really have some visable passion.

5. All new hires, and especially new juniors, on a team are initially a productive drain on a team. Your teammates spend time and effort bringing you up to speed and mentoring you. There is risk and effort involved for them beyond it just not working out. This makes it tricky for new devs. All of the above is so you have something to prove you are worth the effort.


Thank you for taking the time to give such direct feedback. I think I missed you by a few minutes, I just switched the link in my profile to my Github. It's pretty bare atm because I only just started adding my projects on there. My intention is to have it grow with time.

The questionable writing is from the perspective that I don't want to pretend some perfect image. I will consider taking that post down, however.

Not sure where you got 22 years from, I'm 29 and started working at 18! I've worked outside the service industry too (recently at Apple) but yes that's my main experience.

Again thank you, I appreciate it. I will write more technical blog posts.

Edit: and the Linux post you mentioned is a parody, it's stated at the bottom


I majored in journalism and worked in tech support for a while, but I got into engineering by seeing manual procedures that I could write software to speed up, so I did that. Management saw the value in it (I helped by pitching this as a force multiplier) and gave me an ever-increasing allotment of my schedule to work on that instead of customer support until it became 100%.

They did try to route me into QA first, but I ignored that and none of them were technical enough to know the difference.


I did the same - admittedly, this was decades ago, but when I had no coding experience, I took a tech support job and learned. As I learned, I started doing small projects for my department, and as those succeeded, it took up more and more of my job until I got promoted to be a coder.

I've had people on HN tell me that this path is the most horrible path to recommend to people, yet at the same time -- it works. And you make a living while getting your skills up.


Oh, I've done that too! I did some work for a hotel and sped up their marketing and IT stuff quite a bit with automation. I didn't end up being paid extra for that, but I enjoyed it. Would you put it on your CV?


Yes, putting relevant experience on your CV would be a good thing.

I’d also suggest changing the tone of the website a little. You say, “Take a moment to browse through my innovative ideas,” and then link to mine sweeper that uses sums instead of numbers? I kind of expected more from the description, and if I were looking as part of a job application I might start to doubt other things you claim. If you’d just said Minesweeper with sums I’d have come away with a much more positive impression.


I've changed the tone, thank you. I don't think simple ideas are any less innovative though, for what it's worth!


I didn't put it on my CV since by the time I was updating my CV I'd already done much more interesting stuff than what I did at that time so it didn't add anything, but if that had been the extent of my experience then I'd 100% put it on my CV. Anything that's relevant to the job the CV is for.


There's a lot of good advice here, but to add - this is a very tough job market and probably will be for the next year.

Freelancing is another entry point and it'll teach you a lot about shipping features/products. Take small jobs initially and scale outwards. Obviously you can't charge top dollar but I recommend listing your hourly rate at slightly below market and then during the negotiation giving a discount to try and seal the deal.

If you find yourself being forced to do very low priced/almost-free work, keep the projects really small to limit being exploited but still being able to build your initial resume.


I have done some website dev freelancing in the past, I will add it to my CV. Thanks!


I have a similar experience to yours; programmed from a young age, did several personal and freelance projects, etc.

It was hard for people to even consider my CV until I shifted focus towards those projects and freelance jobs. Still, the job search wasn’t successful until one person decided to “just give me a chance”. His point of view, which I completely agree with, was that even with a lot of programming experience, he can’t be sure that I’d like working in the software industry. Fortunately I didn’t mind the process and the rest is history.

If I had to do it over again I would first figure out how software engineers really do work, that is learn the different team configurations, how engineers collaborate with each other and product people, the different frameworks used (like agile, XP, plan-build-release, etc.). Then if you decide you still like it, either try to connect your past work experience with this way of working, or try to acquire such experience as others have recommended (contractor work, open source contributor, consultancy work, etc.).


Thanks! I do think you're right that someone will need to consider me worth taking a chance on, at least for the first job. Hearing your story is a great encouragement that it's possible.


Here‘s how I did it (pretty much accidentally), but found out it‘s a great platform to start from: I stumbled into an ill-defined semi-technical role in a growing company with a great boss. I was a technical ad creative support specialist, and the role was ripe for automation. Within a year I had automated my frustratingly boring job away completely and was promoted to engineering as the guy with the ability to „make stuff happen“. The road was very much uphill from there, just picked up the skills as needed on the way, showed up, took additional responsibility when nobody else did.

I‘m CTO of a Series C stage scale-up by now.

There are literally hundreds of such jobs out there you can‘t really train for with obscure names, just go browse some listings from companies with a good culture and a way up. Show up with a technical enough mindset and an attitude of making things happen and you‘ll get that job.

If you just go a bit above and beyond of what‘s expected and ask smart people smart questions, you’ll kill it in no time.

Good luck!


Wow, a meteoric rise. I've rarely heard of people flourishing within a company so easily. Thanks for sharing your background and advice! What platforms would you look at for finding jobs?


I had essentially the same background as you, and made the leap 10 years ago. Here’s what I did:

1) With a friend, I worked through a bunch of tutorials of the current startup web framework (at the time, Rails).

2) At my non-programming job, I looked for opportunities to code things. I made some internal websites, utility tools, stuff like that.

3) I worked my way through Cracking the Coding Interview. This was pre-leetcode.

4) I applied to early stage startups that were desperate to get talent in the door. I tried two, and got two offers.

5) I learned an incredible amount getting thrown in. It was brutal at first and I get like I was constantly failing. But I had good co-workers who helped me over the hump. I learned an incredible amount. From there I was able to move up the ladder to the FAANG level pay.

YMMV, 2023 job market is not the 2012 job market, but if your problem is “lack of experience”, the easiest fix is to find a way to get experience at your current job. Most employers do not consider Bootcamps as equivalent to real experience either.


Leet code interviews have existed for at least 15 years, probably 20. And they were much more popular back then.


The company Leetcode was founded in 2015.

You are correct that algorithm problems were common starting much earlier. The recommended preparation for them was the book I mentioned (Cracking the Coding Interview).


1) Put your code on GitHub, add the link to LinkedIn and to your resume. Hiring managers and internal recruiters are inundated with applicants with no experience who expect to learn how to code on the job. The way you differentiate yourself from them is by making it crystal clear that you can do the job on day 1. (If you can't do the job on day 1, work on that before proceeding)

2) Ignore experience requirements, apply for everything (within reason). Some folks seem to have the idea that job descriptions are carefully hand-crafted by the hiring manager to present an exacting description of their needs--but this is rarely the case. Don't be deterred by the ubiquitous requirement for 3 years of experience. That said, don't waste your time applying for senior positions, either.

3) Seriously, apply for everything. Many (if not most) of your applications will never be seen for a human being--particularly when applying for entry-level jobs, which see the highest number of applicants. Even when I'm fully qualified for a job, I assume that I'll get a call back on ~20% of applications. In your situation, the percentage will be much lower, probably less than 5%. Spam accordingly.

4) Track your applications in a spreadsheet, and follow up with a call to HR for the most promising ones. Tell the HR person that you know you're the right person for the job, and politely ask them to give your resume to the hiring manager. If you can find the hiring manager on LinkedIn, shoot them a (brief!) message saying that you've applied, why you think you can do the job, and include a GitHub link. Touchpoints like this elevate you from "just a name on a resume" to "actual human being" in the mind of the hiring manager, which is invaluable.

5) In the immortal words of Barney Stinson, "Ambition is the enemy of success." For your first job, just get a job. It will be infinitely easier to find the right job after you've got some experience on your resume.

6) If you get an interview and don't get the job, hit up the hiring manager on LinkedIn and ask if you can take him to lunch. At lunch, tell them that you've gotten a few interviews, but haven't been able to land a job. Ask for feedback, and make it clear that you aren't asking for politeness but for brutal honesty.


Thanks for the reality check. I definitely find myself staring at the entry requirements and thinking that every job application would require me to study 5 years to fit their needs perfectly, it's not a realistic goal. I will apply anyway. I did ask one company for feedback after being let down, but they declined to give it. I'll keep asking politely in the future.


Where are you seeing job ads that provide the name of the hiring manager (!) and a direct phone number (!!) for human resources?

What jobs even issue phone lines to employees anymore?


I can see how it would be difficult to find the hiring manager for larger companies, but it’s pretty straightforward for smaller shops.

Nobody lists the number for HR—you just call in and ask to be transferred.


Maybe not that much info, but a lot of job postings on LinkedIn now have information on who the hiring manager is and sometimes encourages you to reach out.


In my experience it’s not too hard to get an entry level role at consulting companies like Accenture, Deloitte, etc, there are also hundreds of smaller consulting companies. Create a resume that shows,

1. You can answer basic coding questions 2. You’re able to work on a team 3. You have some soft skills to work with customers to learn about what they want, so you can build it for them

The first step is to get that interview with the above resume. Then when you interview be sure to be transparent about your experience and interests and your desire to continue learning. If you’re working with _good_ hiring managers this is the most important thing to them.


I was in a similar situation. I got a programming adjacent job to break into the market - I applied as a developer advocate since I was comfortable enough talking about code, and writing code that wasn’t necessarily up to par for a full time job but enough to be able to write dummy code for other developers to follow. While in that role I started working with engineers at the company to improve my skills, and also started contributing to code that wasn’t part of my responsibilities. 2 years after joining as a developer advocate I transitioned to a developer role. Feel free to DM if you have any questions.


Thank you, hearing from others like yourself gives me a lot of optimism.


You might see whether your local community college has good classes that supplement what you already know, and what companies hire software interns/co-ops/newgrads from there. (Long ago, this, and luck, was how I jumped from self-taught, to a co-op student at a first-rate engineering company, and maybe it can still work.)

And some colleges/universities have options for students outside of a Bachelor's degree program. These might or might not teach better than a community college. (But "Harvard Extension School", for example, will probably get past more resume screeners than a community college.) Both might teach you more than a bootcamp. And, again, look for something set up for internships, or with relationships with specific employers.

Beware that the field is absolutely flooded by everyone in their dog, and it's hard to distinguish yourself. I suppose the upside is that there's so much not-so-stellar work being done, that a newbie could their foot in the door at a typical place, survive while they contribute, and grow from there.

But this flood also means that people hiring will reach for a kind of gatekeeping (to narrow down the pool of candidates, and to try to cement themselves as a superior in-group), which, at the moment, means you probably need to practice for Leetcode hazings.

If you have a lot of time, doing open source is an option to eventually stand out, but if you do this, pick something in a space where people are hiring. ("I wrote a JIT compiler for a dynamic dialect of Haskell that targets GPU" wouldn't even get you considered for 99% of jobs, and most of the remaining 1% would insist you regurgitate Leetcode algorithm as performance art so they can "verify that you know algorithms" or so that they "can see how you think". "Yes, I looked at your GitHub, and it didn't have many stars." :)

Also keep in mind that Copilot-like tools integrated into IDEs are going to let a lot of low-skilled developers launder open source code, to pass off as their own (justifying it as "I let the tool do the boilerplate, so I can focus on the more difficult, higher-level problems"). I don't know how the near-term evolution of this will play out, but it might be best as a force multiplier for low-skilled, low-quality work. You might want to be thinking about how to be on a path to eventually stand out for high-quality work, for which companies won't trust this generation of automation (even if they were willing to gamble with a Copilot-induced GPL lawsuit, and VC due diligence doesn't start smacking down for this).


There is a very well-considered coding bootcamp near me that I've heard sometimes leads to jobs, but that could be the marketing speaking. I'm considering it after finishing my current studies. I think what I would bring to the table would be some soft skills, having worked in the service industry for a long time. And I'm organised with my code, without over-doing it. I hope that will be an asset.


The IT consulting[0] firm I work for (~700 people, Germany-based + a few satellite branches in other European countries but unfortunately not in Sweden (yet) — which is where I take it you are located) hires people with zero professional SWE experience – often straight out of university (though not exclusively so) and frequently it's people who didn't even study computer science (though in that case it tends to be math/physics and they usually learned a bit of coding as part of their degree or thesis or something). In our interviews we do some coding exercises but what we're mainly interested in seeing are logical reasoning capabilities, communication skills, culture fit and a genuine interest in software engineering. Our stance is that you can and will learn everything else – either in the trainings you attend when you start or later on the job, with some guidance by our colleagues.

Long story short: You would very likely have a decent shot at an offer.

Now as I mentioned we don't have a branch in Sweden (and EU law would require one if you were to work for us remotely from Sweden), so I'm not here to advertize our firm. But maybe you can find similar companies? I know of at least a handful in Germany, so I assume there must be some in Scandinavia, too.

[0]: "Consulting" as in "We tell you how to do it and then we do it for/with you".


Haha I spent a few minutes trying to figure out if this was a round-about way of offering a job without triggering some HN rule about self-promotion or something... Thank you for the encouragement, your business sounds cool. I like the consulting route too.


Haha, my apologies! :) I just thought I'd tell you a bit about what kind of company we are, so that you have an idea what to look for. Good luck with the job hunt!


Since you seem to be based in Stockholm, I suggest you sign up for a dev talent program in Stockholm. You get trained by a reputable tech company and if you pass the talent program, you get sent to further training to a potential future employer. My team (in Stockholm) is getting a new potentially permanent member in a month or so. The person switched their careers (age 30+) and I, amongst others will be training them to work with our codebase. If they perform well, they will be recommended for a permanent position.

Example: https://www.knowit.se/karriar/trainee/

There are at least 5 such programs.

While you are applying and waiting, I also recommend to pick a tech stack that is attractive for employers in Stockholm.

TypeScript, react, net core web api (c#) and MSSQL are the only tools you need to master in order to become very attractive to all major employers here. Start learning these and publish your learning project on GitHub and you will be well on your way. Heck, when you are done building your asp.net core webapi+typescript react frontend project (a basic todo app, something that demonstrates CRUD (create, read, update and delete), contact me and I will get you an interview.


Thank you, just seeing the stack you recommended has given me a bit of direction. I will set out to learn the basics of these tools. I'll be in touch!


I made friends with a lot of professional programmers so many of them were aware of my skills. Eventually one of them helped me get my first job despite the fact that I had just dropped out of a CS program because of depression. I wish I had a better answer for you, but a strong professional network is always going to be key to your career prospects.


I think you're right, a network is a piece of magic that shouldn't be underestimated when it comes to pretty much anything. I'm currently studying AI Business so I do have access to some great people but few are programmers.


Get a contract gig job doing something small that you can deliver quality work on. I started in 2001 with a 15/hr job making a static website for a college professor’s group ( had no connections just saw an online Craigslist ad and responded ). That job led to more static websites, which led to some database work, which led to a larger contract developing software to help manage a large event, which led to (many) more php/MySQL applications, which eventually led to interviewing and getting a full time job ( still there after almost two decades but different role ). Over the course of all this, interviewing for each next gig/job got progressively easier.


It probably won't be feasible due to cost, but my CV was noticed instantly once I enrolled in a Computer Science bachelor's degree program at a local college. I didn't have the degree and was still in my first year but that seemed to help get through the first-pass filter. My knowledge and skills were then apparent during interview.

If you live somewhere with free or cheap public education then this might actually be easy. And even though I never finished the program (due to life reasons, not my intention) that first year really helped fill in some low-level gaps in my knowledge.

So! Not good advice but it could actually help if you've tried everything else.


Can confirm this advice. Highly recommended to explore comp sci programs at local schools or online; check WGU for example.


Now here's an out-of-the-box idea, haha. Thanks!


How old are you? If you're young (teen/early 20s) the traditional answer is to attend a decent public university and get a CS degree. If you're already an ok programmer you should find it relatively easy (the math parts are mostly only dominant in the 2-3 semesters - calculus, algebra, probability, etc).

Another option is to figure out an area that interests you and build something interesting (even if simple) and release it online. It's ok if it's released for free with no way to monetize it, your goal is to show you can program something non-trivial from 0 to 1.0 (both in terms of skill and wherewithal).


My story: making real world working products to train and show your skill.

I learn program to make my own products. I made several working products but they didn't work as a business. I need a job to survive.

I tried to use Upwork to get a gig. There was a team hiring enginners. I showed the tech lead my repo and my working web apps. He is impressive. I get hired.

There are some luck involved. It turns out that my tech lead is not a good programmer. Maybe his lack of experitise is why he hired me. I don't know. But it helps to have working product and public codebase to show.

Wish you good luck!


I was in school in 2002 and wrote a freeware app as a hobby. The app got the attention of a company that produced a paid version of the same kind of app, as it was apparently cutting into sales and they liked what I'd done. I was offered a job and left school early to take it. 20 years later my career is still cooking - all because of a hobby/passion project.

I have to think that human nature is still somewhat the same and that kind of opportunity still exists. Probably a low percentage play, but wanted to share none the less.


I faced the same problem breaking into the job market right after the early 2000's .COM bust. I didn't get any calls back for full-time opportunities. Even entry level ones.

What I did find was available were freelance gigs. I found these on job boards and started to build out my experience with individual projects. I also went to networking events and ended up getting a few jobs this way as well. I also did some free work for non-profits to round out my experience. I did this freelance work while I was in school and for about a year and a half after I graduated.

It took hundreds and hundreds of hours and hundreds of inquiries to get my first few jobs. It's a numbers game, but you still need to be competent and confident. After my first few freelance gigs I was "experienced" and was able to fill up my resume with the projects I worked on. I did good work so my clients introduced me to their friends, customers and clients and I got more work. One of my clients extended a full time offer to me, so that was my first FT job out of school.

Putting on my hiring manager hat for a moment, I really don't want to hire someone with no experience unless they are exceptional. Contributing to an open-source project would count as experience, but I would prefer experience in a business setting. Personally, I don't care as much about a degree.

To land your first freelance gig, I 2nd the advice about contributing to an open-source project, setting up a website portfolio and having business cards printed. You're trying to show your competency.


Thank you, I have some projects in my Github page and have my own website up and running. I do need to work on adding more projects though, thank you.


Community will probably hate my comment but that's what I did:

I was in your shoes year ago. - I was finance controller in huge corporation - I started coding in 2015 - Now I work as full stack developer

What I did: 1. The hardest thing: I was working full time in finance and in the meantime I started on upwork (it was hard..) 1.1. I managed to use the upwork conctatcs to be freelancer on my own 1.2. I remove finance work from resume as I had 2 years of experience in different companies (The owners didn't had any issue to me putting this as a experience) 1.3. The resume was literaly written like that: Compan XYZ, Developer; Company XYC, Developer; <- I never metioned it was a freelancing contract...

2. I start applying for a jobs to test out my skills 2.1. I quickly learn how to solve coding test and what to say during interview (to be honest I learn more in this period than anything before) 2.2. I got some job proposals in start ups but never took it as the rates were very low. I had briliant idea..

3. I use LinkedIn to conctact directly people and get job with rate I was dreaming about 4. I left the corpotation and I provide serivce to 2 different companies and I was never happier. (that was also hard the leaving process and constantly provide service) 5. 11 months later (nowadays) I still provide serive to 2 different companies but plan for 2023 is to be only on 1 contract and focus on family.

It was a long journey but definitely worth it and I had to admit I had a great support from my wife. Imagine doing full time job and learn/ or do work in other times. I want to point out it was challenging but definitely worth it.


Have code samples and be persistent. Being able to demonstrate ability is a superpower. I got my first job based on an object oriented MUD I wrote in C (using the struct casting trick and some tagging). It showed I could write reasonably structured code and that I could follow simple instructions to write a correct multiplexer (from Stevens’s book). It also demonstrated that I understood the basics of event handling[1]. That was my passion at the time. Follow your passion and write something cool. Demonstrate an ability to follow instructions! I’ve interviewed hundreds of supposedly senior engineers and most have trouble coding something as simple as a RPN calculator. Trust me, if you can show that you can listen, think, and write programs you will find a job.

[1] Which is something supposedly senior engineers fail at all the time in interviews. Even though the elevator design problem is literally a cliché now I still see supposedly senior engineers completely blow it because they can’t think about the internal and external elevator controls in terms of events.


Grew up programming for fun as a hobby. Came to the same realization you did after working at a job that was not fulfilling after graduating in my field. Thought if I loved doing it for fun why not try it as a "real job".

Applied at a bunch of places even though I had zero work experience or matching degree credentials. What I did have though were a bunch of side projects that I had worked on...

Interviewed with some companies and found out that I was actually pretty competent. That process and working at said companies gave me the confidence boost that I needed to know I wasn't fully kidding myself about my skills. Rest is history.

I feel like if you love it as much as you say you do, you should probably have similar projects ready to show. Not these side projects for the sake of getting hired or bootcamp type demo things, but things born out of your passion.

Take this with a grain of salt for today's age, but this is what I did back then (10 years ago..showing my age here haha).


In your situation, my concerns would relate to evaluating your (1) ability to write professional software and (2) what are the gaps in your knowledge.

To address these concerns, consider contributing to an open source project.

Many of the hurdles a candidate has to clear to get a job as a software engineer are intended to determine whether you can actually program. Ignoring the effectiveness of these hurdles, the point is that you need to demonstrate the claims on your resume/CV. If you contribute to an open source project you are putting your work out there for everyone to see, including how you actually work with other engineers and how you deal with critical feedback about your work.

There is a lot of software engineering that is not interesting or attention getting but it has to be done. Often, this involves learning about things that you would not have bothered with if you are a hobbyist. By contributing to a successful open source project, you will be exposed to ideas that you might not otherwise have encountered.


I hadn't considered that last idea of yours before, thank you.


I’ll leave a different answer. You can keep your day job and do a side project as SaaS/product. Do you know a problem in your day job that people would pay for? May be a Chrome extension or an enterprise app plugin. Something that has easy distribution and no up front costs or huge marketing required.

You can then parlay that into a software engineering job or even a more ambitious SaaS.


Everyone has opinions on this so take mine worth the price charged.

You could go to a talent / recruiting program, there are usually some university affiliated programs that have ties to major tech companies or advertising firms.

Of course there are internships as well.

All of that is fine, but anecdotally I found it was far easier to just start doing weird / fantastic things with the internet. Experiment, have fun, create wacky things and blog / YouTube / TikTok about it (full disclosure there was no TikTok in my day). Get the word out that you do this stuff and funnel everything back to a portfolio page that says your available for contract or hire.

Additionally, start attending events where there are other “famous” devs doing what you want to do. Get to know the people and participate. Might take a few years, but if you’re motivated you can network your way into something.

Yeah it’s a ton of work - but that’s a barrier to entry also potentially highly lucrative.


I would imagine you'd approach it like any other junior developer would, some kind of portfolio, and applying to literally anything until you get in, as well as meeting people. A hiring manager would see anything as a risk, including your working years as anything else, because they'd need to imagine that you can take instruction from a 25 y.o intermediate or 29 y.o "senior" person on a team. If doing it as a job is something you truly want to do, and that is a big if, apply to some really boring corporate gigs in junior positions.

There's a big difference between being good at hobbyist programming and being good at it as a job of any kind, but the closest approximation would be contracting. That's because as soon as it's something you have to do rather than something you just want to do, the entire dynamic changes.


Look for contract work and agencies. Keep an eye open to local businesses that might need some help. I don’t know if the market supports this, but you can also find early stage startups to help out. Attend local tech meetups (esp if they are in person, and just talk shop with folks), and find out about any Hackerthons that might be going on. Make presentations; if you got completed projects, people are likely interested. Sign into local slack / discord communities

You can also participate in open source projects. If you have projects from your tinkering that you don’t mind open sourcing, getting that out on github with some documentation explaining what you were trying to accomplish helps. You can spend a little bit of a time answering questions on Stack Overflow.

If you are using more niche languages (such as Elixir), spend a little time answering questions there as well.

Get links for that all on the CV.


I'll add this since I don't see it here, see if you can find someone with industry experience to mentor you. I have 12 years of experience and mentored a family member who has successfully moved over from an unrelated field to tech. It's something I was happy to do, but required commitment from him. I gave him a coding project (he actually never finished the project but learned a lot). I also coached him on what to look for in a job and what to focus on learning.

Alternatively I think coding bootcamp or community college classes are a great way to show initiative and get interviews.


I would hire a hobby programmer (if they can pass the interview). In fact my policy when interviewing is to never look at CVs at all.

But ... be prepared at least initially to take a junior position. This is because we may need to train you for working in a larger group and you may have a bunch of bad habits. Like not writing understandable code, not writing good (or any) commit messages for other members of the team (or even not using version control at all).

The flip side to this is that junior developers where I work can be promoted very quickly. One recent hire went from a junior software engineer to principal (2 steps and a substantial pay increase) within a year.

Also while you're waiting to interview, please consider contributing to open source projects!


The main thing with college degrees is simply to get your foot in the door, as one responder said, if you've got something from a community college that'll be good enough to get you into the queue in most places.

Next up, is being able to describe situations where you worked on a team doing software development, and how you handled things like unclear specifications, irascible colleagues or constantly changing priorities. Software development is a team game, we need to see how you fit into that team.

Lastly then is your technical abilities, and this might be assessed at more of a system level than a coding level. If you've got this, but miss the other areas then you'll find it harder to progress to an offer. Just my two cents from sitting in on plenty of interviews over the years.


If you got an initial interview and passed the coding challenge then it's the hiring manager (not recruiter) who said no. Lots of comments here about ways to improve your resume...but if you got past the first stage it's not your resume.

Maybe your behavioral interview didn't go well. Maybe you're asking for too much money and a manager can hire someone with years of experience for the same pay as you.

If you got interviews and passed coding challenges, I wouldn't focus on the resume because a resume just gets you in the door. I would not take it at face value that you weren't hired because of lack of experience. Rarely do you get an honest answer and that could just be a cop out for "he's too hard headed" or some other reason that can get a manager in trouble.


From hobbyist I went and did a bachelors in business information technology. I also did some coding for a charity and made some online apps for the organisers. On the degree program, I did work experience, and then afterwards applied for jobs.

I guess you can skip education, but where I come from, it's hard to get employed without previously working some place else, which is why most people do related work training (usually unpaid or poorly subsidised by the employment office). Educational institutions usually tightly knit into the industry with some companies running on a revolving door of students.

One other thing. Having a good github presence goes a long way. Make pull requests, interact professionally. People interviewing you will be reading all that.


Thank you, I'm working on building out my Github now.


I initially broke into the field having done some freelance work for some people when I was lucky enough to have connections to help funnel in work. A little embellishment + application spam got me into the industry, though it didn’t set me up for success. The first few years of my career were stuck in subpar jobs and to an extent that’s a legacy that still follows me.

If I had to go back, and had the time/money, I think I would take some time to get involved in opens source and try to build up at least a bit of reputation in some project. That’s about the closest thing to experience I can think of and I’ve actually still consider doing that a few times to break into new domains. Ofc that’s a lot of involved.


I look for three things that hobbyist (or college trained) programmers usually don’t have but will put you head and shoulders above the crowd:

1. Being able to work with version control — pull requests, branching & merging, etc.

2. Being able to step through and debug code and write tests that expose low level bugs.

3. Being able to write defects clearly and precisely that others (technical and non- technical) can understand.

Sadly, most interviewers won’t be looking for these skills:

1. They’ll either be looking for someone who memorized (or can guess) their chosen coding challenge trivia.

2. They’ll want someone be who agrees with them and makes them feel superior.

3. They’ll want someone whose resume and demographics ticks the most boxes on their list.


What worked for me was developing an interesting project and presenting it at a small programmers' convention. That was enough to get the attention of a company that decided to hire me.

The number one thing you should do is network: get out there and meet people (in person, not just over the Internet.) Here is an ancient secret of success, handed down to me from my father, that I now give to you neontomo:

    STP ·)(·
What does it mean?

"See Twenty People, Belly to Belly"

(Normally you draw the belly buttons closer to the belly curves, like on a napkin or something, the dots are belly buttons, yeah? Anyway...)

See twenty people belly-to-belly every day. Every day. You'll have a job in no time. :)


Make side projects or freelance work you can show off. If you know any programmers who are willing to look at your code and make suggestions, even better. You want to build things that challenge you.

I can't tell you whether a bootcamp is a good idea without understanding what you know and what you're looking to learn.

The organizations that tend to have an open mind towards people like you are the ones that can't afford not to. Small companies, non-profits, agencies, underfunded startups. Your advantage is your cheap and you to dive in and learn new things.

It gets much easier after that first job.


I took a few years off mid-career to try teaching mathematics, but couldn’t make it work.

How I got back on the dev track:

1. I picked up any gigs I could from craigslist, just to be able to get a recent job from someone who would give me a reference.

2. Then I took any contracting job I could get, again, focusing on getting experience.

3. From there I was able to get a full time job and leverage myself over a couple job hops back to where I would have been had I not left programming for a few years. I think that something similar would work for bootstrapping a programming career out of being a hobby programmer.


I'm sorry it didn't work out. Maybe you can combine the two somehow and fulfil your dream. I'll look for some gigs today.


I found a local placing hiring Ruby developers, and applied. They had a take home project, so I went to Borders and bought Hartl's Rails book and ended up getting hired.

I had used a few other languages before but hadn't done much in the way of web stuff (this was almost 15 years ago)

I'd say try to find places that are looking for people that know things that you've been playing around with. Bring code to show them and be prepared to demonstrate what you know but don't pretend to know anything you don't.

Good luck!


I'd say expand your network. You need to see how your skills could be impactful for others. Something could be a big deal for you but not for others. In addition, you may discover some trends or knowledge that you may not know. You are taking a great step by asking here.

Armed with the knowledge, you can build a portfolio that is relevant to the employers. Prepare to have some stories to tell how you overcome the obstacles: Just like what others point out, you need some evidence of get things done.


Aim for big tech companies. They regularly hire engineers that can pass coding challenges but otherwise have no experience or CS degree. I was hired at Google this way and many of my colleagues have similar backgrounds. It's a bit harder in this environment with hiring freezes, admittedly.

If you're more interested in startups that seem to require more practical experience, you'll probably need to do some personal projects or contribute to open source.


The solution is "make a job appear on your resume" (not faking it). Some ideas: do some freelance work (underpaid, but still paid) you would need to find somebody willing to engage business with you. Alternatively, non-profit or you can even work at your own saas/software: it doesn't need to be successful, but it still counts as work (it can make zero money and you could just say it's failed startup)


As a domain expert in something else who brings extra value.


That makes me wonder, what kind of value a Hyundai protagonist can bring to a project ¬‿¬


I think it depends on what kind of programming job you want.

In my experience hiring practices wary a lot between different types of companies. Getting a job at a FAANG type of company varies from getting hired by a local web agency, a consultancy, startup or just being hired to run the company website.

HN tends to focus a lot on FAANG and well financed startups, but there are a lot of very different programming jobs out there.


I'm more interested in a start-up or a smaller company, I think. But without experience I don't really know what will suit me best.


Find a friend at a company you want to join and have them refer you to the company. Have them coach you on the process and for what to prepare for and what to expect. Have them advocate for you.

On your end get into interviewing shape -- aka -- algos/datastructures and all that leet coding/whiteboard nonsense.

Honestly, one's network is the surest fire way to get hired anywhere in my opinion.


There's a huge industry of bootcamps and certificates clammering for your money. Don't.

Unless a specific job you want needs a specific certificate, don't pay for them. Your employer probably should pay anyway.

Make a nice portfolio of projects, or contribute to open source projects. That's your resume.

You'll always have trouble getting hired in government or big companies without a degree, tho.


Go to college and get a Computing Science degree.


I would hesitate to call this really bad advice, because it would be correct for some people at a certain age or point in their life. But, based on the OP, it doesn't sound like what is called for. It really depends what kind of job you want.


What kind of software have you written? Open source projects you have worked on that are on github? Microcontrollers you have programmed for home automation? What have you done that proves to a company you can write software?

A coding challenge for 1 hour is the minimum. It isn't a real system that does useful stuff. What can you show them that is real?


I think working on an side project that would showcase your skills would be more than enough.

Any project that is data-driven, includes authentication & authorization, and a clean UI.

All with minimal frameworks, and in public eye like GitHub so they can see code quality.

I think that paired with a good personality would be a home run getting a job.


I am also a hobby programmer who would like to find a job as a software engineer. But lately I feel finding such a job is too difficult. Fortunately I have a stable job with a decent pay. Perhaps luck is a way of penetrating into the job market. Anyway, I am open to job proposals.


I think two things. Networking and practicing. In the end, it's highly beneficial to just know the right people and to be good enough by the time opportunity arises. One way to do both is just take crap jobs along the way. Join clubs and do other social hacky stuff though too.


I'd suggest to participate in a gamedev jam.

It has 2 benefits:

- it shows that you can code something

- it shows that you can finish something useful

As most of the time a gamedev is only 20% fun and 80% debugging or struggling with the concept...

And the ability to ship something is one of the best skill to me. The rest, can be learned.


The same way everyone else does: have a compelling offer (towards the people that have the vacancy). Sometimes your offer can only be compelling if you pass some gates like having a certification or having studied a specific subject etc. If those were the types of jobs you'd like to have, then getting hired means getting a certification/diploma.

The other way around applies too: if a job simply needs you to show them that you can do the work, a portfolio can be enough, just like getting a contract job with a supplier can be (technically that'd be like a portfolio with internal stuff they already know about).

For jobs where you primarily need to be able to do the work:

  - Showing off technical skills in various ways and shapes
  - Showing off interpersonal skills in various ways and shapes
  - Build up experience in non-hiring areas (communities, FOSS, contract work)
That last bit can be hard since contract work usually doesn't allow you to talk about what you did in detail.


Put your projects under work experience. Projects have the same stuff like working with other team members, working with customers, collecting payment for your product. It's literally just a start up so you may as well put it like one in your resume.


Lots of good advice here.

One thing I'll add, having sit in many hiring committees over the years -- in addition to open source projects; I've seen some interesting work that was done by candidates as a volunteer at a non-profit.


Make some programmer friends, become a reliable team member in some hackathons or game jams. One day, you will start getting messages about opportunities since they know you and believe in you and want you to succeed


Is it urgent? If not, just keep programming things you like. I wrote a video game and published it. That got me a job in the USA. Sounds like you enjoy programming so find something you want to build and build it.


See if you can build some stuff friends who have a company and list that work as a contractor on your resume.

Or otherwise build your own product open source or commercially for experience and who knows it might take a life on its own.


- Start a personal blog about software engineering principles

- Have some good code on GitHub

- Work for a startup, they are more likely to take chances on you

- Prefer working on-site if you can. Working remote is great once you have learned how to learn

Good luck with your search.


Apply to smaller companies, show them your skills, learn how to firefight, learn how to navigate “small bosses”, spend some time learning the skills that aren’t just programming - a lot is not just “can you do x”


What kind of coding do you like. Most of the folks here are Web and App centric. If you like embedded programming, a lot of the same concepts apply- Make cool little toys for yourself, and tell the world about it.


You apply for jobs, most often jr. positions. Look for ads that explicitly state you don't need a formal education.

Companies have become much more accepting when it comes to non-traditional hires, in the past 5-10 years.


I can't comment about industry jobs, but I was hired at a university bio lab with only hobbyist experience in programming and my degree was only tangentially related to the position.


The secret is: everyone's a hobbyist. I would just persist until you find someone willing to hire you. Also work on open source if you're not already doing that.


Contribute reliably to an open source project. That's how I got my first programming job.

Having said that, the job market wasn't as rough back then as it is now.


> because I was told that I shouldn't spend my life in front of a computer

What a shame. I hope whoever told you that keeps their advise to themselves.


Side projects you built and can explain in detail


Hobby programmer or programmer at job.

Pick one.

Too much screen time if you do both.


i can relate to this.

love your username btw.


Good question, I'm in the same boat.

Working on some simple AI projects to add to my portfolio as a start. OpenAI APIs are pretty easy to use.


Contribute to open source projects. Many folks in the D community leveraged their contributions to D into lucrative jobs.


Friend did boot camp, couple community college programs.

100 resumes out, 2 interviews, no callbacks.

Dont' let anybody tell you its all roses out there.


Look out for companies that hire people for the sole purpose of hiring people :). Then be a good programmer there.


I did it by being excited to do jobs others didn’t want. At the time, it was build/release engineering.


Ship stuff.

Build something, anything, and put it in the wild. Make it open source. Repeat.

Startups will hire you.


Do you have any friends who work with software who could put in a reference?


I‘ve spent a fair amount of time conducting interview loops at a major tech company. Here are the things I’d be looking for from a candidate like you:

1) Have you delivered something with business or monetary value? Can you explain it?

Hobby programming is great, but I’d hope someone coming from another industry had been able to identify a problem and used their programming skills to solve it.

2) Are you familiar with the larger software engineering toolset and mentality, or just programming.

Planning, estimating, architecture, design, testing, continuous integration, continuous deployment, logging, monitoring, infrastructure, etc… A lot of this falls under DevOps or application lifecycle management these days.

I wouldn’t expect a entry level engineer to have expertise in everything, but I would expect them to be know the basics of most or all of them and why they are valuable. Being able to talk to why CI and automated deployments made your life easier or how a good logging framework and implementation let you figure out an error are good signs you are really into the whole of the profession and not just the fun problem solving parts.

3) Convince me you are interested in the boring parts. In my experience most of being professional software engineer isn’t nearly as fun as hobby projects. Do you really want to do this when you are implementing a mildly customized data grid for the 100th time to enable someone to approve or deny travel requests? Or mapping 150 fields from one data source to another, each of which‘s column names are just different enough to need it’s org definition. Because ultimately, we are solving problems with business value for customers/partners and often the best way to answer those problems is… boring.

4) Most importantly, show me you aren’t a “hobbyist developer trying to become a professional developer”. I want to know you are a professional developer that hasn’t had that title yet. If you can solve problems with software/programming at your current job, do that and tell me about it. Build a product someone, anyone else uses.

If you can, move into a programming adjacent role (product owner/PM/analyst/etc) in your current industry.

Others have knocked bootcamps as a bad option. I’d say it depends. My company runs a training program for military veterans and it is wildly successful, but it also focuses HEAVILY on job placement. I also know a local boot camp in my (small) city that seems to have a darn near 100% placement rate due to an excellent network with local companies. If you find a boot camp with a strong reputation and evidence for high placement rates, it might be worth it. It’s worth noting the the veteran program is free and the local boot camp was cheap as they are programs looking to produce qualified employees for their sponsors rather than money making enterprises themselves.

Network (the interpersonal kind) heavily with other professional developers. Go to meetups. This isn’t so much to find a job directly from one you developing network (although that happens!) but to become familiar with the culture, learn what is being talked about, and learn about opportunities.

Finally, I’ll echo others and say you can go the route of getting a CS degree or similar. If you are going to work in the industry long term I think it’s useful- not only does it fill in a lot of gaps that often only become apparent years later, it also helps with “checkbox” resume screening, gets you access to a career services center and is a nice shortcut to large professional network. Let me put it this way- I’ve never not responded to a student or alumni from my university that has reached out to me. It’s a big commitment though- ideally find a program that caters to working professionals but is affiliated with a large / strong alumni network.

Good luck!


I personally wouldn't do a bootcamp. You probably already have the technical skills a bootcamp would teach (or could learn them more effectively outside a bootcamp setting).

I think you have a few possible paths (many mentioned in sibling comments):

Ship something at least slightly novel of your own. Could be a web site, a web game, a mobile app/game, or something open-source that you've kept at for 6+ months. This will both sharpen your own skills and give an interviewer something concrete to talk about.

Complete Advent of Code. This isn't quite as impressive as the previous, but if someone has completed all of an AoC, that's a pretty positive sign for me. (Note that it's quite possible to cheat at AoC, making this not as strong a signal.)

People hate to hear it, but grind leetcode. Get to the point where 95% of leetcode easy problems are truly easy for you and where medium ones are 50/50 within your grasp. Not only will this sharpen your skills, but it (like AoC) will force you to work through some problems that are initially difficult for you. Just like lifting heavier weights, this exercise will make you stronger as a programmer.

Find an open-source project that has some beginner-friendly tasks. See if you can complete any of those. This will both give you confidence, but also give you a sense of "do I really want to do this as a job?" (A lot of programming is, IMO, the best job in the world. A lot of is...not...)

Keep at the applications. Ask for feedback from failed interviews. Sometimes the true answer is just "we had only one spot and the person we hired interviewed more strongly"; OK, only sensible thing you can do is keep interviewing. Other times, you might get a piece of feedback that really helps.

You could consider pursuing some (charged) AWS certifications. These aren't a major positive signal for a lot of employers, but they're a modestly positive signal for some and for a career-changer, they're probably a better signal of seriousness than a more traditional candidate.

If you find none of that lands you a role, depending on your location, age, and life circumstances, see if any companies near you have internship programs and if one would consider hiring you into their internship program.

I would only do the QA-first route if that was the very last option for you. (It's probably better than a bootcamp, but it's close.) Companies that hire you into QA won't want to quickly lose you from QA into coding. I have a few devs on my team who have gone through that route in our company, so it's definitely possible (and they're good), but I think it's on average a longer road than waiting and coming in the front door to software.


I don't know what's a generally good plan but I'm starting to know what makes me want to hire people:

* 1 skill I really need - a language or a technology

* Attitude

I like to work with nice people and I don't care how "good" an arsehole is. So I'm looking for someone with give and take that my team would enjoy going for a beer with (or just a j20 or whatever) and someone who is interested in programming and computers generally - not doing it just for the money. They must have a little flexibility - be able to take some suggestions and yet also come up with arguments for what they think is best. You have to be able to review code whilst being very nice and not insisting that everything should change whilst at the same time pointing out the critical things that probably have to change. Egos get bruised so social skills help a lot.

I do have a bias towards degrees because I've met experienced programmers who do silly things just because they've never heard of "Big O" notation and never seen a parser generator in their lives so they think they are up for writing parsers manually. Or the one that thought he had sped up an MD5 algorithm by 1000x....... I just feel safer if I'm dealing with a person who groks some of these things but in the end I've accepted people without degrees who just gave me a good feeling about their openness to learning and general reasonableness and thus far in my experience I was not too wrong when I went with that.

I don't care about quickly programing some exercise but I want to give them code to write before the interview so that we can talk about it like a code review and we can see if they understand the ways we might criticise it or suggest improvements themselves. I want to see someone writing stuff that I would feel reasonably happy about maintaining not something that is so clever that everyone is at their limit of understanding when trying to read it.

I've met people who make a lot of effort but don't think in terms of algorithms very well. Their code is full of logical flaws but they are really great at reproducing bugs and doing other technical things - they possibly shouldn't be programming but maybe QA or something similar.

I've met people who can write algorithms but are very quick to give up when they hit a difficulty. They call out for help too soon so I ended up helping them all the time. Often the only real difference between me and them in some situation was that I felt I could not give up because there was no-one after me who could do anything for them if I didn't. I like people who struggle a bit before asking for help - they end up understanding the answers.

I'm not too familiar with bootcamps but I think I value someone having experience with debugging - with working out something that isn't going as it should or which they don't understand well enough to just know the answer but they set out in a logical way to try to work out what the answer is. This isn't strictly about programming but sort of seeing if they get the idea of divide and conquer etc.

I don't want to have to explain why code without tests is useless - and that's something that a lot of "experienced" programmers don't agree with - a bad attitude to that turns me off instantly because I don't want to have to fight the battle to change their minds.


You need the instant credibility that a CS degree provides. A hobbyist will always have to end up proving themselves in each new job and you have to just get lucky on someone willing to take a chance.

Other than that, you could try building out a successful product or freelancing for some time.


No, they only need to prove themselves for the first job, unless that job doesn't last long. Work experience trumps a degree every time.


I know a lot of people who make more than me and never went to a college or university. They were just good, got a job, continued being awesome, and got another job. I think a degree can help accelerate promotions, but even that isn’t a guarantee. There is no real alternative to job performance, and getting that first job is the most difficult part.


This is an antiqued take for nearly all of the IT industry. Most of my peers are industry veterans without a degree. Some only completed high school.


I don't mind spending some time proving myself, if it sets me up for a better career in the long term. Yes, I will make more products!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: