How Does Somebody Know If They Are Ready To Begin Looking For A Programming Job WITHOUT A Degree?

You won't know if you're ready, I didn't. But I worked my butt off and tried anyway. I completed 60% of a Physics undergrad, during which I did a few projects with C++ (numerical analysis) and Python (simulations with VPython) because programming had been an off-and-on hobby of mine since my early teens. I rediscovered my passion for coding with those projects and decided to switch directions - so I changed majors. I spent 2 semesters in a CS-track being bored out of my mind because I was completing 2 week assignments in a matter of a few hours. I was already way beyond the curriculum.

I stopped going to school entirely, feeling it was a waste of money, decided to grind it out on my own. For me the key was attacking learning like it was an addiction, I'd put in 60+ hours a week on it, sometimes upwards of 100 hours in a single week. It's basically all I did. First I did two core Java game prototypes without any frameworks, next was several C# .NET programs focused around cryptocurrency trading (I was daytrading Bitcoin/altcoins), the biggest of those projects being a trading app that interfaces with several exchange APIs and allows me to automate various trading strategies. During that time I also started learning about Linux sysadmin as I was messing around with making my own cryptocurrencies and was running the nodes and pools off of various remote VPS services. Next I decided my web stack was weak so I worked through the entire Odin Project, during which I fell in love with Ruby.

I started applying for jobs at this point. I got rejected from several jobs in my local area for not having any documented experience/credentials, but I also had a shitty resume - at the time I didn't think to feature my projects on the resume, I was just bringing a thumb drive with me to interviews. I kept working in Ruby, making a few more projects like a TCP chat & file server that uses the "Reactor" pattern for concurrency, a reddit bot for fun, and a Rails site to eventually be my portfolio which I never ended up finishing. I found /r/cscareerquestions and got some advice on my resume - it changed everything. I started a github, put everything up on there. I reworked my resume to feature several of my major projects and removed most of my irrelevant work history to keep it one page. I started applying locally and out of state.

I got way more calls with the new resume. I ended up getting several chances to be flown out to interview for jobs on the west coast, and the first one I went to was a Junior DevOps role with a company on the Dow 30. Things went superbly, I hit it off with the DevOps guys there, they liked my versatility (coding, sysadmin, more network knowledge than the guys in their NOC), and they ended up making me an offer I couldn't refuse. I'm preparing to move in a few weeks.

From my experience, things you definitely want to know: source control, full competency of OOP paradigms, near-fluency in at least one language (preferably exposure to several), Linux and enough CLI stuff to not be lost on it, and core algorithms/data structures (common sorting algos, stacks, queues, hash tables - minimum). If you shoot for the god-tier Big5 companies, you're going to be drilled on algorithms - read Cracking the Coding Interview to shit your pants. I didn't aim that high, I was looking to get a foot in the door, so I applied to web dev shops and companies not known for 6 hour high-pressure technical interviews. In the end I think it was 1/3rd my resume/github and being able to back up everything I claimed on it, 1/3rd being personable and comfortable with people I talked to, and 1/3rd applying to many varied positions waiting for the right place that would give me a chance. From my own experience, jobs on the west coast were much more interested in self-taught people than east coast.

You'll never feel ready but if you've at least got a few projects you did on your own that weren't copy/paste tutorials, and you spend some time making a decent resume or a portfolio site, you can start applying and you'll either get lucky or learn pretty quick what else is missing from your skill set. Getting lucky can not be understated - sometimes you'll just meet the right manager that likes you and wants to give you a chance. The only way you'll find that opportunity is by getting out there and trying.

/r/learnprogramming Thread