100 Stars On GitHub
After more than 1 year on GitHub, I've gotten more than 100 stars. In this post, I will tell you what I have learnt from that journey. From my journey, I hope that you can learn something and might do something helpful for your career.
Shape Your Goals
When I was started more than 1 year ago, I didn't know how to get started. There are a lot of questions came to my head at the time. What should I build? What is the standard of a repository on GitHub? How do people know about my works? How other professional developers are doing? Even a very basic question that I need to answer to myself at the time is "Is it worthy to spend time on GitHub? Spend time for building something for free?". There was also a feeling that no one will read my code because I'm not an expert on this....
To be honest, it's tired to answer those questions even to yourselves. But those are very important questions, since it will help you to know your purpose and keep you keen to your goal for a long time.
Fortunately, I finally determined 2 of my goals:
- Build to learn: continuous improvement, be hungry to knowledges.
- Share to learn: feedback is great way to know where you are and best channel ever to learn.
But there is a another bigger goal that I says to no one until today: one day, one of my opensource project will be used in a successful project. I tricked myself to this beautiful dream to make myself keep going. Most people give up at this stage, hence please be strong and your effort will be worth it.
I started my journey by posting a document about effective-go that I have previously collected from different sources. It's a list of idiomatic and best practices that I applied to my projects. My purpose of posting it is just for easier to share with my team, but turn out it is where I get most of the stars.
On the journey, I have a lot of difficulties and also many lessons for me as well. The first lesson is "It's just a chance to learn and discover ideas"
Just A Chance To Learn And Discover Ideas
You're not always working on the project you love, not always work on the technologies you love. This happens all the time when you work on a outsourcing companies where you are staffed to many projects during a very short time and the technologies depend on your customers' decisions. Hence working on a side project is great way to explore new ideas, new technologies. That's a great way to keep up to date with the technology world where new technologies emerged every seconds.
A Tool To Motivate Yourselves
You might not admit this but working on customer projects sucks sometime. The reasons can be the technologies are too old or you are not interested in the technologies used in the project, worked too long on the project and want to find something new.
Start a side project is a good way to motivate yourselves. Getting some new friends in the field, getting some new stars, learn some new good ways doing things will be a big motivation and can save your career. You might also discover some new ways to do things better and can contribute back to the projects you are working. By contribute more, your influences in the project will be raised and that's a way to leverage your career into the next level.
Connect With More People On The Same Field
Working on a same team, same company too long? Meet old friends every day? Some time you feel just f**king old and hence starting a new field, on new platform and making friend with someone out side the company will be a salvation for you. You might hear something new from your new friends about the way they work, about the new technologies they use and that would be awesome.
How To Get There?
- Start with something you love: if not you will give up very shortly.
- Do it yourselves and alone: it's hard to find a co-founder and hard to keep up the relationship for more than 6 months for a side-opensource project. Better start with yourselves first.
- Be persistence: good things need time to build, try to be persistence with what you build and commit to build it until you complete it.
- Stars is a tool to motivate yourself: it's not something you will impress your employer.
- Well document: update README, topic, project descriptions,... accordingly. Without a good README, no ones care your project.
- A live demo is everything: people is lazy, they love seeing something works.
- Share it and ask for feedback from your friends or from other popular channels like Facebook, Reddit,...
- Build projects around your lib/framework
Dangerous Paths To Avoid
- Stars is actually not the goal: Learning and having fun is.
- Getting stars to impress employers: please no. They don't give a f**k about GitHub stars. Showing your projects to them might hurt you back.
- Afraid to share: nothing wrong to share your project with others. See "early work" from Paul Graham if you think your projects are lame.
- Some people advertise their project just to get more stars: please don't do it, advertise for feedback instead.
- Never ask for stars, ask for feedback instead.