It isn't easy for inexperienced developers to find an attractive job without years of experience or an impressive portfolio. That shouldn't be an excuse, though. It has never been easier for developers to build a portfolio, gaining experience along the way. In this article, I show a few examples of how you can build a portfolio and gain experience to help you find clients or impress your future employer.
Contribute
Whenever I vet a developer, I take a look at his or her past work. Open source contributions are great for this. It isn't necessary to build an open source project from the ground up, though. Engagement and taking responsibility in existing open source projects is a good first step.
Many well known developers have gained name and fame by creating and maintaining open source projects. Eloy Durán, for example, had years of experience as a Ruby developer and missed a reliable dependency manager for Cocoa. Instead of complaining about it, he created CocoaPods and turned it into the most popular dependency manager for Cocoa development.
Open source projects often die a quiet death due to the lack of contributors. But another common reason is the absence of good documentation. Nothing stops you from creating a pull request to update the README of an open source project to polish its documentation. Developers new to the project will thank you for it and so will the maintainers of the project.
Build
It has never been easier to create software. Getting started with software development is not that hard. What is stopping you from creating your first mobile application? If you are looking for a job, then your future employer will ask you about your portfolio.
If you are looking for a job, then your future employer will ask you about your portfolio.
Finding clients is very, very hard without a portfolio. The fact that you are looking for your first job as a software developer or freelancer is not an excuse for not having a portfolio with one or two applications. Build that application.
Maintain
Being a software developer also means that you are responsible for maintaining what you create. It isn't necessary to ship a new feature every month. What is more important is making sure existing users are happy and stay happy.
Take a look at the crash reports of your application. Are there any issues you can fix? What are people complaining about? Could you improve the onboarding experience?
Being a software developer also means that you are responsible for maintaining what you create.
Being able to show that you have the skills to build and maintain a software project goes a long way. Not only will your future employer look for these skills, you also need them to excel as a software developer.
Plan & Manage
If you want to take it up a notch, then scheduling releases and adding features is the next step. The idea is to start simple, build a modest user base, and improve the application over time. Listen to the users of your application, sift through the feature requests, and decide which features make the cut. Remember that you manage the project, not the users of your application.
Remember that you manage the project, not the users of your application.
Test a new feature before releasing it to the public. Involve your existing users by distributing a beta build of the application through Fabric, Hockey, or Apple's TestFlight.
Adding support for multiple languages is another great improvement that underlines your commitment to the project. This may involve hiring a translator.
Gain Experience
Getting started with software development is easy. Starting from zero and publishing an application on Apple's App Store requires effort and perseverance, though. It means that you cannot quit halfway when you don't feel like finishing the project. Every developer has a slew of projects they started working on and never finished.
Finishing is hard, but that is exactly what your future employer or potential clients want to see. There is nothing more enjoyable than starting a new project, but it takes grit and tenacity to finish a project and click the submit button to publish your creation on the App Store.
Real artists ship. — Steve Jobs
Steve Jobs famously said that only real artists ship. He knew first hand how hard it is to finish a project and ship something people can use. It can be scary to share your work with your peers, but that is what it takes to succeed.
Be Yourself
There is no need to compete with your peers. If you continue to do what you love and what you're good at, you will get where you want to be. But remember that you only get what you work for. If you aim for mediocracy, then that is what you'll get. If you aim for the best ...
How Badly Do You Want It?
Whether you succeed depends on the question "How badly do you want it?" Are you willing to work nights and weekends? To make a dent, you will need to go beyond showing up.
Showing up is overrated. Necessary but not nearly sufficient. - Seth Godin
It is important to be honest with yourself and define what you expect from your career as a software developer. Gary Vaynerchuck is spot on when he says "If you live for weekends or vacations, your shit is broken." Is that you or are you aiming higher?
If you live for weekends or vacations, your shit is broken. - Gary Vaynerchuk
What About You
Are you motivated to get off your butt and make awesome stuff? What are your goals and dreams? You don't know? Then that is the first thing you need to sort out.