Your GitHub profile is irrelevant
No one cares, so why should you bother?
A fun thing that people always told beginner developers is that they have a tidy and organized GitHub profile, with lots of projects (no matter how useless) and lots of commit history (no matter how meaningless).
I always thought this was weird, but as a beginner myself back in the early 2010s I did what I was told. Spent months and even years actually working on lots of shitty projects that I never finished. Why? Because they had no soul or, rather, goal, and populating a GitHub profile is not a real goal and don't pretend it is.
Nonetheless, I learned a lot from these useless projects so its not that they are useless entirely but that they will give you a false sense of achievement and a false sense of progress.
"I built a fancy ahh graphing calculator in C"
Congrats! You learned a lot. But you achieved fucking nothing.
Does it work in the field? Have you validated this with someone who actually works in mathematics, chemistry, physics and engineering? No? Then you are wasting your time. You sure delivered code but have you delivered value?
The goal oriented programmer
A goal oriented programmer is someone who optimizes for solving the underlying problem rather than for writing code itself. Code is treated as a means to an end, not the end.
Nothing wrong against for-fun side projects. But if you ever plan in working in this area, you should be a goal oriented programmer.
You should ask yourself: "What outcome do we need to achieve?" "Do we even need to implement this?".
Challenge assumptions before implementing them. Then ask whether the feature, service, or architecture is necessary.
Companies hire people to solve problems, not just to write code. You probably present yourself as someone who knows programming languages when you should presents yourself as someone who can deliver results. And yeah this sounds corny as hell, but unfortunately its true.
Filling your ShitHub with random crap is not helping you at all.
How should I present my work then?
Again, the point is not that you must hide your work or not present it at all. Just that you must present things that deliver value and solve some actual, non-imaginary problem. For example, I love OSDev, but a yee yee ass monolithic kernel has no value whatsoever. A game engine from scratch solves nothing. Writing an emulator is a solved problem if you can barely can it solving a problem.
Actual problem solving is hard, coding something that actually solves a problem is harder. Even more so at scale but this is not the focus of discussion today.
The best way to know if your work has value is that there's people using it to solve real problems they have. Customers, library downloads, maybe even ShitHub stars can give you a good indication of how much value your work is delivering.
If you have none then either you are not sharing your project enough or your work is not solving a real problem. And, if it does not solve a real problem then it has no value (besides learning something).
Are you telling me to use LinkedIn?
Fucking hell no! LinkedIn is the epitome of fairy-tailish corporate delusionism. You can get SOME visibility in there but its not the right place for sharing your work, there are better places for that. Heck, even posting in Reddit is better!
It can help you get work opportunitis, but getting ACTUAL visibility and street credit? Nope. As a beginner you should be focused on getting fast and acid comments on your work, not getting a bunch of yes-man that all pat themselves in the back for the sake of appearances.
Is there any hope?
Yes! Although joining the tech market is becoming harder for beginners due to the increasing competition, and the significant advances in AI technology, there is still a way to make a difference. You just have to shift the way you approach your work.
Code was used as a commodity, something rare and valuable, that took time and costed lots of money. LLMs made that cheap and completly wrecked this view. But you know what keeps being relevant? Being someone that understands and can link context, someone that can take abstract thinking and refine that into technical steps and specifications, someone that has enough critical thinking and can see the big picture.
Shift your approach to work. Sure you have to know code, but more importantly than ever you have to know good practices, architecture, design principles, and how to navigate business requirements and corporate goals.
And yeah, you can develop that by yourself it will just take a shitton of time and effort. I would recommend getting into a group with only people at your level and try to build stuff this new way, where you and your friends are not just the monkeys typing away at a keyboard, but the real problem solvers who understand the big picture and can tell the LLMs how to do the actual work.
Are you a hypocrite?
Now, it sounds odd someone that shat on AI in all the other notes previously to actually recommending doing this new way that was imposed on us. And you might be right.
But I like to think that, as a junior (or not even that yet) you have no business doing passion projects if you can't even pay your bills. Side projects became something reserved for those that already earn a living, or live with their parents.
If you don't live with someone that pays your bills, you shouldn't be wasting time on passion projects that you craft artesanally. Just use the fucking AI already.
Every company is using them, and they will not stop using them. So what is your decision? Continuing to be poor af just to protest against the AI dominance?
What I'm telling you is that you must shut the fuck up, swallow this enourmous ego and fancy principles and bow down to the system temporarily until you saved some money to flip the finger and go live the dream. And its also possible to balance things out, its not like its an all-or-nothing kinda scenario.
I think that's it, see you next time! And I hope you liked this note :)
System.exit(0);