Best resources to learn to code for an advanced no-coder?

Context: I've become pretty advanced at using bubble.io. In the past, I've dabbled with javascript and python but I've ended up losing interest because progress felt too slow. My overall goal is to be able to build web apps.

What I love about bubble is that it's possible to build moderately complex web apps in a matter of hours or days. My experience with coding in the past made me believe that building something similar from scratch with code would take much longer.

Because of the possibility & excitement of getting fast results in bubble, I've ended up spending a fair amount of time with the tool. Learning to build complex workflows, using APIs etc.

But instead of pumping a lot more time into bubble going forward, I'm wondering if this is a good jumping off point to switch back to learning to code...

My fear is that bubble, while powerful, will always be somewhat limited. At times, figuring out how to do complex things in bubble feels a lot like coding. So I hope that I'll already understand some concepts that will accelerate my learning to code. Has this been anyone else's experience?

My ideal 'learn to code' resource would have the following properties (similar to bubble):
1. Quick & easy dev environment setup. (Maybe something like Replit solves this?)
2. Teach me how to get started building simple web apps fast, so that I can see results quickly and get excited about that (I think this will give me the motivation to stick at it).
3. Start at an intermediate level, not super-early beginner. I want to dive in at the deep end & use the concepts and principles I've learned from bubble to hopefully shortcut some of the learning process.


  1. 5

    Hi Toby, I've been on the road to learn coding myself. I've tried a lot of resources, but what really stands out way above the rest is https://www.theodinproject.com/

    freecodecamp is writing simple lines of code in your browser window which never helped me much, while theodinproject is setting up an actual local dev environment and working past problems yourself like a real developer.

    Repl.it is another browser-based tool, which is also used by theodinproject among other similar tools, if you want to share a problem with your current code fast with other community members. But to learn real coding you have to go all the way (setting up a local Text Editor, getting used to the Command Line, using Git..).

    Have a look at TOP (theodinproject), it won't disappoint, it's free, open-source and maintained by the community.

    PS: After Fundamentals, theodinproject lets you choose between a full-stack Javascript and a Ruby on Rails track.

    1. 1

      +1 for the Odin Project, however I would learn a programming language first. In the case of Rails, learn Ruby first. In the case of Django, learn Python first, etc.

      1. 2

        Hey Santiago, I agree! In the case of Ruby on Rails, The Odin Project of course teaches Ruby first and then goes into RoR!

      2. 1

        When I was looking for a beginner friendly programming language, I started with Python because I wanted to create a webapp. After learning all the basic of it, I took Django and It's was very easy.

    2. 1

      Sounds awesome. Thanks @nearmint -- definitely going to check out TOP

      1. 1

        Let me know how you like it! And if you have any questions, you can contact me as well, I love to help out newbies and I've made some contributions to the TOP git repositories in the past.

        1. 1

          Thanks, I've been going through the fundamentals course for a bit. This is great.

  2. 3

    If you've already worked with Javascript and Python, it would be best to keep going with either of those. Going with another language like C#, Java, Go or even PHP might provide too much of a learning curve.

    As @catico already mentioned, Javascript is probably your best bet. I would go a bit further and recommend you learn Typescript after you're comfortable with the basics of JS.

  3. 3

    For web apps the best language to start with is Javascript in my opinion, as you can use it on both front and back end. I can definitely recommend freecodecamp.org.
    I used it myself for learning to program and I had very little prior programming knowledge before, but I was able to get to a level to get a job as a front end developer in 2-3 months.
    They have several paths with tasks and projects, so you can choose where to start, you can probably skip the basic HTML and CSS if you're already familiar but I wouldn't skip the basics of Javascript, since it's very useful to understand the foundational algorithms.

    1. 1

      great advice. Thanks @catico!

  4. 2

    Hi Toby, Would suggest you to look to migrate to low code tool. This feels like a natural progression and you'll love the added flexibility and power - albiet on account of some learning curve.
    We use Wappler - it's a fantastic low code visual Web App builder. (https://wappler.io)

    They've recently launched the 'extensibility' feature where you can custom code (in JS) modules and formatters within wappler to further accelerate and enable no-code development within Wappler. (https://community.wappler.io/c/wappler-extensions/54)

    It has no platform lockins. You can choose where you want to host. Multiple server side models to choose from: PHP, ASP, NodeJS. Community is fantastic. There is a specific channel for bubble to wappler converts - there are many! (https://community.wappler.io/c/from-bubble-to-wappler/50)

    We've built really complex enterprise web apps on Wappler in past 2 yrs for multiple clients - we'll never go back to raw coding for building web apps - it's just not smart thing to do in my opinion!

  5. 2

    If you want to learnt to build things from ground up, I can certainly help you, if my online courses on ( https://www.codehance.com ) are not enough, I can help set you with project ideas along with materials to get you where you want to be. I cover the full spectrum from creating visual mockups to building Django Web apps on the course. But you an always contact me directly if you need more.

  6. 2

    It really depends on what you actually want to create. In my experience, Javascript is a good language to learn but I prefer to learn something more specific i.e. framework. Normally, I only learn something when I need it, as there's no motivation for me to learn something without a specific project.

    For example, I started learning HTML and CSS when I wanted to create my own website. When I needed to run an SaaS which required databases, I learned MySQL and PHP, but for PHP, I specifically started with MySQL-related commands. if I need to know more PHP commands then I would just search for what I need in the documentation.

    Whenever I needed something more advanced, I went to stackoverflow and read code samples or copied and pasted the codes. Nowadays there are so many people in sites like stackoverflow or codepen who already solved whatever problems you have.

    When I needed to create an iOS app which required webkit, I started with Objective-C/Swift tutorial specifically for WebKit. When I wanted to create SPA, I started with Angular but then switched to Vue since I didn't want to use CLI and Vue was pretty intuitive for me.

    There are very few programming concepts which are inherent to almost all programming languages that you have to know — arrays, logical operators (and/or, true/false, if/else). Once you master these concepts, switching programming languages is easy.

    Nowadays I deal mostly with web programming so when I need to learn/switch programming languages or framework, I normally start with these three things — how to do a GET/POST command in that language, how to connect with databases (INSERT, UPDATE, DELETE) and how to set cookie.

    My current workflow — Vue (non-CLI) for front end, PHP or Livecode for backend, MySQL for database, JSON for API (if needed). I prefer PHP and since I use a Mac, PHP comes built-in without having to mess around with any setup. In addition I can pretty much set up my website on any hosting accounts (shared or otherwise) since most hosting accounts come with built-in PHP. I use HTML/SASS/Bootstrap for design using Codekit app on my Mac.

    At the end of the day, it doesn't really matter what programming language you learn (or whether you can even program). In fact I find the ability to sell/market to be much more important than the ability to program, especially in the era of no-code.

    1. 1

      Awesome reply & detail. Thanks so much for sharing!

  7. 2

    I don't know how granular bubble gets but webflow is a great way to dip your toes into CSS. You can learn about concepts like padding, margin, position while still moving fast and building something.

  8. 2

    I'd recommend the Net Ninja series on youtube

    Also, I've got a long list of free and paid options here - https://www.nocsdegree.com/learn/

  9. 2

    I tried https://getmimo.com/ and it's very good. You can use it both on desktop and on mobile. I'd give it a try.

  10. 2

    Building is usually the best path for really learning to code. You can supplement it with more formal methods of picking up the fundamentals (language, html, css, devops). When building, always start with frameworks and templates. It allows you to jump start progress and takes care of so much time-consuming work.

    If you are planning on using react, I’m referring to something along the lines of these: https://material-ui.com/ and https://www.creative-tim.com/design-system/material. This would be for material design. Any system works but start with something and don’t roll your own. You can find free versions to start with. This path would lead you down the JS / SPA direction. The backend would then be a bit of a challenge. I’ve used serverless, again starting with a template (https://github.com/serverless/serverless-graphql) but that has a fairly steep learning curve.

    You may want to focus on Python & Django or Ruby & Rails to have a more seamless fullstack starting point and avoid the SPA piece. In any event, choose one ecosystem, not just the language, but the frameworks and templates, to start with and try to get something simple working. This helps with the challenges of design and components which can take up so much time.

    Also, for learning React I really like Stephen Grider’s videos: https://www.udemy.com/user/sgslo/. He has both React and Node if you want to use that as your stack. AWS is the king of services, but Heroku may be a better starting point for hosting. Another good course on pulling pieces together is the coursera startup engineering class, but unfortunately it seems to be gone but the resources are linked here: https://www.quora.com/Why-is-the-startup-engineering-class-on-Coursera-not-being-offered-again.

    Learning to code takes time but if you’ve battled figuring out Bubble I think those same skills will help with the challenges of coding.

    1. 2

      break up your text 👍

    2. 1

      Love this— thanks for the pointers around the frameworks especially!

  11. 2

    Hey - I was like you six month ago. I followed the path here: https://link.medium.com/dclOfNbUCbb

    Result: https/joyful.gifts

  12. 2

    I learned CSS and HTML on FreeCodeCamp just to make possible my first webiste: threadok.com

    Really recommend starting on FreeCodeCamp.

  13. 2

    The problem with starting at an intermediate level when you're more of a beginner is that most programming really does come down to solving logic problems and dealing with bugs requiring a detailed understanding of how your program works. What worked for me was to start with incredibly simple projects and build up from there. My first javascript project was figuring out how to change a button color on click.

    Learning to code takes a few months to get decent enough at where you can build apps. I would suggest learning to code if you enjoy the problem solving of programming. You just can't really build good apps if you don't know the fundamentals first.

    Trust me, I thought I'd never be able to learn how to code. I thought it was so complicated and not for me. But when I did the simplest things and had small victories, it's what made me continue to learn and get good at programming. You'll get frustrated and give up if you try to jump right in to more complex stuff. Just have some patience and learn step by step.

    1. 1

      Great advice, thank you!

  14. 2

    I was like you before, learning to code without good result, I was learning php & python. Then I found this video, https://youtu.be/zRwy8gtgJ1A

    It’s basic CRUD using flask framework, 1 month after that, I was able to get freelance work to creating more complex web app :)

    1. 1

      ha! Sounds too good to be true, but I'll check it out! Thanks

      1. 1

        Hey @natagon - I just checked out the video. Super interesting. Question for you: do you still just use python, or have you also learned javascript too?

        1. 1

          Yes, My recent project dumogio.com built with python and flask :) My JavaScript was limited, for front end, I use ready made template with a bit modification (html & css knowledge required)

  15. 2

    The best course for the intermediate level for me was this: https://www.udemy.com/course/the-complete-guide-to-django-rest-framework-and-vue-js/

    Previously I've been learning some basics (Python, JavaScript etc.) but this with additional books about Django gave me the fundaments to create the API, that I am currently using for the Single Page App, with hired front-end developer.

    I thought at the beginning that I'll try to be full stack dev and build everything with my hands, but the more I learned the more I discovered that it's better to delegate some part of it.

    For me the backend is much more understandable, than the front-end (in which I need to deal with so many variables - browsers, its versions etc.).

    So, in short - I highly recommend this course to learn about creating API. Then reading a few supplemental books and then just building something from scratch.

    Everyday I create something I ask myself two questions: "where I am right now" and "where I want to be" (in terms of code / functionality etc.). I started with a single endpoint for showing one text for logged in user, and then went from there.

    Good luck, mate! I am pretty sure that after learning "no-code" you'll grasps most of the concepts pretty quickly.

    If you need anything more, write to me on Twitter and I'll be happy to help :)

    1. 2

      Appreciate it @piotrsynowiec! Super interesting to hear a bit about your journey too. Thanks!

  16. 2

    Hey Toby, congrats on your progress and your envy to learn more. I'm collecting various links to learn code here https://dsgn.link/code feel free to check it out!

  17. 2
    1. What principles did you learn using bubble? I doubt you can (should) skip beginner phase of programming just because you used nocode tools.

    https://www.railstutorial.org/book is a popular tutorial for Ruby on Rails. But you should focus on proper learning rather than quickly making stuff. Nobody is going to be debugging your app for you so you really need to understand what's going on.

    1. 1

      Fair point, thanks @JoJoMik, I'll check out the rails tutorial. Thanks!

  18. 2

    Repl.it is an excellent learning environment that requires nearly no setup.

    If you want to start with Python, Repl.it put together a set of tutorials for learning to code by example: Code With Repl.it: Python Projects for Beginners. All the projects work on Repl.it, which is the tool the tutorials cover. There are a few web app projects and a few Node.js ones.

    1. 1

      Thanks! Is python useful for building web apps or would I better off focusing on nodeJS?

      1. 1

        As someone who works day to day in both languages, it really doesn't matter.

        Try both of them and master the one you like the most.

        In the end, they're doing the same thing.

      2. 1

        They're both very popular but I don't have enough experience to tell whether it's better to start with one or the other.

  19. 1

    100 Days of Code - The Complete Python Pro Bootcamp for 2021
    Master Python by building 100 projects in 100 days. Learn to build websites, games, apps, plus scraping and data science


  20. 1

    I would suggest to pick a good programming language for the backend like C# / Python / Java instead of going the easy way and sticking to ruby/js. No offense to the latter, but if you are going to learn from scratch, learning with a programming language like C# / Python / Java, helps you diversify the use of these languages to other areas too. For ex: C# is used in game dev, Python is used in ML and Java is used in android dev among others.

Trending on Indie Hackers
Hit 🎉 40K users 🎉 ahead of the launch 15 comments The one where writing books is not really a good idea 13 comments I build an awesome white-label product but I don't know who could need it. 9 comments 99 Designs and 2 Dribbble Designers Later I Have a Logo! 7 comments I got 3 offers to buy my product for $100k, $125k and $150k, rejected them and here's why it was the correct call 6 comments Straight No to Bootstrap after Tailwind! Is it only me? 5 comments