Having started a career in programming without a degree or any real experience to speak of, I can tell you from a place of understanding what you need to know to get your career started. I will start by telling you about the attitude that will help guide you then finish with tactics that can help you develop a strategy to get experience and your first job.
Answer: You should have a strong sense of programming basics and an excellent ability to look up the documentation’s information on your own. You will also need a can-do attitude, ready to take charge of learning and figuring out the task at hand. But you should be willing and able to ask questions.
There is much more to this answer than what I said, but the truth is you can find people 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 groove. But it will be on you to ensure you don’t stagnate in your learning and, therefore, your career.
The biggest thing to remember when trying to get a job with little to no experience while still learning is to be honest at every level of the process. Genuine in your application, direct in your interview, and honest with your new supervisors. Let’s take a look at the most basic skills you need to start working as a programmer.
Basic Skills Every Programmer Should Know Before Landing Their First Job
You might have questions about how you should prepare for your first programming job. A lot of people get hung up on technical details, but you will pick up a lot of new skills as you work. You will also learn faster by working with other more experienced people. Do not get hung up on the interview portion the strategies I give below this section will help you find plenty of opportunities.
- Syntax of Chosen Language: You need to know the basic structure and rules of the language in which you will work. It might help to look at a few different programming languages and understand their similarities.
- Attention to Detail: Having a keen eye for 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 extra space or capital in a word or inverted two letters in a single instance.
- Abstract and Critical Thinking Skills: Often not taught, abstract thinking and critical thinking can be essential advantages for your future. Abstract thinking can be a complex concept, but it can help one look at the bigger picture and understand how the pieces fit together. Critical thinking entails a lot of logical reasoning and analysis. Research shows you can improve these skills with practice. If you need help, check my article here: Improve Your Abstract Thinking (article coming soon). It might be best to put Critical thinking on its own in this list because it has a large impact on the outcome, but abstract thinking and critical thinking go hand-in-hand regarding programming skills.
- Basic Understanding of Computers: Some may argue this is unnecessary, but I think it will get you further to learn early. Things like how a computer functions, what is binary, what is RAM vs. Hard Drive, and What is TCP? These things are critical in how your program functions and interacts with the world. Having a basic understanding of these components and how they interact will go a long way in helping you diagnose or even prevent problems.
- Simple Math: If you can balance a checkbook, you can get far and have a good foundation for learning more complex math as needed. A recent discussion with a colleague reminded me of the importance of Algebra, but one can at least get started only by understanding the basic concepts.
- Self-motivation: I put this last on the list because it might be the most important for keeping your 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 space and time to solve problems and complete programming tasks before you must show results. I know of one 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.
Knowing You Are Ready
How will I know I’m ready for my first programming job? 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’re at least confident, you can get 65-80% of the work done. There is an excellent chance you will be able to figure out the last 20-35% 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; some people are turned away by this idea. But 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.
For all those ready to take the leap and get started keep reading below.
Finding The First Jobs For Experience and Unlimited Job Cheat Code
Now you might be wondering where I find these excellent employers I can work with to build my skill with a bit of on-the-job training. Which can be a much faster way to learn and improve.
I will 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 about six months after starting!
Friends and Family:
Yes, no joke, friends, and family are always the most accessible places to start. When I started learning, I asked everyone I knew if they would be interested in me building a website. Sometimes people said no, and I built it anyways. I offered to sell it to them for a discount if they liked what I had made, which resulted in me making 10-15 websites and getting paid the lowest amount I have ever made, but I was learning and gaining that all too allusive experience. I made about $500 this way, but I had around ten quality websites in my portfolio to show potential clients. I will not discuss my hourly rate at this time, but it was single digits.
Businesses Around You (Yes, physically around you):
I lived on less than the equivalent of minimum wage when I started. 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 quoted my first application (app), which paid $5,000. I could have gotten a lot more because the owner told me later that 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 made around $9,000 from talking to the local businesses immediately around me (immediately is subjective for me that is up to 30 minutes driving time as I lived in the country at the time and it took 30 minutes to get to the nearest town of about 19,000 people).
Freelance Posting Sites:
During this same period, for about eight months, I looked at sites like Upwork, trying to find jobs that I knew could hit an 80-90% completion mark very quickly, and then I would need to learn the last 10% or so percent to get paid. This strategy turned out to be a small gold mine of simple jobs. I never kept track, but I had hundreds of jobs ranging from $30 to $500, and the money added up pretty fast along with my skill level. Soon after I started this, I got my first full-time development job, which I will tell you about next. I want you to know about Upwork and freelancer, etc. because you can make a decent side income while working full-time as I continued to do these side jobs for the first 4 months of my new employment. Most of these gigs would take 30min to 2hrs, and I could do a few after work each day or in between the local projects I was able to land.
Craigslist and Other “Normal” Job Postings:
The first full-time job I found was via. Craigslist. I wasn’t looking for a job, just more projects. However, 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 mentioned projects which I believed someone could reasonably do in less than a year; including the ones that we’re paying too low. Looking back I did underestimate the scope of several of the projects I applied to work on, but that worked out in my favor.
If I had to do it again I would keep things nearly the same with the only change being I would message more people. I would use the same message I had used which was this basic template:
Hello ____,
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.)
Regards,
Heck Lee
PS Everybody calls me Lee
I picked up two project offers and three job offers from this activity. In another article, I will detail this entire process, but let’s talk about how the job I picked happened.
How I Got My First Full-Time Job
It might help to know that I’m in the Great Plains, and there are not many technology companies around me. Not many people started cool new things, so when embarked on the strategy above I messaged over 50 companies one of the offers came back with much larger ambition than initially described, so 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 and laid out a plan to finish his projects.
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 returned with an offer of about $28.75 /hr to counter my $30 /hr initial proposal, and I accepted.