As you progress in the field of software development and take on more projects, you are likely to make more conscious decisions as to which technology stack to choose for the job. The programming language plays a crucial role in any chosen stack and introducing yourself to a new tech stack might mean that you have to learn a new programming language. A programmer who has mastered a particular language will apply a much clever and efficient approach to solving technical problems within the scope of what the language offers, and since software is simply a set of programs working together to solve a business problem, such cleverly written programs will certainly contribute to the quality of the software that is being built.
In this post, I present a guide I believe can help anyone master and harness the full potential of any programming language they pick.
Learn the various ways of variable declaration, assignment, control structures, functions, arrays, strings etc. All these are important because more advanced concepts in the language assume you understand its basic constructs.
Dedicate time to solving problems: those in coding books, Leetcode and so on. Do a lot.
Typically, there are more of these advanced concepts than the basics, so don't waste time following the table of contents. So pick an idea: File sharing, Chatroom, Port scanner. Plan to apply ALL you have learned so far as well as some language-specific features e.g Threading, Networking, File I/O, memory management. You can think of a Multi-threaded chatroom and so on. This is where you start getting personal with it.
Might be in clients' work, your day job, or collab projects.
I did not mean "contribute", I mean literally READ. Try to understand what they are doing. Begin with small toy projects you can go through over a weekend, then graduate from there to bigger ones.
You learn the philosophy behind its design. You truly understand the language and from here, you can do great things.
New features new changes to maintenance structure and general news. And of course, funny people.
Blog post, workshops or whatever.
Subject yourself to reviewing people's code, raising (legitimate) issues and praying for a merge.