I am a self-taught programmer with all of my professional experience in the restaurant industry. I have been teaching myself to code for some time now and I am hoping to change careers. I have recently begun applying to positions but am not getting any responses at all.

Some things to note:

  • I am probably not overreaching myself. I am only applying for entry level positions where the bar is low and my skills are not entirely rudimentary. I have held my own in conversations with professional developers who have encouraged me to believe that I'm not delusional.
  • I have no degree. I studied Literature in college and never finished.
  • My current career has been successful. Albeit a very different industry, the fact that I have worked my way to a Sr. Leadership position is a positive right?
  • I am attempting to go the portfolio route so that I have concrete code to show what I can do. However my portfolio is very limited as I have chosen to emphasize seeing projects through to completion. After all that too is a desirable skill I'd like to convince makes me worth hiring.

I am very outgoing and personable. I am confident that my personality can help me land a job but I also feel confident that I can answer the technical side of an entry level interview (please be fizzbuzz, please be fizzbuzz) and well, if I bomb the interviews I can come back and ask another question (or find some older ones.)

My question is this:

How do I wave a proverbial banner at the people that matter, that says "Bring me in to interview"?

My resume is rather short and my online presence is limited but I've added all those. I have been using cover letters trying to sell myself. I have been careful to be confident and not apologize for my non-traditional approach. But whatever I'm saying isn't convincing people to call me and set up an interview.

Are there core skills that I should be emphasizing? Maybe I have them and just don't know to list them. If not then I will focus on learning them next.

