NEXT Academy is Southeast Asia’s leading school for aspiring entrepreneurs, freelancers, software engineers, and digital marketers

7 Things to Consider When You Start Learning to Code

If you want to learn to code, here are 7 things to consider which other people would not usually share with you!

Audrey Ling
January 7, 2019

Many people are talking about the need to start learning code these days. Some say it's the "new literacy". As the world becomes more tech-centric, waves of people are jumping onto the coding bandwagon, hoping to secure high paying jobs, or to not become redundant in the future.

2 myths about starting to learn code

This is one of the most common questions I get – "There are so many languages, I don't know where to start. Which is the best language that can set me for life?"

You'll likely have this question in mind, or a variation of it.

A lot of people end up being paralysed by choice. Many of you would have combed through plenty of opinions (which I did before) and everyone would say something like these:

"I LOVE JavaScript. It's the best!"

"Python is the best language and I'm never looking back to xxx.""C is the way to go because it covers all bases."

"Ruby is the friendliest! Go for it!"

At some point, everything seemed to be the best AND you are back to square one. Here are the 2 big myths.

MYTH #1: You will only need to stick to one programming language for life.

Forget all the opinion pieces because it's a never-ending debate. This is one thing that I found people do not talk about. Your first love will not be the only one you are going to be married to for life.

The tech scene changes so fast, you will ultimately be expected to handle more than 1 language, use multiple frameworks. Yes, it'll be a polygamous relationship ahead for you when it comes to programming languages. It's normal for a tech company to use multiple frameworks and languages for different needs.

Popularity comes and goes. What's popular today may not be tomorrow. Language is only a small part of the coding journey.What you need to do is not merely learn a programming language. You need to learn how to be a programmer so that you can adapt when changes come.

MYTH #2: Learning programming frameworks are more important than building fundamentals.

"Learn to use Node.js and follow the framework step-by-step, that's enough."

"Just learn Django or Ruby on Rails straight, why bother with learning how to build from scratch."

These things have been said. But this is dangerous. Whoever is telling you this is setting you up for failure in the future.

You want to be a software developer, NOT a framework developer. Frameworks can drop in popularity and it's a common occurrence.

Some companies may choose not to use frameworks to build their tech platforms, or they may use a framework but they would customise it according to their requirements.

In this case, you need to have good understanding of the fundamentals. Frameworks are built to make your life easier. It is based on programming concepts and you need to understand the inner workings of the frameworks.

Using a framework is easy, BUT understanding the inner workings is more important. In fact, it will help you to appreciate the frameworks even more.

Ignore the myths!

If you've been told any of the two myths and have been following them, it's unlikely that you will grow to become a good developer.

We'll talk about what makes a good developer in the future, but before that, let's look into some crucial things people don't really tell you when it comes to learning to code.

How do you start learning code or programming?

The truth is this – don't fret over stuff like why you should learn this language/framework over that.

  • Your first goal should be "Start writing some code." (Obviously)
  • Your second goal is "Make learning to code easier and faster."
  • Your third goal is "Be a good developer."

Learning to code can be fun or dreadful.

You need to retain discipline AND interest to power through coding.

Here are the 7 points that can make your coding life easier.

#1: Start with Frontend Development for a Visual Feedback Loop

front-end coding language in a laptop

After running a coding bootcamp for 4 years and teaching >1000 people, we realised that people tend to find it easier to start with something visual.

Our very first goal is "START WRITING SOME CODE!"

With frontend web development, you should start learning HTML and CSS first. It is easier to start with. Everything you write will be displayed on your browser. You want to train your brain to be comfortable with code and also getting feedback. Computers are honest, what you give is what you get.After HTML and CSS, you should continue to learn JavaScript to create interactivity on your frontend site. Here's an example: nextmy.co/tic-tac-toe

We used HTML and CSS to create a beautiful site, and we used JavaScript for 2 things:

  1. You get to interact with the site by clicking on the tic-tac-toe board and choosing your position.
  2. We wrote the algorithm/ logic in JavaScript to determine who won!

When you start with frontend coding, you will have the visual feedback loop to help you through your coding journey at the start. You don't have to imagine the outcome because you can now see it with your own eyes if it worked or not!

To learn: HTML, CSS and JavaScript (for frontend)

What to do after learning frontend coding?

We've spoken about why frontend coding is a good place to start. You get to build beautiful static sites and make it interactive. That's just showcasing one small part about what makes coding powerful.

You don't want to be stuck with just creating static sites right? You would want to be able to make your site dynamic – just like Facebook, Twitter and Instagram!

You would eventually want to learn how to write scripts, how to build an app, how to get into machine learning, data science and artificial intelligence as well, right?Let's move on to, "Make learning to code easier and faster!"

