Hello ! I'm Xavier Jouvenot and this is my second blog post on Hashnode, and also the second for the Writeathon "4 Articles in 4 Weeks"! And this time, I am even in advance compare to the last article, as this time, I still have 3 days before the deadline, instead of 3 hours 😆
Since it's been 7 years since I left the university, in this article, I am going to talk about the tools that I have been using during the latest years, as they are going to be more useful than the one I could have used when I was a student. There are 3 reasons for this choice:
- First of all, I mainly used the material courses the teachers gave me during my years in university,
- The second reason is that I don't remember a lot about the online resources and tools I was using 7 years ago
- And the last but not the least, the majority of the tools I used back then are around anymore 😝
Whatever the technology you are using, it is always important to know where the documentation of this technology is, as you will need to refer to it a lot! But the documentation is not the only thing you must have in your toolbox when working with a specific technology: following the work of some people, which are known for there work on/with this technology is as important.
Indeed, the documentation can be really dry and hard to understand, and you can't read all the ISO norms of a language, for example, and expect to understand and remember it all, but is really useful when you encounter some elements you don't understand in a code base, for example. While having resources where some other people explain to you some concepts related to the technology you are using can be easier to understand, and can offer a continuous stream of resources, refreshing your mind on a regular basis.
Let's take the language C++ that I use daily for my professional work (and sometimes for some more personal projects). The online documentation can be found on cppreference website and is really useful to understand every element of the language.
But I also use some other resources to improve my understanding of the language, the concept that revolves around it, and keep my skill sharp. Those online resources can take various forms like the Youtube channel C++ Weekly, some blogs like fluentcpp, foonathan and Simplify C++, some Twitter account of influential people in the C++ world, like Jason Turner or even podcasts like CppCast.
All the examples I mentioned are for C++ only, and if you don't use this language, it's perfectly alright. The purpose of this section is more to give hints on where to look for your specific technology than to list every useful resources to every technology 😉
It is easy, once we have started our career to constrain ourselves to one particular technology, or set of technology, we forget the rest of the world. You may have already seen people like that, who swear that only one particular technology is the best of all, and that all the others are garbage. You will want to avoid those kind of people if you want to improve as a developer.
Indeed, you can probably learn something from every technology, and that doesn't mean only other languages, but other areas of the computer sphere. Learning about the principle of code quality, some aspects of DevOps, mobile/web/desktop development, IOT, machine learning, design, network security, systems, design patterns, algorithm, data structures, web design and probably even other stuff that didn't come to my mind when writing these lines. We can learn a lot about all these subjects and this will allow us to become more skilled as software engineers. 💪
But there are also other aspects where, as software engineers, we must improve. Those are called the soft skills, the skills such as communication, management, being able to be very productive or being able to work with a team, for example: all the skills that allow you to work better with other people. Those skills are often not regarded by software engineers when we try to improve ourselves, but they are essential in order to evolve in our industry, and as a person.
Well, now you may tell yourself: "Xavier, this article is supposed to be about online tools, not about the skills we need as developers", and you may be right, but I wanted to describe exactly why we must interest ourselves to what other people do in other area of programming, since you probably already known the tools to improve in those areas.
Those tools are more general programming website with big communities like Hashnode, Dev.to or CodeNewbies for example. There are also podcasts like CodingBlock, Changelog or Embedded. Or even blogs which talk about general computer science concepts and topics such as Base CS, Simple Programmer or Korben (in french).
Finally, to manage all those resources, I personally use the tool Feedly to know what has been published and, from there, read all the articles/podcasts/videos that can interest me and help me improve each day. 🧙
For the last part of this article, I want to talk to you about something probably even more important that the tools/resources I may have mentioned in the previous sections, it is mental health.
In our quest to become better skilled, trying to learn everything we can, about all the technologies, and the soft skills, and.... this is a never ending quest, and we can easily burn ourselves out if we are not careful. I have been in that place, and I can assure you that it is not a pleasant one. Between the Fear of Missing Out, the Impostor syndrome or the good old Burnout, you must remember to take care of yourself before anything else, as there will be things that you don't know, you will make mistakes and leave some stressful moment in your developer journey. But that is totally fine. It happens to everybody.
I can encourage you enough to go see the YouTube channel Healthy Software Developer. It is full of interesting stories and lessons!
This article have probably more resources than tools for you to use, but I hope that it will benefits you at least as much as it felt good to me to write 😊
You probably have your own resources/tools to keep improving and become a better developer/software engineer.
I would love to known about them, so leave a little comment, as it will help me to improve myself too 😉
Thank you all for reading this article,
And until my next article, have a terrific day 🙂