Learning to code is challenging. It’s especially
difficult if you try to learn programming on your
own without the guidance of a university or a
coding bootcamp. Both kinds of programs are
extremely helpful because they provide a
structured approach, but self-taught programmers
have to figure it out on their own. Fortunately,
anyone can learn programming for free and avoid
the many traps and pitfalls if they follow the
principles outlined below:
Commit to one programming language
When someone decides to learn how to code, the
first thing they will naturally do is figure out what
language they should learn. It’s a common
mistake to pick a language only to ditch it for a
new language a couple weeks later. I personally
repeated this process four or five times before
settling on a language that I was committed to.
My reasons for switching varied from not being
able to find good tutorials, to someone on the
internet bashing my language of choice. Over a
year passed before I had actually settled on
something and stuck with it.
When someone decides to learn how to code, the
first thing they will naturally do is figure out what
language they should learn. It’s a common
mistake to pick a language only to ditch it for a
new language a couple weeks later. I personally
repeated this process four or five times before
settling on a language that I was committed to.
My reasons for switching varied from not being
able to find good tutorials, to someone on the
internet bashing my language of choice. Over a
year passed before I had actually settled on
something and stuck with it.
The reality is that it doesn’t matter what language
you pick to learn in programming, as long as you
learn it well enough to understand the overall
principles of web development and software
engineering, and that it can build what you’re
trying to create. If you don’t take time to develop
your skills and learn how all the pieces fit
together in one language you’ll essentially start
over every time you switch. Learning the
language’s syntax is the easy part. The
challenging part is learning how to engineer a
product and understand the overall structure of a
program. These are the skills that carryover from
language to language.
you pick to learn in programming, as long as you
learn it well enough to understand the overall
principles of web development and software
engineering, and that it can build what you’re
trying to create. If you don’t take time to develop
your skills and learn how all the pieces fit
together in one language you’ll essentially start
over every time you switch. Learning the
language’s syntax is the easy part. The
challenging part is learning how to engineer a
product and understand the overall structure of a
program. These are the skills that carryover from
language to language.
You also want to move fast and make progress in
order to stay motivated. If you keep switching
languages you’ll never build an awesome product
or reach any of your goals. I highly encourage
you to experiment with new technologies, but
before you do that you should build a solid
foundation so you can make money and have a
couple significant projects under your belt.
For your first programming language there’s
only a few important qualities I recommend and
they have nothing to do with whether they are
“single-threaded” or “statically typed” or anything
like that. The qualities I recommend finding in a
language are maturity, potential use cases and
current popularity. There are many good
languages, but two stand out for people trying to
learn programming.
order to stay motivated. If you keep switching
languages you’ll never build an awesome product
or reach any of your goals. I highly encourage
you to experiment with new technologies, but
before you do that you should build a solid
foundation so you can make money and have a
couple significant projects under your belt.
For your first programming language there’s
only a few important qualities I recommend and
they have nothing to do with whether they are
“single-threaded” or “statically typed” or anything
like that. The qualities I recommend finding in a
language are maturity, potential use cases and
current popularity. There are many good
languages, but two stand out for people trying to
learn programming.
Java
Java was released in 1995 and took the world by
storm. It is and always has been extremely
popular. Just take a look at any job board and
you’ll see far more job openings in Java than any
other language, second only to SQL (a database
language). The number of jobs is important for
job security, but it’s not the best metric to go by
because this metric goes up and down. There are
other important considerations that make Java a
great choice.
This language is very mature. It’s been used by
colleges for years as the standard language for
teaching, and it has an almost infinite amount of
tutorials and books to help you learn. With around
9 million Java developers you’ll have answers to
almost every question imaginable. Java is boring
because it’s not the “new kid” on the block, but
for a first time programmer you want mature and
boring. The endless supply of free tutorials, books
and documentation ensure that you can learn
programming.
colleges for years as the standard language for
teaching, and it has an almost infinite amount of
tutorials and books to help you learn. With around
9 million Java developers you’ll have answers to
almost every question imaginable. Java is boring
because it’s not the “new kid” on the block, but
for a first time programmer you want mature and
boring. The endless supply of free tutorials, books
and documentation ensure that you can learn
programming.
Java is also extremely flexible, which is what
really makes the language a great choice. You can
build server-side applications, enterprise apps,
fully functional web applications, and even mobile
apps. This gives you a wide variety of programs
to build, jobs to have, or markets to take your
product all with this one language. No other
language will give you this amount of freedom.
People who want to learn programming often
don’t know what language to pick, and because
Java is so flexible it’s hard to go wrong.
really makes the language a great choice. You can
build server-side applications, enterprise apps,
fully functional web applications, and even mobile
apps. This gives you a wide variety of programs
to build, jobs to have, or markets to take your
product all with this one language. No other
language will give you this amount of freedom.
People who want to learn programming often
don’t know what language to pick, and because
Java is so flexible it’s hard to go wrong.
PHP
Yes, I said it. PHP is a great language for first
timers. If you didn’t know, PHP is loathed in the
programming community. If you admit to being a
PHP programmer you might as well admit you
have leprosy. They say it’s a poorly designed
language that is full of problems, but I still
believe there are several incredible benefits to
learning PHP.
Yes, I said it. PHP is a great language for first
timers. If you didn’t know, PHP is loathed in the
programming community. If you admit to being a
PHP programmer you might as well admit you
have leprosy. They say it’s a poorly designed
language that is full of problems, but I still
believe there are several incredible benefits to
learning PHP.
First of all, PHP is incredibly popular. In 2013
there were over 240 million websites using PHP,
and according to W3Techs over 80% of the sites
whose server-side language they know uses PHP.
This popularity ensures you’ll have an endless
supply of free tutorials and books to learn with.
It’s also a very flexible language and beginner
friendly, making it easy to learn. PHP also has
powerful frameworks, like Laravel, to speed up
your web development. You cannot build mobile
applications with PHP, but it has something else
just as good–WordPress.
there were over 240 million websites using PHP,
and according to W3Techs over 80% of the sites
whose server-side language they know uses PHP.
This popularity ensures you’ll have an endless
supply of free tutorials and books to learn with.
It’s also a very flexible language and beginner
friendly, making it easy to learn. PHP also has
powerful frameworks, like Laravel, to speed up
your web development. You cannot build mobile
applications with PHP, but it has something else
just as good–WordPress.
WordPress is an immensely powerful content
management system written in PHP. It’s perfect
for the typical small business owner and blogger
all the way up to massive sites, like Fortune
magazine and Time Inc. WordPress is completely
customizable with the use of “plugins” which add
features like E-commerce, photo galleries, and
anything else you can imagine. It’s estimated that over 20% of the entire web is
using WordPress to run their site. Because many
of these sites are small businesses and bloggers,
it is perfect for a wide variety of jobs from
freelancing to Fortune 500 companies and
everything in between.
I’ve no doubt ruffled some feathers by
recommending Java and PHP. There is a group of
haters for every language. If you have a reason for
choosing something else then do what you think
is best, but PHP or Java will cover almost any
first time developer needs, and they have an
almost unlimited supply of jobs and developers.
That’s why I recommend one of them as a first
language. Whatever you do, pick something and
stick with it. Check out other languages you can
use to learn programming with this infographic .
management system written in PHP. It’s perfect
for the typical small business owner and blogger
all the way up to massive sites, like Fortune
magazine and Time Inc. WordPress is completely
customizable with the use of “plugins” which add
features like E-commerce, photo galleries, and
anything else you can imagine. It’s estimated that over 20% of the entire web is
using WordPress to run their site. Because many
of these sites are small businesses and bloggers,
it is perfect for a wide variety of jobs from
freelancing to Fortune 500 companies and
everything in between.
I’ve no doubt ruffled some feathers by
recommending Java and PHP. There is a group of
haters for every language. If you have a reason for
choosing something else then do what you think
is best, but PHP or Java will cover almost any
first time developer needs, and they have an
almost unlimited supply of jobs and developers.
That’s why I recommend one of them as a first
language. Whatever you do, pick something and
stick with it. Check out other languages you can
use to learn programming with this infographic .
Break your learning into
smaller goals
Now that you’ve chosen your language and made
a commitment, you are ready to start learning. If
you want to learn programming for free, then
you’ll have to be tactful with your approach. The
best way I’ve found is to break down the learning
process into small parts and focus.
Now that you’ve chosen your language and made
a commitment, you are ready to start learning. If
you want to learn programming for free, then
you’ll have to be tactful with your approach. The
best way I’ve found is to break down the learning
process into small parts and focus.
HTML/CSS
Just
about every web language will utilize HTML/
CSS, which is the “markup language”. I
recommend spending at least a couple of days
getting familiar with HTML and CSS. Find some
beginner tutorials and read the documentation. A
lot of this part will be learn as you go, so don’t
be afraid to jump into the next step when you feel
like you understand the main idea of HTML and
CSS.
CSS, which is the “markup language”. I
recommend spending at least a couple of days
getting familiar with HTML and CSS. Find some
beginner tutorials and read the documentation. A
lot of this part will be learn as you go, so don’t
be afraid to jump into the next step when you feel
like you understand the main idea of HTML and
CSS.
Language basics Spend some time learning the
basics of your
language. Use a combination of tutorials and
documentation to learn about things like
booleans, strings, arrays, etc. You will also want
to get familiar with functions and object oriented
programming. Sites like CodeCademy.com are
great for learning the basics of your language, but
any free tutorial should help you get started. It’s
one thing to learn the syntax, but the real
challenge is applying these skills to real projects.
The best way to learn programming is to build
simple projects with what you are learning. Build
things like “Fizz Buzz”, tic-tac-toe, blackjack, or
loan calculators. Search the internet for
programming exercises and complete them. Some
are math intensive, but you should be able to find
all kinds of exercises. Don’t feel bad if it takes
you a long time to complete exercises you find.
They are meant to challenge and improve your
thinking abilities. Try to add extra features to the
project and build more complex apps each time.
Once you feel comfortable, move onto the next
stage where everything comes together.
Web framework
language. Use a combination of tutorials and
documentation to learn about things like
booleans, strings, arrays, etc. You will also want
to get familiar with functions and object oriented
programming. Sites like CodeCademy.com are
great for learning the basics of your language, but
any free tutorial should help you get started. It’s
one thing to learn the syntax, but the real
challenge is applying these skills to real projects.
The best way to learn programming is to build
simple projects with what you are learning. Build
things like “Fizz Buzz”, tic-tac-toe, blackjack, or
loan calculators. Search the internet for
programming exercises and complete them. Some
are math intensive, but you should be able to find
all kinds of exercises. Don’t feel bad if it takes
you a long time to complete exercises you find.
They are meant to challenge and improve your
thinking abilities. Try to add extra features to the
project and build more complex apps each time.
Once you feel comfortable, move onto the next
stage where everything comes together.
Web framework
This is where you tie in the database to build a
fully functioning application that can store data,
like usernames and user data. All the building
blocks of an application are wrapped together in a
neat package called a “framework”. Just like with
picking a language it’s important to stick with
one framework at first so you can focus your
efforts and successfully learn programming. I
recommend the most widely used framework for
each language because it likely has the most
documentation and most tutorials. This will be
the most challenging part because web
frameworks can feel pretty complex at first. If
you’re really struggling with this, try spending
more time brushing up on Object Oriented
Programming before trying again. Don’t give up!
fully functioning application that can store data,
like usernames and user data. All the building
blocks of an application are wrapped together in a
neat package called a “framework”. Just like with
picking a language it’s important to stick with
one framework at first so you can focus your
efforts and successfully learn programming. I
recommend the most widely used framework for
each language because it likely has the most
documentation and most tutorials. This will be
the most challenging part because web
frameworks can feel pretty complex at first. If
you’re really struggling with this, try spending
more time brushing up on Object Oriented
Programming before trying again. Don’t give up!
If you break the framework down as much as you
can and learn each part individually then you’ll
soon be able to put it all together to build your
idea. Just like with the basics you should be
focusing on one thing at a time. You might do a
lot of fumbling around trying to figure it out, but
if you stay committed to one framework and keep
trying the various tutorials and reading the
documentation you’ll soon find yourself building
simple apps, and eventually things you are truly
proud of. Baby steps are the key to success when
you try to learn programming. This is also a good
time to do more programming challenges or
exercises inside of a web framework. Start small
and work your way up. Build the same tic-tac-
toe, blackjack, and loan calculators inside the
framework using its design philosophies.
can and learn each part individually then you’ll
soon be able to put it all together to build your
idea. Just like with the basics you should be
focusing on one thing at a time. You might do a
lot of fumbling around trying to figure it out, but
if you stay committed to one framework and keep
trying the various tutorials and reading the
documentation you’ll soon find yourself building
simple apps, and eventually things you are truly
proud of. Baby steps are the key to success when
you try to learn programming. This is also a good
time to do more programming challenges or
exercises inside of a web framework. Start small
and work your way up. Build the same tic-tac-
toe, blackjack, and loan calculators inside the
framework using its design philosophies.
While frameworks are important, I don’t
recommend spending all your time using them.
It’s important to learn how the language works on
a deeper level by understanding what’s going on
“under the hood”. Writing code without the help
of a framework can give you a different
perspective.
recommend spending all your time using them.
It’s important to learn how the language works on
a deeper level by understanding what’s going on
“under the hood”. Writing code without the help
of a framework can give you a different
perspective.
Using tutorials efficiently
Going through random tutorials on the internet
isn’t the most efficient way to learn programming,
and downloadable books range in quality from
amazing to “Wow, this is really bad”, but with a
little effort on your part you can learn
programming for free almost as quickly as if you
were to pay for a programming course. Here are
some key points I wish I would have known when
I started learning programming.
Going through random tutorials on the internet
isn’t the most efficient way to learn programming,
and downloadable books range in quality from
amazing to “Wow, this is really bad”, but with a
little effort on your part you can learn
programming for free almost as quickly as if you
were to pay for a programming course. Here are
some key points I wish I would have known when
I started learning programming.
Read the documentation religiously. The better
you learn to read the docs, the better programmer
you will become. Documentation is not meant to
be read like a regular book or article. You have to
read slowly, stop often, and have a text editor
open so you can try the examples out if it doesn’t
make sense. Reading the docs is hard but it’s
necessary if you want to learn programming. With
every tutorial you go through make sure you’re
looking up everything in the documentation that
you don’t understand.
you learn to read the docs, the better programmer
you will become. Documentation is not meant to
be read like a regular book or article. You have to
read slowly, stop often, and have a text editor
open so you can try the examples out if it doesn’t
make sense. Reading the docs is hard but it’s
necessary if you want to learn programming. With
every tutorial you go through make sure you’re
looking up everything in the documentation that
you don’t understand.
You will be guaranteed to run into problems when
following along with tutorials. When you
encounter problems it’s a good idea to embrace
the tutorial as your own project. When you get
errors, use Google to search them and fix the
error . If the instructions aren’t specific enough,
try a couple things you think will work. Do
whatever it takes to figure the problem out and
keep going with the tutorial. Do not mindlessly
copy and paste code and throw it out at the
slightest problem. If all else fails then go ahead
and try another tutorial. There are plenty out there
to use, just give it your best shot before you
move on.
following along with tutorials. When you
encounter problems it’s a good idea to embrace
the tutorial as your own project. When you get
errors, use Google to search them and fix the
error . If the instructions aren’t specific enough,
try a couple things you think will work. Do
whatever it takes to figure the problem out and
keep going with the tutorial. Do not mindlessly
copy and paste code and throw it out at the
slightest problem. If all else fails then go ahead
and try another tutorial. There are plenty out there
to use, just give it your best shot before you
move on.
Learning to code does not have to be hard. If you
make a commitment, break things down, and
make a little progress each day then you’ll be
building any and every type of program you can
think of sooner than you think. The trick is to
keep at it, keep learning, and never give up on
your goals.
make a commitment, break things down, and
make a little progress each day then you’ll be
building any and every type of program you can
think of sooner than you think. The trick is to
keep at it, keep learning, and never give up on
your goals.
Thanks to John & Elonet.
Comments