My journey from having no formal technical background to building software professionally.
When I tell anyone who knows me that I’m a developer now, they gasp. The absurdity of it makes me laugh too. I majored in Sociology and Brazilian studies in college thinking I could bring my region of origin (the Middle East) and Latin America closer together in the spirit of South to South development. However, by the time I graduated, I was mostly looking for jobs in responsible businesses. I didn’t have much experience so I didn’t know what to expect.
I eventually found a fellowship opportunity at AirDev that claimed it could teach me how to build complex software from scratch in just 6 weeks! Naturally, AirDev’s promise sounded ridiculous, but I applied anyway. Six months later, still without coding experience, I’ve built multiple apps that would each take traditional developers months to build.
If you don’t have any experience with coding or programming and you’re interested in using a visual programing language like Bubble to build your own software, you might want to know these 6 things I wish I knew when I was starting out:
1. There’s more to Bubble than drag and drop
Bubble makes software development sound so easy: you just drag and drop elements, tell them what to do using everyday language and voila, you have complex software! It even claims you can make a Yelp like app in 30 minutes, but as a complete beginner it took me a full week to make a pretty basic version of AirBnb and that was only possible because of all the support I had from the team at AirDev. So if you feel like building a Bubble app is not as easy as advertised, don’t despair and look for answers on the Bubble forum.
2. Bubble is still speaking to a computer
Because you feed Bubble complete human sentences, I expected the editor to understand a command like “find all my active contacts who are between 2 and 7 miles from my location” and every time it didn’t, I concluded that I had found a limitation. In reality, I just needed to break my commands into units a computer can understand (something like “find users in my contacts” then “check for who is active” then “see who is within 7 miles from my location” then “exclude those within 2 miles from my location”). Since computers process one piece of information at a time, make sure to break your commands down to their simplest form.
3. The database structure has to be agile
A database organizes data and tells a computer where to store information and how to access it. A solid understanding of how your app would work should inform the database structure. For example, if you want users to be able to rate Thing X you could add “rating” as a field in the Thing X object or you could create a separate object called ‘Rating’ then attach this rating to Thing X. The former is more straightforward but the later is more flexible. The better approach depends on how you expect to use the ratings, so keeping your app’s user flows and future direction in mind helps with creating a solid database.
4. If the direct way isn’t working, there are probably side roads
If Bubble didn’t have a built-in functionality for what I wanted it to do, I figured it can’t be done. However, I came to learn that sometimes some messiness can solve the problem and that’s acceptable. For example, Bubble currently renders all equations from left to right so to calculate an equation that requires some order of operation, you could create several hidden inputs each holding a part of the equation then make several straightforward calculations according to the order. It’s not elegant but it gets the job done.
5. Responsiveness and design take a lot of time
It seems easy in theory to make colors and shapes look good together on a website but it’s much harder in practice. So to save time, look for inspiration and have a solid idea of what you want to build before you play with the editor. Moreover, to get a website to work on different screen sizes and devices requires many hours of experimenting with how elements behave on their own and in relation to each other when the screen size changes. So budget a good chunk of time to spend on responsiveness and design.
6. Building your own software is power!
I’m currently working on an app for a cause I’m passionate about in my free time. Given my non-technical background, this wouldn’t have been a possibility for me without something like Bubble. Creating software might not in itself be your passion; nonetheless, it gives you the power to support what you’re passionate about in this digital age. In my case, it’s social causes but it could really be anything.