For now, we must work hard to become comfortable with new skills. Learning takes time, and we rarely have unlimited amounts to learn a new skill. We mostly encounter new tools because we have a job to be done that wasn’t solved by other tools. This often means that our patience to dive in and learn the ins and outs of this tool is limited. Nevertheless, this is precisely what we should do.
The problem with these scenarios is that we almost always come to a tool with a pre-existing idea of what to do. Whether it’s Figma, React, or Supabase, most have a challenge they need to solve, and they were told that solution x was best for them.
There are several problems with this approach:
-
Inadequate grasp of fundamental principles and concepts
-
Unable to troubleshoot or understand mechanisms
-
Confusion and frustration from error messages
-
Slow progress and demotivation
-
Difficulty with advanced topics without a strong foundation
We have found a trick to make the process a bit easier: Build useless apps.
On average, it takes 10,000 hours to master a new skill, and many applications require a certain level of mastery. While you don’t need to put in 10,000 hours to build, you can make your learning faster by building stupid shit. Building useless apps helps you scope your app to your means and introduces you to new concepts without frustration.
In product development, you need to learn fundamental principles and concepts. These principles help you avoid significant mistakes later in your build. Like an architect draws a building before a project begins, there are certain decisions you need to make before you start any project. The plans are then passed on to a building engineer who decides which materials to use and highlights areas that may not yet be feasible. Much work goes into a project before the building site begins, which is no less accurate for a software engineer.
The decisions you make before you start a build are based on your knowledge of limitations and the experience you have acquired as an engineer. The experience aspect is why it takes a long time to become a principal engineer (the highest engineering rank as an individual contributor). The more you build, the better you understand the principles, which errors will or may occur, and how to troubleshoot mistakes.
Building fast increases morale. The energy you get when you solve a complex problem is the energy that will get you through your build when mistakes happen. That’s why it’s so essential to balance success and failure. Some tools, like Canva or Evernote, are easy to learn, while others, like toddle, have much more depth. The best way to learn a new development platform is to play around and build useless apps.
Useless apps are great because they have much less emotional value. Mistakes hurt less, and abandoning a project is less taxing. Useless apps are also smaller than: “I’ve got an idea for a marketplace app.” Every app you build will bring new challenges and creative solutions that you can leverage in your next project. In 2005, Ludvig Strigeus created uTorrent, a BitTorrent client. He later used the knowledge he had learned from peer-to-peer sharing when he built the underlying technology that serves music to Spotify’s hundreds of millions of users.
We have built countless useless apps at toddle, like the
Owen Wilson Wow app
,
a random band app
, or the
T-Beat Pro
.
An engineer's job is not to code. Engineers are hired to solve complex problems, regardless of the language. The more you play, the better you’ll see unique solutions to hard problems.
Many of the digital services we access today result from curious souls who learn how to do things differently and experiment with various ideas. We advise you to play around, learn a ton, and put your big idea on hold just until you have a few apps under your belt.