⌨️ Ways to learn how to program
If you have followed me during this journey, I'm still learning Web Development (specifically Front End development). I work for an IT company as a Tech Support specialist but I want to move to a web development career.
I started my journey (like many others) by watching online courses during the pandemic and followed the instructor along with the code. Nowadays, people can learn how to code (even for free) and there's no excuse to do it.
While studying, I found out people recommending books and my first impression was that books are an old way to learn technology. Technology should be taught by just using technology and let other majors authors (accounting, law, or psychology) write their books.
Just to reinforce my assumption, I had to read a programming book to confirm or deny my statement and I realized what a wrong mindset I had!
🤔 Is it worthy?
In the 2020 Stack Overflow Developer Survey almost 85% of the respondents feel that formal education is somewhat important.
I discussed that with an English mentee I have (that's a current software engineer at a startup, he has a degree and he told me about the things that an online course will not teach you in-depth, such as analytical thinking by using algorithms, programming paradigms, design patterns, SOLID principles in object-oriented design, etc.
Online courses or online information will show you the programming language syntax, create a couple of projects (and even stick to the instructor's style to write code) but they won't give you the necessary tools to create things by yourself using your own criteria according to well-proof best practices.
That's the type of knowledge you need to back up what you're learning, and if you're not studying at college or having a formal education, you will find those topics in books. Because in the end, that's what colleges do, they teach the content of books in class but in a well-synthesized way.
📚 The book style
Some people don't like to read books, because they have a lot of information, (sometimes it's redundant) and there are a lot of books outside to read or they just want to learn at a fast pace.
In some way, that statement is true, but that doesn't mean you have to look at books as a slow way to learn, in fact, if you try to learn fast by just watching courses and reading spread information online, you will lack on the basics and maybe in the future you will need them to be part of a big project and you will need to re-read or to go back to the basics and understand a way to do things.
The way that most of the books are structured is this one:
- Background or required knowledge to study the core concepts of the topic
- Basic information to main features
- Advanced information
- Sample code or Exercises
What I want you to notice is the path you follow with books, you go from scratch to know in-depth knowledge about the topic, and new concepts are not included until they're covered in the previous chapter.
Knowledge in books is well-organized and you can check how other fields are interconnected with the subject you're reading to create a more systematic way to study.
🕶️ The way you should use books
When you study at college, you have to read books, no matter what career are you studying, there are books for everyone and that's an old used method but still effective these days.
Reading books is a good way to get knowledge, but not because you're reading a book, that'll make you smarter. Programming books are not like science fiction or romantic stories you read, you need to create a system or follow a method to get the most out of them. I have some suggestions you can take into consideration while reading programming books.
1. Understand the why
I always mention the importance to have motivation, so if it's a book that you're reading just because an influencer mentioned it and you, after my blog post, you don't want to read books, simply don't do it. You know yourself better than anyone, and you know what's the best way to learn for you.
Also, if you're going to read a book, please be aware of the value that it'll bring you. The way you can take advantage of the knowledge and how it can be beneficial for you. It'll keep you motivated and know that your gaining knowledge to apply it in the future.
2. Read the content topics and instructions
Programming books have a special way to read them, not all of them are the same. Some of them will require you to complete some exercises before moving to the next chapter, others will share with you the code used in the book for you to replicate it.
You can verify if the knowledge is worthy for you by taking a look at the table of contents, if you notice that more than 75% of the topics are already handled by you, maybe you would like to buy a more advanced book. (It's not harmful to read a different book with basic knowledge though, there's always something new to learn, but it'll depend on the amount of time you want to dedicate)
3. Take notes and follow along
Our mind works in two modes (some will disagree, but that works for me):
Input: You receive information in two ways (reading or listening). You read the book and gain knowledge, but in a learning process, that's not enough, after you have received the information, you need to switch mode.
Output: You put into practice what you learn (by writing or speaking). In the programming use case, this is done by writing code. Do the exercises, code along with the book, and ask questions to peers or mentors. Output is the knowledge test for excellence. You will confirm whether you are learning with the book or not.
4. Compare it with other books
In the end, a book is just a set of knowledge provided by one person or more people, so to create your own judgment, you need to read other books and get what you think is good for you.
Commonly, authors will have the same opinions on how to do things, but when it comes to the basics and core features of the topic, they will agree because that's the way things are created.
word (we use either
const) because it's something already stated.
If you're reading another book about the same topic, you can skip the basics and jump over best practices and recommendations. You can confirm that by reading the table of contents.
✅ Book recommendations
I wouldn't finish this post without recommending some books I've read. I won't give my opinion (and also I won't share any referral link) but I'll give you some insight into whether it is a good book for you.
Some beginners focus on the syntax of the language and how the instructor does things, but have you ever thought of solving a problem by yourself? That's what the book focuses on.
It uses C++ to write code, however, the programming core concepts are established in this book that can be applied to any other programming language. If you can handle this mindset, the language syntax won't be a problem.
I recommend you to read just the third edition, as it includes the ES6 syntax and methods, and the best part... It's free online.
I'm learning React and if you're doing it as well, this is a good book. It doesn't only talk about how React works, it'll give you an insight into how functional programming works and how it's used in React.
If you're not interested in React, what I want you to take from this is the editorial O'Reilly Media. They have a lot of books about technology and programming such as the famous series "Head First" that are friendly guided to any technology.
This is the book that every developer should read, it's not language-focused, but it talks about the way you write code. We can say they're principles to follow to make your code more understandable, reducing headaches and increasing the opportunities to optimize what you do.
Uncle Bob has other books about best practices and how to work with the stuff that's around a software developer role.