How I would learn to code (if I could start over)

Having worked as a software engineer for several years, how would I learn to code if I could go back in time? What would I do differently? Here are the 10 things I would do if I could start over again

Number One. Do It.

The best way to learn anything is by doing it. Here's a quote from Confucius, a renowned Chinese philosopher: "What I hear, I forget. What I see, I remember. What I do, I understand." Passive learning, like plainly reading textbooks and watching lecture videos, is the biggest mistake I made initially; it's not an effective way to learn. Coding is about active learning; you must write code to understand it. Reading and watching online tutorials isn't wrong. But when you do, always follow along. Write the code, finish the exercises, run the program, and check your answers. You need to do it to make it your own.

Number Two. Build Your Career Early.

If you are in college, put in the best effort for that 4.0 GPA. The gravity of your GPA depreciates as your career grows, but it is vital for your first job. If I had an excellent GPA, I might have started my career at a FAANG 🀷. Don't let your summer breaks go to waste; find internships. In fact, that's my biggest regret; I didn't do any. Don't be embarrassed because you don't have a FAANG internship. Learning something is better than relaxing on a beach. Whether you are in college, a bootcamp, or learning to code by yourself, start a project. Don't stop at the minimum requirements. You will need far more than a simple CRUD and some certificates to be competitive. Spend at least a month perfecting it. Treat it as unpaid professional work. Working on projects is the best way to learn to code and build experience. If you are wondering what or how to start a project...

Number Three. Copy.

Not the code, but the idea. Copying is one of the fastest and most effective ways to learn anything! That's how I quickly learned to code and play the drums! For example, try to copy games like Sudoku or Minesweeper. I made my own version of Bomberman. What data structures should you use? What algorithms? How would you chain the bombs to explode altogether? Answer these questions as you copy. Try copying my bookkeeping app if you'd like a challenge. What about drumming? Instead of creating my own drum beats and fills, I copy the pros'. It saves tremendous time and effort than inventing my own. Here's my point: you need skills to copy someone else's work. As an amateur, focus on the techniques initially; creativity comes later. You need a strong foundation in math to architect the next skyscraper. Likewise, you need a strong foundation in coding to build the next Amazon or Facebook. Start by mimicking a relatively simple idea that already exists. There is plenty of resources for you to use as a reference. Remember, it's not the time to develop the world's most original idea. I hate to disappoint you, but even if you do, you are not the first.

Number Four. Be Proactive.

Don't wait until you are 100% ready; you never will. Is there something you want to build like a website, a mobile app, or a game? Just begin. Be aggressive. Google how to create a website. Search how to make a game on YouTube. You can find the answers to 99% of your questions on Google. Once you start, you'll arrive at the right questions naturally. How do I add a button? How do I change the color on click? How do I make my game character jump? Search for the answers as the questions come up. In fact, that's how we do it at big tech! We sketch a high-level design and then fill in the details as we code! Had I known that Google is the way, the truth, and the life, I wouldn't have been so unconfident in starting a project. Your project will never kick off if you wait until everything is perfectly planned out. An app is a giant collection of search results stitched together as needed. Don't wait. Just do it.

Number Five. Invest. 

Get a MacBook. Trust me on this. I've been a Windows user for more than 30 years. It wasn't until recently, when I tried an M1 MacBook, that I realized the power of Apple silicon. A delay is the greatest enemy to productivity and concentration; nothing is more annoying than a shitty old laptop that takes years to load, compile, and run. You need to invest in a setup that helps you immerse into focused, undisturbed, and uninterrupted learning. There's a reason why a MacBook is the default developer laptop in some companies. I can't emphasize more the significance of a robust development machine. Start with an M1 MacBook Air; it costs less than $1,000 and is powerful enough for entry-level developers. Now's not the time to be penny wise and pound foolish; invest in your learnings. 

Number Six. Master a Programming Language. 

One of my biggest mistakes as a beginner was hopping around several programming languages without mastering any. Commit yourself to learning one programming language deeply. Establishing one sturdy in-depth foundation in a single language is paramount to having a shallow knowledge across multiple. Once you master a language, you'll realize that all programming languages are virtually identical. As a starter, I recommend Python. It's an immensely versatile and easy-to-learn language with many applications across the industry; I wish I had learned Python first. It's also the best programming language for coding interviews. The language syntax is so concise that you can implement the same solution with the minimum number of codes compared to other languages. That's precisely what you want. More thinking, less coding. 

Number Seven. Be Autonomous.

