I don't have a formal education or degree in development, but I have experience. I seem to be having trouble getting past the interviews because of my lack of formal knowledge, though.

I've had a dozen phone interviews and several onsite interviews. The process seems to go similarly each time and yet I'm unable to pinpoint what I need to change.

I seem to do quite well at the personality and fit part of the interview. I genuinely like working on a team and solving technical problems. I'm a quick study but also I love to learn. All my personal projects revolve around me learning something new. I have a positive attitude. Don't have negative things to say about my work history (honestly don't. I've never been laid off and I've loved everywhere I worked and people loved me too). Work great with others. Enjoy the interaction with clients, gathering requirements, meeting needs, etc.

The challenges seems to be the technical parts of the interview.

I will often be asked questions about specific design patterns or things like "SOLID" was a recent one. I knew it was a design-related acronym but I wasn't able to say any more than that.

I've also had a question question in an interview yesterday where I was asked to compress a string like so: "aaabbcdd" -> "a3b2cd2" (I think that example covers the jist of it). I can't express how trivial this type of problem is for me. But in the interview setting my brain was simply frozen. I threw out a loop to traverse the string and put in some logic and eventually got it working but they were pointing out logical errors/mistakes along the way.

We went through some small C# methods that were passing objects, ints, and strings around by value and reference. These things are usually trivial for me in practice, but being on the spot I got one or two wrong but was able to explain myself and talk through to the right answer. But I felt like an amateur there.

I feel like these employers don't understand that it's not really important if you go in "knowing" exactly what they're asking. These things get learned on the job. It seems like such an employer's market that they can interview candidates until they find some guy, maybe not even as good of a programmer or as quick of a learner as I am, but who just happens to have the luck of knowing off hand the particular things they happened to ask.

Maybe I'm not nailing the personality like I think I am.

It's starting to feel impossible (for me) to land a job in this market and I don't even know where to begin fixing whatever needs to be fixed. But whatever it is if I had/get the slightest whiff of it I'll be motivated to work hard to fix it. I'm just searching to find out what.

I only wish I could have communicated better how good I am at solving technical problems and how competent of a programmer I am. But for all I know that's not even my problem.

  • 1
    Too long! Trim this please. Not sure what the question is – Xavier J Aug 9 '16 at 22:57
  • if you are asking why you are not able to nail any job yet, I think you know the answer. Those little technical hiccups you mentioned during interviews, not knowing the products they use in the development process much and anything and everything similar to that plays a role. But one day you may be able to find a company, wher ethe hiring manager will see you "good-enough" to hire. But don't expect much in the compensation department, unless you find the time and may be a student loan to go for that elusive degree. Sorry for the blunt delivery. – MelBurslan Aug 9 '16 at 23:01
  • I've made some changes to your post, and updated the title to be more of a question - I hope I've managed to keep the main thrust there. However, I think this still needs condensing to be more acceptable to the community. – HorusKol Aug 9 '16 at 23:22
  • 2
    "How can I improve my prospects without formal knowledge?" - shouldn't you actually be asking how to improve your formal knowledge, or perhaps how to better present your knowledge in an interview? This would reflect a difference in attitude that may serve you better. – Brandin Aug 10 '16 at 6:09

One thing to remember is that it isn't necessarily that you are a bad candidate - it's just that they had better ones to choose from. Everytime I open a job, I'll easily get 100 applications to fill that one position - that means 99 disappointed applicants, unfortunately.

It's like racing at the Olympics - there are 8 guys lined up on the line, and they've all run fast before - but there's only one person who gets across that line first. It's done to whether he's trained harder, got better shoes, better technique, whether he had his weetabix for breakfast, and a little bit of luck on the day.

For job candidates - it's down to experience, skillset, knowledge, personality, and, unfortunately, also a little bit of luck on the day.

I'm unable to pinpoint what I need to change

You do seem to recognise the need for change, though.

First up:

I feel like these employers don't understand that it's not really important if you go in "knowing" exactly what they're asking. These things get learned on the job.

I feel like you're ignoring the fact the given the choice between two candidates who are otherwise equal, the one who "knows" stuff is going to win. Be the one who can do stuff and who "knows" stuff.

I will often be asked questions about specific design patterns or things like "SOLID" was a recent one. I knew it was a design-related acronym but I wasn't able to say any more than that.

You will often be asked this, because good developers should know this kind of stuff. They want to know that when you are working with other people you are going to understand what they mean when they say they want a Strategy to do handle something, or a Decorator for View/ViewModel.

They also want to know that you have a grasp of what Object Oriented Programming is about - and SOLID is one of the litmus tests for this.

If you are a developer with any professional history, I would expect you to have this kind of knowledge.

just happens to have the luck of knowing off hand the particular things they happened to ask.

I know I said luck is a component in winning a job - but this isn't luck. This is knowledge. The person who has answered these questions is someone who has read around, and has gained some idea of what is involved in software development beyond simply writing code. In short, this person has put effort into learning their craft.

| improve this answer | |
  • Some of us predate SOLID and don't know it by that name -- but we have other credentials to establish that we have a clue. – keshlam Aug 10 '16 at 0:10
  • 1
    But if someone asked you what SOLID is, you could respond with "well, I can't tell you what that acronym is, but I know it encapsulates OOP principles which are..." – HorusKol Aug 10 '16 at 1:17
  • Nope; really hadn't heard it before. Having looked it up, it's all stuff I do reflexively without needing standardized names for it. It's a fine mnemonic for new students who are learning the principles and practice, but .... Well, when I had a class with Liskov we were still using her CLU language and I don't think the term "object oriented" had yet been applied because there weren't other languages of that sort to generalize to; standard terminology and mnemonics were a much later afterthought. Knowing buzzwords is a lazy test for whether folks can apply them, with false positives/negatives. – keshlam Aug 10 '16 at 13:08
  • @keshlam You're right, it is a buzzword... Just like agile, recursion, polymorphism, and OOP, and a whole heap more... That's why a good interviewer is looking for a discussion on the principles actually encapsulated, rather than "oh, yeah, Liskov is da bomb". They will go on to ask what is meant by each part of SOLID and ask for what you think is involved. A good developer should be able to provide that discussion regardless of whether they know the buzzwords or not – HorusKol Aug 10 '16 at 15:09

I agree with the prior answer, but I think the OP might benefit from some ideas about how to improve interview performance.

The good news is that any time you get an interview, you are already at least half way over the no-degree hurdle. If there were only considering candidates with degrees, they would not interview you. The bad news is that the interviewers may be primed to expect you to be weak in theory and algorithm design.

You need to either get that degree, or improve your interview performance without it. Improving your interview performance is likely to be quicker. Here are some ideas:

  • Go to any of the programming puzzle web sites, and work some of the easier problems, putting yourself under time pressure.
  • Take any question you have been asked in any interview. Look up all technical terms in the question, and make sure you understand them. Then follow links to related terms, and study those.
  • Look up the textbooks for a computer science degree program, and read them. Relevant experience make books easier to read, so you should be able to learn a lot relatively quickly without lectures.
| improve this answer | |

You're either trying for too high level a job or you're not prepped mentally for interviews.

You're not qualified, this is a mark against you straight away. Fine if you breeze through the tech, but you're not so you're coming across as a cowboy.

Set your sights lower, get entry level if you can, prove yourself and concentrate on rapid advancement. This is what I did, I entered the industry with zero qualifications but quite a bit of experience. But I didn't look for a job commensurate with my experience, I went entry level and then just rose rapidly since I already had the knowledge and was just filling in gaps, while others were learning from scratch.

| improve this answer | |

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