I'm looking to take the next step and learn to code. Love No Code etc. but I feel not learning to code is putting up roadblocks on what I want to create.
Last year I read a post by @damonchen about the success he had with Testimonial.io and building it in React. That very same day I bought the course on Udemy that he used to learn React.
To my shock that was in Oct '21 - and I've not started it but will tonight (like no one has ever said that before...)
So is React the way forward to learn fast? If so any other resources I should look at? If not whats your advice.?
Hi - as someone who taught themselves to code, I find the best way is to change your goal from "learning to code" to "build the thing I want to build." Along the way, you'll learn coding, but you'll have more of a shot of sticking with it.
As for more tactical advice on how to do this, I'd pick up a tutorial that shows you how to build something end to end, but adjust it for the thing you want to build. For example, maybe the tutorial shows how to create a todos app - this will go over creating the todos, updating the todos, viewing the todos, etc. Replace todo with what you are doing and edit/modify as you go. This will allow you to get a foundation in place for how the pieces work and it becomes easier to add/look up specific things once you have the core in place.
As for specific technology (you mention React) - it really depends on what you're trying to build. React is frontend framework - it's not going to persist data to a database for you by itself (so if you want data to be accessible later, shared, etc. this won't do the job).
Thanks @kyle. Greatly appreciated. RE: "tutorial that shows you how to build something end to end" can you point me the best place to find such tutorials? Perhaps Egghead.io?
I came here to say something similar to what @kyle said — figure out the project you want to build, and start trying to build it. When you run into a step you don't know, Google it and learn what you need to know to accomplish that step.
I think that approach works much better than trying to find a tutorial to explain a bunch of stuff to you in advance. There are a million things you can learn, but the fastest way is to only learn the things you'll actually use, and to do that you need to repeatedly begin by asking yourself what the next step is in your project.
Thanks @csallen. Sage words!
I wrote a whole book on the topic. You can get a free 200 page copy here:
https://www.jondouglas.dev/free-book
My advice in a TL;DR comment is to focus on your outcomes and build systems around them.
Thanks Jon. Book downloaded. Looks amazing. Instantly gravitated towards the chapter about "getting to grip with GitHub". Because that stuff is like trying to learn Martian :)
What worked for me was finding a project I wanted to build and just going for it. I started with building little puzzles, and websites.
Start small. Rinse and repeat.
This. The "want to build" part is underestimated IMO. You're much likely to watch to push yourself to do something when you derive pleasure from the anticipated outcome (or at least that's according to my experience).
Hi @RicArthur,
as a mostly self-taught programmer, my advice is:
Pick a programming language that is easy to learn and can do the things you want to do. If you want to build a web based product, I would still recommend Python and Django - server side rendering may sound boring, but it is still much easier to create a robust and secure service, especially as a single developer. React is in my opinion much too hard to get started, especially if you do not already know JavaScript.
Pick a great book or a great course. Read front to back and do all the exercises, type everything by hand, do not copy and paste. The programming language and idioms will become second-nature to you. I learned Python earlier, but Core Python by Wesley Chun really pushed me to another level. This and The Python Cookbook. Unfortunately, it has not been updated since 2007 It is the kind of book you should be looking for - a labor of love and it shows. BTW: If you cannot touch type: Learn it first.
Start to build a project you want to build, but is simple enough to not get overwhelmed. When you work on it learn using git as soon as you can and use it. You can also search for similar projects, read the source and fork them and make it work for you. Even better, try to find a project that is interesting to you, pick an easy ticket and try write a patch and get it merged. Reading and messing with existing code will result in a lot of errors, but those are the learning experiences you should be looking for. When you face a bug, don't be upset. Instead, say hello to fixing your misconceptions more than fixing the code.
Don't underestimate the effort. Keep going at a slow but steady pace. Work on it eg. for one hour every day. Don't push too hard, don't go to exhaustion. Learning to code is a marathon and not a sprint. I once read a book about Game Programming in C (the book was from the 1990s). In the introduction it said: Expect to put aside one year. Full time, no friends, no other hobbies, if you really want to become good. Otherwise, don't start. Things are much easier, today, thankfully. But still: It is easy to get overwhelmed and distracted by the many options. Putting in such a full year is not unheard of, even today. So better keep it simple and have fun coding.
All the best, hope you will start this journey and keep at it. I think learning to code is worth the effort.
-- Mitja
I'll tell you the exact thing you need to do - because I've done it. I hated programming; but ended up learning it quickly; and built a platform that supported hundreds of simultaneous users.
Here's how to do it -
1a. Why a framework? Because a good framework will guide you how to write a code you can still read (and understand) one year down the line. Thank me later.
Start coding your MVP right away. Learning by solving problems is THE BEST way to learn programming. Don't follow long-ass tutorials. They get boring quickly.
Google your way out of programming problems. This good world has solved problems that you're going to face. Don't reinvent the wheel. Just use other people's code to solve your problems.
Focus on incremental successes. Success keeps you on track.
Don't waste time deciding on SQL vs. NonSQL, Node or Python, Scalability, Performance. The only thing that matters is do you have paying customers. Amazon.com isn't written with latest tech; but it works and that matters.
Bonus tip - you can hire world's top React coder if you've got paying customers.
I hope you find this useful.
Thanks @thebigk . Thats a roadmap for me. When you say you learned fast, out of interest, what was the timeframe?
About 6-8 months; before I got comfortable writing my own products.
Hi, I can also agree like others already mentioned that you could increase the way to learn coding by having a specific goal in the end (even better with a specific date until you want to achieve it latest).
What works for me if I need to learn something new is first trying to understand the basics by reading a book about the topic or doing a beginner course about the topic (for you for example the Udemy course) and then trying to apply these basics I've learned to my own goal.
To give you an example. Right now I'm trying to learn how to build a web app with Rails 7.0.1. For this I'm right now working through this book to understand the basics, after that or when I have the feeling at some point during the book I will just start applying things to my own idea of web app. And then when I'm stuck on some part, e.g. authentication or database stuff, I'll just look up specific topics up in the book, or some blog post, or even youtube videos until I have a satisfying solution for my problem. Regarding this I have to think right now about the First Principles.
You also mentioned that "that was in Oct '21" and you haven't started yet. Regarding this I can give you the advice to build a habit for learning or achieving your goal e.g. Every day at 8AM for 2h I will work on that specific udemy course. Also helpful regarding this is Atomic Habits. Then to stay focused during these 2h I can recommend using the Pomodoro technique. In short, set a timer for 25mins and keep all distractions away (e.g. phone, notifications, put the door bell ringing off, just be not reachable), then do a 5 minute break and continue until you have the 2h full. I recently started doing 50mins pomodoros and 10mins breaks and I really like it for more complicated tasks.
Regarding this whole learning something stuff I can really recommend the free course Learning How To Learn. After finishing that you will maybe have the feeling that you can learn anything 🙂 (at least that stuck with me after I took that course). They will go much deeper into the things I've mentioned here.
TL;DR: Have a specific goal (with a specific date until you want to achieve it), learn the basics, build a habit for learning/building that goal in a focused way using all the resources you have, divide your tasks in chunks by using for example a Trello board
Exactly what everyone else has been saying, but I would add it's vital to slice up each task into the smallest piece possible; e.g if you're working on a form just get one field working before trying to throw together the whole thing. If you get stuck at any point your first question should always be "how can I break this down into a smaller set of problems to solve". Good luck with the course, React is a lot fun to build with
Forget about learning to code. Learn about leveraging resources to build the end product!
React is a framework for web apps, meaning that you need at least a basic understanding of Javascript, HTML, and CSS, so start with those rather than trying to figure them out all bundled together in React.
Go check out FreeCodeCamp.org
Course wise, Scrimba is amazing. I was definitely a person who would start a course and then get distracted but scrimba has done a great job keeping my attention. Highly recommend and their basic stuff is free