In the 1st semester of my computer science course back in 2015 there was a module called โComputer Systemsโ. Every student had to pick from 25 topics to run a workshop on that topic during the semester.ย
We were not enough students to pick the last one: Git.
When Jimmy, a friend of one of the students, heard about it, he was outraged! He was a professional software developer already and couldnโt understand how exactly this topic could have gotten ignored by the students AND by the supervisor!
He quickly organized a workshop on a rainy weekday. He had set us up with Git and included some exercises with explanations. It all took a few hours, but I think it was a game-changer for most of the students back then. I feel the impact even today.
The activity of your GitHub is particularly important if you are looking for your first developer job. Or if you will be looking soon. Let me show you why and then let me give you a few examples of how you can get started quickly.
git status
The importance of Git in the software engineering world is undisputed. It is the number 1 technology to control the versions of your code.
โ
Itโs literally impossible that you will be able to avoid this awesome technology over the years. And you shouldnโt because it is your code guard and your code game checkpoint. It can be even your metronome if you incorporate the right workflows into your coding exercises.ย
โ
And the purpose of Git is not only on the technical side. Especially if you are looking for your first developer job, you should start to fill it with life now!ย
โ
Some developers will say that a GitHub account is even more important than the Rรฉsumรฉ..
โ
I have talked with a huge bunch of companies over the years checking them out or applying for jobs. My GitHub account was a topic lots and lots of times.ย
My GitHub account is not very special. But it fulfills its purpose for potential employers:
- It shows my activity as a developer (over 70 repositories and ~200 average commits per year are good metrics in the beginning of your career)
- It shows my recent projects and programming languages
- It also shows who I am not (e.g. I have a self-hosted blog but Iโm not super active in Open Source projects)
Now fill yours!
git add --all
Jimmy told us: no matter the size of your project or your skill as a developer right now:
Donโt even think about hesitating to push your code to GitHub...ย
โ... because itโs not a cool project ...โ
orย
โ... because itโs bad code ...โ
I have tons of bad code on GitHub, but your activity is what matters, especially in the beginning. If you care about other fellow developers, they will understand. If you care about family and friends, they will probably never even come close to understand what GitHub or git is. If you care about HR people and potential employers, they have very busy eyes:
Later, when you zoom in to a specific niche or technology, you can start to clean your GitHub account and keep your strongest projects.ย
5 years later, I still havenโt cleaned mine, the pin function to highlight my funniest projects is enough right now.
git commit -m โGotta catchโem all!โ
So now you know that you will git add --all everything to GitHub. But sometimes everything is not enough...
Itโs clear that all of your personal or student projects will be kept in GitHub from now on.
Doing that, you'll also lay the foundation to follow an important CI/CD philosophy:ย
"Ship early, Ship often"
If you commit to a repository-first-thinking, youโll also see that you can store much more in your repositories than just code for projects. Because as you continue to work on different projects, you will see that you do repetitive work on different fronts.ย
Let me show you a few examples.
โ
TEXT TEMPLATES
Sometimes you will have writings that always start the same way or have the same structure. For example, READMEs are very important if you want your project to be used by other people. But you donโt need to come up with a good README on your own. There are truly great ones out there on GitHub!
I have forked a good README.md template, personalized it, made another light-weight version of it and now I use them whenever I start new collaborative projects.
My Activity Boost:
๐ข 1 repository
๐ข 8 commitsย
๐ข GitHub 2 stars received
๐ข awesome automation of my workflows
PROJECT BLUEPRINTS
I have several blueprints at hand that I can just clone, change a few variables, and voila! I have a new flutter, firebase, or AWS/react/node project up and running in no time. These templates are very handy to get over the barrier of getting started.
My Activity Boost:
๐ข 1 repository
๐ข x commitsย
๐ข x stars received
๐ข awesome automation of my workflows
๐ข ๐ข ๐ข x time saved for future apps
CONFIGURATIONS
Configurations can be a pain, setting up everything from scratch again and again will make your life boring. Some configurations are reusable, so please, do yourself a favor and document them in a repo.ย
A tiny example: I recently started to exercise and mentor Ruby at exercism.io and the first thing that you will encounter there when using VSCode is that youโll run into errors. So I fixed them and documented everything in the repo.
Now, Iโm prepared on setting it up again easily and if anyone googles or searches GitHub for the issue, then itโs there.
My Activity Boost:
๐ข 1 repository
๐ข 2 commitsย
๐ข awesome automation of my workflows
๐ข potentially someoneโs time saved ;)
BLOGS & NOTES
If you write a blog or some insightful notes (e.g. your personal wiki), you should automate your workflows as much as possible. GitHub offers you various possibilities to host your blogs/notes/wikis (FOR FREE) and automate their deployments. There is nothing more awesome for a developer than to write it, push it, watch the deployment, enjoy it :)
My Activity Boost:
๐ข 1 repository
๐ข 117 commits (richstone.github.io)
๐ค log hosted on GitHub for free forever
LISTS
There are many awesome developer lists and lots of documentation out on GitHub.
They have the potential to be very useful for large groups of people and to go viral. So if you think you have a useful list in your portfolio, shoot it out to the public!
โ
CODING CHALLENGES
If you are just building your portfolio, you should track every coding challenge that you tackle in GitHub no matter if you are doing them on exercism.io or leetcode.com or on any other platform. If you are planning to look for jobs soon, challenges are a great way to prepare for some companies.
Here are a few examples of my challenge adventures:
Boilerplates allow you to do the challenges in your own IDE more quickly and get started right away.
My Activity Boost:
๐ข ๐ข๐ข many repositories
๐ข ๐ข many commitsย
๐ข ๐ข ๐ข awesome automation of my workflows
๐ sharing coding challenge boilerplates & solutions is caring ;)
โ
OPENย SOURCE
If you can find an awesome open source project, it will not only boost your activity and your developer skill, but you will also get a feeling or become more proficient in working in a real team on real problems with real impact. I don't have a track record in this area yet, but if you tackle it seriously, it will be clearly visible in your profile. If you get a nice track record there, it can be like showing real world experience.
โ
Your Activity Boost:
๐ข ๐ข ๐ขย real world team experience track record
๐ข ๐ข many many commits
๐ข๐ข part of a community
๐ข your code will have real impact
git push
โWill They Steal My Ideas?โ
During our after-hour in a funny Kebab place on that rainy workshop evening, I actually had this question back in 2015 when Jimmy told us about the importance of open source and pushing Everything into the public.
"But what would happen to my amazing project ideas?"
Jimmy said back then, that most of the time, itโs naive to think that your code is so special that it needs hiding in a private repo.
I didnโt agree with him somehow. But after 5 years I see that he was right.
Most of the time your ideas are way less genius, less unique, and less important as you think. And most of the time, they actually lack execution, and not a private repository on GitHub ;)
On the other hand, you never know who finds some of your repositories useful. Unless you are starting a planned-through commercial project, just make it public and enjoy the atmosphere!ย
git conclude
Git is super important for your day to day work as well as for your career.ย
You should track every piece of your code in git and push it to GitHub.ย
And it's not only pure code of your ingenious project creations but it also can be your awesome lists, your reusable configurations, and your blogs and sites hosted for free.ย
And never be conscious to make your code public, especially at the beginning of your journey what counts is less your code beauty and more your activity.
Now cheers and go push that thing!ย ๐
โ