If the answer is (and I hope it isn't):

Build a bigger portfolio. Yours is too small.

Then how big does it need to be?

For context I will add that I am in the US. I am working with C++ mostly with desktop applications. I am using source control with GitHub which is also what I am essentially using as my project portfolio.

  • 4
    Related / duplicate: Effectively adding "Self-taught" skills on your Resume. The core skills, and the "required" size of your portfolio will depend on the company you want to work for. Although data structures and algorithms are fairly standard requirements for interviews, but just about any "how to prepare for coding interviews" resource should tell you that, and I put "required" in quotes because it will also depend on what the rest of your profile looks like. Jul 16, 2018 at 5:40
  • You might also want to have someone take a look at your cover letters, and how you format your resume. That can make a big difference, and it's about more than "do X, Y and Z" - it also depends on how you do it. Jul 16, 2018 at 5:54
  • How far into the hiring process do you get? In the US it's fairly common to have a homework section where you write some code for the company. There's usually at least one phone or two phone calls before you're brought in for the full "interview". Are you getting to any of these steps or are you just flat out being ignored? Jul 16, 2018 at 10:24
  • Also, you might have difficulty applying for entry level positions, if your timing is around the time of college graduations. What language(s) do you know? Are you in the US? Different languages, frameworks, frontend/backend have different cultures and do things differently. For instance, if you taught yourself Java, that's a commodity language, and your best bet is to spam large corporations (not tech companies) and you'll eventually land something in all likelihood. If you taught yourself Go, you should target entry level positions at a small company.
    – Keozon
    Jul 16, 2018 at 12:44

7 Answers 7


I am probably not overreaching myself. I am only applying for entry level positions where the bar is low and my skills are not entirely rudimentary.

Don't do this. Apply everywhere.

The entry level positions attract the most under qualified candidates. It's because of this that it's difficult to get hired. There is a high supply to low demand ratio. I'm not telling you to not apply, but I'm explaining that if this is all you do you'll be applying for a long time.

Also, keep in mind that an employer seeking an entry level programmer with no experience might not offer you the experience you need to move up. You might just get stuck working and continuing to learn on your own to get a better job.

So far better is the return if you can get a job that challenges you.

I can't tell you where else to apply but broaden your options. Apply for any position you feel you could do. What you need most right now is work experience.

My current career has been successful. Albeit a very different industry, the fact that I have worked my way to a Sr. Leadership position is a positive right?

Yes and No.

When a candidate has an imbalance of skills it could be a red flag for the interviewer. For example; You could apply for a Junior Programmer job, but during the interview you claim to have Senior Leadership skills/experience. This is an imbalance and they will ask you "Will you be happy working as a junior programmer?" and maybe "How will you feel answering as a Junior to another Senior Leader?".

These are questions to be answered in the interview, but maybe not on your resume. You don't see many job advertisements for junior programmers with senior leadership experience. So when you're highlighting your skills be sure to be as relevant to the job as possible.

I am attempting to go the portfolio route so that I have concrete code to show what I can do. However my portfolio is very limited as I have chosen to emphasize seeing projects through to completion. After all that too is a desirable skill I'd like to convince makes me worth hiring.

If you're going to do freelance work, then the portfolio is a must. A freelancer has to find multiple jobs per year just to stay alive.

If you're looking for work as a full-time programmer, then the portfolio might be a waste of time. You only have to find 1 job.

Portfolio is a showcase

This is the root of the problem. It's a showcase and/or trophy shelf of your past accomplishments. As a new programmer there isn't anything there to showcase.

A freelancer is constantly updating their portfolio. As better work is completed they drop the weaker examples.

As a new person looking to enter the field. All of your work is a weak example. Putting it up for display might get you rejected from the job before you had a chance to say anything.

This is where I say "less is more" as it's all about making a good impression. Do, say and show nothing that could weaken the impression you make.

Blog your hard skills with examples

An alternative to the portfolio is to blog. Blogging is better because you don't have to finish a project, and you can measure the Google analytics or receive comments. This gives you feedback on how good/bad the blog post is. Comments like "this really helped me solve a problem" are strong indicators that an employer will also appreciate the blog post.

Blogging is actually more challenging than trying to do a portfolio, but I argue it's less risk if you understand the objective of it all.

The objective is to get a job, and employers want to know if you have the hard skills necessary to do that job. So blog about those skills and include examples. Go to your resume and look at what skills you claim to have, and then blog about it. You say you can write "unit tests in Java", then write a blog that shows how to do it.

Blog as much as a you can, then ask your friends/co-workers/professionals to help you sort out which blogs to keep and which to throw away. Reduce your blog down to the best of the best.

Keep blogging until you've covered all of your hard skills. You should have something to say about everything you claim you can do. Yes, this is an endless goal but it gives you topics to write about.

Don't just blog about C++ and how you use it make games. Show a variety of topics that are relevant to the job you want. You know how to use Git? Write blogs about that too.

I am attempting to go the portfolio route so that I have concrete code to show what I can do. However my portfolio is very limited as I have chosen to emphasize seeing projects through to completion. After all that too is a desirable skill I'd like to convince makes me worth hiring.

Just do ONE project.

Let's call this a personal project.

Now make this project accessible for everyone. A project that exists only on your laptop, requires special setups or has to be demonstrated isn't going to work. It needs to be something anyone can quickly give it a try.

Solve only ONE problem in your project.

Pick a problem everyone has. Don't go after complex problems or special interests (this is a demo of what you can do, it has to be something people can quickly understand). You could make a "calculator" as an example. Yes, the idea is brain dead simple, but I know many senior developers who could not complete a "calculator" project on their own.

Now make it neat, clean and organized. Write clear comments, documentation and put the source code up on GitHub/Bitbucket or your blogging platform.

Now set yourself a deadline and finish it.

My resume is rather short and my online presence is limited but I've added all those.

An online presence can be a bad thing.

Employers look towards your online activities to sample your soft skills. They want to see what kind of person you are. A lot of technical people think their online presence is where they provide technical proof of their hard skills (even I gave blogging above as advice), but anything negative from social media or news about you will hurt your job hunt.

So review your twitter history, make all your Facebook data private and inspect your Google results.

When doing a job hunt a candidate should always do a clean up of their online presence.

I have been using cover letters trying to sell myself. I have been careful to be confident and not apologize for my non-traditional approach.

Cover letters are tricky.

You need to get a second opinion on your cover letters. You are too close to the problem to be subjective. Ask a senior developer that you know to review your letters.

But whatever I'm saying isn't convincing people to call me and set up an interview.

Please don't give up.

Research, research, research.

I say it all the time on this website. Candidates need to research the company they are applying for. Google them, search LinkedIn, ask your friends if they know anyone who works there, Google the employees and dig up as much information as you can.

Take that information and work it into your cover letters and resume. Make yourself relevant.

Also, tell a compelling story. Are you a person wanting to switch careers? or are you an interesting person with an interesting history who is passionate about their new future? These two people have very different resumes.


The problem with self-taught skills is that nobody ever rated your skills. You could have learned very much and very well, but if you learned from 20 year old material, you won't be of value for a company.

So look for online training courses that offer a certificate after testing your knowledge about the courses topic. Add those certificates to your job application. There are several sites offering webinars or recorded lessons for a reasonable price. That way you can freshen up your knowledge, learn new skills and convince companies to hire you.

Make sure you take the right courses. No company is interested how much you scored in "Java for dummies". But verifying your knowledge about up-to-date technologies makes you interesting for recruiters and companies.

One example: Let's pretend you want a job as a web-developer specialized in React/Redux and have taught yourself. Since this is up-to-date technology your chances of finding a job are slightly better than without this knowledge. Search for online courses teaching about React/Redux, sort by rating and take an (reasonably priced) intermediate or advanced course. Make sure you will have proof of your attendance (certificate) at the end! This will show companies that you can create web applications with React/Redux above "hello world" level.

Edit in response to comment

To clarify a few things here: The OP didn't state where (in wich country) he tries to find work. Sure, recruiters is some countries don't care for certificates or recommendations. Where I'm from (Germany) applicants are mainly judged by:

  1. Past jobs and experiences listed in their CV
  2. Testimonials of past employers
  3. Certificates of recently finished trainings.

Since the OP has not worked in IT yet and therefore has no IT-related testimonials, he would have an exceptionally hard time finding a job without providing any proof that he actually knows what he claims to have leaned by himself. He could be the next Steve Jobs or just some Script Kiddy claiming to know everything.

Sure he could proof his knowledge in an interview, but as of now he hasn't succeeded in being invited to one yet.

  • Makes no sense. Seriously. I work professionally in IT around 25 years. NOONE EVER RATED ANY SKILLS I USE NOW. All languages I used 25 years ago are not on my current use set - except occasional C++. That is so occasional it amo0unts to like 80 lines in the last 2 years. And any application I get with courses, I... ignore the courses. Most are not worth a cent, seriously. Show passion and some work (like open source).
    – TomTom
    Jul 16, 2018 at 8:14
  • @TomTom how much time do you have to read some open source code someone has written?
    – bharal
    Jul 16, 2018 at 12:02
  • Pretty much zero. I personally prefer inteviews like talk shows - which can get deep very fast until the candidate's skill break. THAT SAID; I am technical lead most often and only hire for technologies I have a deep understanding - not a typical interviewer. Reading code can be idiotic because you have to take into account style requirements of the proejcts.
    – TomTom
    Jul 16, 2018 at 12:06
  • If online certificates are valuable but some more so than others then how does one distinguish? Is there a criterion I can use or a master list somewhere of the best ones?
    – Summer
    Jul 16, 2018 at 13:25
  • In my experience, certificates are usually not worth the paper they are printed on. Jul 17, 2018 at 11:37

Build any portfolio, and get an online presence. You get invited to an interview with three main roads:

  • Someone from recruitment company spots you online and offers your resume to posible employer. To get in this way you need to be present in networking sites like linkedin, set up a profile, invite your friends (be sure to invite people working in field you're interested in), and also invite recruiters out of the blue - thats a signal you're interested in their help. You can also write direct messages with request for offers.

  • You apply for the job yourself from the offer you found online. Here you need to show some skills and technologies. Build something small but polished and make sure screenshots are available on the project website. Try to work with many commits to show the progress and authenticity of the project.

  • You get recommended by someone already in the company. Here you need some contacts already in place, if you know someone who is working in the field - reach out to them and ask about the company and possible employment.

  • 1
    i agree with the last part, but telling someone "network" is not useful. "Networking" is a step-by-step process, you might as well tell a new programmer "read from the command line", but without further instruction of how, they will fail. The other points - and my downvote - are not working for OP currently.
    – bharal
    Jul 16, 2018 at 12:03

Start a meetup, teach java to people who wish to learn. Do this for free. In this way you will learn much more about java than you already know.

Go on linkedin, find the companies you wish to work for. Consider the growth the company might have, the industry the company is in, the location of the company.

Find the blog of the company, find the person manning the blog. Find the twitter handle of the marketing department for that company. Talk to them, ask them what advice they can give, ask if you can learn more about the company.

You need to start having dialogues with people, as your CV - with no degree - will be rejected constantly by HR and external recruiters. Talking to people over social media, going to their events and meetings, will get you places.

Running a meetup on teaching will show your commitment, and also enable you to learn. Don't worry if only a few people turn up, as long as you are consistent and dedicated in the meetings.

For much larger companies - banks and the like - you will need to attend general programming meetups and network with people there. This is much harder, typically these people do not go to meetups or let themselves be easily networked. It is much easier, then, to join a smaller, mid-size company and then move to a larger company (if, of course, that is even your wish).


There are many ways to short-circuit the interviewing process for getting a software engineering position. But one route, that hasn't been mentioned in any of the answers so far, is through technical testing.

First, practice doing live technical mock interviews to see how you measure up with others.


interviewing.io does audio-conferencing plus a shared code editor for the mock interviews. By default, it hides your identity, unless you decide to unmask it yourself by pressing a button. Plus, it records the shared audio and your own screen for your own later review.


Pramp uses video conferencing plus a shared code editor for the mock interviews. It also supplies you with the technical questions (and the answers). Pramp has a better system for dealing with flakes than interviewing.io, basically, if you flake on a mock interview, they take off a point, and the next time you set up a mock interview, it pairs you with someone who flaked the same amount of time you did.

Once you feel ready, you can try:


The online tests are easy, but with the amount of time they give you to complete them, they're super difficult to finish on time. There is no point in cheating. They'll retest you in person once you pass their online tests.

And of course, you can also short-circuit the initial screening process also if you did well through http://interviewing.io or through http://pramp.com

However, if you don't think you're ready for live technical interviews yet, here are some other resources you can use to prepare.


Cracking the Coding Interview


https://www.hackerrank.com/ (This one is not my favorite, but some employers do use it for pre-screening, so you might as well learn how it works)

http://codewars.com/ (This one is not good for finding interview-related questions, unfortunately, but it's quite addictive. So if you don't feel like you can answer a leetcode question every single day yet, try to use this one to get you into the habit.)


Personal anecdote: I got my Computer Science degree and started applying for jobs. I sent out 60+ applications, and got 4 responses, 2 interviews and 1 job offer (which I accepted). When I started looking for my second job five years later, I sent 6 applications, but got 6 interviews, and 6 offers.

Self-taught or not, getting that first job is not easy.

On that basis: stick with it. Keep learning, keep practicing, and keep sending applications. Get a friend and/or a professional contact to review your resume (if you claim to have "attention to detial" your application will go straight in the bin). Try out several different versions of your resume and see which version gets the most responses. Just be aware that getting few responses is normal while looking for your first job. It will be frustrating, but it's not unusual - have patience.

A massive portfolio isn't really any better than a small one - it's more important that it is high quality, both in terms of the user experience, and the code itself.

Interpersonal skills are important, it's true, but as you note that'll only come into play at the interview - and certainly won't be enough on its own, without code skills to back it up.

Regrettably, a senior leadership role in another industry is of basically zero relevance to your job search as a software developer. (Would you employ the world's best programmer as a chef? Not on the basis of his programming skills, no matter how good they are).

I'm going to differ from some of the other answers: don't waste time on a blog (you'll be shouting into an uncaring void), practice technical tests if you like but be realistic about what they'll do for you (an interviewer will give you a test of their own anyway), and don't over-focus on companies you already think you want to work for (you'll be limiting your options at a stage in your career when you have few options).

Send out more applications, to more companies, for more different roles, while learning more about coding (both theoretical and as practical as you can manage). And stick with it.

(FWIW, BTW, the best coder I ever had the pleasure of working with was self-taught with zero qualifications, so such a path can certainly work. Employers don't always realize that of course, unimaginative ones might insist on a degree; yes, this might make things more difficult for you, but probably only for getting that first job, which is tricky for everyone).


I also don't have any official certificate. I develop programs since more than 20 years and get paid for it reasonably well.

What I do is sell my service to (small) companies which need individual solutions. I develop those solutions together with them and build them the program they want. In my case mostly databases.

Maybe you can do something similar in the restaurant industry or also for other industries. Many people want solutions and they want to be able to talk to the person who writes the program without too many technical details. If you understand what they want and you can "translate" this into a solution you should be able to get jobs - independent of any certificates or qualifications.

Most of the time I get new jobs through personal recommendations. Then often I listen to what they want and write a very basic program to show I understand their requirements. I tell them something like: Look at this. If you like it we can go from here. If you don't like it you don't have to pay.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .