Having started a career in programming without a degree or any real experience to speak of; I can tell you from experience what you need to know to get your career started.
Answer: You should have a strong sense of the basics of programming and good ability to look up the right information in the documentation. You will also need a can do attitude ready to take charge of learning and figuring out things on your own.
Obviously there is a lot more to this answer than what I have just said, but the truth is you can find people that are willing to work with you at any skill level. Many employers have a junior developer position track that lasts for as long as you need to get into the steam of things. But it will be on you to make sure you don’t stagnate in your learning and therefore in your career.
The biggest thing to remember when you are trying to get a job with little to no experience while you are still learning is to be honest at every level of the process. Honest in your application, honest in your interview, and honest with your new supervisors.
What Are the Basics of Programming
- Syntax of Chosen Language: You need to know the basic structure and rules of the language you are going to be working with. It might help to look at a few different languages and get an understanding of how they are similar
- Attention to Detail: Having a keen eye for the details can get you very far. I can’t tell you how many times I spent hours on debugging something that wasn’t working just to find I had an extra space in a word or inverted 2 letters 1 single instance…
- Abstract and Critical Thinking Skills: This is many of us are not taught in school. Abstract thinking can be a hard concept to grasp sometimes, but it is the ability to look at the bigger picture and understand how the pieces fit together. Research shows you can improve this skill with practice. If you need help check out my article here: Improve Your Abstract Thinking
It might be best to put Critical thinking as its own item in this list, because it has more to with how on part influences the outcome, but Abstract Thinking and Critical Thinking really go hand-in-hand as far as programming skills go.
- Basic Understanding of Computers: Some may argue this is not necessary but I think it will get you further to learn earlier. How does a computer function? What is binary? What is RAM vs Hard Drive?
- Simple Math: If you can balance a check book you will get far, and have a good foundation for learning more complex math as needed.
- Self-motivation: I put this last on the list because it might be the most important for keeping a job once you have gotten one. Your new manager or boss is not going to want to follow you around all day and check on your progress. Most programming jobs will give you a bit of space and time to solve and complete programming tasks before you must show results. I know of 1 client that has a full 2 week period given to programmers before their work is looked at, and reviewed. So you must be able to move forward without someone standing over your shoulder. But on an equally important note you must be ready to ask questions or seek direction if you get stuck.
How Will I Know I’m Ready?
Knowing if you are ready to get a job or not has a lot to do with your confidence level and what the potential employer is asking of you. If you are at least certain you can get 80-90% of the work done there is a very good chance you will be able to figure out the last 10-20% by the end of the project.
If you are honest with your new employer they will likely work with you to ensure success.
I advocate sooner rather than later, and some people are turned away by this idea. If this is you I have a solution.
Start your own project! See how far you get on your own. What problems do you run into etc. To better help you on this end I have created a page that I will update with project ideas. I will also include times that it should take you based on what technology you are using and skill level. See the list here: Programming Project List With Times
How Will I Find an Employer?
So now you might be wondering where do I find these nice employers I can work with on building my skill with a little on the job training?
I’m going to tell you what worked for me and I hope you will get some general ideas from what I tell you.
NOTE: The last one was how I got my first big job only about 6 months after getting started!
Friends and Family: Yes, no joke friends and family are always the easiest place to start. When I first started learning I asked everyone I know if they would be interested in having me build them a website. Sometimes people said no and I built it anyways. Then offered to sell it to them for a discount if they liked what I had made. Mostly this resulted in me making 10-15 websites and getting paid the lowest amount I have ever made, but at least I was paid something for learning. In total I made about $500 this way.
Businesses Around You (physically around you): When I first got started and I was living on less than minimum wage from another job. I got some business cards printed up and then I went to all the businesses in my local area and just told them what I was doing. I let them know I was still learning but that they would still get a good product because I was not going to stop working on their project until I had finished it the way they wanted. From handing out around 30 business cards I got 4 websites at $1,000 each and a request for my first application which paid $5,000. I think I could have gotten a lot more because the owner told him everyone else had said it would be $20,000+, but I let him know it might take me a while and offered to do it for the lower price. He agreed so I had made around $9,000 from talking to the local businesses.
Freelance Posting Sites: During this same time period for about 8 months I looked at sites like Upwork trying to find jobs that I knew I could hit that 80-90% mark very easily, and then I would need to learn the last 10% or so to get paid. This turned out to be a small gold-mine of simple jobs. I never kept track but I had hundreds of jobs that ranged from $30-500 and the money added up pretty fast along with my skill level, but also just before I started this I got my first full-time job which I’m going to tell you about next. The reason I wanted you to know about Upwork and freelancer etc is because I was able to make a decent side income while working full-time most of these gigs would take 30min to 2hrs and I could do a few after work each day.
Craigslist and Other “Normal” Job Postings: My first full-time job I found on Craigslist. I was not exactly looking for a job but I did want something more stable that didn’t require me to spend a large amount of my time meeting new people and making “sales” so I started sending emails to people that had jobs posted on Craigslist looking for developers. I emailed all of them that only mentioned projects that could be done in less than a year; including the ones that were paying too low with the same message:
My name is Heck Lee and I see you are looking for someone to do ____. I think I could do ____, but you might find it better to use contract labor for this task. Because ____ (here I would explain how long I thought the project would take me and how much I wanted to get paid.)
PS Everybody calls me Lee
I actually was able to pick up 2 project offers and 3 job offers from this activity. In another article I may go into detail on this entire process, but lets talk about how the job I picked happened.
It might help to know that I am in the Midwest and there are not a lot of technology companies around me. There are not many people starting new cool things so when one of the offers came back with much more to do than the job description had in it originally I was excited to talk to the owner. I setup a call and we talked about his plans. He wanted 3 web apps that would help people get jobs, get reliable news, and find government assistance. I explained that I was still learning a lot and laid out a plan on how to get his projects done.
Because he planned to work with the Native American Tribes there were some strict requirements that he had to meet, and it seemed like a great project to get me a little deeper into the programming world. He came back with an offer of about $28.75 /hr to counter my $30 /hr initial offer and I accepted.