Being autonomous, or being able to work independently, is arguably the most critical skill in the industry. Learn to solve a problem without relying on others. Your best friend is again Google. Googling is a skill; anyone can search, but not everyone can search well. Pick up the skill of finding your way out before asking for help. Here's a challenge. Put your project on a cloud service like AWS, Azure, and Google Cloud all by yourself. I recommend AWS as it's the market leader and has a free tier. Cloud computing technology is one of the best skills to learn now. Use this opportunity to provide high visibility of your work and prove that you can finish the job independently. Learn to handle things on your own. Don't stay as an individual contributor; become an independent contributor. 

Number Eight. Learn How to Debug.

printf, System.out.print, Console.Write, echo, console.log. I don't remember most of the libraries and methods in any language. But I do remember those that output to the console. Why? Because they are great for debugging. For instance, open up your chrome browser. Press Ctrl + Shift + J on Windows or Cmd + Option + J on a Mac to bring up the Chrome Developer Console. Type in console.log(this). You can see all the properties and values stored in the object in JavaScript. Not every language outputs the entire content to the console, but you get the point. Visual Studio Code and Visual Studio are the best IDEs in the world; don't look elsewhere. Learn how to put breakpoints; they are the best way to debug. Take advantage of the debugging tools and debug often. If you are not debugging in between development, you are doing it wrong. Make debugging a habit. 

Number Nine. LeetCode Early.

Do me a favor, and stop arguing how relevant LeetCode is in real-life; just do it. It doesn't matter who's correct because you'll have to LeetCode to clear the coding interview anyways. Like it or not, this system is not changing any time soon, so better start early than be late. For starters, I know how intimidating LeetCode can be. However, it's a skill that can be learned and improved. For what it's worth, even FAANG engineers still LeetCode 2 to 3 months before jumping the ship. Why? Because it's hard! I was never good at it and still don't think I am. But the difference is that I never gave up! Do you want to join a FAANG? Know your data structures. Take time and space complexities seriously; get them wrong, and you'll lose the game. The questions might not be relevant in real-life, but complexity analysis is. Learn to optimize and write efficient code. Brute force solutions are unacceptable at FAANGs. Want to know how I prepared my FAANG interviews? Check out this video

Number Ten. Win.

Adopt the winning mindset. You're a winner if you strive to be better than someone you were yesterday. Whatever you do, promise me this: do your best. It's okay to fail, but learn to accept failures as a stepping stone to victory. Coding is hard, and you won't survive without the right attitude. If I could go back in time, I would discipline myself in these three areas: Perseverance. Learn to sit for hours. Concentrate until you reach a meaningful milestone. Failure is a part of the learning curve; giving up is not. Humility. There's no room to grow if your cup is already full. Embrace the fact that computers can never be wrong, but you can. If you're fighting your laptop, you're fighting the wrong opponent. Determination. Never lose sight of your goal. Do everything you can to realize your ambition. Seek help when necessary. Again, Google and YouTube are your best bets. Where there's a will, there's a way.

Summary

Everything I mention here can be done in parallel, meaning there's no actual order. These are ten genuine pieces of advice I would give myself if I could travel back in time. Which one did you find most useful? Let me know in the comments below. Don't forget to like and subscribe if you find this video helpful. πŸ΄β€β˜ οΈπŸ‘‘

Grammarly

Let me introduce an app I use daily, Grammarly. Grammarly is a cloud-based typing assistant that reviews spelling, grammar, punctuation, and writing style. With over 10 million daily active users, it's the most popular grammar checker on the planet. Before publishing, I review everything I write formally with Grammarly, including my YouTube scripts, announcements, and webpage articles. It's the core of my writing, the centerpiece that empowers me to deliver my ideas effectively to the audience. Download the app or install the Chrome plugin to get your writings automatically checked on apps like Gmail, Outlook, Word, Notion, and Social Media. Try it out; you can get started for free. And when you sign up, please use my affiliate link. An affiliate link tracks whether you click and make a purchase. If you do, I may get a commission. Using affiliate links is optional, but it enables me to create free content like this! ☺️

 

Keywords

  • how to learn code for beginners

  • how to learn code from scratch

  • how to start learning programming

  • how to start coding

  • how to start coding for beginners

  • how to learn code on your own

  • how to learn code fast

  • how to learn code easily

  • how to learn programming for beginners free

  • how do I start coding

  • how to start learning coding for beginners

Previous
Previous

Stock Market for Beginners

Next
Next

12 Years in the Life of a Software Engineer