If you’ve ever tried to start a software company or build a mobile app, you’ve probably come across these options for getting it out there:
- Find a technical cofounder.
- Hire a freelancer to build your app.
- Learn programming and build it yourself.
When it comes to finding a cofounder, if you don’t already know someone with technical abilities, it’s going to be a very long, difficult process to find someone to work with you—if you can successfully do it at all.
You need someone who is very technically capable, has time to work on the project, and has a passion for what you’re doing. The type of person you’ll need to partner with is in extremely high demand, so even if you do find someone, it’s going to be difficult to convince them to join your team.
If you have the money, hiring a freelancer can work. However, hiring someone to build the app of your dreams is extremely hard, and will likely take longer than you expect.
During the process of working with a freelancer, you may find they do not build things quite the way you expected—the design will be off, things won’t work as fast as you’d like, or there will be small interface elements you didn’t think would be included. Additionally, you’ll have new ideas for your app that you’ll want to add before or after release, and the app will require bug fixes and maintenance post-launch, which will cost extra money. Because of this, you will be paying your freelancers more than you were quoted simply to finish the project.
My experience with cofounders and freelancers
Three years ago, when I was a 20-year-old business student, I set out to build a music streaming service that was good for both musicians and music fans.
For the first year of my startup, I searched for a technical cofounder. I’ve gone through at least three technical cofounders, each of whom I got along with really well, but who either lacked passion or time and commitment to the project. Things moved extremely slowly because we never built something I was confident enough to release.
The next year was spent trying to hire freelancers. The problems here were similar to those that came up during my hunt for a technical cofounder—many freelancers who are affordable also have full-time jobs and little time to commit to a project. In my case, it took six months to get my iOS app built.
Unfortunately for me, someone broke into the freelancers car and stole his laptop with all of the code on it. Six months of work was gone, and I was out of money. Since I couldn’t seem to find a cofounder and didn’t have money to hire another freelancer, nor could I wait six more months for the one I hired to fix this, I decided I had to do this on my own.
How long does it really take to learn programming?
Whatever you do, please don’t Google “How long does it take to learn programming?” like I did. You’ll only be discouraged by people who give answers like, “I’ve been programming for five years and I’m still learning,” or “About two years if you do a lesson a day.” This is one of the main things that set me back from learning programming myself.
I always thought, “Two years!? I can definitely find a good cofounder in that amount of time!”
While it’s true that you’ll be constantly learning new things in programming, it is not going to take you two years to learn enough to build the program or app you’re trying to release.
During the process of doing tutorials and making mistakes, I spent about six hours a day on programming (while I’d graduated college by this point, I still had a part-time job). At six hours per day, I built and launched my iOS app in three months. Here’s the result if you want to take a look (luckily, previous musician outreach efforts meant I’d already had some music to work with.)
I’m going to walk you through exactly how I did it.
Tutorials and understanding the basics
Having no previous programming experience, I had no idea how to do anything. I didn’t even know where to write code, or how to put an app on my iPhone.
Luckily, I came across an awesome website that teaches iOS programming to beginners—Code with Chris. You can do the first few lessons for free to see if it’s right for you. Since I had no money, I convinced my parents to pay for the course, and I found it extremely helpful.
Here are some other resources you can take a look at to learn programming. Some are free, some are paid:
Make sure you pick a course that’s for beginners, not for experienced programmers. These programs will teach you the super basic beginner stuff that can sometimes be difficult to figure out.
If you’re learning iOS programming, I highly recommend Code with Chris. It isn’t free, but the videos make things really easy to follow, and he did a great job explaining things in a way that makes sense to non-technical people.
What to do during the course
During the course, it’s extremely important that you actually write code. If you’re following along on a series of YouTube videos, don’t watch the videos thinking you’ll gather information and take notes, then go back and code. This won’t work. It has been proven that people learn much faster by making mistakes.
You need to follow along and write the code yourself. When you do this, you’re going to find that sometimes it doesn’t work, even if the code looks exactly like it does in the tutorial, or that some code you wrote earlier in the tutorial isn’t working anymore. It’s very important that you make mistakes like this and get through them.
Most people become discouraged when they come across a mistake that they think isn’t solvable. When you come across programming mistakes, Stack Overflow is your best friend. As a beginner, it’s likely that anything you Google related to programming issues will result in links to this site, with amazing answers that will be extremely helpful to you. Don’t be afraid to be specific when you Google the issues you come up against.
Plow through the course as fast as possible. It’s likely you’re going to get near the end and still have little to no idea what you’re doing. That’s okay. By the end of a good tutorial, you’ll have a better understanding of the process you need to go through to build something.
What to do after the course
After a programming course, most people would encourage you to start with small programs. Assuming your programming course had you build some small, workable programs, I would discourage this. Building small programs for the sake of programming is going to make you bored.
Alternatively, I’d encourage you to get started building parts of your idea. What I mean by this is, if your app has multiple features, take each of those features one-by-one, and build them as separate programs.
Your idea is the main reason you started learning programming, and it’s what you’re passionate about—your passion will pull you through the experience much faster than building something just to learn. I didn’t spend so much time each day programming my app because I had to learn; I did it because I wanted to build it. I was excited about it.
By starting on parts of your idea right after the tutorial, you’ll immediately face very big problems, and this will accelerate the learning process. You’ll also get to see your ideas come together in real life, and you’ll get to play with the thing you’ve dreamed about for so long. It’s amazing, and it’s what keeps you going.
Building your program
Once you’ve built all of the parts of your program, you’ll have learned a lot about the programming requirements that are specific to what you’re trying to put together. Going back through these parts, you’ll see how your code will be improved. This is why, as a beginner, it’s important to build the parts of your program before building the whole thing—you want the final product to be well put together, and as a beginner, it’s likely that your initial code will be messy.
After examining the parts of your program, it’s time to put it all together. Get started on your product, and put together the parts you built previously. During this process, you’ll explore ways the code can be improved for performance and readability.
Releasing your program
It’s scary releasing a new product. You think people will hate it, you’ll get bad reviews, and you’ll develop a bad reputation among potential users.
These things are unlikely to happen. When I first released my app, it had some issues, but from learning how people used it, I was able to quickly improve it in ways I would never have thought of on my own.
Release it quickly, and improve on it with updates. After releasing our app, it only took me a few weeks to add our music subscription for business use. By this point, you’ll be experienced enough to make quick iterations to your product.
Learning programming is the best option for any entrepreneur looking to get into the technology space. As mentioned above, hiring a freelancer can be expensive, and finding cofounders is extremely difficult.
Don’t make the same mistakes I did; they literally held me back by years. Just get started on learning as soon as possible—your passion will carry you through.