Mastering the computer: Actionable Tips & Best Practices
Tags: programming, l33t, tutorial, beginners
Published: 2023-07-15 19:05:43

## Introduction

I remember the first time I logged `Hello World!` to my developer console. It felt like I could do anything, be anything, It felt like I was God.
The euphoria quickly faded away when I came in contact with the nitty gritty of Javascript functions.
I would like to state that I'm not here to give opinions however I would like to state a few things I've noticed on my short journey in this space.
Whenever anybody wants to become a programmer, they do so for a myriad of reasons. But then without even knowing said reasons everyone on the internet will tell you to start with the trinity of ezpz: HTML, CSS and Javascript.
Now, you can't fault the logic. A newcomer coming in might run away if thrown into deep waters immediately.
Or better still, the newcomer will drown in said deep waters.
The catch is that HTML, CSS and Javascript gives you a false sense of accomplishment, the learning curve on that is not that steep and so as a newcomer into the space you'll buy into this idea that tech is easy, but it's not.
A well rounded software engineer is like Isaac Newton when he allegedly independently derived the principles of mathematics and physics we use in the natural world today.
In essence the analogy I'm trying to draw is that a software engineer is a maverick at calculus, but then "mastering" 
`HTML, CSS and Javascript` is just you learning the multiplication tables(to only 12). News flash: You haven't really done much. 
You're just getting started baby, don't let these twitter developer influencers gaslight you into thinking it's a bed of roses and ezpz is the order of the day.
That's their job, to encourage, to garner followers.
my job is to tell you the truth.
and to build cool shit too.
Now after shitting on all your supposed hard work how about I tell you the actionable tips I promised.

**Secret**
Instead of focusing on HTML, CSS and Javascript, you should strive to understand the ins and outs of the linux kernel, complete mastery of a version control system and be familiar with a statically typed language.


> A statically typed programming language is a programming language in which variables must be explicitly declared with their data types, and type checking is performed at compile-time. This means that the type of each variable is determined and verified before the program is executed.
Examples of statically typed programming languages include Java, C++, C#, Rust, Swift, and Go.


Javascript is **NOT** statically typed, it is dynamic.
although this affords us some advantages it is too far from the metal to get a real feel of how computers work.
And we need to worship silicon if we harbor any dreams of getting good at programming.
We need to bow our heads everyday in silent supplication to millions of semi-conductors.
We need to know how they think, how they feel, how they act and how they react at a very basic level.

Learning a new programming language can be both exciting and challenging. Whether you're a seasoned developer or just starting your coding journey, acquiring proficiency in a new language requires dedication, practice, and the right strategies.

Let's dive in to those actionable tips I promised.

1. Set Clear Goals:
Before embarking on your language learning journey, establish clear goals and objectives. Determine what you want to achieve with the new language, whether it's building web applications, developing mobile apps, creating AI to help us get to mars or exploring data analysis. Having a clear purpose will help you stay motivated and focused throughout the learning process.
Too many people (me included) started out by just hacking around for years. While that sounds cool, It is neither efficient nor impressive.

2. Start with Fundamentals:
Begin by grasping the fundamental concepts of the new language. Familiarize yourself with its syntax, data types, variables, control structures, and basic algorithms. Many online resources offer introductory tutorials and documentation specifically designed for beginners. Work through these resources systematically to build a solid foundation.
There is a reason it's called the basics. Do not try building a house on an unstable foundation.

3. Hands-On Practice:
Theory alone won't make you proficient in a programming language. Regular hands-on practice is crucial for cementing your knowledge and improving your coding skills. Start by solving small coding exercises or challenges. Online platforms like HackerRank, LeetCode, and Codecademy provide a wide range of interactive coding problems to sharpen your skills and apply your knowledge in practical scenarios.

4. Code Along and Build Projects:
One effective way to learn syntax and best practices is by coding along with tutorials or online courses. 
By actively following along and replicating code examples, you'll gain familiarity with the language's syntax and structure.
It's easy to get stuck in tutorial hell, avoid it like the plague.
Additionally, take up personal projects that align with your interests. Building projects not only reinforces your understanding but also helps you encounter real-world challenges and problem-solving scenarios.

5. Read the Official Documentation:
I cannot stress this enough, read the docs. read the docs.
## READ THE FUCKING DOCUMENTATION.
(yeah that's how important this is)
The official documentation of any programming language is a goldmine of information. It provides in-depth explanations, code samples, and best practices straight from the language creators. Make it a habit to refer to the official documentation whenever you come across unfamiliar syntax or when seeking guidance on best practices. This will ensure you have accurate and up-to-date information at your fingertips.

6. Utilize Online Communities:
The beauty of tech is in it's community and open-sourced nature.
Engaging with online programming communities can greatly enhance your learning experience. Join forums, developer groups and social media platforms dedicated to the language you're learning. Participate in discussions, ask questions, and seek guidance from experienced developers. Community members often share useful resources, tips, and real-world experiences that can help you gain insights and deepen your understanding.
NB: Always be respectful and kind in these spaces, remember nobody is obligated to help you and anybody doing so probably got said information from hard work on his/her/their part.

7. Create Cheat Sheets and Flashcards:
To aid your memory retention, create cheat sheets or flashcards summarizing the language syntax, keywords, and common best practices. These quick reference materials can serve as handy reminders and revision tools when you need to recall specific syntax or concepts. Regularly review and quiz yourself using these resources to reinforce your understanding.

8. Practice Pair Programming:
Pair programming involves working with another programmer to solve coding problems collaboratively. Find a study partner, participate in group hackathons or join coding meetups where you can engage in pair programming sessions. This approach not only exposes you to different perspectives but also encourages discussion and mutual learning. Explaining your thought process and code to someone else enhances your understanding and solidifies your grasp of the language.

9. Contribute to Open Source Projects:
Contributing to open source projects is an excellent way to apply your skills, gain practical experience, and collaborate with other developers. Explore platforms like GitHub or GitLab and find projects that align with your interests. By contributing code, fixing bugs, or adding features, you'll gain hands-on experience and receive valuable feedback from the open-source community.

Learning a new programming language requires time, effort, and persistence. It takes blood, sweat and tears. (I am serious, at some point you are going to cry)
contrary to what you heard on twitter you cannot master a language in six months.
By setting clear goals, practicing regularly, leveraging available resources, and engaging with the developer community, you can master a new language efficiently. Remember, the key is to combine theoretical knowledge with practical application, and through consistent practice, you'll become proficient in your chosen programming language. 
Once again, It's your boy kimonic wishing you peace and blessings!