Start Learning to Code with these 7 Steps!!
Audrey Ling
I Grow Companies & People ?? Marketing Strategist & Consultant | CMO On-Demand | ACLP & HRDF Trainer
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 steps that can make your coding life easier.
#1: Start with Frontend Development for a Visual Feedback Loop
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
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 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD989
C14AEBF1 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 language="java"]
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");
}
}
}
[/code]
Here's an example of a higher level language code snippet, in this case,
Python.
[code language="python"]
x = 3
if x == 1:
print("x is one.")
else:
print("x is not 1")
[/code]
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
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 language="python"]
x = 3
if x == 1:
print("x is one.")
else:
print("x is not 1")
[/code]
Ruby:
[code language="ruby"]
x = 3
if x == 1
print "x is one."
else
print "it's not 1"
end
[/code]
[code language="javascript"]
x=3
if (x==1) {
console.log("x is one.")
} else {
console.log("x is not 1")
}
[/code]
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
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
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
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! Why learn coding
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.
#coding #tech #codingbootcamp #
Building cross-channel strategies with fresher perspectives without the bureaucracy.
6 年yes 100% possible. I taught myself how to code many years ago - and I was learning Perl! so yes, it's possible. One important thing, your brain has to be wired to understand "logic" - meaning, while it is possible, there's also varying hurdles for individuals depending on how they process information.
Digital Marketing Consultant at Growth PJ
6 年Yup i agree this is possibly one of the best ways to start. also interest > discipline :) You will lose discipline when your interest wanes.
I Grow Companies & People ?? Marketing Strategist & Consultant | CMO On-Demand | ACLP & HRDF Trainer
6 年Roberto Cumaraswamy Huishan Lim Khai Yong Ng?Alfred Chung?Sunny Tan?Khushboo Nangalia?Karin Chang ? Digital Marketing Strategist ??Jackson Yew?Sebastian T.?Manojkumar Subramanian?Eric Toh?Shakira Kavanagh?Derek Chew?Desmond Tai?Desmond Ngai?Brian, Boon Yong Tan?Cheryl Sew Hoy?Khailee Ng? Let me know what are your thoughts!