HACKER Q&A
📣 neontomo

How does a hobby programmer get hired?


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.


  👤 rubberband Accepted Answer ✓
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.


👤 wturner
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.


👤 phphphphp
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.


👤 pryelluw
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.


👤 masukomi
> 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.


👤 eamonnsullivan
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.


👤 bsuvc
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.


👤 JKCalhoun
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.


👤 georgyo
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.


👤 indigochill
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.


👤 irjustin
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.


👤 barefeg
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.).


👤 endymi0n
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!


👤 yojo
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.


👤 marcusverus
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.


👤 gatewaytonarnia
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.


👤 listofthings
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.

👤 neilv
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).


👤 codethief
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".


👤 dt3ft
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.


👤 jolux
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.

👤 notthedr
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.

👤 BlueDingo
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.


👤 ido
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).


👤 pototo666
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!


👤 andrew_
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.


👤 hahamrfunnyguy
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.


👤 newaccforyou
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.


👤 User23
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.


👤 ookblah
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).


👤 jdowner
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.


👤 satya71
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.


👤 newshorts
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.


👤 brailsafe
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.


👤 hosh
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.


👤 3minus1
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.


👤 rwmj
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!


👤 Simon_O_Rourke
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.


👤 fma
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.


👤 leke
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.


👤 the_only_law
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.


👤 fijiaarone
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.


👤 carapace
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. :)


👤 coffeefirst
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.


👤 dhosek
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.


👤 bluedino
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!


👤 cloudedcordial
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.


👤 phillypham
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.


👤 Fire-Dragon-DoL
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)

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

👤 mediascreen
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.


👤 gigatexal
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.


👤 zulban
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.


👤 sys_64738
Go to college and get a Computing Science degree.

👤 lizknope
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?


👤 kept3k
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.


👤 throwitfaar
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.

👤 guerrilla
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.

👤 thesnide
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.


👤 oneplane
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.

👤 charcircuit
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.

👤 tingletech
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.


👤 barbariangrunge
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

👤 lowbloodsugar
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.

👤 jiggywiggy
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.


👤 yshrestha
- 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.


👤 bennyp101
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”

👤 zafka
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.

👤 TrackerFF
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.


👤 hyperific
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.

👤 dboreham
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.

👤 lapcat
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.


👤 khaledh
> 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.


👤 echan00
Side projects you built and can explain in detail

👤 Buffout
Hobby programmer or programmer at job.

Pick one.

Too much screen time if you do both.


👤 SamPatt
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.


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

👤 JoeAltmaier
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.


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

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

👤 jconley
Ship stuff.

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

Startups will hire you.


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

👤 topkai22
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!


👤 sokoloff
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.


👤 t43562
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.


👤 xwdv
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.