I have been what I call “coding-adjacent” for as long as I can remember. As a web designer/kinda developer (mostly in a part-time capacity,) I could always fake it until I made it. There are an abundance of no-code and drag-n-drop tools in the space and I was always able to either find a no-code solution, pay someone to patch together a less-than-ideal solution, or trial-and-error my way to a janky piece of working code.
Then my aspirations grew beyond the small business web design market. I wanted to build a bootstrapped start-up, but every idea I had got shot down because of the specific coding requirements. I tried to find technical partners, but it never worked out, so I gave up and moved on to the next idea. Rinse, repeat.
A few months ago, I finally decided to break the cycle and buckled down to learn Go (a marvelously simple language,) and I could not be more happy with that choice. If you haven’t started coding yet, I highly recommend you start now.
Here are some of my observations so far:
In my so-far limited coding experience, the coding has been the easiest part. The logic behind the problem I am trying to solve is what melts my brain. For example, I am working my way through the Exercism Go track (which is an amazing free product, btw) and the coding is relatively simple: use a for loop, a couple if / then statements, figuring how to manipulate variables into different types, etc. The challenge lies in the math or logic (thinking through a multi-step problem) implemented by the code has been the biggest barrier for me, and I am only getting better.
I know no-code tools are very popular in this community, but I have always found them to be an oxymoron. From my experience, if the tool is powerful enough to implement something that would otherwise require a lot of custom code, then the no code tool becomes a complicated coding language with a drag and drop interface. If I spent the same amount of time I put into learning these tools simply learning to code, I would be way ahead of my current self.
No code tools lure you in with the prospect of an easy, quick, and cheap MVP (see below why this can be a good thing.) The pricing of these services is often competitive, especially at the lower tiers. Your MVP does really well. It goes viral. Now you’ve got 100,000 monthly users and your bill keeps growing. Unfortunately, in almost every case I’ve seen, the hard work you’ve done is non-portable. I can take the code I write and run it on essentially any server in the world. You are stuck. Now you’ve got a really hard choice. Keep growing and building new features but continue to watch your bill grow OR hold everything and spend a lot of money hiring a 3rd party or new employee to convert everything over to a custom coded solution. The trade off represents the concept of technical debt (credit to @AndrewMackie for reminding me of the name for this principle.) The bigger you grow, the harder and more expensive a migration to a different technology becomes, effectively holding you and your business hostage at your no-code provider.
With a custom coded solution, you also control the stack all the way down to the hardware which can save a lot of money in the long run. Database not performing the way it should? Optimize it or consider a migration to a different one. Your transactional email provider getting too expensive? Find a new one. AWS charge too much for bandwidth? Switch to a competitor. When you are not locked into a specific platform, you can optimize your product infinitely, but if you use a no-code provider, you are beholden to the technical decisions they make and often bear the cost.
That being said, there are plenty of low-computation SaaS ideas that no-code is suited for. Lots of ingenious SaaS businesses are essentially a creative combination of APIs. That’s where no-code shines. I think no-code backends hold a lot of promise for web and mobile apps. Firebase has made developing an app easy as pie. I would still want the flexibility to move to a custom solution should those options become too expensive though.
All in all, I highly encourage you to join me in my commitment to learn to code, for real this time. No-code can feel like a miracle at first, but I have seen that trap first-hand. Already my ideas have benefited from the flexibility my laughably amateurish coding skills provide. I encourage you to join me!
I am still beginning my coding journey though, and I would like to hear from the more experienced:
Have you tried and failed to learn to code? Or were you successful? Are you a die-hard defender of no-code tools?
I believe the best case is when you have a combo of both. Not trying to push the no-code tools here, but I've worked with a founder who can code, but likes to use these no-code widgets as well. And it really makes all the difference.
When you know how to code you're capable of evaluating how long a certain feature or function will take to implement. This really helps when allocating your time resources and effort.
Let's say you want to create an onboarding process for a SaaS tool.. coding it would take really a lot of work, but with advanced no-code tools, you can build the logic and customize it pretty fast, to work and help your users.
The thing I learned from it, is that there's always a less complicated approach you can take when you're customizing with no-code. Sometimes we want to design stuff to move, blink, change color, or whatever, but try to think with a cold mind if that actually makes a difference in terms of conversion or mindset through users' eyes. It's all about focusing on the parts that drive the business.
There are times and situations for both sides.
No-code is my toolkit. Coding was too difficult for me.
No-code can take people a LONG way. As a solopreneur I got to 400k ARR and then acquired by a multi-billion dollar company (zapier).
No-code changed everything for me.
I certainly don't take anything away from those who choose to go and learn code. Lots of no-coders end up being coders. There isn't a code vs no-code battle going on. There both on the same spectrum but at different ends.
You are experienced, how many users can I integrate into bubble.io ? can you answer me?
10's of thousands.
If you don't have 100 or 1000, don't worry about what the ceiling bubble may have on you in the made-up future.
I still learning noCode and I have an idea in education area, thanks for info.
Thats amazing man. I find it crazy that coding was too difficult but you end up doing something 100x more difficult in building a really successful startup.
haha what a great point! never thought of that
It is awesome to have no-code products in your toolbox. They are great to build early prototypes to get customer feedback. I even read stories on Twitter where founders scale-up entire businesses built with no-code apps.
My biggest problem with no-code apps is that they are usually built for everyone except developers. I like using no-code products when they are naturally fit into my workflow. Zapier is a great example.
I agree. I started learning to code and it helped a lot.
Went on an easy path - picked a modern framework (Next) and started learning bottom-up (HTML-CSS-JS-React), working my way through it.
Code also helps you with no code, as it gets you familiar with the structure and architecture of software or web apps.
I was frustrated with no code because there were many things that I, as a designer, could not change. It felt like my hands were tied. Now I can deploy websites, work with APIs, and do stuff I never dreamed of.
If there was a no-code tool that could replicate that, I'd surely use it. But until then, code allows you to be way more flexible.
While No Code sure has its benefits. I think learning to code is a core skill one needs to build. I am a 3 time product builder and know way too well the pains of not being able to code. If I had a wish for superhuman ability - i'd pick the ability to code :)
Go for the fastest solution to test your first ideas. As you chose for speed in the first place, you would also need re-engineer your solution to make them scalable (also if you coded).
My recommendation: use no-code solution to start (ideally they should contain open APIs). As soon as you get traction, evaluate your solution to not build up technical depth. Anyway, your no-code solution may also be the right choice for growth.
I have a background in software product design but always struggled to learn how to code. So no code has been an awesome discovery for me.
I recently developed an order/inventory management system for a niche logistics business and stitched the system together using WordPress and Airtable. It probably took me about 20 hours to have a functioning production ready tool that could be used to serve actual customers.
I'm still using the Airtable/WordPress system now, but I've been trying to rebuild it using another no code tool - Bubble.io. I've spent over 160 hours on the Bubble rebuild (while learning as I go) and I've still got a fair ways to go until it's finished.
If I tried to build this system from scratch while learning how to code, I could imagine it'd take me years.
In the meantime, I've got customers onboard using my Airtable/WordPress setup and can focus on trying to grow the business rather than building out the software.
While there are definitely some painful aspects of my current system (e.g. manual user setup, form changes for each client), at least I had something functional up fairly quickly that was enough to test out my business idea and get customers.
(Note: The order/inventory management system supports the main function of the business and isn't 'the business'.)
I have similar feelings when considering building a fully fledged product built with a no code stack — too much platform risk, and not enough assurance in portability & performance.
That said, no code still ticks my boxes for MVP creation and automation operations.
I've also had many false starts in learning to code, but have managed a consistent streak of it since the start of this year 😁 (thx to FreeCodeCamp & The Odin Project)
Good for you! Keep it up.
I too am trying to keep my streak going.
Thank you so much for your insight regarding coding. I am also an amateur developer contemplating the arduous task of learning to code. What would you recommend as a starting point for a beginner learning to code?
Thanks in advance,
Bigrell87
What do you want to code? Frontends or backends or both?
It's probably easiest to start with HTML/CSS/Javascript at FreeCodeCamp (for HTML and CSS) and then Exercism (for Javascript).
If you want to learn the backend, I would learn Go or Python. Both are really easy compared to others like Java, Rust, or the C family.
I am hoping to master Go + Javascript/HTML/CSS and that should be all I need to accomplish 99% of coding tasks, on both the frontend and backend.
Thanks for the reply. I am looking to learn both the frontends and backend. I will put your advice into motion. Thanks again for the suggestions.
I don't agree with No Code limiting your options. I think it's the solutions selected that limit your options and if you know how to code and use no code as well, then you can truly create a unique streamlined advantage.
Overall, when you're doing the MVP process it's better to introduce constraints than let your IDE be your horizon, which leaves far too many options for most engineers.
One thing that I dislike about the no-code space is that people think it is new. I've been doing no code MVPs with WordPress and Zapier (and similar services) for almost 8 years, putting a term to the space and introducing a bunch of overpriced limited solutions has made it more popular but introduced financial constraints that most of this new founder shouldn't have to deal with.
Hopefully, the space evolves and focuses on financial accessibility and helping founders ship faster, because that's what No Code is all about.
Hey, very good take!
I definitely agree that for a company that plans to scale no-code is usually a trap that is very hard to get out of.
I'm coming into coding from the marketing side, which initially saw a ton of upside to no-code. After all, skipping the developer when creating a site gives a big bonus to the speed in doing anything.
However, I learned very quickly that it's only an apparent gain because you're always getting some half-baked results. It's much better and cheaper to set up a custom implementation and the ability to make limited changes at the outset, rather than telling yourself that employees in other departments will be able to make full-fledged sites. And so you have to learn the system, do some training, and in the end it turned out that half of the things can not be done.
Now a question from my side - I'm working in a startup that creates a solution to some of your concerns. Low-code for the frontend, created for developers, giving the advantages of accelerating work as in no-code, but without the disadvantages - because everything you do is coded in well-known, open-source frameworks and you can export it with one click.
Check it out at shuffle.dev and if you would like to give longer feedback, I can give you a free license in return. DM me via twitter if you're interested :)
No code tools have their place for sure, but the portability you mention is key for me. It’s a driving factor in why I’m working on a low-code product with exportable source.
I also think about the portability of the skill you’re learning. If you spent 50 hours learning to code, that transfers really well between languages, frameworks, etc.. Much of what you’re learning is patterns and general approaches to software design.
If you put those same 50 hours into learning how to use a product, it’s far less transferrable.
This is probably the biggest factor for me. The idea that a tool could disappear because the company went bankrupt, got acquired, shifted focus, etc. scares me to death.
And I think your point about time spent may even be more profound. I personally have wasted thousands of hours building things with no-code. Sure it got the job done at the time, but many of those tools are gone now. I can only imagine where I would be if I had spent the same amount of time coding as much as I could from scratch.
There’s an adage for things like restaurants where location is part of the attraction- “if you don’t own your building, you don’t own your business.”
It’s a little over-simplified for this discussion, but there’s at least a hint of truth in “if you don’t own your source code, you don’t own your business”.
Such a tricky balance between delivering solutions in the short term (no code) vs long (fully custom).
Coding is a boon to everyone. The best part about this is the fact there are no boundaries in them. There is always a solution to a problem and always a new problem to solve which makes me respect this art so much!
Dev Tools > No Code
The first No Code tool I ever tried was Webflow back in 2016/2017.
It took me waaay longer to build a 2 page website (the way I wanted) than if I had designed and coded it myself.
I dropped it and never looked back since then.
The plus side of this — My coding skills have drastically increased!
Coding all the way!!
How did you end up choosing Golang? I started learning it because I t’s very popular for blockchain projects and it makes hosting / deploying cheap and easy.
Most of my business ideas relove around Kubernetes, serverside logic, microservices, etc. Go is the gold standard in all of those.
I am really loving it so far. I've got HTML/CSS down, so once I perfect my Javascript I'll be a MVP machine.
It is still the early days of no-code. The tools we see today are for the early adopters and are focused on having a small learning curve.
We are building https://toddle.dev to be a tool for professionals that can go toe to toe with all the modern JS Frameworks.
This is why we are building RailsRocket (https://www.railsrocket.app/) You can get started with no-code but you have no vendor lockin because our apps are real Rails code apps.
You can extend them to your hearts content once you've got the validation or funding to hire developers
No-code tool has its benefits and is a great asset to have in your toolbox.
Learning to code definitely removes all the limitations and if anyone can invest the time needed to learn it, that is great! It really improves your problem-solving skills too.
The truth is, they are both a means to an end.
I think it's beneficial to evaluate your project and see how far you can go with no-code.
For a lot of projects, you can go very far in a brief time. We all know how important it is to get things in front of your users and iterate fast.