How many times have you thought you'd like to learn how to code but were discouraged because it looks like an alien language?
Seriously. It doesn't even look "foreign."
It looks like it was written by a far more advanced species.
It doesn't have to:
This reality is, learning how to code will increase your value in the job market.
People fear what they don't understand...
which keeps the world of programming and coding filled with a fairly elite crowd of wonderful and intelligent people.
You could be one of them:
When you learn something that most people can't understand, your market value improves.
It really is as simple as that:
Once you learn how to code, you'll have access to a secret world that most people don't even know exists.
What Is Computer Programming?
"Talk is cheap. Show me the code" ~ Linus Torvalds
Before you can learn how to code, it's essential first to understand the concept of computer programming.
Computers operate using two things: hardware and software.
The equipment only works when the software (comprised of code) tells it to do something.
Software, also called programs, is a collection of code designed to execute to achieve a specific outcome.
For example, a printer will not print unless directed by a program to do so.
Think of the function of a computer program like the electrical impulses our brain sends throughout our body, leading it to move.
Computer programmers learn how to code to either solve problems or perform a task.
What does that really mean?
The end goal for programmers is always to create something.
"Measuring programming progress by lines of code
is like measuring aircraft building progress by weight."
~Bill Gates
For example, it could be a new process that patches an existing problem, a web page, a video game, or even a pretty picture.
The possibilities of code are almost limitless, which is why people often describe computer programming as a mix of science and art.
Why?
Because while there are technical and analytical components involved, there's also lots of room for creativity.
Now:
Think of programming languages as you would different languages around the world.
Programs can use different languages that organize and execute code in different ways, much the same way as human language organizes words, thoughts, and concepts differently.
Coding versus programming: the raging debate
Since computer programming isn't confusing enough for beginners...
the experts in the field decided to start a discussion over what it means to learn how to code versus write programs.
But we can simplify that:
Essentially, for the sake of your future, consider them not interchangeable, but more like companions.
But that's not important right now. What is important, however:
Learning How To Code Teaches You The Coolest of Things
Front-end process - The front-end is just like it sounds:
What you see.
The front-end runs on basic code. It displays what the program running the webpage tells it to display.
The back-end is the site engine.
It's made up of programs and processes that work like an orchestra conductor, telling the front end what to show, rather than how to show it.
That's not all:
Algorithms are those cool things that make everything go. They're mathematical processes that use raw data to determine what you're going to see and when.
Algorithms run everything from the types of information you see in your Facebook feed to what types of products to display that suit you best for shopping.
Think of them like recipes that tell a computer exactly what steps to take to solve a problem.
Keeping it simple
Here is an easy way to think of the difference between back-end and front-end processes:
The processes are like a dishwasher: The dishwasher itself is the back-end, doing the work and preparing the contents.
The algorithms are the buttons that tell the engine what kind of load and how dirty it is.
The clean, finished dishes are the front-end, polished up and ready to go.
But...It Looks So Complicated
You've probably seen all of the different types of languages out there.
Don't worry about that too much:
When you learn how to code, you'll need to decide which languages to learn.
If you listen to Steve Jobs, coding is about more than just the language you learn...
it's about learning how to think creatively:
Don't let the language barrier hold you back
You're going to learn the basics when you learn how to code.
The course you take will give you a place to begin.
Once you've settled in and have the basics, there will be choices to make.
But they're such cool choices:
Do you want to build programs or do you want to build pages? Are you a mover or a designer?
Maybe you're both. But this is the important thing!:
Either way, you're going to have cool choices of languages to learn.
- JavaScript is a front-end language considered one of the friendliest programming languages for beginners.
- Java is most commonly used for things like building databases and Andriod apps, making it a back-end language.
- Python is a high-level language considered one of the less difficult languages to learn often used for incredibly complex tasks.
- Swift is a great language to learn if you're interested in Apple products and developing mobile apps on that platform.
- C is a tough to learn remnant of the 1970s and is still alive and kicking around today.
- C++ is the object-oriented succesor to C and considered to be a better option for developing higher-level applications.
- PHP is a server-side scripting language that powers at least 83 percent of websites, but also a critical back-end tool for media giants like Facebook, Yahoo, and Wikipedia.
- TypeScript is best described as JavaScript with superpowers, able to support large-scale applications.
- Shell is another language that's been around since nearly the stone age of computer programming, used to execute programs and more
- Ruby is the backbone of the popular Ruby on Rails web application framework.New programmers often start with Ruby due to its incredible reputation of having one of the friendliest and most eager to help user communities. Tech businesses like Airbnb, Twitter, Shopify, and Bloomberg, as well as countless other startups, built their websites using Ruby on Rails at some point in their development.
But - What's new and exciting?
Rust is considered somewhat of an upstart within the greater programming community.
Here's what that means:
According to Overflow's 2018 Developer Survey, developers voted Rust as the most loved programming language for the past three years in a row.
Rust was developed by the Mozilla Corporation, the company behind the open-source web browser Firefox.
The Exiting Career Paths for Programmers
Before you learn how to code, experts recommend learning about the different programming career paths available and the specific educational requirements for each job.
Here are some of the top programming jobs on the market:
Fun fact:
"Hackers" aren't all bad. Some coders, known as "White Hat Hackers," learn how to code like a hacker so they can build better programs for protection.
App Gods (Mobile application developer)
Mobile Application Development is one of the fastest growing programming fields in the world.
ZOOM!
Hundreds of millions of people on the planet have a smartphone these days...
and the number of applications produced each year only increases.
This field is also an excellent option for entrepreneurs looking to create a mobile game or other application and make a fortune.
If you're an entrepreneur looking to develop the next multi-million dollar app...
first, make sure you are creating something the market wants.
Otherwise, you may be a bit disappointed when your grass growing racing simulator called GRASCAR mysteriously fails to become the next Pokemon Go.
The Go-to Person (Graphics programmer)
A graphics programmer has one of the safest jobs in the tech industry. That's because nearly every team needs a graphics programmer.
Keep this in mind:
Learning graphics programming takes a lot of practice and effort.
It also requires learning a broad base of knowledge, especially in mathematics.
What that means to you:
Expect to put in lots of programming time and to study the latest graphics techniques which become more complicated every year.
This reality particularly holds true in the PC and console gaming industry.
Technical Leaders (Applications architect)
As an application architect, you would create plans for the technical implementation of a software project.
What does that mean for your future?
You're a hot commodity!
Businesses depend on applications more and more each year to grow.
However, each year applications also become more complicated to build and implement.
Therefore, the demand for this niche is on the rise.
In some organizations, with smaller teams, the applications architect may have to fill the same role as the lead applications developer.
The sky's the limit! (Cloud computing analyst)
Cloud computing analysts manage cloud-related infrastructures such as applications, hardware, and software.
What does that mean?
As subject matter experts, analysts have to train other staff and troubleshoot end-user problems that could arise within their organization.
You'll need a lot of patience as managers may ask you about putting piles of stuffed folders in "the cloud."
'Bot Wrangler (Machine learning specialist)
These specialists can create and maintain code for all kinds of hardware such as robots and self-driving cars.
Yes, it's that cool!
Machine learning specialists mainly work in cutting-edge technological fields like Artificial Intelligence (AI).
What you'll need:
You'll need to learn a wide variety of different skills for this job:
Making website design functional (Web developer)
Web developers maintain and create web applications. This field is often confused with web design.
Here's the deal:
Web designers create the website's design, and developers make the design functional.
This field has a lot of branches to choose from, and the exact type of work you do will depend on the programming language or languages you've learned.
Coding for efficiency (PLC programmer)
A programmable logic controller (PLC) is a computer that controls a machine process, such as an assembly line.
What it means for you:
A programmer in this field must ensure consistency and identify faults quickly.
Companies employ PLC programmers to code their systems for optimum performance.
Be detail oriented:
Unlike a graphics programmer, creativity with code tasked with running multi-million dollar machines is not likely to be very high on the employer's list of qualifications
Rock solid 'base making (Database developer)
A database developer, also known as a database programmer, is mainly responsible for implementing and creating computer databases.
Honestly, there's not a lot of excitement in this field, folks...
but it is another rock-solid programming field with plenty of demand.
That makes it a good option for you.
A database developer usually works within a corporate IT department in any industry. If you learn how to code, keep this career prospect in mind.
Income Scales For Programming Jobs
Job Lowest Average Highest
Mobile Applications Developer $63,000 $93,000 $120,000
Graphics Programmer $45,000 $72,000 $102,000
Applications Architect $97,000 $124,000 $158,000
Cloud Computing Analyst $59,000 $70,000 $92,000
Machine Learning Specialist $38,000 $58,000 $80,000
Web Developer $50,000 $75,000 $117,000
PLC Programmer $44,000 $64,000 $95,000
Database Developer $69,000 $89,000 $116,000
Here's the Rub:
Before you learn how to code, it's essential to consider a few factors.
For example:
time, equipment, patience, and temperament are all things that can have an impact on your career.
Programming can be as rewarding as it is challenging. However, just as in programming code, it's always better to see the bigger picture before committing to a career path.
“There isn’t going to be this one point in time where everything fundamentally changes and you’re a fundamentally different programmer…
The fact of the matter is you shouldn’t be counting the hours and you shouldn’t be expecting that at one point in time you’re going to be a fundamentally different developer.
If you want to be able to contribute to a startup you’re going to have to learn every single day that you’re in the office.
And there’s not going to be this magical moment where you feel “Oh my God. Everything has changed.”
~Ken Mazaika CTO and co-founder of FireHose
Patience and temperament
Before you can learn how to code, you must first make sure you have the right mindset for programming.
This is important:
According to Laurence Bradford, a self-taught coder, and owner of the Learn To Code With Me Blog, a person needs at least five personality traits to be successful at coding.
Those traits are patience, courage, passion, creativity, and logic.
Fun fact
Steve Jobs and Steve Wozniak were teenagers when they decided to learn how to code. They developed the game "Breakout."
The Five Traits
Patience
This is perhaps one of the most obvious traits.
Because when it comes to coding, you'll need it to weather long hours of frustrating debugging.
That's not even all:
You have to be patient with the learning process, but most importantly, you have to be patient with yourself.
You're going to make a ton of mistakes, and you'll likely continue to make many more mistakes throughout your career
Failure
This trait can create growth, which can lead to succes...
But you must first be patient enough to find the lessons in your failures.
To learn how to code is intimidating, especially when you're staring at thousands of lines worth of code. Trying to understand the alien look of a programming language will feel impossible at first.
There will be times when the process will feel overwhelming.
Despite that, if you dare to risk failure, you'll be able to reap the lessons you need to learn valuable lessons.
Passion
This is that burning desire, fueled by your motivation, to keep coding deep into the night.
That's passion:
If programming sparks this burning desire to learn within you, then success is an all but inevitable conclusion.
Creativity
That is something you'll need to think outside the box when faced with different programming puzzles.
The best part:
There are so many creative solutions to most of them!
The best part:
There are so many creative solutions to most of them!
Logic
This is the last trait. And probably the most important:
You must be able to understand the basic rules of logic under which computers operate.
Despite how you may feel when a 9,000 line program fails to execute, it's not because the computer or program hates you.
Though that's the way it feels at the moment.
Somewhere within that code, there was a failure of logic...
t's at that moment the other traits need to kick in so that you can do the work to debug the code and restore logic.
So How Long Does It Take to Learn How to Code?
That answer largely depends on you and which programming language that you chose to learn first.
According to Kevin Ng, tech lead at Wildebeest, learning how to code is a subjective process.
Tech careers are notoriously flexible and follow non-conventional rules, which also include learning timetables.
However, Ng does believe a person can learn the basics of coding in as little as three months.
The 10,000 Hour Rule
Sociologist and Journalist Malcolm Gladwell spoke about the 10,000-hour rule in his 2008 book titled "Outliers."
The rule suggests that if you deliberately practice something for 10,000 hours...
you will become an expert.
But here's the thing:
This concept was first introduced by K. Anders Ericsson, a Swedish psychologist, and Conradi Eminent Scholar and Professor of Psychology at Florida State University.
If you break it down, 10,000 hours is about 20 hours a week for ten years.
However:
Over the years, people continue to attack the 10,000-hour rule because of its perceived over-simplification.
There are other factors to becoming an expert other than just practice.
Often, critics of this rule seem to miss the point. Thankfully, our friend Bill Gates, founder of Microsoft, nailed it in this interview:
You shouldn't let the concept of learning programming for 10,000 hours scare you, but instead let the process of the grind excite and motivate you.
Along the way, you'll have both minor and major setbacks...
But you'll also have your share of victories.
Victories Matter.
Once you experience one winning moment, you'll want more, creating what's called a "feedback loop."
This loop takes place when you allow your victories, no matter how small, to motivate you to chase after more victories.
In the end, the loop is a non-stop circle of win.
The raging equipment debate
Many programmers use Mac computers because of the user-friendly interface and excellent support for software development.
Macs are great for developing most types of mobile and web applications.
Windows PCs generally don't offer the same intuitive user-interface as Macs.
Don't worry:
If you hate Mac, you can still use PC:
Windows PCs
The good news for Windows PC users...
if you want to learn how to code, you don't need to go out and spend a lot of money on a new computer.
In fact, Harry Chen, co-founder of Altcademy, suggests that if you have at least the following hardware setup, you should be just fine to start coding:
- CPU: at least a 1.8-Gigahertz dual-core Intel Core i5 or better (note the CPU is usually not the bottleneck issue when coding)
- Graphics Card: a standard, a lower-end to mid-range card should work just fine in most cases
- Storage: Having at least a 128-Gigabyte Solid-State Drive is highly recommended (these drives feature incredibly fast read-write times which is essential when coding)
- Memory: at least eight-Gigabytes of RAM (four Gigabytes can also work, however, at least eight is ideal)
Also, there's no difference between working on a desktop or laptop other than whichever device works best for you.
Not one, but here is a difference from the image you want to see:
Often, you'll see a lot of stock photos featuring programmers with two and three monitors filled with code, looking like they're out to break the Matrix.
Chen recommends using a single screen to code if you're working from a desktop...
it allows you to focus more without distractions.
For a desktop, he also recommends a widescreen 25-inch monitor, however, this is also a matter of personal taste.
Keep in mind:
If the screen is too big, you may lose productivity, as your eyes will have to travel more causing more stain and fatigue.
No 'One Right Way' To Learn To Code
Unlike traditional professions, it is possible to learn how to code using a variety of different methods and platforms.
The best way to prepare [to be a programmer] is to write programs, and to study great programs that other people have written.
In my case, I went to the garbage cans at the Computer Science Center and fished out listings of their operating system.
~Bill Gates
Unlike traditional professions, it is possible to learn how to code using a variety of different methods and platforms.
For example:
you can learn how to code by taking online classes.
In some areas, there are local workshops or coding boot camps.
There's also learning at a community college.
Lastly, you have the option of learning how to code at a four-year college.
Each path has its benefits and challenges.
Traditional and community colleges
You can learn how to code by going to a conventional college or university.
These settings can offer more personalized instruction thanks to experienced professors, most of whom worked in the field for years before becoming a teacher.
A good teacher can be an invaluable asset...
guiding you through tough problems while opening your mind to new concepts.
Your classmates also aid you in your learning and become valuable future networking resources down the road.
Behold the all mighty Bachelors degree
Traditional colleges also offer something most online courses can't give you, a Bachelors degree.
Your 4-year degree won't just be specific to computer programming, it's either going to be a Bachelor of Arts (BA) or Bachelor of Science (BS) degree.
That said:
You can choose to concentrate your degree on computer programming or some other fields like Artificial Intelligence, Information Security, Computing Systems, and Human-Computer Interaction.
Keep this in mind:
To earn your 4-year degree, you must first complete some additional courses not directly related to computer programing.
High-math courses like calculus and other non-programing courses will be a part of the program.
However, you'll also take classes more directly related to programming computers, like advanced programming, computer architecture, and data structures.
What does this mean to your future?:
People who graduate with Bachelors degrees typically have the best chance of landing a higher paying programming job, because many companies require that you have it before they even grant you an interview.
Earning an Associates degree and community colleges
Before you earn a Bachelors degree, you can opt to receive your Associate in Arts (AA) or Associate in Science (AS) degree.
You can obtain this degree at a 2-year community college.
That's great, because:
Community colleges also require you to take a lot of the same general education courses that you would have at a traditional 4-year school.
Once you finish, you can then choose to leverage your earned college credits to complete your education at a traditional college and get your Bachelors in two years.
Is a 2-year degree really worth it?
You may be able to land an entry-level tech job that may offer much need real-world experience with an Associates degree.
In 2018, the average cost of an Associates degree at a community college was around $5,000 a year for in-state students and about $8,500 a year for out-of-state students.
Wait for it:
During the same period, private colleges charged an average of approximately $15,000 per year.
Downsides
To learn how to code at a conventional college is an expensive approach.
The average cost of a 4-year Bachelors degree is around $168,000. Far too many students take out loans and wind up with crushing debt.
Why?
That's because most loans add on interest to the original amount, thereby ballooning the deficit.
Imagine landing your first $60,000 a year job with a big company right out of college...
only to have to pay about $14,000 a year in student loan repayments for the next 12 to 16 years.
That doesn't sound like a lot of fun.
Also, colleges, especially the higher-end universities like Stanford or MIT, routinely turn down applicants.
Fortunately, when it comes to learning how to code, just like with many programming problems, there's more than one path to a solution:
Self-guided online courses
You can also learn how to code by taking self-guided online courses.
One of the most significant benefits to these courses is that you can customize them to fit your schedule.
Another benefit:
Cost.
These courses are a lot more affordable than two or four years of college, plus you can pay for only what you want to learn.
So there's no calculus to worry about.
Additionally, unlike traditional private and state colleges there are no entry barriers, like a high school grade point average or SAT score, to prevent you from enrolling.
Fun fact
Ada Lovelace became the first computer programmer in 1843 when she designed a program for Charles Cabbage's Analytical Engine.
Here are a few online course providers
Check out the providers below:
Founded in 2011 by CEO Ryan Carson, Treehouse is an online coding academy that currently offers four specialized Techdegree courses with different completion time frames.
What they offer:
They are Front End Web Development (4 months), iOS Development with Swift (5 months), Full Stack JavaScript (7 months), and Python Web Development (7 months).
These Techdegree programs offer you the opportunity to
- build real-world projects
- get in-depth code reviews
- create a portfolio
You can also access live support and plug into their exclusive Slack community made up of students and graduates. The cost to take these courses starts at $199 per month.
Codemy was founded in 2015 by John Elder.
What they offer:
This site offers several self-guided courses such as:
- Ruby on Rails for Web Development
- Into To Ruby Programming
- Python Programming For Everyone
- Build a Crypto Currency Portfolio App With Python
- JavaScript Programming For Everyone
The cost of an individual course is a one-time fee of $9 for a one-week trial, $29 for one class, and $49 for all classes.
What that includes:
The courses include videos, a free PDF book, and a project to include in your portfolio. Plus, once you've completed a course, you gain access to the Codemy alumni database and forum which you can use to network with other students.
Udemy is one of the most popular self-guided online course providers in the world.
Here's why:
It offers a wide range of free and at-cost courses...
such as Java Tutorial for Complete Beginners and Beginning C++ Programming -- From Beginner to Beyond. Courses mainly consist of pre-recorded lectures by instructors.
Prices can range from $0 to $300 depending on the class.
Fun fact:
The Space Shuttle's computers ran on systems and language built in the 1970s. It worked -- and worked well -- so the designers of new vehicles stuck with it from 1981 until the program ended in 2011.
Coding boot camps
No, they won't be screaming at you:
Coding boot camps are short training courses that teach you a specific programming language or skill within a matter of weeks.
What you need to know:
Most boot camps are anywhere from four to 15 weeks, depending on the course.
These courses are usually taught in person at a workshop and involve a full-immersion technique of teaching where you jump right into coding.
Boot camps allow you to work in groups, thereby increasing future networking possibilities with other students.
That's not all:
They often offer a very cohesive curriculum and mentorship more personalized than in a traditional college environment where you may have to compete with over a hundred students for the professor's time.
Also, these camps usually offer guidance and help to find a job after completing their course.
If you want to learn how to code using a coding boot camp, be prepared for some major sticker shock because these courses can cost on average around $11,000, with some boot camps charging up to $20,000.
The Most Important Thing to Remember If You Want to Learn How to Code
You can do this.
You can learn how to code.
That's the most important thing to remember.
If you have the desire to learn how to code, then you can make it happen.
Are you ready to move into the future, writing it as you go? Let us know down in the comments what courses or path you're taking to make your goal!
Featured Image: CC0 via Pexels