#2: Start with a high-level language for beginners

difference coding languages level

Next up, for scripting or coding for backend, what should you choose? You would see a lot of suggestions on this: Java, C, C++, JavaScript, Ruby, Python, Elixir. The list goes on.

What makes them different? You'll find out in a bit.In layman terms, low level languages are closer to what computers can understand and high level languages are closer to what humans can understand.

The most efficient way to communicate to computers which we mortals cannot make sense of is machine code.

8B542408 83FA0077 06B80000 0000C383FA027706 B8010000 00C353BB 01000000B9010000 008D0419 83FA0376 078BD989C14AEBF1 5BC3

To make our lives easier, developers created higher level languages to help humans brain coding by adding abstraction to machine code. Different languages will sit on different level of abstraction.

I want to write an algorithm that does this:

If x is 1, print out "x is one". If not, print out "x is not 1"Currently, x is 3.

Here's an example of what some may call a "mid-level" language. This is Java.

{{CODE}}

class Main {

 public static void main(String[] args) {

   int x = 3;

   if (x == 1) {

     System.out.println("x is one.");

   }

   else {

     System.out.println("x is not 1");

   }

 }

}

{{ENDCODE}}

Here's an example of a higher level language code snippet, in this case, Python.

{{CODE}}

x = 3

if x == 1:

 print("x is one.")

else:

 print("x is not 1")

{{ENDCODE}}

See the difference between all 3? Machine code, Java and Python.

When you want to start learning code, choose a high-level language to start with. It's closer to what humans can understand and that would mean you can learn to program a lot faster. It's cleaner and nicer to look at too!

What you want to do is to be able to quickly learn the language so that you can put code together and write algorithms. You can revisit lower level languages when your fundamentals are stronger.

Here is a more in-depth article on the difference: High-Level vs. Low-Level Programming Languages: Which Should You Learn?

#3: Learning to code is beyond code syntax

which coding languages you should learn first

Previously we've shown you the difference between machine code, lower-level vs higher level language code. In terms of understandability, higher level language would obviously make more sense to the human brain.

A few key arguments on why some people love certain languages over the other is syntax. Let's check out a simple example on the difference between Python, Ruby and JavaScript.

Python:

{{CODE}}

x = 3

if x == 1:

 print("x is one.")

else:

 print("x is not 1")

{{ENDCODE}}

Ruby:

{{CODE}}

x = 3

if x == 1

 print "x is one."

else

 print "it's not 1"

end

{{ENDCODE}}

JavaScript:

{{CODE}}

x=3

if (x==1) {

 console.log("x is one.")

} else {

 console.log("x is not 1")

}

{{ENDCODE}}

What you may notice here is that, in terms of how it's being written, each of them have their own peculiarities. Yet in terms of understandability they are pretty similar.

Notice why we say languages do not matter as much now?

If you are fundamentally strong with one high level language, you would not have too much of a problem adapting to another high level language.

Very often, people think they "know how to code" when they know how to write syntax. But the truth is, syntax is the easy bit. The hard bit is stringing the syntax together to make it work.

#4: Understand and master core programming concepts before moving on

Key concepts are important. If we use Python, Ruby and JavaScript for comparison, you'll notice that they have similar sets of data types and control flow. (Not all are exactly the same but they are similar.)

You should also understand core programming concepts such as Object-Oriented Programming (OOP), Model-View-Controller (MVC) etc.

These are popular concepts which are commonly used across programming languages. Ruby and Python would be a good start to learn this.

Make sure you understand them and know how to implement them. When you are able to do it with one language, you will be able to quickly learn how to implement them in a different programming language.

Thus, understanding concepts is key and these are considered core fundamentals you should have a good understanding on. When you set this as your baseline, you will quickly understand how other concepts are different / similar in relation to this.

Do not jump into fancy pansy frameworks and libraries before you understand these well. Weak fundamentals will strip you of your ability to adapt.

To learn: Python / Ruby to strengthen OOP and MVC concepts

#5: Libraries and frameworks

all type of coding frameworks

This is where things get serious. Many people choose their programming language based on their access to libraries and frameworks. Learn based on need!

An analogy between library and framework would be:Imagine you want to build a house (app), you will go to the store room to see what materials are available to you which you can use (library). You may choose a design blueprint (framework) to follow as you build your house.Libraries are like a place which you can find what tools are available to you. Framework is like a blueprint which you follow.

For more info, check out: What's the difference between a library and a framework?

Python libraries and frameworks

Python is a language known for quite a number of things. Many people are getting into Python because they want access to machine learning, AI, data science. It has very established math libraries and now elite colleges in the USA are using Python as their introductory language for computer science.Python libraries are called packages. Aside from machine learning, AI and data science, there is also a growing uptake for web development as well.

