I have an idea for a fairly simple finance/wealth tracking app that I think fills a niche that has been created by the bloated financial services industry, and I want to go for it, Indie Hacker-style.
I've got the business and design skills, but I lack any experience building a significant software project. The missing piece!
I know the fundamentals of programming (my dad is a database/cybersecurity/cloud engineer guy and an all around computer nerd, and my boyfriend is software developer). I've built a couple (really) small projects using different languages following tutorials, but nothing really functioning. I'm a product manager and work with developers every day, so pick things up.
Some days I think "Yeah, I can do this. Take it step-by-step and get help along the way."
Other days I think "This is crazy. It'll take me years to build this thing on my own if I have to learn how to program along the way with a full-time start up job."
So, it is realistic to think I can build the front-end of a functioning, revenue generating app (mostly) on my own while also learning how to do everything along the way?
My thoughts are to ask yourself, is your primary goal with this project to:
Create a successful business/product?
Learn to code?
At the end of the day would you be happy if the product failed but you learned to code in the process?
If your primary motivation is to create a successful product I would say trying to learn to code before/during product creation will likely just slow you down. You may want to look into some no code/low code options to get an MVP out there for validation.
Assuming you are actively interested in learning to code beyond this one product I say 100% go for it. IMO the primary downsides are you will go slower than an established software engineer. Code breakthroughs will feel like progress on your product. In my experience, the newer someone is to coding the more likely they are to think the technical solution is value proposition/reason people will buy. Rarely is this the case, especially for an inexperienced coder. Things that are likely to make your product successful is the stuff you don't need to code to know, your unique insight into why the product should exist, who it's for, sales & marketing strategy etc.
A side project as a way to learn and stay motivated is a great but you should be honest with yourself it is primarily a learning exercise and give yourself permission to treat it as such. For me, I always learn best by trying something then visiting books/courses once I have a problem I'm stuck on. I've created side projects that I did 0 market validation on because I knew it was primarily for learning. At the end of the day just creating it was enough for me. Some personalities get a lot more value out of learning by doing rather than learning by study. If this is you, full steam ahead!
Wow, thank you for the thoughtful reply! I'm drawn to this approach, and I think the questions you posed are spot on.
As an entrepreneur, I'm always looking to build things. I'm eager to learn and eager to make. I've picked up a lot of skills by doing (as you said, I also learn best by doing), so I'm confident I could build the business around it. Lacking the skills to actually build the product itself is super frustrating and I feel like the biggest thing holding me back. I could hire a developer, but I like to be able to build whenever I want!
I've been wanting to learn to code for years now, and while I don't expect I'll ever want to be a full-time developer, I want the skills in my arsenal. This felt like a pretty cool intersection: a product I think could be valuable/want to test and an opportunity to pick up more skills for future product ideas.
"At the end of the day would you be happy if the product failed but you learned to code in the process?" I would say yes, because hopefully I'll have the ability to build other products faster :)
Curious, what's an example of a side project you built that was primarily for learning?
There is a big benefit to being proficient enough you can make your own projects happen without needing to pay someone else or rely on low code tools! Definitely sounds like it's worthwhile, even if you ultimately hire someone having hands on experience coding will go a long way to sniffing out BS.
A few learning projects in various levels of completion and/or disrepair :)
Web app for monitoring cronjobs
Scrapers for automatically collecting jobs posted to company job sites
Podcast collection and searching
Scraper to collect FINRA public data
That's another great point: even just being able to more closely follow along with a developer I'm working with sounds like would be really valuable.
Thank you for sharing :)
I would say that it's possible but could you enlist the people already in your network to help you out? You would move much quicker and you could probably iterate on three or four ideas with multiple co-founders in the time it would take to do everything yourself and learn to code a the same time.
I think you could get by doing the FE yourself (although it might be time consuming). As a backend engineer myself Id say that this is where you may find the steepest learning curve but it sounds like you want to focus on the FE anyway so perhaps a non issue.
I think you're totally right, it would be silly not to enlist help from the people (my own family!) that could help move this along much quicker. I'm fortunate that they're willing to help, though I still worry about depending too much on them considering everyone has demanding jobs. I want to be as self-reliant as possible, but the more they can show me in the time they do have, I think the more I'll pick up and be able to run with in the longterm :)
Backend is certainly much more foreign to me than frontend, and I think it would be a bit risker for me to take this on alone if the project were to go live.
Thanks so much for the support!
To directly answer the question "Can I learn to code by building my first product?", I would say that you have to learn to code by building your first product.
People new to programming can easily get stuck in tutorial hell and never actually push themselves to learn because they're afraid to open their code editor and cut their teeth on the hard stuff. Doing is how you learn. It's great to watch tutorials and courses, but make sure that you have hands on time too.
On this point...
To someone who has never coded, most things will seem simple. Once you get into the technical aspect of things is when the complexity becomes apparent. I found it funny that you said you were a product manager haha
When you think "This is crazy. It'll take me years to build this thing on my own if I have to learn how to program along the way with a full-time start up job.", you're partially right. I've been coding for 15+ years and there are still some things that I don't feel like I could even tackle by myself. It really depends on the scope of your project.
There seems to be a hard push for schools to teach people how to code and this "everyone should be a programmer" movement, but I think that's further from the truth. The people who stick with it are the people who either
a) hate it
b) love it so much it's something that they stick with and build upon their knowledge day after day
Like most things in life, consistency is key. I could barely do anything when I first started, but I stuck with it and do it every day now. I did, however, do this as a career because I knew early on that this is what I wanted to do - but there are various levels of commitment. I think so long as you're consistent, you'll make progress. If it's something that you enjoy doing, don't give up.
Hope it helps, take what's helpful and throw out the rest! Good luck!
Brandon
This is how I got started:
I committed to spend only 10 minutes a day on this.
First day I wrote down which technology I will be working with, Nodejs was something new and excite me and best fit for my first product so I went with that.
First few days were rough, slow but I never lost hope, I remind myself everyday this is a beginning to my growth phase.
I started with w3schools and finished it in 15 days
Then I started with other tutorials and since I already know basics I speed up
I started loving it but I made sure I don't go over 10 minutes a day, this increased my productivity and I could finish a lot more in just 10 minutes.
Its been over a year and I spend over 2hours daily easily on my products, learning new technologies and I am killing it.
I love this approach! I like to dive in head first, and I'll admit sometimes it can be overwhelming and a source of procrastination.
I actually decided a few days ago that I would do something similar; at least 1 hour spent a day on this project, whether on a landing page, learning a language, UI designs or trying to code a small piece of it. Regardless of how slowly I moved, I had 1 hour dedicated to only this. I found it made it easier to sit down and work on it.
I know that eventually the landing page, designs, biz model will be "done" (enough to build an MVP) and the coding will have to happen. And by then I've invested the time in the other parts that I will have some momentum in the project itself and stick with it, even if it's hard.
I'm only a few days in so I'm excited to make it work as well as it's worked for you.
Thanks for the support and for the neat idea!
Yep, I definitely think it's possible if you keep your expectations realistic. As a project manager you're in a great position to weigh out what's possible in the time you have, and it sounds like you've got a great support network around you. If you haven't done any FE before, I would suggest starting with React. Dont try to do everything in one push, keep your first goal super simple, i.e. laser focus on just one screen or just one feature, and once you hit that, think about your next step.
Native mobile apps are a lot more niche than browser based apps, so I would focus on the latter.
Be prepared for times when grasping certain concepts slows you down, this is natural as your brain tries to make sense of all the patterns. Don't let it demotivate you! If you haven't done any development work before, I would suggest taking one or two days to do the obligatory Todo app, it will show you how to put things together on a very small scale, and will give you a good foundation for your own project.
Payments integration can be done simply with Stripe. The only thing I wonder about is security, as it's a finance tracking app. That might need a bit of technical knowledge.
In any case, keep it simple and realistic and give it a shot. Don't put too much pressure on yourself to turn this into a business (that's when it will feel like a grind), rather find a motivating factor that makes you say, I want to build this because it's cool. The more practice you get the more it will become easier.
Appreciate your thoughts here! Reading through your suggestions, it sounds like I'm on the right track.
I decided to start with React based on PM experience, some research/suggestions and gut feeling. I wanted to stick with a desktop app to start since it seemed "easier" and I think you made a great point about native mobile apps being more niche.
I managed to get through this React tutorial made by a friend (https://www.youtube.com/watch?v=fQ1OA9Wyf2U&t=1622s) with some help from my boyfriend to explain the basic Javascript stuff I needed to learn. I'll definitely work on the Todo app next, thanks for the suggestion!
Thanks for the support :)