22
4 Comments

How to learn to code, FAST?

My best advice to learn to code fast is to learn to code slow.

How do I know that? Because I didn't learn to code slow. I learned to code exactly the opposite. I jumped into a programming school with no prior knowledge of coding. I didn't know what I was doing, I was just trying to do everything as fast as possible. And it was a disaster. I didn't want to slow down or ask questions or try to understand. I wanted to learn to code fast so I could build my own projects. And then I realized that I was not going to build anything and that I needed to take a different approach. I started to learn to code slow. I started to understand what was going on. I started to ask myself a lot of questions. What is this function? How does this work? When you ask yourself questions, you start to understand. You start to understand how everything works together, how you can use this and that, and how you can apply it to your own projects. So my advice is, learn to code slow. Don't do what I did. Don't try to learn to code fast. Take the time to understand.

It's been just under two months since I decided to learn Fullstack development. Before that point, I'd spent the last year as a student in a very unique programming school: 42. I mainly learned C, C++ and set up some homemade Dockerfile. I'd never even heard of Firebase before I started my journey, and I knew nothing about HTML, CSS, JavaScript and React.

I was also worried about time. I already have some projects running and I don't have the time and money to spend years learning new programming languages. So I'd give myself two months to learn the basics of full-stack web dev.

Then I set a few guidelines:

  • I didn't want to spend more than 5 hours a day learning full-stack web development.
  • I didn't want to spend more than $10 in learning materials.
  • I didn't want to build something that would take more than a month to build.
  • I wanted to build something that I found interesting and fun.

I decided to start with Codacademy courses -they have a free pro plan for student. I did some HTML, CSS and JavaScript courses. Then, I took a React course. I find a great lessons about Firebase on Educative -they also have a free plan for student.

👉 After about a week of research, I choose to code https://naturalycode.com/.

Before starting building my own project, I was a little bored by the courses. I like being productive and building things… so when I took the courses I felt like loosing time. It was so hard to learn to code slow. I wanted to code fast, build my project straight away and fix problems on the way… That’s what I did sometimes, and loose so much time. I decided to keep focus on courses and see what happened. Then, when I had a great understanding of web dev I really started building my project, I was hooked after the first day. It was so much more fun to code something you actually understand. Everything is smoother. It's pure joy!

The journey was fun and engaging. The documentation in React and Firebase were friendly -compared to C and C++. The project was challenging and exciting. It was just what I wanted -something fun and challenging.

Nowadays, you can learn anything with 0$. You can learn how to use the latest technologies, build something fun and share it with the world... and probably make money from that, one day!

  1. 1

    The thing that really frustrated me when I first started learning to code was what I now call the “foggy bridge”. It’s a long and dark bridge where everything on the left is too easy and everything on the right is too hard. So you’re stuck aimlessly stumbling across this damn bridge not knowing what you don’t know.

    Most people new to programming suffer from an inability to find intermediate tasks and sources of knowledge to bridge the gap between being a beginner and becoming a proficient coder. The people who make it across the bridge do it by endlessly grinding through simple tasks or hitting their head against the wall of a project that’s probably way beyond their current ability.

    This results in the vast majority of beginners getting frustrated and giving up before they should. They burn out. Not because coding is hard (it’s not), but because learning to code is hard. And it really shouldn’t be. :(

    1. 1

      I think one technique that could be useful in crossing this "foggy bridge" is to try reproduce existing programs/websites. For example try build the homepage of Github of Stripe. This doesn't require you know everything to build a full web app but it removes a lot of the small decisions that can really slow you down and lets you just focus on implementing things.

      You could then try reproduce some small open source projects, maybe even hand copy each line of code so you start to build a better mental model of how things fit together.

      I think of it like learning an instrument, you first learn your favourite songs in order to practice the mechanics and build your ear for the music.

  2. 1

    You cant learn to code. You are continually learning to code. You hit the nail on the head you should deep dive into anything you dont understand, all resources are readily available. I would add

    • Learn actively - write your own code, see where it goes wrong and understand why - this will accelerate your learning faster than any course
    • If you do want to learn quick certifications for me were a good way - as it forces a deeper understanding (the java certification is particulary good at this)
    • Now the bad news - like any profession it will take 5-10 years of real experience to become fully competent. After 5 years you will start to smell the sources of your mistakes rather than being hit in them by surprise as "bugs". After 10 years your code will become even simpler as you have been burnt by the long nights and 2am call outs.
  3. 1

    https://norvig.com/21-days.html

    Teach Yourself Programming in Ten Years by
    Peter Norvig

    A classic.

Trending on Indie Hackers
I write Lenny's Newsletter, the #1 paid business newsletter on Substack, generating over $500k ARR. AMA. 59 comments Considering Cold Mailing? Here's My Personal Experience! 📧 7 comments Do you have 0 paying users? Let's chat 6 comments Tell me About Your Startup! + would love to learn how you use issue trackers + documentation software. 5 comments 👾 Centralised and Decentralised exchanges… what's the difference? 4 comments How can we improve our pre-launch landing page? 3 comments