26
6 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. 3

    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. 2

      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

    I have built a website that provides roadmaps for learning skills, My main goal was to guide students and provide the best resources from the internet in one place.

    In the past, I was stuck in my career, there was no one to guide me and give me a sense of direction. On the internet, everyone told me what things to learn but no one told me in which order or from where, It took me a year to figure out what to do.

    I firmly believe that creating a roadmap helped me a lot. Everyone should have at least one personal roadmap.

  3. 1

    Great advice! One thing I struggled with when I was starting out was building projects. It felt easy to find online classes and resources to learn coding, but much harder to understand how to actually create a project from scratch.

    I am now part of a nonprofit organization looking to help others in the same position. We are trying to make tech education more accessible by offering a free online bootcamp. You can check out our Intro to Serverless curriculum on our GitHub - https://github.com/bitprj/Intro-To-Serverless. This course will guide you through building multiple mini projects using Azure Functions and Javascript. It will give you the tools to build your own project from scratch. Previous students have walked away with some pretty cool projects - https://www.bitproject.org/serverless

  4. 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.
  5. 1

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

    Teach Yourself Programming in Ten Years by
    Peter Norvig

    A classic.

Trending on Indie Hackers
How I grew a side project to 100k Unique Visitors in 7 days with 0 audience 47 comments Competing with Product Hunt: a month later 33 comments Why do you hate marketing? 27 comments $15k revenues in <4 months as a solopreneur 14 comments Use Your Product 13 comments How I Launched FrontendEase 13 comments