I'm a junior web developer (1.5 years of experience) and I don't have a degree in the field, so references are all I have to proof my worthiness. And similarly I have a lot of small (mostly useless too) projects that nobody uses. But I still put them online. I have my own domain for development purposes only and whenever I finish a project to a satisfiable degree I put it on some subdomain amd add it to my list of references. Purely as a quick way for people to check what the code they were looking at actually does.
My references vary from simple image-upload site to a (more complex) link-hosting site that does a lot of magic behind the scenes. And a lot in between.
Even projects from hackathons. [Here's](http://helpmehelp.herokuapp.com/) a perfect example. The code is opensource (terrible though :D). The project is old, irrelevent and unused. But still no reason not to have it hosted somewhere.
>>Even projects from hackathons. [Here's](http://helpmehelp.herokuapp.com/) a perfect example. The code is opensource (terrible though :D). The project is old, irrelevent and unused.
It also doesn't seem to do anything. I kinda expected that though when you said hackathon. :)
It's a stupid app that helps you decide on who to vote (US elections) based on issues you type in. Try typing in "death penalty" or "crazy".
It then dynamically finds latest google searches and tweets about candidates. And charities that help the issue.
The app had to "solve a real problem" and use paypal. Not our favourite 2 things for a hackathon. This (useless and non-profitable) is more our style https://www.youtube.com/watch?v=ySU703VXSNY
There is definitively a barrier of entry in software and it helps if you do a bunch of things that are discussed here in this thread.
On the other hand, if you just need a job as a programmer and have skills like OP seems to have, and apply for junior positions, possibly through a contractor, then you will get a job.
This is for anyone who reads these threads and wonders "am I good enough?" "can I be a programmer?"
Find those large staffing companies and submit your resume right away. Meanwhile keep learning and practicing. A junior HR person from that staffing company will be with you right there in the actual job interview sitting on your side of the table (but of course their customer is the company, you are the product, and they probably won't be much of a help and take a big cut). Maybe you need to practice that whole procedure a bit. Remember, if you can do FizzBuzz then everyone in the room breathes a sigh of relief since they had 3 people worse than you on this day already :-)
In the end you'll have an actual job as a real programmer doing Java at a bank and soon you'll realize the job is kinda boring and most of your colleagues are kinda average at their job and you realize why companies would advertise to find mid-senior level people :-)
But you've made it. You started kinda late in life and you wondered if you were smart enough to do it, but of course you put in the work and you got the results.
And now it's up to you if you want to cruise along or use that precious skill, the ability to sit down in the evenings and study and practice, and go on to do something you'll be proud of.
>One of my problems is finding junior jobs. It seems whenever I go searching I see only mid-senior level jobs
Stop applying to junior jobs and thinking of yourself as a junior. "junior" is just code word for "pay me less". Get yourself to where you need to be and just apply for regular roles.
Difficult when non-junior jobs require 3+ years of work experience and you have none. A majority of companies will filter out your resume before you even get an interview.
And then there's the practical issue of living without a job while you get education, build experience, etc.
In my opinion, "junior" is code word for entry-level, and it's the easiest search query to find those jobs.
Apply for the mid levels anyway. I never post for a junior position, because we don't have the time and money required to train you up to where you need to be. However, part of this is also about confidence. If you're fresh out of school, but you code as a hobby, and are really into learning about how code works, and have some chops, then depending on the hiring round, you can easily score higher than a mid level dev that has simply worked with Visual Studio his whole career and is inept if an IDE isn't there to hold your hand the whole way through. That's beyond useless to me.
I was always pretty good at landing junior level jobs. To give you a rough idea, I've done 14 interviews in my life and only 2 of them did not offer me the position. I'm at my 3rd job right now (turned down all the others). Also for reference I quit first one before the company went broke (I literally took the first job offered to me at the time, before doing other interviews I was invited to), 2nd one was just a 5-month project and I'm somewhat happy with my current job.
My rate of getting interviews per email sent is much lower (maybe 40-50%).
1.) CV. My CV is cool. It's a password protected website (I also generate a link that logs you in to save time for employers). It's a minimalistic one-page website with lots of cool features. It sets cookie that says Hi, it outputs messages to console, has fun comments in JS files, puts message in header. It also has "print friendly" button that hides unnecessary stuff (links, stuff that doesn't print well). If you click it 100 times you get an XKCD comic (and some prompts at 10/50 click). Just all around fun site that is also a very basic showcase of my work.
Granted most of the people don't even see the console.log messages. But I guarantee you two things a) those who do notice these details will want you more than some random guy b) you want the job more than some random job someone might offer you.
2.) Interviews. I'm extremely honest. I have zero problems saying "I'm sorry I've never heard/used this before" (which happened more often than I'd like to admit). As it turns out, our field is pretty big and people really don't expect you to know everything as far as they can see you've grasped different concepts before without big issues. But you need to show you're happy to learn. Not just willing, but happy. Make them know you're always happy to get more stuff under your belt. Humble yourself and show them you want to be as good as them in this technology.
Hell, I've been accepted for a job as RoR engineer and I've written maybe 10 lines of Ruby in my life. I told them that in the interview. I'm experienced in Laravel though (PHP framework). So I drew parallels and showed them that I'm familiar with the concepts. 2 weeks later they called me that I got the job :) Had to turn it down though.
I will also always try to ask about their stack/technologies they're using. Now I've been on interviews where their decisions were "uninformed" to say the least. For example, the guy interviewing me was going on and on about how the performance really matters. And they were using PHP (relatively new project). In cases like this (if you want the job) it is EXTREMELY important not to come off as arrogant, but still show that you're well informed. So I asked them how they decided for PHP, wouldn't Java/C# be more suitable. And they said that they were thinking about it, but ultimately decided for PHP as their developers had more experience. And, in order to not come off as arrogant, you need to find a way to (at least partially) agree with them. I said something along the lines: "Yeah, I can understand that. Sometimes you've got good developers on your hands and you need to implement some stuff quickly (which will require performance). You don't want to replace you good programmers and you don't have time to learn a whole new language/concept.".
But most most importantly - show enthusiasm. This will get you far. Show that that you enjoy this stuff, tell them about that hackathon, make them laugh with that irrelevant side project of yours that outputs morse code with belly buttons - where you were learning some new technology (or just improving on old ones), tell them about those local meetups you attended.
For junior positions people will always take someone who is easy to work with, will happily accept help (this is often more important than next one) and offer it too when possible and genuinely enjoy learning new technologies over someone who might be better on paper, but just doesn't show the above characteristics.
My references vary from simple image-upload site to a (more complex) link-hosting site that does a lot of magic behind the scenes. And a lot in between.
Even projects from hackathons. [Here's](http://helpmehelp.herokuapp.com/) a perfect example. The code is opensource (terrible though :D). The project is old, irrelevent and unused. But still no reason not to have it hosted somewhere.