New to code and I don’t know where to start

Hey guys, hope everyone is doing great.

I’m a student in New Zealand and have a lot of free time. Because of this I have been looking for interesting projects to pursue and skills to learn. My end goal is to code an app like Sidechef or Mealime (for recreation). I have been researching where to start learning but have just been overloaded with so much information saying different things.

I would love to have the below questions asked:

Which sites and platforms should I learn from?
What languages should i learn?
And how many hours should it take me to learn enough to reach my goal?

Thanks so much in advance

  1. 16

    I would recommend you https://freecodecamp.com
    Completely free.

    I am self taught as well.

    1. 2

      I second this. I'm pretty experienced and was amazed by the quality of the content in there. Also very beginner friendly.

      1. 1

        Great. Yeah I've heard only good things but was unsure if there were better options. Thanks heaps for the advice :)

    2. 1

      Great resource, and you can get certifications for it that you can show to an employer.

      A 💯 % recommend.

  2. 2

    The most important step:

    1. Choose a simple project that you're excited about

    Then move on to the easier parts:

    1. Choose a language to learn. No language is best. Just pick one. I'd recommend not starting with a framework (that's like trying to read War and Peace as your first book) and definitely starting with a backend language (so you can have a simple, fully working project and share it with friends without having to code the front-end too).

    This means:
    • PHP is fine, but not Laravel
    • Don't start with Rails — you won't understand why you need it yet
    • Avoid JS frameworks like the plague (for now)

    1. Try to build your project by playing around and Googling each step. Look up tutorials and follow them for as long as they help you make progress. Then discard them. Skip through videos to the point they're useful, then move on to the next video. Stay focused on building the project — don't get obsessed with some fancy tutorial and "the right way" to do things (yet). Keep it fun and focused on your goal: building something that works!

    2. Once you create a project from scratch, share it! Celebrate it! Tell your friends about it! It's immensely rewarding to have other people use something that you created from scratch.

    This path is incredibly hard, but it's also the quickest way to go from total beginner to competent coder. Keep it fun and focus on getting something working — and share it with people who will use it and give you feedback.

    1. Reach out to someone more experienced and ask them to advise you on next steps. They'll tell you about why your PHP app is insecure and unscalable and all the reasons you should have started with Laravel. But now you'll have the experience necessary to appreciate what a framework can do. Unfortunately, you can't take a shortcut. You need to start with the basics.

    Also this looks like a killer tutorial: https://www.youtube.com/watch?v=yXzWfZ4N4xU

    (I am self-taught and tried to learn Rails first. That failed. Then I tried to learn Python and succeeded in building a working app. That led to my first startup job, and the rest is history!)

    1. 2

      Wow that is so helpful mate. I will definitely follow that process. Thanks so much for your time and advice :)

    2. 2

      This is pretty much exactly how I learned and 2+ years in, I have a handful of working apps making money. I still don't know any JS frameworks!

  3. 2

    Self-taught dev here. I optimise for just in time learning and moving fast. Other devs and indie hackers love learning for learning. Know which path you want to follow.

    My advice is for those who want to get shit done.

    Have a look at freecodecamp

    The tools and languages

    • HTML

    • CSS

    • JS

    • SQL

    • Tailwind

    • Reactjs

    • Nextjs

    • Supabase

    For tutorials do 1/2 on each subject see if you get it. If not just google "x" tutorial and pick ones that look good until you get it. Novelty is huge and repeating the same thing didn't help me at least.

    Long list might take you a while, but once done you will code faster and better than most developers (they're stuck using old tech). In 2020 the game changed.

    Tools like TailwindUI and Supabase allow you to code websites that look amazing in less time. With 0 technical debt.

    1. 1

      Can you elaborate a bit on supabase? I saw you promoting it under a few posts and Im curious whats the upside of using it.

    2. 1

      I agree, and +1 on supabase because it's backed by the amazingly capable PostgreSQL relational database (vs nosql which people are often pimping on here). The value in most apps is the data and rarely is nosql (firebase, mongo) the right tool, especially in the long run.

      I'd also recommend running through some SQL tutorials: https://gist.github.com/cpursley/829313362ffabcbaecce9a5fb47ad7f7#sql

    3. 1

      Yeah interesting. I figured i will end up searching most of the things i want to know. Thanks for the comment mate

  4. 1

    Hey @Cruzburns.

    Which sites and platforms should I learn from? Youtube to start with, LinkedIn learning is a great resources too, and Udemy

    What languages should i learn? It's depends on what you want to do with it.

    And how many hours should it take me to learn enough to reach my goal? Also depends on your hability.

    I've wrote a whole article on indie hacker on this https://www.indiehackers.com/post/no-code-so-code-3-steps-to-learn-how-to-code-fast-1a9669a3a2

  5. 1

    Completely self taught here too. I had a different approach because my main objective was to make products (not to become a professional developer).

    So I went with nocode tools first eg Sheet2site, Carrd. Made products, then invariably had to use some code (HTML, CSS) because I wanted to customise my nocode products. That was the 'gateway drug' to learning the basics of HTML, CSS, fuelled by feedback and having real life products that people can already use (not some to-do app in your local server that no one can try).

    Then in the same ship-learn-code-ship cycle, you can slowly transition to more low-code set ups (eg Webflow), and eventually to full code.

    As a beginner I went for more opinionated frameworks like Rails. Laravel is great too. I see some folks who say don't do that, but I feel opinionated frameworks are great for beginners because they provide lots of scaffolding and best practices already included. So you can still develop features without necessarily be overwhelmed by all the finer details. The downside is of course, they decided that for you, and it might be constraining if you want to customize. Over time you can dive deeper into different ways of doing things as your competency grows..

  6. 1

    My straight forward advice don't go with tutorials or youtube videos
    Juts try to build small projects first
    Bulid your portfolio
    Apply for the jobs
    Bulid strong GitHub profile

  7. 1

    Forgot about this great resource to go from zero to a solid web dev. Depending on the paths taken and which courses you follow you could be pretty formiddable with a decent number of small, but real-world, projects under your belt in about 275 hours: https://www.journeytodev.org/

  8. 1

    I am creating videos for young indie hackers and devs who are just starting on their journey!

    Be sure to catch some of my videos where I explain good options to start learning:

    If you want a starter pack, then here's my very own indie React Starter Pack called Supercharge.dev! It has gotten great reviews. Check it out at https://supercharge.dev/!
    It gives you everything you need to get started. Download and start coding your product right away!

    All the best fellow indie hacker!

  9. 1

    I would second https://freecodecamp.com and anything by Brad Traversy (https://www.youtube.com/channel/UC29ju8bIPH5as8OGnQzwJyA) start with his Web Dev Crash Courses. If you like his style of teaching i would HIGHLY recommend his Udemy courses for HTML/CSS, Javascript, 50 web projects in 50 days, 20 projects with Vanilla JS, and PHP. They are not free, but he typically has links to each for $9.99ish on his Youtube channel. I think they are all updated recently, but even if they are not he walks you through multiple mini-projects as you learn. Highly recommend Brad.

    If you are a reader, anything in the Head First library for what you want to know was highly effective when I started out. https://www.google.com/search?q=head+first+books&oq=head+first+books&aqs=chrome..69i57j0l9.2734j1j7&sourceid=chrome&ie=UTF-8

  10. 1

    I've been learning to code over the past few months.

    I started learning Swift from Codecademy, and am now working on an app tutorial from Apple.

    1. www.codecademy.com/learn
    2. https://developer.apple.com/tutorials/app-dev-training

    I've ben told the best way to learn to code is to build something. So far, I've found this to be true in my own experience.

    Good luck!

  11. 1

    Hey Cruz,

    I am a self-taught programmer from AUS and your overloaded feelings definitely resonate with me.

    When I began I had many false starts. Life gets in the way and the next thing you know it's another month where you haven't done much or learnt much coding. That is why I invested in Treehouse (www.teamtreehouse.com). I think it is US$25/month, putting some money on the line really helped me stay at it.

    In terms of which languages to learn, I am nowhere near qualified to comment on the technical specification of each technology, however, this is what I decided to learn and why:


    For me, Javascript(JS) was my clear starting point. With Javascript, I am able to learn NodeJS for backend code. Regular JS for Web apps (many web frameworks like react are based on JS), and if you want to create an app you can learn react-native to build cross-platform mobile apps. All of these start with a sound foundation in JS.

    So for me, it was a great starting point.

    Hope this helps.

  12. 1

    Personally, I took cs50x. Was hard af, but I liked the project based learning and I think they do a fantastic job of teaching you how to 'think' like a programmer. After the course, you'll have enough confidence and foundation to then move forward and teach yourself anything else you want to learn.

    cs50 started with C and then moved towards Python and a bit of Javascript. For me it was natural to then start building things and I just continued on with Python because of the bit of familiarity I'd had with it. I found Miguel Grinberg's Flask Mega Tutorial. He's brilliant and following along with his tutorial, you'll learn enough to actually be able to start building your own thing. Which is what I did. In parallel to following the tutorial, I was changing the code to suit my own needs and built Lurnby.

    Building your own thing you'll inevitably run into things that aren't covered in the tutorial, and that's where google is your best friend :D

    Going at a normal driven pace (a little bit every day), you can definitely build a basic web app in just a few months. Although for me it was longer for sure (but I'm prob not that talented).

    I started cs50 in December 2019, by April I was playing around with the code, and then discovered the Flask Mega Tutorial. Things took off, but I still only got to a beta release by October 2020. And even then, I think I was faster (or slower) because I had some basic html and css knowledge already.

    That's to say that for me it took me around 7 months before I had a working beta product.

    It's definitely doable to do it faster if you're more focused, more specific on your requirements, and also work with a mentor.

    Good luck man - It's not easy, but the journey is rewarding for sure.

  13. 1

    When you start learning JavaScript make sure to go through https://javascript.info/ its for sure the best javascript guide out there, at least in my opinion

  14. 1

    You'll figure it out. You've got 'nuff suggestions in the comments so I won't add any other.

    Just wanted to say this:

    1. pick a developer stack that is relatively young, has a vivid community and lots of online resources
    2. Do a couple of tutorials to comprehend the basics, but don't think they're the holy grail
    3. Start a very simple project (todolist, ...) and make it. You'll learn so much more from actually building something and stumbling into all sorts of things new to you.
    4. Go to the aforementioned communities and online resources and find the answer to things you're wondering
    5. Learn, evolve and continue
    6. Don't let all those small hurdles make you feel frustrated. Use the joy of creating to fire your lust for coding and know that the endorphins you'll enjoy after finishing something yourself will outweigh any hurdles down the path.

    I'm a senior developer, and recently I started learning to use the Laravel framework myself. The same steps as above apply to me.

    PRO TIP: Might want to blog about your story as you're learning things.
    Describing what you've learned and how to implement things helps you to comprehend things, and might give you some exposure along the way.

    ie: Check out #100daysofcoding on twitter.

    Code Hard, Ship Faster 🔥

    You got this!

  15. 1

    Freecodecamp is definitely a good place to start.
    Start with HTML, then expand to CSS so that you can work on the visual side of things. Then, learn a programming language. JavaScript & TypeScript are great choices as those can be used for anything you like (front-end and back-end), which should quickly let you create full-blown applications. After that you can learn about databases (relational & non relational), and see how to connect to one and use it to store data. Tons of fun ahead of you :)

    I'm busy writing a book about Software Development concepts, but it'll only be ready many months from now, so too late for you. Although, the table of contents should be useful for you, as a guide listing interesting things that you could learn about to get a broader understanding of how everything relates: https://www.dev-concepts.dev/table-of-contents/

    Hope this helps!

    Feel free to reach out on Twitter if you have questions, my DMs are open: https://twitter.com/dSebastien

  16. 1

    Take a look at repl.it. This is what I would use to setup my dev environments if I were to start learning from scratch.

    1. 1

      Sweet. I'll check that out

  17. 1

    I'm also a self-taught developer. I didn't do a course or anything like that since I didn't have a ton of time after work to do things. I simply had ideas in my head that I wanted to create. I picked a language (I chose Perl...at the time I had only heard of Perl and Python because I was new and didn't know where to ask. I've now moved on to Golang and others as I moved onto other projects that required concurrency and speed. There are tons of options re: what language you should choose and that is a whole 'nother question you can probably ask on IH). I then started Googling the steps I needed to do: "Hello World Perl", "How to loop through array in Perl", etc. I don't learn by sitting in a class, so I figured I'd save a ton of time by not going over topics and gibberish I didn't need.

    1. 1

      I haven't heard much about perl. I'll look into it and I'll probably follow a similar learning process as you. Thanks for the reply mate :)

      1. 1

        And I'm not trying to recommend Perl or anything else here. The language you choose will probably depend on what you're trying to build.

  18. 1

    Hey Cruz, awesome to meet you!

    I'm biased, but I started likeiamfive.com to teach entrepreneurs to code their ventures through real-life projects in just a few hours. For example, I have a course that teaches you to scrape listings from airbnb.com, then apply your code to scrape whatever site you want.

    As a self-taught developer who tried learning to code a few times before it finally stuck, my biggest piece of advice is to have a project to work on instead of just 'learning to code' (which you do!). Now that you know what you want to build, make the problem smaller for yourself by picking 1 feature you want to learn how to build, then build it, then move on to the next feature...if you do that enough times, you'll be really confident in your coding skills :)

    Reach out any time if you want to chat further!

    1. 1

      Sweet thanks Matt. I'll definitely check that out and I agree in learning by doing rather that reading

Trending on Indie Hackers