If you haven’t done so already, you might get going on vacation this summer in order to enjoy a short break away from your job and the potential stress that comes with it. Your suitcases are packed and you are ready to fly to an exotic sunny destination. At that point some developers already know they will be itching to get back to code soon. If you recognize yourself in that description you probably start to wonder how could you include some coding into your vacation time.
You basically have 2 options: or you keep in touch with your colleagues and keep on working as usual, except you are now in a sunnier environment, or you decide to let work backlogs at home and prepare your return by improving some of your skills or acquiring new ones.
To develop such coding skills you have 2 main solutions: working on a side project or contributing to an open source project.
Start a side project
Summer time is a great moment to start a side project. It’s the perfect moment to take a step back and think about things you always wanted to do but never took the time to dig into it.
Here are some reasons why you should definitely consider starting a side project on your next vacation.
Why should you start a side project?
- It’s an opportunity to express yourself by developing what you always wanted.
- This is a great way to stay fit and focused until you return to your job.
- Big companies and success stories came out of side projects. Great examples are Uber, Unsplash or Trello.
- It’s a good way for creative people to stimulate the creativity working on something new. It’s the opportunity to elevate yourself working on bigger challenges than you usually do.
- A side project is a good way to take a step back from your daily routine and inject some new passion into your coding. Whether you are in love with your job or not there is always a point where you need new coding challenges to recall yourself why you love being a developer.
- It’s a good way to experiment something before dedicating more time to it. A side project is a great thing to add to your CV or portfolio.
- It’s a great opportunity to develop new skills in order to stay up-to-date with a constantly evolving tech industry.
- A side project could help to improve something you already developed. At Yotako we had some great new features that came out of summer side projects. We should probably write a specific post about it next time…
Not convinced yet? Feeling like it’s too difficult for you or you don’t have enough time? Check out most common excuses people use for not starting a side project. Maybe you would recognize yourself and get convinced by Paul Jarvis arguments.
Let’s get started!
Now that you are convinced about the idea of starting a side project, how to decide on what you are going to focus. As stated by Una Kravets “Sometimes the hardest part of side projects is simply deciding what to do”. Indeed it’s always hard to decide where to express your creativity.
Here are some resources you could use to find side project ideas:
Three Ways to Generate Ideas for Programming Side Projects by Sam Jarman. Including recommendations such as automate your life or explore APIs possibilities.
Creative Side Projects: A How-To Guide by Una Kravets. Una shares with us some tips such as making a table with the things you want to learn/improve on one side and your project ideas on the other side, then just see what matches the best. Other interesting technique she mentions is the “oblique strategies” which are intended to make you think of an idea from an alternative angle (take a look at Oblicard).
When defining your side project topic, remember it doesn’t have to be big or to require a lot of resources. And if you are wondering how long should last your side project and how often should you start new ones you can get some inspirations from the One side project per year challenge by Samantha Zhang.
Now that we discussed the why and the what let’s have a few words about the how. A frequent issue reported by developers with their side projects is the difficulty to keep motivation and productivity high overtime. Such lack of personal investment is completely normal if you consider it’s not your main activity. Here is a summary of some best practices to stay performant with side projects as well. Being a SaaS ourselves we have to admit #5 “Use SaaS tools” is our favorite ;)
When your side project is launched you should also consider a way to market it. Whether it is for your portfolio only or to attract new contributors or users, the “packaging” of a side project is something important but frequently neglected by developers. Have a look at this Ckecklist for Side Project Marketing.
In any case, whether you are looking for an idea or a way to implement it, side project communities are inexhaustible resources for you. Here is a list with some of the main communities out there:
- One of the most active communities can be found on Reddit
- Ask questions you may have on Quora
- Sideproject.xyz a community to find collaborators or join other side projects
- Ask Hackernews community to confirm your assumptions
- Use Inbound community to discuss the marketing of your side project
- There is even a community to buy and sell side projects.
Our side project reading list:
- How to come up with side project ideas
- Three Ways to Generate Ideas for Programming Side Projects
- No More Excuses: Why You Should Start Your Side Project Already
- The importance of side projects
- Creatives: Why You Should Always Have a Side Project
- 6 Startups And Popular Websites You Didn’t Know Started As Side Projects
- The Top 5 Side Projects That Became Billion Dollar Tech Companies and What You Can Learn From Them
- The One Side Project per Year Challenge
- Three Things I Learnt from the One Side Project per Year Challenge
- Creative Side Projects: A How-To Guide
- 13 Tricks for Successful Side Projects
- The Side Project Marketing Checklist
- Every resource we use when planning, building, and launching a side project at Crew
Contribute to an open source project
In the same way summer vacation provide you with time and a free mind to focus on the side project you always dreamt about, it also gives you the opportunity to do something good for the community by contributing to an open source project.
The benefits of contributing to an open source project
- It’s a unique opportunity to learn from the best experts on a specific technology.
- It helps you to improve the quality of your code. Most of the good open source projects have strict coding guidelines which you have to adhere to in order to get your code merged. This will help you in adapting your code to the community best practices.
- Get reviews on the progresses you make. Getting code reviews is probably one of the main benefits of open source contributions. When you push your code, you get feedback from the experts associated with that project. Such code reviews are an excellent way to assess the progresses you make in improving your skills.
- Everyone is super encouraging and helpful. You will feel welcome and at home within the open source community. You shouldn’t be intimidated by open source maintainers as they are usually very supportive and provide with constructive criticism.
- Networking. Contributing to open source projects will provide you with new useful contacts for the future. Whether it’s for your own open source or side projects or for professional matters.
- It’s amazing all the things you can learn just by reading open source projects source-code. Here is a great article by Anthony Ng on all the learnings you can quickly get such as the art of linting or the use of descriptive function names.
Despite the significant advantages you can obtain from open source contributions, several fears may sometimes block people to go for it. Some people may think contributing to open source is something hard and exclusively reserved to experts of the related technology. Others may fear open source projects are too advanced to easily catch up with. Such issues highlight the importance of making the right choice regarding where to contribute. For instance starting with a beginner friendly project may be something relevant to do if it’s your first experience with open source.
Where to find your next open source project?
- Use github explorers such as Gitxplore or Up-For-Grabs to find the right project for you.
- You can also look for issues based on what you want to do, no matter what the project is. Use Github Search or IssueHub to find the good match.
- Focus on trending technologies. Ryan Williams did a great analysis of trending developers skills based on the competencies required in the job offers posted on Hacker News. If you want you can go deeper and check out what programming languages are used during the week or during the weekend. It gives you a good insight of what people love to use vs. what they are forced to use at work.
- Explore the projects that are in the spotlight: Top 6 Open Source Projects In 2017, or trending open source projects on Github.
- Be part of a brand new project. Developers with an open source idea are often looking for additional developers to compose a team and start the project. With Mikael Brevik Open Source Idea Initiative, you can find ideas that might interest you, or even posting your own ideas for feedback.
- Get involved with the Mozilla community. For example by tackling bugs that have been tagged as “good first bug” or “mentor” if that’s what you are looking for.
- Alternatively you can also wait September in order to join Yotako Open Source Project :)
Now that you found a match with an open source project, there are a few things you should look at before jumping in your first readme. In the first place you should master the art of linting, the process of checking for problematic code. For instance, if you plan to use ESLint in Atom you should have a look at this article to set up everything and get ready for open source contributions. In the meanwhile you can also have a look at the tools Firefox provides to inspect Web code.
Join some open source communities to get prepared and exchange good tips and tricks:
- The Mozilla community
- Discuss open source on Reddit
- For students: the Open Source Society University
- The Open Source Initiative community
Our open source reading list
- Why I Open Source
- Unconventional way of learning a new programming language
- Open Source Ideas Initiative
- Human beings are Open Source Projects
- My First Open Source Adventure
- A Github repository for the first timers only
- How to find your first open source bug to fix
- How to set up ESLint in Atom so you can contribute to Open Source
- Top 6 Open Source Projects In 2017
- Guide to learn how to launch and grow an open source community
- What I learned from reading the Redux source code
And you what coding do you do during your summer breaks? Please comment and share with us how you manage to keep productive coding during your vacation.
We really enjoyed sharing our thoughts with you guys, hope you enjoyed it.