In this beautiful article, I would love to talk about the online tools that helped me improve myself as a software engineer/developer. Also, I will be sharing methods that helped me learn a lot offline. You can also post in the comment sections tools that have helped you, so we can all learn more. It's important to note that there are a lot of tools, I am sure that there are more tools out there than listed here. So, just use them one or two at a time, don't overwhelm yourself with all the ideas and tools all at once. 👌
What did I self-improve 🤔
About improving, I can gladly say that my way of thinking about problems and approaching them has changed a lot. After learning design patterns and system architecture, I place these in mind when I want to write algorithms, solve complex problems, and design software applications. I ask myself questions like, what is the best approach to this problem, If I do that what would be the outcome, Is that efficient, and more?
Where did I start from 🏃🏽
For months now, I have met guys asking me questions like how did I get here, What did I do, Where should I start, and more. But these things are not the correct questions. What I believe is that we should try to research the tech space, and find out about innovations. Pick one industry that you like the most, and find careers available under it. The goal is to do something you love so that when you encounter tough problems, which are inevitable, you won't be overwhelmed and feel like stopping. As for me, that's what kept me going.
As for me, I figured out programming by searching for how to build a remote-controlled helicopter toy. I got to know about IoT and Java, and from there I started learning. My love for this field is what kept me going, It is the thing that helps me keep going when I face tedious and frustrating problems.
Let's talk about the them 🛩
There are a lot of amazing tools, bootcamps, courses, and communities that have helped me. I would talk about the ones I use myself. Let's dive in.
Tools 👌
Some of the amazing tools I have used are GitHub, StackOverflow, AskUbuntu, Google, Documentations, Open source codes, Codewars, Hackerrank. A lot of tools right? But you don't need overwhelm yourself with all at once, just use them one by one.
I use Git as my version control system, as the name implies I use it to manage the versions of my projects, It keeps them ordered and helps me develop complex projects easily. There is an amazing web interface you can use with Git called GitHub. Here you can share your code online, and learn from other Open source projects. An open source project/code is content that is made freely available and may be redistributed and modified. The open source community has grown a lot over the decades, most of the apps you are using now might be open source or built using open source content. Some of the things I wish I had known early are diving into open source codes and documentation of frameworks and tools I use daily. This helped me not just only understand the framework better but also the kind of design patterns used in it. Most people that build and contribute to open source projects are pro developers from different big tech companies and different parts of the world.
Also, when I am stuck with some problems or errors, the first place I go is Google. To use google effectively for solving problems, it's very good to understand the problem so you can know the best keywords to search for on google. Even if you don't understand the problem, copy the error and paste it on google, you will find Stack Overflow posts or GitHub issues of people that have already faced the problems. Whether it is solved or not, there are really some good hints in the comments too. At times, the issues they faced might just be similar to your problem and not actually your problem but still go through it, you will learn a lot and might even solve your problems just there.
After learning Python and JavaScript, I used tools like Hackerrank, Codewars, and Codility to practice solving questions. My friend that I recommended Codewars to were like it's too hard, but you can try it out. I started as a beginner, solved simple questions, and moved to higher problems. These tools are awesome, It will help you if you try them out. There was a time I made it a goal for myself to some at least one coding problem daily just to keep my brain working and thinking. Another good thing about these tools is that, after you have solved your problem, you will get to see how other people solved it. With that, you can learn more efficient ways to solve problems.
Also always remember because the code is shorter does not mean it is better, learn Data structures and Algorithms to understand why.
Bootcamps and Courses 🎥
There are amazing websites out there where you can learn a lot of technical skills out there and even get certified. Most of them are even free, like YouTube, FreeCodeCamp, W3Schools, Coursera, Udemy, MDN and GitHub Education.
YouTube: you can find an extensive amount of content on almost anything you want to learn on YouTube. For example, you can search `Learn python for beginners and you will see amazing content, select any and start learning.
FreeCodeCamp: is an amazing place to learn for free. Lessons are arranged in great learning order for you to learn for free. It's hands-on learning, you learn and practice what you have learned right there. After learning you will be asked to build a project and get certified for free, the certificate can be shared online too. There are lots of courses and content on the website, you can also meet other learners in the forum.
W3Schools: While I was learning Html and CSS, I learned them on my phone, W3Schools was one of my most visited sites. They sectioned everything needed, they even have courses on other languages like JavaScript, Python, PHP, SQL, and more. Till now I still come across w3school at times when searching for solutions to my problems.
Coursera: Amazing place to learn top-level courses and get certified too. Most certificates are not free, but you can still learn the courses alone for free without paying at all. By auditing the course you can get access to its videos and materials, but not the certificate. It's a great place to learn because they come with specializations. For example, you can search for
Git and GitHub
and you will find great specializations for you to also learn. These specializations are courses grouped together with the course you are searching for, that can might be relevant to your career path.MDN: I love this site, it's great documentation for HTML, CSS, JavaScript, and more. But I mostly use it to learn more about JavaScript. While going through the docs, I learned more about some JavaScript statements that I barely knew about before. There are also use cases on the site and an inbuilt testing environment on every page, so you can easily practice what you just learned. I mastered some JavaScript higher-order functions like reduce, map, every, and more here.
GitHub Education: Strictly for students onlyFunny enough, I did not even know about this before, I just found out about it at a conference organized by an online community I am part of, GenZtechies. As a student, you can register and opt-in for the GitHub Education student pack. There are a lot of resources on this site for you to learn, some of which are Educative.io, GitHub Pro, JetBrains, and Azure. These are one of the goodies of being part of a community like Hashnode, GenZtechies, and more. More on communities in the next section.
I am currently strengthening my DSA (Data structures and Algorithm skills with Algoexpert.io, created by some amazing guys, but it's not free. But not to worry, there are other sites like Leetcode and more. Learning DSA changed the way I view problems and projects.
Lastly, Amazing Communities 😎
I have been in a lot of communities over the years and they have all been amazing experiences. While I was still writing codes with my phone, then I was learning Sketchware, Python for Data Science, and Java. I joined a community on WhatsApp then, Python by Practice, and I am currently there. We focused a lot on data science, there is someone always online to help me solve different problems. It was lovely, I did not need someone to sit down with me, the community was there. Over the years, I have joined different communities. I joined GenZtechies and Hashnode, they organize programs to help members learn, share, grow their skills and find good opportunities. As I said earlier, it was one of the programs organized by a community that helped me learn about GitHub education and more. It is not just about learning skills but also finding and making good use of opportunities in these communities. You get to meet great and awesome people from different walks of life and skills, you get to collaborate with them.
A very good example of an opportunity offered in communities is this current content contest challenge offered by Hashnode, It's helping me learn about being a tech writer, and helping you learn about amazing resources, ideas, and lessons that are of good benefit to you.
Conclusion 👍
Learn to use the tools listed above to fine-tune your skills and get certified. Also, find more communities you can join today. I recommend you join GitHub, StackOverflow, and Hashnode, these are online communities you can easily join right now. Are you in a community already? Please share with us in the comment section. You can also share tools you know about that can help others in the comment section.
Gracias, Adios.
Top comments (0)