4 Tips for Beginners (and maybe even experts)
Tags: beginners, computerscience
Published: 2020-05-25 23:54:45

# 1. Set a Clear Intention

The tech world is so large, you may not know exactly what you want to get into first. Frontend? Backend? Websites? Apps? Data Science? AI? Machine Learning?

I know it's kind of cheesy, but ask yourself WHY you want to learn how to code. Is this just a hobby, or do you want to this into a high-paying career? Do you want to work for a startup or a large corporation? Do you want to be an educator or teach online? Do you want to start you own tech business?

What's your plan? Being clear about what you want to do in the long run will not only help you choose the right technologies to learn but save you from spending too much time learning technologies that are nonessential for your goals.

It's easy to get lost in all of the technology. I see a lot of programmers spreading themselves too thin such as trying to learn Python while learning Ruby and Java or picking up Vue when they've barely scratched the surface with React.

I suggest specializing in 1-2 languages and 1-2 frameworks to begin. Put in the hours and strive to become an expert with a few things things versus a beginner with many.

Focus on your strengths and what you enjoy. Regardless of what you decide to commit to, you're going to face challenges you may not expect. That's why it's critical to have a strong and clear intention when beginning your programming journey.

# 2. Practice the Fundamentals

*"I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times."* - Bruce Lee

Before learning any languages, I highly recommend studying data structures and algorithms. Many developers will confirm that you may not directly use any algorithms at your job, but studying algorithms is not necessarily about just solving those problems. It's about understanding the fundamentals behind computer science.

Understanding concepts such as time and space complexity help you write more quickly executed code that takes up the least amount of memory. Whether you work at a startup or large business or even start your own company, you want to develop a product that can scale while minimizing costs and maximizing usability.

On top of all of this, it'll be a lot easier for you to get a job.

Study your algorithms and data structures - everyday for at least 1-2 hours. Here are my favorite resources:

- The Fundamentals: [MIT OpenCourseWare Introduction to Algorithms](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)

- Practice Coding Problems: [LeetCode](https://leetcode.com/)

- Practice Mock Interviews: [Pramp](https://www.pramp.com/)

- Interview Prep Kit: [HackerRank](https://www.hackerrank.com/interview/interview-preparation-kit)

# 3. Rest

*the law of diminishing returns (n): used to refer to a point at which the level of profits or benefits gained is less than the amount of money or energy invested*

Sometimes projects are so exciting, all you want to do is work on them. Other times, you're just stuck on fixing a bug or solving a problem. In both cases, it can be really easy to spend way too long on one thing.

There have been days where I've literally forgotten to eat while coding. I would go 8-10 hours straight, and my whole day would go by in the blink on an eye. There have been many times where I would spend hours trying to fix a bug, take a 1 hour break, come back and fix it within 5 minutes.

Now that I implement longer breaks and more sleep, I'm able to get the same amount of work done in 5 hours than I would in 8-10 hours. This is because of the law of diminishing returns. If you look at the mind as a points system (kind of like HP in Pokemon), we only have so many "focus points" or "problem solving points" for each day. Use them wisely.

In addition to being able to greater focus and productivity, it's just not healthy to code for that long. If you haven't already, you could start getting headaches, lack nutrition and struggle falling asleep. It's not fun.

# 4. Have Fun

Coding can get repetitive and even boring. You might sometimes need to spend 5 hours on re-styling a page or 2 days on fixing a bug that only required 1 line of code. It can get frustrating, so it's good to remember to build something you enjoy.

I understand the struggle of just getting through your programming class ot trying to find your first job. Do what you have to do. But at the same time, build side projects you're excited about and apply for companies with a product or service you actually care about.

Play the long game. If you're just learning how to code so that you can get a high-paying job... that's actually really awesome, that's why I started too. But I still highly suggest having a long term plan and setting yourself up for a career you can look forward to. Something you're willing to face the challenges with and learn a lot along the way.