After teaching full-stack web development courses to 1000s of students, we’ve gone to see some of our students go on to land interesting careers and some getting into great companies.
In our aim to refine the way we teach, we’ve been observing how our students (working professionals mostly) learn to code.
Through those years, here are some key findings we have when it comes to learning programming or to code.
1 – No Such Things As ‘The Best Programming Language’
In every webinar, speaking event or course that we go to, there would be someone who would ask this question: “What is the best programming language to learn”?
Some would say Python. And another developer would say Javascript or Java.
And they are all incorrect.
The truth is, programming languages are just ‘tools’. If you want to hammer a nail, you’d probably use a hammer. If you want to fix a leaky pipe, you’d probably use a spanner.
And while it’s true that a spanner, when used on its sides can be used to hammer nails as well, a carpenter will say his favorite tool is the hammer and a plumber would swear by the spanner.
At the end of the day, it comes down to choosing the right tool for the job, keeping in mind that some tools have multiple uses and will be perceived by its users differently.
If you want to build website applications, learn Javascript. Want to create automation and do data analysis, learn Python. Want to build iOS apps, learn Swift.
The good thing about programming is that its concepts: logic, loops, conditions, functions, etc are the same. What’s different is usually its syntax.
Learn to code in HTML, CSS & Javascript: Learn more in Web Dev First
2 – Code For A Purpose
Every time we meet budding programmers, we’d like asking them this question – What is your purpose for programming? What useful application are you planning to create after learning this particular language or framework?
Many would say, they are learning only the basics of the language at this moment. Some will proudly boast that they can build a programming logic to find leap years or to print a statement 100 times by writing it only once.
Learning the basics and being able to do cool things is fine when learning to code.
But the problem is when you don’t program or develop for a purpose. When learning web development or a new programming language, your aim should always be to create a working prototype of something at the end of the course.
Let’s suppose you are learning Django for server-side web development. After some practice, you should become quite aware of the basic structure and logic of writing a program in Django.
This is when you should set a target. For example, to make a clone of Instagram. Yes, Instagram uses Django at its backend language.
The reason you want to build something is so that you put purpose in your work. It’s no longer just about writing endless lines of code – but you’re using your programming knowledge and practicing to actually build something useful.
Consider building useful applications to help your everyday life. For example, build a note-taking app or a scheduler.
Anytime you get stuck during the course of your self-initiated project – Google and StackOverflow will be your best friend. There is no shame in having to google for solutions and answers. Even seasoned developers do that all the time. If you’re a student at LEAD, you can even make use to get immediate help for your programming roadblocks in our Slack support group.
The point being, unless you’re using what you’ve learnt to build a real-world application, it’s hard to continue being motivated to keep programming.
Your first web application wouldn’t look the best in the world, but even Airbnb started off that way. The more important thing is that you get started. And as a bonus, when you actually build a real application, you get to flaunt your completed projects among your peers and get noticed too.
3 – The Ability To Think Beats Memorization
During our regular interaction with students learning to program, we often come across students who think mastering full stack web development is about being good at memorizing.
But if you’re someone who enjoys subjects like Maths and Physics because you can use creative thinking and logic to get a final answer, then programming might be for you.
Programming is all about realizing the logic of the code – syntax can always be referred to from its documentation.
Let’s imagine you are an expert on Angular (Angular is a JavaScript-based Front End Framework. We cover a little of that in Full Stack 360).
One day, your boss comes to you and says your client requires a project made using Node. Js and Express. He doesn’t know anyone who is an expert in both the frameworks, but seeing your commitment, he assigned you this particular project. Will you reject this opportunity? Definitely, not.
Sure, it may be a tough task for you, since you’ve no experience in Node.Js or Express.
But here’s when the ability to think comes in. A good developer will begin to study and think of the logic of the code and figure the way to code the same. Maybe you will create a pseudo-code or something like a flow chart to represent your ideas.
The logic of loops, variable declaration, functions and so on are the same. All you need is to spend some time referring to the documentation of Node and Express to know its syntax.
Rather than just giving up, saying you don’t know Node and Express just because you didn’t memorize its syntax – having an ability to think gets you further in the long run.
4 – Take Intentional Breaks
Coding can be a very monotonous job. Movies about programmers and hackers often portray them as experts, typing away at the keyboard without stopping to think.
But in the real world, you tend to see programmers looking like this.
Programmers are often deep in thoughts, trying to figure out a bug or why something is or isn’t working the way they want it to.
Here’s an advice from the years of teaching web development. Got a bug that you can’t seem to fix? Take intentional breaks. Play some games, take a walk or go have some coffee.
More often than not, while you take a break and relax, a solution will pop in.
This might sound counter-intuitive especially if you’re a hardworking programmer. But it often helps to think more and code less. It’ll take you longer to go through and work on lines of poorly written code, as compared to thinking through the process and writing clean optimized code.
5 – Avoid ‘Coding-Along’
When you learn to code from online coding courses or physical classes – it’s easy to fall into the practice of ‘copying code’ while the instructor explains.
This is called ‘coding-along’, usually, the way most individuals learn to code.
The problem with coding-along is that it can be bad for your thinking process. When you code along, you are essentially revisiting the problems that are already worked out. Each code along exercise is a solved problem. The decisions are made and the hard parts are already worked around. Everything to you is spoon-fed.
This causes your logical brain to get lazy.
What you are doing is memorizing the syntax or the code. But as a developer, remember that your job is to solve problems. If you are learning only to write code, it’s hard to become a good developer who can solve problems.
To give it an analogy, it’s like coloring a pre-drawn sketch versus making the whole sketch and then coloring it. And when it comes to delivering value as a web developer, you get to demand a higher pay or salary grade when the problems you solve are larger.
So when learning to program, try to think of the code and write it yourself. Sure, you’ll hit some mistakes but through the process, you’re learning the reasons why and logic behind every piece of code you write.
6 – Get Into The Habit of Chunking
So you have an idea for an amazing web application. Maybe it’s a food delivery application, that allows users to order food and an admin dashboard to manage orders.
How do you get started? To a beginner like yourself, the whole thought of building a full-fledged app might be too complicated for your current skill level.
So what do you do? You break the process into chunks.
Here’s an example of chunking down the coding process.
- Create a mockup of the web application.
- Figure out the framework and language to use.
- Develop code for the user section first. (Customer name, email, ID, etc.)
- Develop the code for the restaurant owners to manage orders.
- Develop code for the delivery person – where it is able to detect the current position of the delivery person and detect the number of active orders in the range of 6KM.
- Develop code to merge delivery person and restaurants near them to assign order.
Next, you break down each of the modules into smaller chunks of problems to solve. The smaller the chunk, the easier to tackle.
Of course, this is easier said than done and we have obviously simplified the process by a whole lot. But, then if you don’t break down the process into smaller chunks – building the web application would not have been possible.
Thus, whenever you are building an application, be sure to break your code into smaller fragments. If you’re working with a team, these chunks can be delegated to different developers to speed up the development process.
7 – Build A Habit
Nowadays we are so engrossed with our daily life, we don’t even find the time to do the thing we want.
The secret about learning to do anything is to build a habit. It’s almost the same as going to the gym to lose weight. You don’t lose weight by going to the gym to lift weights for 5 hours straight. Rather, as you build a habit of going to the gym every 2 days, in time, you’ll start to see something change – you’ll begin to lose weight.
The same goes for learning to program. Build a habit around sitting down to practice and build something. Research suggests if you do something consistently enough, it becomes a part of your daily routine and eventually a habit – so that it’s gives you less cognitive load to get into the act sitting down to do some programming on your computer.
Once you get into that inertia of programming (especially if you code with a purpose), you’ll get absorbed into the project that you care less of watching TV or lazing around. This is why the most crucial moment is to just get started coding. It’ll be the hardest, considering if you’re practicing to code after coming home from work or in the morning.
But get into that habit of sitting down for that first few minutes to code and you’ll find that inertia will eventually build up within yourself.
8 – Get someone to keep you accountable.
There is no shortage of online courses available today. Courses ranging from web development, android development to data science – are all available at the click of one button.
But even with the availability of so many online courses, many students barely finish the courses they signed up for, let alone go on to build actual web applications.
The reason for this is because, with online learning, you’re not accountable to anyone. You basically have the luxury of time to go through things at your own pace.
Most online courses do not provide direct support from the instructor. But unless you have someone to check in on your progress and mentor you on the improvements to make – it’s hard to improve.
Therefore, get hold of a mentor to get constantly check in on your work and give you feedback whenever possible.
Let’s suppose you have a programming assignment due tomorrow. But because you’ve taken a self-paced online course, there wouldn’t be any consequences if you don’t submit the assignment. Would you even bother to complete the assignment?
When learning web development or coding, it’s best if you can continually show your work to an instructor or mentor who has good knowledge in programming. This provides you with excellent feedback that you can implement while completing your next project.
Conclusion
Learning web development and programming is an essential skill, especially when everything around us is now digitized.
What are your rules when it comes to learning web development and programming? Let us know in the comment section below.
Learn full stack web development: Build real-world web applications in a guided web development course in KL
0 Comments