Listen... Remember that friend who convinced you to sign up for bungee jumping / parachuting / zip lining or something that you've always been too afraid to try?
But then you finally did it and you are so happy your friend gave you that little nudge you needed. That's my goal here. I'm going to be that friend for you.
I'm going to challenge you to venture outside of your comfort zone and convince you why you should learn to code, no matter what your background or current situation is.
And at the end of the post, I'm going to give you a fun little 21-day challenge so that you can see for yourself if programming is for you.
Whether you are a high school student, a recent university graduate, or a working professional who's looking for a career change, this blog post is for you.
Not new to programming but don't know what steps to take?
If you're already convinced that you should learn to code but are just struggling to make it happen then this post probably isn't for you.
But what you should definitely do instead is check out these Career Paths and this Tech Career Path Quiz. They will give you a step-by-step roadmap to take you from any level or background to getting hired and/or advancing your career in the tech industry.
For everyone else, my assumption is that you are still early in your coding journey or haven't even started at all but you've read or heard statements just like this one hundreds of times:
"With the rise of the digital economy and the increasing demand for software developers, now it's the perfect time to join the tech community, become a developer, earn as massive salary, work from anywhere and future-proof yourself."
You're thinking that the idea of making a lot of money and working from home in your pyjamas sounds pretty damn good. I would agree 😅!
After hearing statements like that enough times, your curiosity has finally got to you and now you're here, reading this post and trying to figure out what the heck software development even is and if you should actually even bother with it.
You're also probably at the stage where you have endless questions like:
And many many more.
But you've started typing those questions into Google and you are bombarded with an overwhelming number of search results.
Even before you take your first step, you are already stressed out by information overload. You're more confused than ever.
After hours of searching and reading online articles, you are still asking yourself:
"Software Development sounds like a really promising career but is coding REALLY for me?"
Does this sound like you? If so, you've landed on the perfect post (I hope!).
By the end of this post, I am going to try and answer as many of those questions as possible and if I do a good job, I will hopefully convince you to try learning to code for one hour a day for 21 days.
The job title seems self-explanatory, right? You would think so. But many people still think Software Developers are hacking the internet or fixing broken computers, TVs, and any other consumer electronics.
This is my face when people ask me questions like that.
Let's talk about hardware versus software for a second
Computer hardware is the physical components of a computer that you can touch, punch 🤛, and throw away. (e.g. Your computer monitor, keyboard, mouse, etc.)
Software are the intangible programs and applications installed on your computer hard drive that allows you to perform different tasks. (e.g. The Internet browser you are using to read this post right now!)
So, what is a Software Developer?
Just think about your everyday life.
None of these things would be possible without Software Developers.
They are the people who write the software (also sometimes referred to as "code") and work tirelessly behind the scenes to create functional programs, apps, web pages, and operating systems.
Developers are also responsible for documenting features, testing, debugging, and optimization.
And they need to work collaboratively with designers, marketers, project managers and other IT professionals. So yes! Communication and interpersonal skills are really important skills for Software Developers.
Contrary to popular belief, Developers aren't just nerds talking about tech stuff and video games all day long (maybe some of them are! 😆).
Developers don't know everything so we spend a lot of time searching for answers and solutions. If you like puzzles, then you'll love being a Developer.
You will also become a master at "Googling". You'd be surprised but this is actually a real skill. The better you are at asking the right questions and leveraging advanced features search engines have, the more efficient you will become at solving problems.
Instead of overwhelming you with jargon and Wikipedia-styled definitions (Boring 😴), I want to give you a quick overview of some of the most common job titles and explain them in plain English!
What does a Web Developer do? Web Developers build websites. Facebook, Twitter, Youtube, Netflix, and 1 billion more websites are built by 1,000s of Web Developers.
On most job searching websites, you will also see many other job titles that are variations of Web Developers. I'll explain common ones at a high-level:
What does a Front-End Developer do? They make sure that websites and apps look great on all devices.
Front-End Developers focus on the look and feel of websites and apps. They implement designs and create interactive elements. They make sure that the website has a great user experience (ie: is easy to use). They make sure it's a great experience across all different types of devices (phones, tablets, computers, etc.).
Most of what you see and interact with is all within the scope of a Front End Developer's job. Fonts, colors, sign-up forms, page layout, navigation bars, drop-down menus, etc.
What does a Back-End Developer do? You don't necessarily see the work of a Back-End Developer but they play a crucial role in supporting the front end and make sure everything runs smoothly.
Here's some examples of things a Back-End Developer has to answer and write software for:
The way I like to think about front-end vs. back-end... is to look at my beautiful SOCKS!
Fun and beautiful on the outside (Front-end) & messy but systematically woven threads on the inside (Back-end). Both are important!
What does a Full-Stack Developer do? If you've been following along, you might have correctly guessed that Full-Stack Developers have the skills to complete both front-end and back-end tasks and projects.
Let's take a quick step back. We first need to define JavaScript.
JavaScript = one of the most popular programming languages used by both front-end and back-end developers.
Ok great, then what the hell is React / Vue / Angular? Very fair question.
Think of React, Vue and Angular as different "add-ons" (aka frameworks or libraries) that make JavaScript a little easier, maybe give it some extra powers, etc.
So someone who is a React / Vue / Angular (or some other framework / library) Developer basically just means they are focused on writing code specifically using that particular framework or library.
Even if these frameworks aren't in the job title, you will often see them mentioned in job descriptions or requirements especially for Front-End Developers. There are many other frameworks for front-end and back-end developers to use but these are the most popular front-end ones.
You don't need to know everything right now, but at least remember these icons.
This is an easy one. Every app you are using on your smartphone right now exists thanks to Mobile App Developers.
Mobile App Developers have to consider hardware specs (eg: iOS vs. Android) to make sure apps work on all different phones which is why you often see titles such as Android Developer and iOS Developer.
Seriously though... you have to build a completely different app for Apple and Android phones?!
Not necessarily. In recent years, the React Native framework has gained tremendous popularity and community support because it allows developers to use the same source code to build apps for both Android & iOS.
😕 Huh? What does that mean? No worries, check out these three free videos about React Native History from the Zero To Mastery Complete React Native Developer Course.
We're back to jibberish again! DevOps is short for Development & Operations. These folks help bridge the gap between Development and Operations to automate processes and increase a development team's velocity.
In plain English, they help do things like automate repetitive manual tasks and ensure all different tools and systems are properly working together.
Think of it as the intersection between Software Development (Dev), IT operations (Ops), & application delivery.
If you still have no idea what I'm talking about and want to learn more, read DevOps Job by Redhat and this article titled How to become a DevOps Engineer.
I'll try to summarize one more time:
A DevOps Engineer enables products to be released and updated quickly by removing barriers between development and deployment.
They introduce processes to balance the need throughout the entire application lifecycle (coding, deployment, maintenance, and updates) and collaborate with developers, system operators, admins, and IT operations staff to ensure that everyone is on the same page.
Phew! That was a tough one.
Ever played a video game? Great, you know what a Game Programmer is! They turn video game concepts and ideas and turn them into actual games.
Here's some more reading:
Here's a quick summary from the links above:
Game Programmers are the ones that create the coding engine that drives the game. They create a fully functioning game and work closely with producers, game designers, and artists.
Depend on the size of the project and company (commonly referred to as a studio), a game programmer might be specialized in one area or they could work on a wide variety of elements. For example, an audio programmer could be someone who only focuses on connecting sounds to certain actions or events.
"I don't want to type 110001000101010010 into a black box and stare at a computer screen all day long".
I hear you! Honestly, I used to think coding was tedious and boring too but I was wrong.
The first time I looked at the following code snippet a few years ago...
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
My reaction was:
"WHAT DID I JUST SEE?! Nah, Coding is not for me. BORING. Hate it."
Sorry, Java (another programming language), but I didn't have a good first impression of you! My brain immediately rejected the possibility of learning to code. I didn't even try to find more information about what this was all about.
Side note: Here is an interesting piece about how humans are terrible at predicting future feelings!
Honestly, for a very long time, I even thought Java is the same thing as JavaScript. 😅
At least I think my logic was reasonable. You know the way we say congrats when we don't want to say the entire word congratulations.
I thought people were just being lazy. (Again, I was totally wrong!)
You can look up the differences between Java and JavaScript, but all those technical terms won't make any sense to you right now.
Let's just say Java is to JavaScript as the moon is to honeymoon 😜.
So if you learn nothing else from this post, you now know that Java is NOT JavaScript!
Sorry, let's get back on track here. I'm supposed to be convincing you that coding isn't boring.
Thanks to a Statistics in Psychology course I took during my undergraduate studies, I was exposed to programming for a second time. This time I was blown away by the power of the R programming language which is used for data analysis and visualization.
If you are curious about how I got here, you can read more about my coding journey from a psychology graduate to a developer.
The short story is that this experience prompted me to search for more information and I stumbled upon Zero To Mastery's Complete Web Development Bootcamp Course.
Very quickly my attitude toward programming made a U-turn from "I have zero interest" to "I freaking love it". The more that I explored the Web Dev World, the more interesting and exciting it became!
Aren't you curious about how the Dark / Light mode works on websites? Or how it's possible to make cool transition animations?
And actually be able to put these things on your own website that you built yourself? What about building your own online store?
Coding was definitely not "love at first sight" for me, but I'm glad I gave it a second shot.
So is coding boring? It's not necessarily for everyone but it's definitely not boring. And it's a valuable skill to know whether you want to do it full-time or not.
Don't be like I was and run away when you see code for the first time. Give it enough of a try before you reject the possibility of discovering a whole new world!
Follow the Instructions Below:
Windows User:
Macbook User:
<h1> Hello World </h1>
<h3> My To Do List</h3>
<ol>
<li> Finish this article </li>
<li> Take the 21-day challenge</li>
<li> Eat well and sleep well </li>
</ol>
<br>
<h2> Color picker: </h2>
<input type="color"/>
<br>
<h2> Date picker: </h2>
<input type="date"/>
C'mon, admit it... That is pretty darn cool! You didn't even have to install anything and it took you 60 seconds.
... Too old? Not smart enough? Not good at Math?
What do these statements have in common? They are self-defeating beliefs and a closed mindset. I'm going to show you why they are totally irrational.
Here are some amazing stories if you consider yourself "too old" to learn to code:
I think you're getting the idea but here's one more.
This Zero To Mastery student talks about her journey of completely changing careers and becoming a Software Developer at 38 years old.
You can learn how to write some code no matter how old you are. Maybe you won't absorb new information as quickly as your 20-year-old self, but you can definitely do it.
Because if not now, then when?
Don't let your age get in the way. Whoever told you that you are too old (or too young) to learn something new - prove them wrong!
And if you need some extra support along your journey, come join the Zero To Mastery Developer Community on Discord.
Your effort, hard work, and dedication outweigh your intelligence.
In addition, no one is expecting you to build a social media platform or a large-scale web application from scratch.
Every master was once a beginner, just like you.
If you are a problem solver and logical thinker, hooray, this industry needs more people like you!
Need more motivation? Think you're not smart enough to work at Google?
Do you know addition, subtraction, multiplication, and division? Great! You don't need anything more than that to get started.
Coding is NOT about memorizing and applying mathematical formulas.
It's about logical thinking and problem solving.
If you decide to pursue a career in Machine Learning, you might feel discouraged by the prerequisites to get started. But here is a nice, short post where Madeline Caples shared her thoughts on 'Do you need math to get started with Machine Learning'.
Whatever you think that X factor is (age, intelligence, mathematical ability, etc.)... pause for a second to think if it's really rational. Now throw that unhealthy assumption away!
Stop beating yourself up or making excuses and just start trying.
Coming from a non-technical background and keeping up with these whiz kids coming out of fancy colleges with CS degrees might seem like a disadvantage.
However, you are not a blank slate. You have something they probably don't have. You've got 10+ years of awesomeness and X years of education and/or work experience in other fields.
The biggest barrier to get into this industry (other than your mindset) is probably the job posting itself (which often lists bachelor's degrees in Computer Science in the job requirements).
This doesn't mean you can't get a job as a software developer without a CS degree.
In fact, here is a freaking awesome story of how Jessica got a Web Developer job without a CS degree (If you love video games, this is a must watch 😍).
Here's another story from a website that is entirely dedicated to telling stories of people switching careers and getting hired as programmers without Computer Science degrees. Last we checked, they've done 150+ stories. There are some incredible reads on there.
As long as you are willing to put in the hours to gain those technical skills, continue learning, and broaden your network of connections, you will eventually find a position for yourself.
Sure, it won't be easy, but every baby steps toward your goal will give you a feeling of momentum.
Thankfully, unlike doctors or lawyers, becoming a software developer doesn't require you to spend $100,000+ on school, pass a standard exam and get a license.
Imagine a doctor saying, "I'm a self-taught doctor. I've watched hundreds of hours of online tutorials and operated a few surgeries with the latest AR (Augmented Reality) and VR (Virtual Reality) techniques. Yeah! You can trust me!" 😳
The key message here is: You don't need to study for 4 years to learn computer programming. And YES, you can become an awesome developer and get hired whether or not you have a CS degree.
Still don't trust me eh? Here is a screenshot from Google's official hiring guide.
"No, a CS degree isn't required for most of our software engineering or product manager roles." - Google
If Google doesn't even have this as a requirement and they can hire the absolute best of the best, I think you have a great chance.
I know I know, taking that first step is always the hardest and you are still not sure if this is the right move. Well, let me answer a few questions you probably have in mind.
Social aspect:
You will join a massive online community and have the opportunity to expand your social circles through your creations (websites, apps, blog posts, etc). And you will meet some incredibly talented individuals in the tech community.
You will be equipped with the knowledge to have a meaningful conversation with developers. So the next time if anyone throws technical jargon at you, you know what it means.
Personal development:
Your problem-solving and critical thinking skills will improve as you learn to take a holistic approach to analyze problems and consider different solutions and tradeoffs.
You will gain more insights into how technology works and see the world from a new perspective.
Writing code is also a form of expression and a fantastic way to unleash your creative side.
You've probably heard of that guy Beeple who sold an NFT (non-fungible token)... aka digital art for $69,000,000 🤯. Pretty creative.
You can create anything your mind can come up with. And it's right at your fingertips. BEST FEELING EVER!
Last but not least, you can relate to the programming memes and jokes and your level of sarcasm will boost by 200%.
Get hired. Make money:
Ok, this is probably the most obvious one.
You can use these skills to make a lot of money. Programmers with only a few years of experience commonly make over $100,000 / year. And there are thousands and thousands of jobs available.
Or you just use your new skills to make a little side income.
Even if you're currently in another role (marketing, support, etc.) at a company, you can make yourself infinitely more valuable by adding programming skills to your tool belt.
Build your own projects:
Already have a business? Imagine all the things you can do to grow your business by being able to create your own websites and apps.
Hiring developers is expensive (see the point above about being able to make good money) so being able to code yourself means you can save a lot of money. Or at the very least, make sure you're not getting overcharged.
Your definition of a good career choice is probably different than mine.
But here are the 2 indicators I look at:
Job prospects:
Let the numbers speak for themselves.
From 2019-2029, Software Developer jobs are projected to grow a whopping 22 percent (versus 4% for all jobs). With an increasing demand for computer software, the tech industry NEEDS YOU!
According to a survey by Linkedin, hiring for specialized engineering roles grew by nearly 25% between 2019 and 2020 amid the pandemic. Crazy right!?
Job satisfaction & flexibility:
Writing code to solve problems is a rewarding & fun activity that allows me to enter a state of flow. It's like getting paid to play a video game.
In terms of flexibility, as long as I have my laptop and a stable Wifi connection, I can work whenever and wherever I want... I mean, working in pyjamas? Heck yes!
If you enjoy learning new things every day and solving problems, this could be a great career option for you too.
Great question! The possibilities are infinite. Here are a few examples:
You won't know until you give it a try!
This is exactly why I decided to create a FREE 21-day coding adventure just for you. You will only need to dedicate ~1-2 hours a day for less than a month.
In that short time, you will learn the basics of HTML5, CSS3, JavaScript, and build FUN projects that you can show off to your family and friends.
And, you will learn how to publish your very own website.
There's no email signups or anything. If you're up for it, just head over to the 21-Day Coding Adventure Website to start learning and having fun.
You've got nothing to lose!
Maybe you'll hate it. But maybe you'll LOVE it. If you don't like it, you still gain some valuable skills and insights into the Web Dev world. I'm sure you've spent 21+ hours in worse ways 😉.
Your Friend: "Wow, [Insert Your Name Here], I didn't know that you can code. That's so impressive!"
WOOO! That's amazing news. I've got you covered. Take the ZTM Tech Career Path Quiz.
Within a few minutes, you'll get a personalized step-by-step roadmap to follow to reach your dream goals.
By the way, you can also accelerate your learning and have fun along the way, just like Cindy by joining the Zero To Mastery Academy.