Examples of web development frameworks are Flask and Django.

Ruby libraries and frameworks

Ruby is widely known for its framework Ruby on Rails. If you want to compete on app building speed, Ruby on Rails would top them all as a lot of things are built within it. Ruby libraries are called gems.

Building app with Ruby on Rails and integrating gems is almost like plug-and-play. This is perfect for people who want to build their MVP fast and start their tech startup fast.

Ruby on Rails does a lot of magic (shortcuts) for you. If you want your fundamentals to be solid, you should always start with the Sinatra framework first.

JavaScript libraries and frameworks

JavaScipt is known to be used for both frontend and backend in app building.

Frontend

If you want to make your site interactive, you will need to use JavaScript for it. As a beginner, you would want to learn this to make your site fun.

A popular frontend framework is React.js. (I'd recommend this to people at the intermediate level, who have good experience in frontend coding with JavaScript.)

Backend

One of the key features of JavaScript is its ability to behave in an asynchronous way which is why people prefer Node.js (framework) for scalability. It is indeed a powerful event-loop framework but often confusing and takes time to understand. The smarter move in learning this is to have some coding experience first.

For beginners, you can learn JavaScript for backend AFTER you have good experience in backend coding with either Python or Ruby. Python and Ruby are considered object-oriented Programming languages. It holds true to the OOP concept which a lot of other lower languages follow as well.

While all 3 languages can be used to do scripting and to build web apps, as a beginner, learn JavaScript for the frontend. For the backend, focus on writing elegant scripts with Python or Ruby first.

If you want to play around with machine learning, AI and data science aside from building apps, then Python would be ideal for you.

To learn: Python / Ruby - both can be used for web development.

#6: Look for communities to join

next academy coding communities

Ruby, Python and JavaScript have great communities. As it is open source, the community collaborates to help with projects. Communities are what powers innovation and use cases of the language.

Ruby has an established community especially for the Rails framework and often focuses on web development.

Aside from web development, Python has also the scientific community which has made breakthroughs in areas such as data science, AI and machine learning.

JavaScript communities are mainly focused on frontend. For backend JavaScript, the hottest framework in town, Node.js, is fairly new.

Now, on to our last goal – "Be a good developer."

#7: Train Your Computational Thinking & Problem Solving Skills

computational thinking icon

Our definition of a good developer is resourceful, independent, has strong fundamentals AND good problem-solving skills.

Computational thinking and problem solving are key to differentiate a good developer from the mediocre crowd.

There are 2 parts to coding:

  1. Language & frameworks
  2. Problem solving & computational thinking

Very often, I find that people have been placing too much emphasis on the wrong bits of coding. Educators who are not well-versed in teaching code got students to memorise code, memorising frameworks instead of teaching understanding.

I've seen people memorise code, copy and pasting other people code; so long as it works, they call themselves developers.

If you want to get a job as a developer, you would likely need to go through technical interviews. Often companies would say, "I don't really care which language you solve this in. What I want to know about is your problem-solving skills."

You may ask, "Don't we need to know the language?"

A language is only a form of expression. It's like you knowing your ABCs. What makes you valuable is your ability to form sentences, your ability to write well and to communicate.

What differentiates a good developer from mediocre ones is their ability to solve problems and their ability to use the coding language they have learned to write the solution.

Computational thinking basically means "think like a computer". Now that you have your solution, how do you write it in granular steps where the computer can understand?

Here's a SHORT video to understand the difference!

Start training your logical and computational thinking! This is a skill you should develop even if you are not learning to code!

To learn: Problem-solving skills, logic, computational thinking

In conclusion

We found coding is best learned when you have a goal in mind. The truth is, there's just TOO MUCH to learn and it can be very overwhelming. Learn based on need. This will help you keep your interest in coding as you pursue your goal.

Strong fundamentals will allow you to adapt to different languages. Every language may have their quirks but strong fundamentals remains relevant across all!

This is what we tell our students, you've to learn to be independent and adaptable. We value strong fundamentals so that you will have the ability to learn new technology by yourself.

This is a changing landscape and it will be ever-evolving. You need to think like a developer. Frameworks come and go, languages may rise or lose popularity. Regardless what happens, YOU need to be able to adapt.

Tip: join a coding bootcamp

You can choose to learn to code by yourself. Or you can choose to learn to code with us where we will guide you and you can meet like-minded friends to support you through the coding journey.

This is going to be an intensive and immersive journey. Do expect a lot of effort from your side. But since you've already chosen to start learning, why not give it your 110% and learn to code in an immersive environment.

Our Full Stack Web Development covers both Frontend + Backend coding. Visit our course page to find out more.

Ready to learn?

Let's go