How to learn to code without a technical background
Do you want to learn to code and wondering where to start? I’ve been there.
Learning to code can be overwhelming at the beginning – specially when you don’t have a technical background.
But what if I told you could fix that knowledge gap?
There’s one problem with most coding lessons; They “assume” you know the basics!
But if you allocate some time to learning the fundamentals, every confusing tutorial starts to make sense right away.
Michael Jordan said, get your fundamentals down, and the level of everything you do will rise.
This introductory guide gives you a glimpse of your journey into this unknown world – with a focus on the fundamentals.
If you’re still not sure if learning to code is worth it, let me give you two reasons why it is.
There are many coding jobs for early careers: There are plenty of coding jobs on various job boards. Even though it’s a competitive environment, there’s still work for everybody.
Take web development, for example – Bureau of Labor Statistics estimates the average growth rate for Web Developers and Digital Designers job market to be 13% from 2020 to 2030. The average growth rate for other professions is 8%.
As of June 2022, Only LinkedIn has listed over 45k web developer roles in the United States.
Apart from that, you can get into any industry as a programmer.
Salaries are decent: Based on the Bureau of Labor Statistics, the median pay for “web developers and digital designers” was $77,200 per year as of May 2020 ($37.12 per hour).
Based on Glassdoor users, the average base pay of a web developer in the United States is $72,707 – this confirms the BLS data.
Based on factors like specialty, city, and company, your average base pay might go as high as $105k per year.
You can read our comprehensive guide on web developer salaries in 2022 to get an idea.
Can I learn to code online for free and get a certificate?
We’re lucky to be living in the era of communications. You can learn almost anything for free – if you want.
One thing I love about the Internet is that to get yourself noticed, you have to share your knowledge with others. That’s probably the reason why the Internet is flooded with educational materials.
For instance, freeCodeCamp.org alone can take you far enough in your learning journey – Thanks to its huge collection of free learning materials.
So if you’re wondering if you can:
- Learn to code for free
- Learn to code online
- Learn to code and get a certificate
The answer is yes! All you need is a bit of determination. Are you ready for that?
How about paid courses? Are they any good?
Just because free materials are helpful, it doesn’t make paid courses a bad option. In fact, paid courses have something free materials usually lack, consistent quality!
Since most paid courses are produced by an online school, there’s always a QA team monitoring the content quality.
Besides, they provide roadmaps and tracking tools to speed you up and keep you engaged and motivated along the way.
I’d suggest considering it if you can afford a reasonable monthly subscription.
Pluralsight and Codecademy are two popular online education platforms with affordable monthly subscriptions (more on this below).
Can anybody learn to code?
No matter if you worked as a chef, a security guard, an uber driver, or a lawyer, you can learn to code.
And if you think coding is all math, not to worry!
You might use math in your programs, but it depends on the industry you’ll be working in. If you’re coding for a graphics editor app or a self-driving car, you’ll probably need some math skills!
But if you develop websites or other information systems, you’ll rarely encounter complex mathematical problems. Nothing more than getting the average of a set of numbers or calculating a percentage.
Do you think you can’t still do it?
Danny Thomson is a software developer based in Texas. He wasn’t always a coder, though. He says he used to “fry chickens” before becoming a software developer. Danny changed his life with a plan and determination.
And now with over 200k followers on Twitter, he’s on a mission to help people do the same. Danny believes “You absolutely got this!”.
Is it possible to learn to code without going to college?
The numbers say it’s possible. Many programmers have done it before.
Based on StackOverflow 2021 developer survey, almost 30% of respondents (17,451 developers) had a degree less than a bachelor’s degree! however, a CS degree is the most typical degree among software developers and having it wouldn’t harm either!
The survey shows almost 60% of respondents learned to code from online resources, even though many of them had a university degree!
A CS degree is just one way of proving your technical background for a job. But it’s not the only way! You can prove it in other ways.
YK (known as CS Dojo on Youtube) is a software engineer and a successful Youtuber.
He studied Statistics at a university in Japan. However, he decided to take a different direction. During his summer breaks, he decided to take some programming courses.
In a video, he said, “that gave me enough technical basis to start learning on my own.”
He even started to build a personal project with Ruby programming language; It was a platform like Reddit, but for Japan. He says he never released the project, maybe because he was shy!
But that project gave him an internship opportunity at a small startup in Tokyo. Eventually, he landed a job as a software engineer at Google in Montreal!
Lizzie was pre-med, studying molecular bio at UCLA. She was three years into a degree when she realized even she liked the topic, but “it wasn’t her path”.
She contributed to an open-source project and took some programming courses afterwards (as suggested by her dad). And one day, she found herself working for Red Hat!
Ever since, she’s “led teams, architected systems, worked across the whole stack and spoken at conferences”. She’s now a CTO! Without a CS degree.
You can find many people like YK and Lizzie who made the “impossible” possible!
You can be next!
How long does it take to learn to code?
I know you don’t take “it depends” as an answer. You need a number, in months!
But I have a suggestion if you don’t mind.
Instead of focusing on the time to learn to code, I suggest you adjust your perspective a bit.
Learning to code is an infinite learn → build → learn → build → learn → build journey, rather than a one-off learn → build process.
There’s no finish line in the software industry. It’s about using the little you know to make the best things you can!
Nobody is expected to know everything, and nobody does anyway. As long as you understand the basics and know where to look for more details, you know enough.
So depending on what you want to make, you can start building stuff from day one!
How to learn to code?
If you’ve read this far, I assume you’re persuaded to give it a chance.
But how can I start learning to code? You may ask.
The first step is to learn the fundamentals, which you can do in two steps
- Learn the fundamentals of programming
- Learn how to learn a programming language
Learn the fundamentals of programming
When you begin learning a software technology, you should always start with the basics.
I know everybody likes to get their feet wet from day one, but trust me, these theories are game-changing!
For instance, if you decide to pursue web development, find answers to questions like:
Or if you’re more curious, you can dive a bit deeper:
You should get your ears familiar with technical jargon. So when somebody talks about file systems or I/O, you’d be able to follow or even participate in the conversation.
You can start building your technical vocabulary on Mozilla’s valuable MDN website today!
Learn how to learn a programming language
Learning a programming language is an excellent idea! But do you know what’s even better than that? Learning how to learn a programming language.
If you understand the concepts & features most programming languages have in common, you’ll be able to learn any programming language in no time.
Let’s see what these common programming concepts are:
- Syntax and semantics
- Programming paradigm
- Control flow
- Data types and type systems
- Functions (built-in & custom)
Syntax and semantics: The syntax of a programming language describes the allowed symbols (e.g., <, =, +, if, else) you can use to write a program. It also defines how programmers should combine these symbols to form a valid statement (like a sentence in English).
Semantics, however, describes what each statement means in terms of behavior. For instance,
The supported programming paradigm: A programming paradigm is a way of programming in a programming language. Some languages only support one paradigm, but some are multi-paradigm. Each paradigm has its own benefits. You usually choose the most suitable paradigm depending on your goal.
Control flow: The computer executes the instructions in a program in a top-to-bottom order – starting from the first line to the last line.
But in practice, you often need to change the default flow of execution under specific conditions. For instance, to repeat a set of instructions multiple times, or to execute a piece of code only if a certain condition is met.
Each programming language provides you with several language features to control your program’s flow of execution.
Data types and type systems: Every program works with data, and stores the data in the memory at runtime. Each data piece in the memory is called a data object. Many programming languages associate a type to each data object – known as data type. The data type defines the type of value a data object can store (like a number, string, boolean, etc.).
Additionally, it defines what operations are allowed to be performed on the data (for instance, you won’t be allowed to divide two strings!).
Type system is a component of the language compiler or parser that enforces the data type rules.
Functions: In a computer program, a function is a sequence of instructions encapsulated as one reusable unit. Functions help you avoid writing the same set of instructions (for the same purpose) throughout your program. In this case, you just invoke the function, and the instructions are executed. Just like in mathematics, a program function receives parameters and returns a value. Programming languages provide many built-in functions via their standard library, but they allow you to create your own functions too.
What programming language should I learn?
What programming language to choose depends on what industry you’re planning to get into.
If you need to build efficient (and data-intensive) applications, you may choose C++, Rust, or Java.
But if you have a thing for data science and machine learning, Python, R, and SQL are among the best options.
However, if you have multiple options and wondering which one to learn first, there are multiple factors to consider.
Quincy Larson, the founder of freeCodeCamp.org has written a comprehensive article on what programming languages you should learn first in 2022.
Quincy believes the job market and the simplicity of the language are what you should consider when prioritizing learning a programming language.
I like his perspective! No programming language is generally better than the other. It all depends on what your goal is.
I’d like to add two other factors to Quincy’s list:
Community: With an active and supportive community, you’ll never be on your own. You can always reach out to your community on Github, Stackoverflow, or other communication channels when you have a question.
Ecosystem: Frameworks make languages popular. They are convenient abstractions to help you do more with less code. In addition to frameworks, the development tools available in your programming language improve your productivity.
For instance, the PHP community has a vast echo system. Laravel and Symfony components have made PHP fun for web development in the last few years. The Laravel community – in addition to its legendary framework – has over 15 tools & packages, which provide effective solutions to common problems.
What programming languages are popular among web developers?
The table below contains the top 11 programming languages, with the average salary of programmers who have one of these languages in their skill set:
|Programming language||Average salary|
What websites to learn to code
The Internet is full of educational content. But how would you tell good content (that’s worth your time and money) from a not-so-good one? In this section, you’ll find out how.
No single website provides a one size fits all solution. Their content creation strategy targets a specific audience. On the other hand, different websites aim to solve problems their competitors don’t. That’s the only way to get a share of the Internet traffic!
Some websites are great to get started, some teach you tricks, and some provide a platform for communities. You usually use them depending on what you’re looking for.
Luckily, Google search is smart enough to guess your intent and provides you with the most appropriate suggestions.
Websites to get started
Some websites create beginner-friendly content. On the other hand, their target audience is new coders.
freeCodeCamp.org is a non-profit organization founded in 2014 in California, by Quincy Larson – a former school director and now a software developer.
More than 4,000 volunteers contribute comprehensive guides to freeCodeCamp.org. In a podcast, Quincy summarizes his motivation as:
“freeCodeCamp is my effort to correct the extremely inefficient and circuitous way I learned to code. I’m committing my career and the rest of my life to making this process as efficient and painless as possible. All those things that made learning to code a nightmare for me are things that we are trying to fix with freeCodeCamp.”
In addition to the guides, you’ll have access to project assignments you can choose to complete alone or pair up with a fellow community member. You can also get a certificate in the end.
Over 40,000 freeCodeaCamp.org graduates (since 2014) have found jobs in tech companies including Apple, Google, Microsoft, Spotify, and Amazon.com.
Websites to get a certificate
Although certificates aren’t a requirement when you look for a job, they are resume boosters!
You might be thinking to yourself, now that I’ve allocated many hours to learning a technology, why not get a certificate in the end?
Luckily, there are many platforms (free and paid) awarding their graduates certificates of completion.
Codecademy: CodeCademy is an interactive platform that offers free coding classes in various programming languages.
You can join Codecademy, with zero programming experience, and have access to a variety of topics:
- Web development
- Mobile development
- Game development
- Data science,
- Machine learning,
- and more
Visit their full catalog here.
According to their website, 50 million learners have used Codecademy; Each with different goals such as building a career, building a skill, learning a programming language, or just exploring a subject.
Even though it’s a paid service, you can take basic courses for free, and upgrade for more.
The Codecademy Pro plan gives you access to personalized learning paths, tools, and quizzes to speed up your learning process. The Pro plan also provides you with real-world projects to practice the skills you’re learning in realistic scenarios.
But is Codecademy worth it?
For 17.99/month ($13.99 if paid annually), I’d say it’s an affordable service. And you can cancel anytime.
One of the most interesting sections of Codecademy’s website is Learner Stories, where you can find interviews with Codecademy graduates. From yesterday’s chefs, pianists, and architects to today’s professional software engineers!
Pluralsight: According to their website, 70% of fortune 500 companies use Pluralsight to improve their employee’s tech skills. Pluralsight also does a skill assessment to get you a personalized learning path.
You can try the PluralSight product for free for 10 days to see if it works for you. They have two subscription plans: Basic for $26/month. And Premium for $39/month.
The basic plan contains over 2500 courses to improve your technical skills. With the premium plan, however, you’ll have access to the full catalog (+7000 expert-led courses) – including more advanced courses and niche topics.
On both plans, you’ll have access to the Pluralsight community, offline viewing, badges, recordings from the latest tech conferences, learning paths, exercise files, guides, and mobile & TV apps.
The key strength of Pluralsight is Labs. Labs are secure environments from real-world platforms, where you can practice in the actual environments. On the other hand, you’ll learn by practicing in secured but real-world scenarios and won’t have to wait until you get hired and experience it for yourself. As of now, Pluralsight has over 950 labs including AWS, GCP, and Azure, IT Ops, security, data, and software development.
And when labs are used with the Certification Prep program, you’ll be on your way to picking up any certification you need; From AWS to Cisco. Your entire certification journey will be in one place.
Needless to say, you’ll get PluralSight’s certificate of completion as well.
Websites to get help from the community
Stack overflow: StackOverflow is an award-winning question and answer website for coders and features questions and answers on a wide range of topics in computer programming.
Based on Stack Exchange, as of June 2022, Stack Overflow has over 18 million registered users and has received over 23 million questions and 34 million answers!
You’ll probably visit StackOverflow a few times a week – usually via the Google search results page. Many programmers reach out to their community on StackOverflow whenever they encounter an issue.
Thanks to the variety of solutions, and StackOverflow’s voting system, you can always find the best answer to your questions.
Github: Github is a platform commonly used to host open-source projects and to facilitate the version control and issue tracking aspects of software development.
Most open-source libraries are managed on Github – from Linux source code to React.js or Laravel.
One of the great features of Github is the feature request and bug tracking tools. If you’re using an open-source package in your project, and you encounter an issue, you can always reach out to the package maintainers (or the users) on Github to find a quick solution.
Github was acquired by Microsoft in 2018.
Best books to learn to code
When it comes to details, nothing can beat books! Books are great resources for learning the ins and outs of a software development technology.
Hundreds of books have been published on the topic of programming, but I’ll just introduce two classics in this post.
Clean Code: Both good code code and bad code work! But bad code “can bring a development organization to its knees”.
A bad code isn’t maintainable, readable, and testable as its components are highly dependent on each other, and a small change in the code by a new member might break the whole system.
Clean Code is written by the well-known American software engineer Robert C. Martin (Uncle Bob). It has many examples, case studies, and programming best practices to help you write clean code from day one!
Head First Design patterns: A programmer’s daily job is to build solutions to various problems. In software development, a design pattern is a general solution to commonly-occurring problems.
Knowing design patterns help coders reuse solutions that have been used and tested by other computer scientists and engineers.
Head First book series, known as brain-friendly guides, simplify complex concepts in visually rich formats. This book is suitable for beginners and advanced programmers.
If you get the fundamentals down, and be consistent, you’ll be coding in no time.
I hope this guide could give the glimpse I promised at the beginning.
I’m also on Twitter (@rlavarian) in case you have any questions or comments. I’d be happy to hear from you.
Thanks for reading!
If you read this far, you can tweet to the author to show them you care. Tweet a Thanks
Never miss a guide like this!
Join the DWD mailing list for your weekly dose of knowledge! This mailing list is for doers and thinkers. If you're a curious person, you might find it useful, just as 2,000 other devs do!
Disclaimer: This post may contain affiliate links. I might receive a commission if a purchase is made. However, it doesn’t change the cost you’ll pay.