Don't Contribute to Open Source
ฝัง
- เผยแพร่เมื่อ 20 พ.ย. 2024
- You heard me right. I don't think you should contribute to open source. Unless...
KEYWORDS: GITHUB OPEN SOURCE CODING DEVELOPING PROGRAMMING LEARNING TO CODE FIRST CONTRIBUTION PULL REQUEST
Check out my Twitch, Twitter, Discord more at t3.gg
S/O Ph4se0n3 for the awesome edit 🙏
@christitustech made the perfect follow up video to this. If you want to do open source RIGHT, I think this is a must watch. th-cam.com/video/JF8F7uaGfV8/w-d-xo.html
This is how you contribute to open source:
Use open source, notice a bug, investigate the bug, write a bug report and offer to fix it
BUT HOW WILL I GET A T-SHIRT TO SLEEP IN AT NIGHT?!?!?!
@@askholia Anyway, you won't be getting it from this year onwards 🤣
Use open source, use it wrong, create an issue instead of reading the documentation.
@@askholia Do everything he said, but wait until Oct. to write bug report and offer the fix of course 😆
What I like to do is to write a documentation page or part of it (for example, for a CSS framework) for a whole component or a not explained enough prop or flag
Easy and doesn't damage the source code
I'm going to invoke Goodhart's Law here: _“When a metric becomes a target, it ceases to be a good metric.”_
Beautiful!
So true... I feel the same way about code coverage
A similar concept comes from game theory. It states, "The rewards of the system incentivise the behavior of the players."
If a game (or anything really) rewards people for doing X, then guess what? They're gonna do X.
@@developersteve1658 Sometimes the rewards incentivizes the wrong behavior, case in point the viper bounty.
@adiaphoros6842 Exactly. In the case of the video topic, the problematic behavior is just trying to get 4 PR's merged. Hacktoberfest and other such systems don't have quality metrics (which, let's be honest, is impossible to do well), so people will do the minimum amount of work to get the reward.
The most important message is: “If you don’t know where to contribute, you shouldn’t”.
If you are not solving or improving a product you are using (even docs are fine), don’t contribute.
My first contribution was... fixing a python example in the docs.
I proposed two changes... one of them was accepted[it made the code not depend on the console wrapping the lines]... the other was rejected due to making it more readable(it was a deliberately obfuscated one liner).
@@matheusjahnke8643 that's a great example for a helpful contribution. I think docs contributions are great to get started with the project. But the same thing applies to them as mentioned initially: Don't go through docs for open source projects just to find mistakes, fix the ones you stumbled upon when using it.
When a metric becomes a target, it ceases to be a good metric.
Having open source contributions is one metric that looks good on a resume to recruiters and improves your chances of getting a job even outside of open source programs like GSoc. Even if you're not seeking to improve your skills, it may end up being the differentiator that gets you the job. Sure, it comes at the cost of wasting a few minutes of someone else's time or polluting a repository with another dummy commit, but it's way too competitive out there. Putting yourself first is ok.
That's the wrong advice because it doesn't teach anybody anything. "Don't talk about fight club", does, conincidentally, mean that no one will learn about fight club. Is that how this is supposed to be?
@@CyrilCommando That's not what's being said though? Contribute to open source software *that you use and have at least some knowledge of*. That's the argument. Like if you use, say, the Gamecube emulator Dolphin regularly, and you notice something in there that's a bug, or even a fuckup in the documentation, and you think you can fix it, that's where you make your contribution. Don't just find some arbitrary open source project for the sake of it, you need to have some kind of interest in the project that you're contributing to, is my takeaway from the comment.
contributing to opens-source is hard for both maintainers and contributors. It's in no way an activity for noobs.
How do you not be a noob without being a noob in the beginning?
@@SunOfTheialearn first, don't confuse learning with contributing.
@@SunOfTheia
'I need to be a noob in the beginning so I should try contributing to open-source.'
Yeah, I don't think so. Theo mentioned building stuff and I agree. Just do loads of personal projects - thats how you be a noob and learn your way out of being one.
@@aomori_joe7220absolutely not what I was saying. I meant that even somebody who is confident in their skills and knowledge will need to be a noob for the first contribution because building personal projects doesn't translate to being able to read somebody else's code, being able to spot a problem and then for the first time figuring out how to contribute
I've done it many times is that bad
maybe title your video "Don't Contribute to Open Source if you're a beginner" but I guess that won't be a click-bait enough title for TH-cam. But yeah I completely agree with your point in the video. Also I've never once thought about contributing to open-source projects just for the sake of contributing. Like if I don't even understand the project, it won't be a meaningful contribution. But I guess it does happen. Thanks for bringing light to this.
I also believe many new developers are putting a language or framework before the project. They want to “learn typescript” but don’t even know what to build with it. Imagine saying “I want to learn how to use a drill” and having nothing to drill into. Pick your project first, then pick your technology. I also feel that you’re far more likely to be engaged if it’s a project you picked on your own and truly have a passion to complete it
If you have a hammer everything is nails =)
That drill analogy is a good one, I'll remember that.
I have a thing to drill into, but sadly I'm swamped in too many projects in the languages I already know to have time for drilling 😔 hopefully one day
A drill is not really a good analogy to a programming language. Even more so if the person is considering one of the many that can do pretty much anything you want.
Yes. Engineering is about making stuff, not a process to learn new skill just for sake of finding a job.
Yes, and that’s how people end up programming backends in JavaScript 😜🙈
ngl i had this mindset earlier in my career that i NEED to do open source to better myself but i just couldn't do it, i was just aimlessly wandering around github looking for some work to do in my spare time.
at some point later when i matured as a dev i found myself contributing to open source not because i wanted to better myself, but because i wanted to better the project i was contributing to and that was the game changer.
my advice to beginners would be if you don't know where to contribute to some vague idea of Open Source - start a pet project, direct your energy into learning
How did you manage to mature as a dev?
@@viliml2763just working at my company and dedicating some of my free time to writing on pet projects/learning. nothing complicated no tricks or secrets
@@viliml2763 Literally just writing more code. If you work on projects for a job or in your own time you will almost inevitably run into a bug with some open source piece of software. Do not go looking for bugs to fix, they will come to you by just writing code.
by growing mustache@@viliml2763
When a metric becomes a target, it ceases to be a good metric.
Open source contributions are one metric look good on a resume to recruiters and improves your chances of getting a job even outside of open source programs like GSoc. Even if you're not seeking to improve your skills, it may end up being the differentiator that gets you the job. Sure, it comes at the cost of wasting a few minutes of someone else's time or polluting a repository with another dummy commit, but it's way too competitive out there. Putting yourself first is ok.
Good take. I couldn't have contributed to open source project in the early stages of my carreer ( didn't have the skills to do so ), and nor did I want to. Now a decade later and with a deeper understanding of "code", I find myself going through the source code of libraries and frameworks, usually to solve bugs and add features as I need them and give back to the community as well.
Goals come from things you understand, not things you don't 💯
Nice advice Theo
Well I don't think that'd be a correct phrasing of it, researchers explore the unknown and that's their goal
@@therealpeter2267 Researchers almost always start with something they know first before going to the unknown.
It's always an ongoing question of "Does X + Y = Z?" where X and Y are known, but Z is not.
Even post-grad studies and research start out with Master's Thesis, where they have to prove their knowledge/mastery over a specific domain.
PhDs are then where they use that knowledge and mastery to carve out a new, unknown space.
That new space becomes then known, allowing for further advancements.
@@therealpeter2267 at least these researchers know what they are researching, and if possible they try to follow some best practices to do their research.
But the thing here is, this is not a research project that people have to find things from scratch, but there are documentations there that they can follow and see best practices on contributing to OSS, but these guys don't do that, hell they don't even use a project and see if it have a pain point they can fix, they are just pulling for pull request sake
@@therealpeter2267To be a researcher you still have to understand what the problems are of a given field so you can maximize your research.
"Goals come from things you understand" - someone who doesn't remember what it's like to not know what you don't know. If rookies limit themselves to the things they understand then they will never, ever grow into good developers.
just like noone needs to get married: "All my friends are married so I'll propose to the first person I find"
Wait I love this analogy
There is no such hype about marriages as there is about programming. There are too much people who are just incapable of programming but trying to get 6-figure jobs.
Opensource finds 80% of code ugly and only 4.5% attractive.
@@bigneiltoo and the other 15.5%?
@@kulled The rest is called "mid".
The problem is that the "how to get a tech job on 2023-2024" videos on TH-cam recommend contributing to open source. And yes a lot of beginners haven't been around long enough to like a project and contribute to it. It's like the egg or the chicken dilemma, you need to start somewhere but every decision is the wrong decision.
I think it comes down to your values more than your level of seniority. Every contribution you make should benefit the project, even if it's a small one but make it good.
problem is, even seasoned developers who've been around a long time aren't qualified to contribute to open source. it takes a special breed. normal developers probably don't need to be trying to contribute to these projects
The industry demands you to be professional, so even before they get job they will do anthing to prove they are not noob. But that thing done for false data is the worse. It's just a superficial thing that no one needs to follow but they still do it. And noobs will never understand all of this in pressure. I guess it time for these companies, seniors and trainers to don't give noobs false hope@@mikeha
What newcomers need to udnerstand is - there is no easy way out, no life hack, nothing that will make learning coding easy and simple, you just have to read a lot, learn a lot, practice a lot, etc
I remember the first time I contributed to open source. It wasn't a huge project, but I used it a lot and I encountered a bug that noone else seemed to have encountered yet. So I went ahead and fixed it. Submitting that pull request almost gave me a heart attack because I was so nervous I missed some guideline, or that my code wouldn't be up to snuff, or even worse that I'd introduce a new bug with my code. So I went over my small 5 line fix probably a dozen times, and eventually submitted it.
I was in absolute imposter-syndrome induced agony for what felt like ages. But eventually one of the devs responded, merged my stuff and thanked me for helping out.
I was riding the dopamine rush I got out of that for days. That's when I fell in love with open source. There's just something so pure and wholesome about the idea of just helping someone out because you have the resources to do it.
The reality of course not such a fairy tale (like it's clearly demonstrated in this video), but this interaction will forever be what I think Open Source *is*.
Thank you for helping the world to be better place for all
As a Muslim, I love anyone who helps others by anything
@@ibrahimalharbi3358 We don't want to hear advertising for your cult, thanks
@@ledues3336 Sorry! Could you please talk about yourself not about other people
This video is actually so good. Im not an experienced dev and I genuinely thought that its all about adding pull requests and getting more exposure. Thank you so much for making this video. And the "identifying the problem in the application we work" is on spot.
While the title of this video is a bit of a head turning oversimplification, the aspects the video goes on to cover are definitely on point. “Cart before the horse” took the words out of my mouth as I was watching.
"Head turning" is the goal. I think it will get the right people to pay attention :)
@@t3dotgg totally agree 👍
@@t3dotggwhy not make the title "the problem with pursuing open source" or something else that's much more accurate to the content of the video but still head turning?
@CatMeowMeow because my current title is better
Fun Fact: if you used DeArrow, the title was already changed to "Don't Contribute to Open Source as a Novice Programmer" which actually pretty accurate and not too clickbaity
Best definition - *“OPEN SOURCE IS AN ECOSYSTEM OF TALENTED PEOPLE WORKING HARD TO KEEP THE WEB AND ALL OF SOFTWARE DEVELOPMENT ALIVE.”*
As a new grad developer trying to find a job, I completely agree with this as I see more and more of my peers just trying to checkbox that they contribute to oss. Sure it may be tempting but ultimately it's more valuable to actually be a part of a community first, using the project and actually contributing. Instead of just putting your two cents of a pr
The first OSS I ever did I did out of being told I need to check that box off. I was implored that it was absolutely necessary. So off I went, and I completely screwed it up. I was even assigned a issue by the maintainers of the repository, which I feel bad about cause I had no business trying it. After that failure I was humbled and knew I had made a mistake, one I wouldn't make again. Respect the code first.
Who told you all to do OSS though?
Originally, most of my open-source contributions were to solve my work problems.
I did not do it out of the goodness of my heart.
I did it because I needed a bug or a feature I wanted fixed.
And since I did not want to maintain my fix or bug, so I contributed.
Which is still nice AND pretty sure you helped other people somewhere out there which did not report that bug or just used a workaround. Or they never found that particular bug because you fixed it.
influencers telling you what to do and not do, the wheel keeps turning
I do open source whenever a tool or library I use misses a feature I want to use or has a bug that annoys me too much. Best part so far was during an interview when I was asked if by any chance I'm familiar with a library and I could honestly say that I've even actively implemented a new feature there. Biggest "contribution" - even though it was not code bust just reporting a nasty hidden bug with repo steps - was in GIT itself. Very proud. 😄
Love this take👌I usually give the same advice on open source as I do on programming languages-it's not Pokemon, no need to catch 'em all. We should be learning new programming languages when we need them to solve problems and build cool stuff, not to tick boxes on resumes. The same is true with open source contributions. They should be the result of working towards other goals, not goals themselves.
"This isn't a clickbait video."
Yes, it is. The title is extremely attention-grabbing, obviously controversial, and the actual message of the video is not what the title says.
Good points. Also, this is probably why some repositories look so impenetrable to new developers on that repository. They get spammed so much that, when a legitimate developer tries to submit a solution for the first time, it gets denied. And I am not talking just about new programmers that still might not have the skills. I am talking people like me, who has been developing for decades, but gets denied because I do not have many contributions to open source other than my own (very small practically invisible) projects.
It's actually a long involved process to contribute to open source like seeing if the issue has been created already, seeing if your solution aligns with the style and rules of the codebase, seeing if unit tests or other documentation is needed, writing descriptive PRs with repo steps and clear instructions, etc.; plus going back and forth with the maintainers to fix anything missing or needing adjustments. It's like another job really, many times I just say fork it and update it on my own branch in hopes of one day creating a pull request when I get around to it.
I think that's why it's GOOD to contribute, especially when learning.
Well, in that case you won't mind this med student doing your next surgery. I mean, it is good they are contributing when learning. We have to stop cutting corners and blaming it on 'learning'@@thekwoka4707
@@thekwoka4707 no, just build stuff, solve problems, use the tools, once you understand the pain points of the oss tools you're using, then it is good to contribute, create your first issues, familiarize yourself with the tool's community first.
"This isn't a clickbait video!" - video with the most clickbaity thumbnail and title I've seen in weeks
I'm surprised with the twist this video took! I completely agree, but I think there's two other reason you should consider contributing to open source:
- you like a project a lot and you want to help it get better.
- you love the concept of open source and you want to help this cause.
Seing the caption I assumed this was a rant about big tech buying community projects such as redhat etc.
Bjt it turned out actually being informative and insightful.
so it was clickbait afterall
No, your comprehension is just wildly low.
@@Linkman8912 He posted it at the start, comments now pop up around time they are posted in the video
Thank you. Closing video now.
@@Linkman8912 The title says don't contribute to opensource. The videos explains that contributing to open source is good if you are doing it for the good reasons, and bad if you are doing it for the bad reason, which is a take that does not need a 9:54 minutes video to be explained. The video title could have been: Do not force yourself to contribute to open source, or Do not feel obligated to contribute to open source. The title is intentionally misleading as it is, in fact, clickbait.
@@MrWadezz A long title like that won't get clicks. And that's what it comes down to regardless of professed intentions.
Maybe one could also start by contributing documentation, which not only helps everybody but also leads to a better understanding of the project. What do you guys think?
That or answering questions on the users' mailing list (of course, after using and gaining some proficiency with the OS project).
You can start by scrubbing the toilets of the main contributors. Maybe you will learn something from the patterns of their turds.
Joining a small even awful company at first is better than seeking oss contributions or creating useless projects so that you can join an elite company from the get go.
it's a good first contribution place, even better for English and another language speakers for doing translations
But I don't know how to write good documentation. I know how to write good code.
Learn.
Nothing is more valuable than having good documentation for a tool that you come back to after a year. It also means that you get to take vacations. It also means that you can move on to new stuff.
Learn.
I am sad that this video has just one thumbs up button. The kind of abuse, deceit and gamification to get some lime light via open source contributions is an insult to the honest (curiosity or need driven) progress of open source, the biggest and most unique movement in the entire history of mankind so far and this selfish attitude needs to be surely called out.
Juniors need jobs, man. Gen Z are probably going to be more fucked over than you, so have pity on them.
I totally agree with you - I'd first focus in 'how to start with OSS' A LOT on 'how to make good issues for project you like' instead of 'how to code'.
I don't think you can blame the person in this instance as the real issue comes from the companies themselves. You said it yourself, having open source contributions makes a huge impact - to the point that a lot of companies *require* it as a minimum. Remove that hurdle and the desire for contribution and then open source remains as what you want it to remain as. Leave that hurdle in place and open source will be viewed more and more as how that person views it.
yeah, people that are entering in the area are being forced to do some open source project to get a job. Most of thoses guys are new and shouldn't have to do a project to begin. They should do the project open source after having some experience where they would know where they could contribute. Modern day jobs are hostile to new timers.
I'm not even really a coder but "goals come from things you understand" is such a universally applicable adage that I never properly considered.
My first time contributing to open source was when I wanted a feature added in a library, opened a request/issue for it, the maintainer suggested I make a PR for it. So I did and that's that, I contribute where ever I run into issues with libraries and feel like I can fix them (when asked to). This felt extremely natural and seems to be way most people contribute.
Thank you for helping the world to be better place for all
As a Muslim, I love anyone who helps others by anything
This is a great way to put it! especially since you feel interested in contributing rather than doing it just as a chore to get by.
I think this illustrates a massive problem, in that most people that I meet don't really like programming, they have no ideas, no project they want to make...they view it as an ordered list, to follow to be successful.
These are vastly incurious people. They want a list to follow that equals money at the end. They don't understand the intricacies of it. This is a hot take but if you have only used VS Code to code/develop you still have training wheels on. I got into Neovim (and Emacs) because I wanted to understand exactly where my files went, how the memory was being used, and more speed. I learned BASH scripting because I thought it looked neat and I wanted to know more about it. I don't know, I guess all these get rich quick tech videos that are out there now just make me sad. It is so boring.
Just because I don't have any ideas about projects to make doesn't mean I don't like programming. I'm a logic-oriented guy, not a creativity-oriented guy. I'm ok working for a company but I couldn't code a personal project to save my life.
@@askholia why did you have to ruin a good take with the vim/vscode vomit, which made the take an absurdly awful one.
@@askholiathat’s cool and all but real programmers don’t use neovim/emacs. Real programmers write their own text editor in ed on a file system they wrote themselves so they know exactly where the files go and write everything in assembly so they know exactly how the memory is being used and speed such as.
And don’t waste your time with bash scripting. You should learn to make small programs you can chain together in one line with pipes that do what you need. That’s the Unix way.
Don’t worry I’m sure you’ll get there someday.
@@Dave01Rhodes If you use a macbook or a pc/laptop with windows, you're on training wheels, you have to write your own OS. They also build their own computers from scratch by gathering the required material themselves as well.
My friend was saying all this open source is good i should do it, but now i aint going to any open source until I actually find a bug and have been using it, not destroying the true spirit of open source.
Best video in a while, 100% agree. Although I would argue that the OP wanting to contribute to open source must have been influenced by some people posting that advice in the first place.
I just finished the basics of the MERN stack, and I was going to contribute to the "so-called" open source you talked about. But you've opened my eyes, and now I think I have to learn more before starting to contribute to the real thing.
Nice video, and I like the advice at the end. I've worked mostly with closed-source APIs & engines in my career, and never had it so clearly laid out why I have never felt the need/desire to contribute to an open-source project (even though it's advice I was given at the beginning of my career, without this context.) I've definitely wished I could submit fixes for the closed-source stuff I use, instead of submitting issues/tickets and wishing them happy birthday every year that they remain open.
yes, I work with Oracle software, and it's closed source. and there have been many times where it would be nice to have access to their source code to troubleshoot some bug. but they don't let you do it.
This was a great video, straight to the point, and very helpful to a beginner like me. And you were right in the intro, I was think to myself "Why not? Open source seems rather helpful." Then I watched the video and realized that you weren't actually discouraging open source contributions entirely, you were just discouraging the belief that it is 100% necessary to get a job and to improve as a programmer.
if no one do open source then open source dies, it should be a goal for anyone to be welcome to help out and join the world of people that is doing the right thing.
People are desperate for jobs/ a future and will grasp for anything that they think can improve their chances in their careers. As long as people see OSS as desirable while hiring, it will always attract people looking to use it as a means to an end.
8:40 this point about how inexperienced programmers don't understand the difference between a bad goal and a good goal is excellent and IMO worthy of its own video.
A lot of introverts without friends who program will be trying to learn programming without any goal better than "I should learn Python" will sabotage themselves over completing something like a Udemy course or introductory book and then losing motivation. It's a strange thing to feel a failure when you've accomplished something and should feel success and it's not something anyone who has experienced it is eager to ever discuss.
This was really helpful, thanks for making this video. Best wishes.
As someone who is not a programmer, and likes to watch people like you, prime and other people in the coding space, I can say the idea of contributing to open source comes from youtube, and its been mentioned enough times for me to remember that working on open source projects look good on your resume.
Maybe I was half-ass listening and I have this twisted, but this is definitely something thats in my head, and it 100% came from youtubers, and if a new programmer asked me how to get started, that would be something in my head.
Bear in mind that TH-cam is a hotbed for interview advice grifters. Most of these guys got into Google because of timing and luck and got pushed out because of underperformance. They are in no place to school us all
@@GT-tj1qgI think you’re right about that.
As for open source contributions unfortunately this is probably one of those things that can’t be put back in the bottle.
Until open source contributions are universally ignored, this problem will always exist. And this will likely never happen because in reality good open source contributions will always be looked at as a plus
it sounds like good advice but it's really not. most open source projects are so complex that the average developer does not have a chance in hades of contributing anything useful to these unless they are intimately familiar with the source code
As a pretty active open source developer (total of 40k stars on my repos & a million downloads), I was initially gonna say "fuck you" as a response to the clickbait title.
After listening to what you were actually saying (don't contribute for the sake of contributing/clout/job seeking), I must say I agree. Back in 2022, I got a lot of spam pull requests that I didn't recognize & thought to be PEP8 or something. Only after merging a few did I realize they made the repository utterly unreadable (many things were compressed into one-liners). Had to rewrite a good chunk of it for it to make sense again.
I just had to use this video as a reference to explain why I wouldn't approve a PR from job a applicant. As soon as I explained, they immediately wanted to close the PR, completely proving your point.
I love those flashy titles. Like "Hey, never go to the toilet!111". And inside the video, you got, that actually you can go there.
But yeah, about the video, I did not know, that you can use OpenSource for learning. Wow! Cool concept, thanks for you video. Now I definitely go and try to write my noob code at some opensource project! Thanks!
I'm a noob (little over a year programming) currently trying to finish my first actual large project. I'm really glad that you said this, because I do not feel ready to contribute to any open source yet, but I have been seeing it as a recommendation all over the place. I'll give it at least another year, and I won't do it just because, only if there's a reason.
As a recent grad student I see this almost everywhere in my "bubble" of peers and colleagues. In fact i would be lying if i said i wasn't looking to contribute to a few OSS projects myself but I never understood anything! Now it all makes sense, i just need to take it all in and learn some more. Thanks Theo.
Keep in mind that this opinion is not universal. There are a lot of OSS maintainers who will gladly review and criticize your PRs, even often labeling certain issues as "good first issue!", because you gain constructive feedback from it and they (eventually) gain a productive regular contributor.
As you said, the important thing about open source for people looking to get into the industry _isn't_ that you contributed to some big project, it's that your contribution is out there where people can see it. Sure, there's a certain amount of prestige associated with submitting a contribution to something like the Linux kernel, but at the end of the day the better option (and the one I'm pursuing) is to just work on a project that _you need_, and then share the source for that at an appropriate time. Again, what matters isn't that you contributed code to a project, what matters is that your code is out there where it can be seen.
You are making good points, but:
- It's not always about getting a job, but sometimes for self-improvement or just fun. I think it's a nice goal for someone to have
- The fear of being a burden isn't healthy either. You have to start somewhere, and I'd say it's the responsibility of the project's maintainers to deal with noobs
I disagree. For self-improvement or just for fun, write your own project or toolset. I typically do this when investigating a new framework, library, tool, or language. I have specific questions that I want to answer, and a specific project that I want to create.
None of that should be foisted on open source maintainers.
Join the users' mailing list, search for answers, and ask intelligent questions when you run into an issue. Always assume the issue is that PEBCAK, and not a bug in the software.
If the documentation is lacking, that's a good place for your first contributions. That and answering questions on the users' mailing list.
@@markeggers8356 I disagree :). Not all open source projects are mature. There are definitely ones out there for beginners to learn about the git processes and have a feeling about how collaborations work. I agree that writing your own projects always a better way to learn more, but sometimes, even if you are a beginner, checking a codebase and trying to contribute to it can be really beneficial.
@@markeggers8356 "Write your own project or toolset"
Not everyone has ideas for new things.
As much as I want to help out, I've avoided getting wrapped up in Hacktoberfest precisely because I don't want to add to the chaos.
Very good points, saving this to send to people in future. I unleashed a much less coherent version on this argument on a tech recruiter about 5 years ago after he made some mind-bending comment along the lines of "a senior dev should be contributing to open source every day" bro what.
My contribution: just post bugs and features.
Super simple.
I was thinking about how to get involved in open source when I found this. It's great advice, thank you.
Hey theo, I don't disagree with a lot of the points you say, and there are probably some extremes (like you showed in your video). But I do think that there is a bit of an issue that is underlying this: the onboarding for devs to an open source project can be a bit of an issue and in some projects is completely overlooked. It becomes even more apparent when you find a more structured project with proper docs, tooling and onboarding.
On the project I help maintain, we always get bug reports or enhancement requests submitted but rarely ever do we have someone come in with an issue and offer to address it, and I can only think it's an onboarding issue. I remember how daunting the codebase was when I first found it and wanted to work on something. It's been one of the things, I've been trying to slowly address (and could probably do more).
And if your project isn't meant for new devs, then it should probably say so really early on in your contributor docs.
Ngl. This is exactly how I got started in open source. (And is still my primary motivator for contributions.)
- Used something.
- Found bug.
- Got annoyed at bug not being fixed yet.
- Decided to pull a Thanos: "If you want something done right, do it yourself"
- Spend hours digging into and researching relevant parts of code.
- Fix code.
- Am happy.
- Start (potentially) tedious process to clean it up and contribute it upstream so I don't have to patch every single update until it's fixed.
And yes, you should very much be starting with learning how to write *good* issue reports instead of PRs. Being able to properly convey what's a problem, and how it's a problem, and how to reproduce that problem, is literally the 1st step to trying to fix a problem.
If you can't narrow down what's a problem, there's nothing to fix.
If you can't explain how it's a problem, you're not likely to convince anyone.
If you can't reproduce the problem reliably, it'll be hell for anyone to fix it. (most of the time.)
Thanks for the insight on this. Never knew this was such a big problem. Agree, contributing to open source should be to solve real problems, not for exposure. It's fairly simple nowadays to create an app and host it on Vercel or something, creating your own thing was what we did back in the day :)
One of your most insightful takes. I'm gonna be thinking about this for a loong time. Thanks for the video.
Honestly, I am one of the people that needed to hear this. I dont spam PRs but I also feel like I NEED to to contribute to OS to become a better Dev and feel bad for not spending my time off wandering around github looking for a problem to solve. Thanks!
This never even occurred to me, the Hacktoberfest debacle. Couldn't agree more with everything you said. As a person, in general, it's worthwhile taking a step back and asking: "is this meaningful?" with most of the things you do - the world would be a better place! :)
Glad I watched it through. I understand you. People want to take a shortcut instead of learning every little thing. It’s something I had to learn when becoming a tech. Start at the bottom and learn the trade
I was considering using open source to make me look better to future employers. It was a freecodecamp vid about open source that gave me the idea. The vid does say you don't have to do this via contributing code, but other means like documentation. I can see from suggested vids on youtube there's no shortage of vids about learning to contribute. Cheers for the extra context.
If you would like to contribute to a project, learn how it works and then go into issues/discussions and help others use that tool and resolve issues they have. OSS is not just about writing code. Most people will most likely abandon the idea of open source contributing right there because they will realize open source isn't as glamorous as some people might want you to think.
With this single video, you have just improved open source by enlightening me and thousands of other people about what open source contributions really are.
I mostly agree, and that's how I always operated, which is why I don't have many contributions, but I'd say that if you're not in a rush, and wish to go for the contribution path because it gives you a more realistic experience, then I think that is fine as long as your main goal is bringing a quality improvement to something, which will by the way be a nice reference as well.
Although my personal opinion is that you'll never run out of personal projects (quite the opposite) if you're really interested in programming, but I don't see why it would be a problem if you woke up tomorrow and decided to make the world slightly better, by searching projects with issues as long as you then try it, check if you agree with the issue being an issue, and then try to fix it.
It's also one way to find and try out new tools and stuff.
I don't think the issue is necessarily putting the cart before the horse in case of relatively new devs (unless do think you absolutely need to do it, then yeah, kinda), but rather it's skipping important steps you mentioned in the name of a superficial goal.
Will newbies have low quality PRs? Very likely, but to be fair many "experienced" people also generate poor quality code and regardless of the quality it may or may not be how the owner wants to have things, which is fine, and no one can really do anything about that.
I think that the perception of having to use it and find something yourself is coming from the fact that that's the natural way, which is a relatively good predictor for a good contribution, but while it is easy to do a cut there, I do think it also discourages some useful contributions
I think his main issue really is when the goal is “resume filler”. The priority isn’t improving the project, so it’s likely to lead to frustration on both ends. Instead of practicing and improving, and maybe finding projects to contribute to along the way.
This was an amazing video. I really learned something and I think this video opened my mind to the right way of learning to code and going forward. Thanks
Thanks for your perspective! I was like the reddit poster in the video before, so thanks for correcting my misconception!
Totally agree with this, I've seen many projects die because the developer got sick of being inundated with badly thought out pull requests and badly written issues (which are often feature requests that many users don't want anyway).
1) Find an unmet need. 2) Create an open source project for that need. 3) Have fun. If you want great T-shirts, make your own.
I absolutely agree, I still haven't made any contributions and it's not the ONLY goal you should have. Build cool stuff using the things people are building rather than trying to build those things. With enough growth, and understanding, you automatically realize when you are ready.
I just recently started opening issues and asking questions. Trying to grasp everything at once often leads to learning nothing quite honestly. You have to spend time with a certain technology to know enough about it to contribute.
And oh boy, consuming typescript is VERY different from actually writing it
Some companies require open source contributions to be considered. I had applied to Automattic some years ago and was rejected because I hadn’t contributed to open source. So yes, it shouldn’t be a box to check for a job, but enough companies abuse it that way so it has become that.
So what if the guy wants to test himself? Maybe he will excel and create many great new open-source apps. This is a good example of cancel culture in action. Why tell the guy what not to do? Open source does not classify people or their motivations. You cannot dismiss someone who wants to get involved in open source. Didn't you notice that these people will improve and are a sign that the community is growing? It's like the older generation flexing at the younger ones when they join them in the factory to work. Everyone was inexperienced at some point and had to learn. We want as many people involved as possible. After completing the learning curve, everyone can contribute in the best way possible, and we will all benefit from that
yeah the intro had me very confused, but yeah i fully agree that people shouldn’t try to contribute to open source just for the sake of having it on their resume and especially that beginner programmers shouldn’t try to contribute to existing open source projects for the sake of contributing to open source. they could however try to make their own open source projects and maybe even look at existing “good first issue”s as practice exercises, but trying to seriously contribute will likely fail and just waste time for the maintainers.
on the other hand if they are genuinely interested in a specific project and their goal is to keep contributing to that project, the investment can be very worthwhile for both parties
Then what should beginner programmers do to put on their resume if not open source projects? You can't just have an empty resume.
@@viliml2763 as i said: their own projects. they shouldn’t expect some random maintainer of a project they have no vested interest in to mentor them for free just for the sake of filling their resume
if you have some actual problem, then try to solve that problem and now you have something to put on your resume. or even if you encounter a bug yourself in software you use and are annoyed by it feel free to try to solve the bug, but before doing that you should check if it’s in the bug tracker, if not report it and then check if they want a PR.
you should never contribute to open source for the sake of a resume, only for the sake of improving the project
I've never heard your name before somebody shared this video in my job's Slack. Watched this video, you got yourself a new subscriber. You make a great point and the production quality is great.
Thanks for sharing, looking forward to hear more of your opinions.
Here here!! You can't fault folks for trying their best to work through building a career in an industry riddled with corporate interests abusing and exploiting an ecosystem of passionate communities exporting free labour and talent. We need leaders to speak out like this more often because sometimes a hard word is necessary to prevent the very hard road and trauma that's ahead for folks lucky enough to still have passion and innocence to trust management has their best interests at heart/
I mean, the title was a bit click-baity
I know contributions look good on a CV, but it never crossed my mind to try and contribute on a project I don't personally use, because... I can't find the motivation to work on something I don't give an F about. What you just said made me sad, but it also explains a few things...
“The cart is being put before the horse here” good one, agree!
very good points!
open source contribution is not a learning exercise, it's the result of years of expertise and hard work.
a beginner coder asking where to contribute to open source is like a first-year medical student asking where they can start doing brain surgery.
At first I didn't agree with your take, but your explanation was on point and now I better understand your point and I agree with you.
I still think you can be in the state of looking for a repo to contribute but it has to be for the right reason, that I agree.
Thanks for sharing your thoughts.
Spicy but really good take. 👌🏻
Also I realized that I am watching this video with my hacktoberfest t-shirt. 😂
Hello! I'm here to share my story. When I started programming I also fell into this trap of getting PR's merged ASAP. So, I submitted 2 really poor PR's in SciPy. The maintainers were kind enough to mentor and teach me. That day, I learnt a lesson. I started to realize what learning was all about. I started to focus on knowledge and how can I build something that's actually useful. I learnt that open-source was not about free, it was about freedom and I shouldn't pollute this noble cause. Then, I started to build my own library that is actually usable. I learnt CI/CD, Testing, API Design, Foreign Function Interfaces, Parallelism, Packaging and Distribution, Documentation. Fast forward to now (After 2-3 years), here I am, I have much more knowledge, about to submit my software at the Journal of Open Source Software, also interned at an open source startup (Machine Learning) which was funded by Y-Combinator.
This makes so much sense, it almost seems unnecessary to say it, but it was so necessary.
Every significant contribution ought to start from: "Hey here's a concrete problem I have with this, and I looked into it, and I know how to solve it, I could actually make it better. Let me try to contribute to this."
Not from: "Hey I need to score some number of contributions, so let me look for problems."
The video is great but the title is misleading clickbait.
All hail the algorithm
Fun thing about this title is that the people who need to hear this will watch :)
@@t3dotggi think other titles would be less baiting and still engaging like i wrote in my other comment e.g. "open source is hard"
I entered by curiosity to see what problem did you have with open software... after watching the video, I fully agree with you.
It’s refreshing to see actual content from you again. I always i appreciate your effort.
Thanks for this. I am one of maintainers for an open source project. This gave me a new perspective. ❤
I fully agree with you. And I despise job adverts that specifically ask for links to github repos the applicant has contributed to for this very reason. But those are all over the place. It's a bit like making highschoolers and college kids serve meals at a homeless kitchen once a year: Marginally helpful at best, harmful at worst.
Very good video!
I've been in the field for 10+ years, and only have contributed to open-source only a handful of times - mainly because I do not have the time to put into them, or I know that smarter people than me are already working and maintaining them.
One thing that people forget is that "using != knowing" - I use a lot of different libraries, but I very rarely have to peek into them to see how they work in the first place, and because of that, it does become hard to contribute.
Funny how I used to think about contributing to oss like you described. Now I found a bug in statsmodels' ExponentialSmoothing object, so I'm making an issue on their git. Thank you for making the video :)
Open Source contributions come naturally once you’re interested or even passionate about a project and perhaps you already use the software.
Harkirat Singh is a gem. I am not even a developer. I am Transitioning to data analytics and data science and still follow him for the correct guidance he gives towards how one should go about being the best in their domain.
Thank you for sharing. I was also told that open source would help me to gain experience and help to find my first tech job. But when I looked around, I was hesitating too and decided to just make my own projects for now and work on my weaker spots with those. After all, when I try something new I run into problems as well and have to learn to find the bugs and fix them.
I was doubting my decision though, wondering if I was overreacting. But seeing this video I now know I wasn't overreacting. (It has only been a few months since I finished a front end development course, so greener than a junior developer.)
I've recently started using the Astro framework, and I absolutely love it. I would like to contribute, but I acknowledge that I currently lack the knowledge to do so. At the moment, I'm starting by helping with the translation of docs to Spanish. However, I don't view it as a means to secure a job; I simply want to contribute because I genuinely enjoy working with Astro.
This is like when new game developers ask "what game should I make". If you have to ask that, you're not ready.
Billion dollar companies should contribute to open source by hitting the donate button. But that's not how things work.
Fair take. That said, I do miss contributing. I find the greatest friction for me is either being to busy to be able to offer to help with a key FOSS package I am using, or offering to help but the OS project maintainers are too busy themselves to be able to notice (and that's fair enough).
This is really sad. I have also seen a lot of junior developers resort to writing low effort blog articles about trivial tech topics (often just copy pasting the official docs) just to boost their chances of landing a job. But after all I guess recruiters value this kind of crap.
I’ve seen a few PRs that literally swap the case of a letter in a readme. I completely agree with you Theo
Newbies entering OSS , "Hey there you missed a (.) dot" ,> PRPRPRPPR
Contributing to Open Source is not only limited to code, if your happen to speak other language than English and know a specific project whose documentation needs translation into the language you know, you totally can contribute in a very meaningfull way.