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 programming basics and an excellent ability to look up the documentation’s correct information. You will also need a can-do attitude ready to take charge of learning and figuring out things on your own.
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 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 will be working on. It might help look at a few different languages and understand 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 debugging something that wasn’t working to find I had an extra space in a word or inverted two letters in 1 single instance.
- Abstract and Critical Thinking Skills: Many of us are not exposed to this concept in school. Abstract thinking can be a complex concept to grasp sometimes, but it can 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 item in this list, because it has more to with how one part influences the outcome, but Abstract Thinking and Critical Thinking go hand-in-hand as far as programming skills go.
- Basic Understanding of Computers: Some may argue this is unnecessary, 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 checkbook, 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 will not 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 with an entire two-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. If you are at least certain you can get 80-90% of the work done, there is an excellent 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 project! See how far you get on your own. What problems do you run into etc.? To better help you, I have created a page that I will update with project ideas. I will also include times to take you based on your use and skill level. See the list here: Programming Project List With Times.
How Will I Find an Employer?
Now you might be wondering where I find these nice employers I can work with to build 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 most accessible places to start. When I first started learning, I asked everyone I know if they would be interested in building a website. Sometimes people said no, and I built it anyways. Then I offered to sell it to them for a discount if they liked what I had made. This resulted in me making 10-15 websites and getting paid the lowest amount I have ever made, but 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, I lived 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 would not stop working on their project until I had finished it the way they wanted. From handing out around 30 business cards, I got four websites at $1,000 each and requested my first application, which paid $5,000. 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 period for about eight months, I looked at sites like Upwork, trying to find jobs that I knew I could hit that 80-90% mark very quickly, 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. 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 the first full-time job I found on Craigslist. I was not exactly looking for a job. Still, I wanted something more stable that didn’t require me to spend a lot of my time meeting new people and making “sales,” so I started sending emails to people who had jobs posted on Craigslist looking for developers. I emailed all of them that only mentioned projects that someone could reasonably do in less than a year; including the ones that we’re paying too low, with the same message:
My name is Heck Lee, and I see you are looking for someone to do ____. 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 was able to pick up two project offers and three job offers from this activity. In another article, I may detail this entire process, but let’s talk about how the job I picked happened.
It might help to know that I am in the Midwest, and there are not many technology companies around me. Not many people started new cool things, so when one of the offers came back with much more to do than the job description had in it initially, I was excited to talk to the owner. I set up a call, and we talked about his plans. He wanted three web apps to 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 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.