One of the most common pitfalls I've observed is that junior developers rely too heavily on Stack Overflow. Don't get me wrong - it's an incredible knowledge base, but if you overuse it, it becomes the de facto way you learn things, which is bad. Although answers are updated regularly and the community standards are high, Stack Overflow is a shortcut to learning. The best way to learn is from the source - the official documentation. If the documentation is insufficient, try going to the source code.
By using the official documentation, you ensure that:
- You're reading the current version.
- You're following the current best practices.
- The document structure isn't arbitrary - it's selected by the maintainers of the project and will help you get up to speed faster.
Make sure you read the documentation thoroughly and don't just skim over it. Technical documentation has very little filler, and skimming over it will likely cause you to miss important details. This might make you feel overwhelmed by too many details, but it's okay to use something condensed when it's available. The ultimate goal should be to use the official documentation/specifications.
If you copy code examples from the documentation, make sure you understand what each line does. If you don't, you might copy extra steps that aren't needed in your case, which will delay your work when it is caught in the code review.
Lastly, make sure you don't overcommit. If you want to look up a specific functionality of the library, it's highly recommended to read the documentation for that functionality, but don't read things you don't need, as it will distract you from the problem.
I realize the last two suggestions might sound a bit mutually exclusive - read everything, but just enough. The point is to read as little as possible to unblock yourself without skipping details that may slow you down. There isn't a formula for how much to read, so use your judgment.
Sometimes, the issues you encounter will be obscure, and there may be no senior available to help you. Or perhaps understanding the documentation for a given technology is giving you a hard time. Maybe you want a more leisurely introduction to a given topic.
It's inevitable that you'll need to use external documentation, and finding the best resource for your current need will save you a lot of time, making you more productive. However, finding good resources is becoming increasingly difficult as there is an ever-growing heap of information that we need to filter before finding the good parts.
First things first, make sure that you are looking for resources specific to what you want. There are thousands of tutorials on JavaScript, but if you narrow it down to DOM manipulation, the number will decrease. Once you know what you want, try to derive the general problem.
The next step is to ensure that you're looking for the correct version, which may not necessarily be the latest version, as your project may not be using it.
We've talked about how to search, but not how to filter. The filtering part is resource-type specific. In the next few sections, we will take a look at the most common resource types you'll encounter.
Ratings and reviews are important, but they don't cover everything. Here are a few other things to consider before enrolling in a course:
- When was the course last updated? If you're interested in the latest version or current best practices, this is important to know.
- When you search for the course online, are there strongly negative recent reviews in third-party places like Reddit?
- Does the course length fit your expectations? I've seen courses on the same topic vary from 8 to 100 hours. The ones that are worth 100 hours aren't 12 times better; they're just better time sinks. If you don't have the time to spare, it's better to go with a lower-rated course that fits the time you're willing to spend.
Articles are a great way to learn new things in a short amount of time. As long as the article is relevant to the version of the technology you're working with, most of them will do the job. However, the most profound realizations will come to you from a combination of reading and practical experience. In other words, reading an article can give you a basic understanding of a concept, but applying that concept in practice is what will make it stick.
That being said, articles are a valuable resource for several reasons. For one, they often provide good examples and can help you understand how a particular concept or technology works in a real-world scenario. Additionally, since articles aren't constrained in length, they can cover a topic in more depth than a brief tutorial or video.
It's worth noting that not all articles are created equal. Some are written by experts in their field and provide valuable insights and perspectives, while others may be written by less experienced writers and contain inaccuracies or outdated information. Therefore, it's important to be discerning when it comes to choosing which articles to read.
To get the most out of articles, it's a good idea to take notes as you read and try to apply what you learn in practice. This will help you solidify your understanding of the concepts and technologies you're learning. Additionally, if you find an article particularly helpful, consider bookmarking it or saving it for future reference. This way, you can come back to it later if you need a refresher on the topic.
StackOverflow is a valuable resource for developers, with answers that are updated and maintained by the community. Some of the answers are quite detailed and can provide great insights into the problem at hand. However, it's important to use StackOverflow wisely to avoid becoming overly dependent on it.
Here are a few guidelines for using StackOverflow effectively:
- Read only accepted answers: Accepted answers are the ones that have been selected by the question asker as the best solution. These are the answers that have been tested and found to work, and they are the ones that are most likely to be maintained over time.
- Search before asking: Before you ask a question on StackOverflow, make sure you've done your research and searched for similar questions that have already been answered. This can save you time and prevent duplicate questions from cluttering up the site.
- Don't overuse it: While StackOverflow is a valuable resource, it's important to remember that it is not a substitute for learning. The ultimate goal should be to use official documentation and other resources to deepen your understanding of a topic. Relying too heavily on StackOverflow can lead to a lack of independent learning and a shallow understanding of the underlying concepts.
- Keep in mind its limitations: While StackOverflow can be a great tool for finding answers to specific questions, it's important to keep in mind its limitations. The answers on StackOverflow may not always be complete or accurate, and it's important to verify the information you find there before implementing it in your own code.
Overall, StackOverflow can be a valuable resource for developers, but it's important to use it wisely and in conjunction with other resources. By doing so, you can deepen your understanding of programming concepts and become a more well-rounded developer.