The copyright notice is there to tell you when a work was created. It is not there to tell you what the current year is. Everybody already knows what the current year is. If you are blindly updating copyright notice years just because it’s a new year, you’re screwing up (and causing your copyright notice to be invalid in the USA, equivalent to no notice at all). Copyright notices aren’t required anyway, creative works are automatically copyrighted. If you are going to update your footer, just take the notice out altogether.
I am employed and don't typically contribute to OSS. But I use nvim, btw, and a plugin I use didn't have a feature I wanted. I looked at the source code and felt like I knew enough to implement what I wanted. I added my feature and submitted a PR fully expecting to end up using my fork, but the author accepted and merged my changes. Felt good man.
I only contribute to open source projects that I actually use, that actually have a problem than I want / need to solve. To me, OSS is not the goal, it is the means to an end. The end being good free software that I (and others) can use. I was using a graphics library that would always crash on my computer, due to misuse of the Vulkan API. I submitted an issue, and they tried to fix it but failed. (nothing against them, hard to debug a crash that doesn't happen). So, I dug around Vulkan's documentation, went through their code, found the issue and fixed it myself.
Then it's rejected because it doesn't 'align with the maintainer vision' and mysteriously one of the maintainer's friends fixes the exact issue a week later because because almost all projects are a good ole' boys club
The one big open source contribution I've made is to a Minercraft mod. It adds a feature I want for my server, but it was implemented in a way that removed some vanilla behavior. So I checked out the code and saw an easy fix. Now I can use the mod on my own server with my friends.
Minecraft's modding community is great in this regard, I did the same for a mod that fixes how Minecraft's cursor works in textboxes with shortcuts like ctrl + left and ctrl + right, I made that mod work with the equivalent shortcuts for macOS, and it makes things a lot easier when writing commands on mac
I contributed some code to Bukkit to add the tab completion API, and to Refined Storage to prevent lag when large numbers of heterogeneous items are in the inventory (think enchanted damaged bows from mob grinders). Somehow, this is a lot easier to me than going through with a project of my own; I have to have both a good vision and the strength to follow it through, whereas with things I'm already using, I can just go "oh this feature is missing and it's really bugging me, let me throw it in there". That said I do have plenty of projects of my own, but they fizzle out all the time because motivation is hard.
Very excellent example of doing OSS contributions right. I run Cobblemon and a lot of the support we get in coding is just helpful issue fixes that save me and my team time investigating, clearly things that were bothering the person and they chose to take action. Minecraft modding is a factory producing new developers and its effectiveness grows with the ratio of open sourced projects in the ecosystem. Crazy what people can do when working on something they think is cool.
Theo: turns a tweet into a 9 minute video Prime: turns a 9 minute video about a tweet into a 36 minute video I'm waiting for the feature-length film about *this* video
@@test-rj2vl I agree actually. I like both of them and their content but usually when I see one of the reaction vids I just find the thing they're reacting to and close the video.
In any jungle competition (for self promotion, jobs, etc), gaming the system is the optimal strategy. Unfortunately, this will come at the expense of relevancy and usefulness.
In other words, there are no good measures, therefore there is no way to evaluate anything and therefore no way to know if something is better or worse than something else.
I've recently read a rant from a scientist at CERN that bashed on hordes of PhD candidates that work half-ass on their project, do not share any knowledge on what they're working on and leave piles of garbage (be it code or data) behind because they disappear the moment they finish it.
Problem as I see it is no one wants to invest in developing the next generation. Ever. Everyone wants a bunch of people with 5-10 years of experience and a handful of people with 20+ years of experience. Making it seemingly impossible to break into a field and squeezing out the old timers. Not a new problem.
A good way to learn is creating your own (possibly open source) projects, and that's how you're "intended" to learn in their eyes. Me and most of my friends in Uni did that to varying degrees. You won't have to pick and possibly annoy existing open source projects. You're free to learn what you want, and jump ship quickly if it doesn't work out. The only big problem is time - we did it during uni time, because our uni workload (and social support system in germany) made it possible to do own projects next to studying. Yeah most of these projects, maybe all, will be small scope, but it gives you the ability to learn at your own pace, and if you present it with a few images or a video on a simple homepage, anyone else the ability to see what you can already do on your own.
@@iskb6766 But a common problem I am seeing from a good chunk of senior devs is that they are wasting their time doing junior dev work as well because of this exact reason and junior devs won't become skilled senior devs without getting hired and trained. It might cost a bit of time and money to train people, but that is how you keep an industry healthy. A lot of industries overall seem to be forgetting this lesson recently.
Not a new problem but it slowly gets escalated. Last year I've seen usually 2+yoe on entry level jobs but 2024 3+yoe. Im fine with whole "wishlist" thing, but you already know that the success rate is lower for anyone that wants to start a career
The main issue here is that the narrative of the industry started as: “ juniors don’t have deep knowledge “. Then juniors asked what do do and the answer usually involved contributing to real projects like open source and learning from mistakes and learn from people who have more experience. Now the narrative is that juniors shouldn’t contribute to open source because it will create a hurdle in open source. I guess it’s fair to say that no matter what junior developers do, they’ll never have the chance. It’s like I’m describing gatekeeping at this point. I think the “necessity “ to contribute to OSS comes from bootcamps or something similar that require the student to make a contribution in order to finish the course.
I've never heard or read that junior devs should contribute to open source. But I'm not really informed about open source because I don't care about it, so maybe that's a thing. The advice I always give is to work on and finish personal projects.
Keep in mind that this is true for most jobs, not just Dev. Would you ask a plumber in his first day at work to fix your pipes, or would you rather have someone experienced?
"As word got out, and it became a thing, it got shitty." This is a great way to put it. Applicable to so many things. This also perfectly sums up how I feel about the internet in current year.
Beginner may also mean "easy for someone not familiar with the code base". For example, I have 9 years of C++ and 6 years of C experience on embedded/microcontroller projects with on and off Vulkan/graphics tinkering. I wouldn't consider myself a beginner programmer. However, I would still ask for beginner issues if I applied myself to contributing to Gimp or Blender or Inkscape. Not because I don't think I could do it, but because many issues just require deep knowledge of the respective codebase. That's why even those very complex projects have issues marked for beginners.
A work colleague told me that they like chat gpt because it doesn't judge them (he had about 20 years of experience, I'm not that far behind) . This video reminded me of that conversation. The reddit OP just got farmed for content for asking a question without being disrespectful.
Sure, but I think both Theo and Prime expressed great educated perspectives that the OP would benefit from. The people that was disrespectful or just recommended typescript should be ignored, 'cause those opinions are unhelpful. But had OP just limited him/herself to chatgpt, he/she would never have access to the good opinions.
People would be shocked to really understand all that a successful farmer needs to do and know. Easily as complicated as development, but developers don't typically deal with the weather, politicians or the economy nearly as much. Loved the takes from Prime and Theo! I learn with my hands by doing and can't agree more with go build things and spend time in the trenches, it is the most important tutorial you can take.
for some reason theres this thing with reddit where people LOVE to just answer a completely different question than the one asked, for no apparent reason.
To varying degrees that happens in all online forums. And sometimes even in face to face conversation. Enter the reason we have the sarcastic turn of phrase, "What does that have to do with the price of beans in Denmark?"
How empathetic Prime is to new people; people starting their career 'later' in life, people with imposter syndrome, and people just trying to make a living whilst staying passionate about finding joy in what you do is why youre one of the most likeable faces in the programming world.
You can contribute to open source simply by using and documenting HOW you use the project. I LOVE real world problems that have been solved using open source, and examples of that are awesome. In addition, documenting the issues that you overcame can help the collaborative effort. If you have a work around for an issue, that's fricken awesome!
I guess MarDataGras, Cinco++de mayo fest and Str.Paddy's day fest will be similarly bad. Americans who drink love to "celebrate" other culture's holidays 🙄
There are lots of way to contribute to OSS projects that do not involve writing code. Updating and/or translating documentation is usually a very welcomed contribution, even if it does not inflate egos.
Contributing to open source has become a meme like “having passion”. A lot of successful OG programmers (and honestly, non-technical co-founders) talked about needing to be passionate about programming to really be successful, so a bunch of people who just wanted good jobs but didn’t really care started calling themselves “passionate”. It’s following the letter of the advice but not the spirit. But I feel for the people that do things like that, truly, because ultimately they just want a job, and there’s nothing wrong with that.
It's the orphanage story all over again. "Rabbi, I realized I wanted to build an orphanage for ego, so I decided not to build it" "Build it! The orphans won't care about your feelimg of self-importance". As long as the contribution is good and useful, no need to worry too much about your motives.
That "learn to build a mousetrap" is such good advice. So many developers somehow think they can go from "zero experience" directly to "single man unicorn startup". While the barrier to entry for software development is dramatically lower than just about anything else technical, it isn't completely effortless.
So far my only contributions to open source was a bug report for SageMath a number of years ago and a suggestion on adding a function. The bug was fixed and the function was eventually added.
There could definitely be be a fun, invite only spectacle “hack fest” where the goal is to fix the grimiest, longest-standing, most horrendous bug in a project you use. Maybe the contestants suggest the issues that are to be fixed. Then the judging is on how good the fix was, how well it integrated, did it require a breaking version release, did the team want your fix, etc. But that’s a hole different kettle of fish.
Programmer: I have this issue with my code and I am using synchronous due to legacy compatibility (or other valid reason). Other programmers: Make it async for absolutely no reason. OP: Gets angry Others: Gets angry at OP for getting angry... // How I see online "programmer forums/discussions"
I think colleges and bootcamps should do open-source in a mentorship capacity, maybe have an open-source club full of maintainers of certain projects who open-source some useful software so that first-time contributor students can get a good idea of what it's like but for just a guy sitting on his chair reading github it's really hard to make a great contribution if you're not a good programmer and don't even use the software often.
28:15 I'm in a python class for my major right now and what easily became my biggest teaching tool was saying to myself "what can I make with this thing we learned in class that I want to do" I have a decent enough grasp on the random module and with loops purely because I wanted to build a dice roller for when I play dnd. Dice rollers already exist, I am "reinventing the wheel" but 1) it taught me how to use the tools at my disposal, and 2) there's something just like *_fun_* about solving the problem, be it making the whole thing work or tracking down the specific bug you left in. maybe it's a position of luxury since CS isn't gonna be my job, so I get to code for fun and not stress about it. but I feel like there's some kind of truth in this experience.
"Asking where to contribute is like asking what to build" "The best project to contribute to is the one you use [and] you have a problem with" 100%!!! Could not have said it better myself
I am not a developer, but I am a network engineer. if I find an issue in how something is implemented from a networking standpoint, I won't know how to fix it in their codebase. However, I can absolutely point out what the problem is, how it is presenting itself and what it should look like. I think some dev's like to only work with other developers and tend to ignore the infrastructure that their code runs on. They put up their blinders and focus in without looking at the bigger picture of how the environment as a whole will work. Additionally, a LOT of dev's immediately jump to blaming the network for all of their problems. This really does need to stop, the number of times a firewall that does not exist in the network path gets blamed is obnoxious and no matter how many times it is proven they still blame the network without providing any proof to back up their claims. No one thinks to check the local firewall on the underlying host, no one thinks to check if it's anti-virus or HIPS.
I am lucky enough to have a REALLY good mentor thats been really good to me. Now i talk to them much less but i am working on papers with a DR (after i failed highschool) and its been pretty good. I did help those people but i do think the taking a chance with me bit (which they are still doing) is very nice
One of the reasons why people think that they need to contribute to open source to get a job is because every interview nowadays asks for your Github account upon sending your resume, and I've been to a couple of interviews myself where I was asked to talk about open source projects I've contributed to... so yes, I can see why people think that they need to have a good "commit" history to get a job.
Imagine interviews for any other profession asking for verifiable proof that you're actively volunteering. Not to say that volunteering for something you're passionate about isn't good, but you're not hiring me to do volunteer work, and I would want to be evaluated on how well I would be able to contribute to your organization rather to other random projects. It can be a solid part of a resume. It shouldn't be a required part of a resume.
I’ve re-written stale open source projects for clients so that they work with, for example, the current version of React. Imagine if I made a PR back into the repo and my employer saw the code they had paid me to write now being open source.
@@ness-ee It really sucks that this code you've rewritten could benefit a lot more people at no extra cost to the client, but there's still this hesitancy.
The "Learn Typescript" comment was completely valid in context. Lots of React OS projects are written in Typescript, and if they're a react dev they probably should learn Typescript given the current React ecosystem
One specific type of "just make something" that was useful for me was to write a suite of very simple tests, one for each aspect of the language, library, framework etc that you don't fully understand. I did this about a decade ago when i was brushing up on JavaScript for a new job. I found it was a much better way to internalize things like rules for semicolon insertion or non-strict equality, or the semantic difference between let and var, or function hoisting vs var hoisting (in a function). Reading documentation for a language feature or API is not going to stick if you don't use it. So write a quick test program. And then the jump to using it in an actual project is much more manageable.
So here is the thing too: there are job postings asking for open source projects that you contributed to. So inexperienced people will naively start to ask that kind of question because they need a job. It's not right at all. Companies should not be asking for that type of work.
Meh, open source is just code that is...open. It's nothing special or something to be "respected". If working on open source is just a means to an end for someone who cares.
@@tbunreall well, usually it's not just the person contributing that spends time on this, but also a maintainer or other main contributors. So submitting shit code wastes time of other people. Which is especially nasty if those people do it for free or for cheap. But if you submit good code with ulterior motives, then yes, who cares. But the OP was complaining aboit companies requiring that, not beginner devs doing that for a job.
OK, not a programmer, just ended up here on the tides of the TY algorithm. But why are there no newbie contentment projects? Like, let's make Paint but open-source or let's make Word but open-source. It's obvious that employers look at open-source contributions like work experience, so this isn't going to go away unless you convince every employer to change their mind globally simultaneously. So your best bet honestly would be to make contentment projects over gatekeeping. Plus, it's also a win for the noobs as they still get their résumé padded and a free t-shirt.
I hate when people have these generalized hot takes, and then you listen to the take and it only applies to a very specific subset of people. Quit tweeting this clickbait and then justifying it with 1000 qualifiers
This is a grotesque gatekeeping manifesto. You know, we put "good first issue" label on issues because we could trivially do them ourselves but choose not to, so that someone else can get involved
I remember when a few of my internet friends gamed the system to get free tshirts. But they all did so by making a bunch of their own repos and sending pull requests *to each other*. Even when gaming the system, they absolutely would never have gotten the idea of doing it by disturbing actual open source maintainers.
@@kiwikemist it's a huge topic. Like "how to write better novels". But you can google "clean code", "kiss principle", "single responsibility in coding", that would be a good start. Frankly half of the learning is seeing how beautiful good code of others is, and the other half is getting angry at yourself for writing incomprehensive code a week ago and now spending half an hour on trying to understand it, add comments, rename variables to something that will be easily understandable later etc. In math-related scientific articles you have whole paragraphs of context around the equation with single-letter variables; in programming if you use a single letter variable, it's either temporary (usually an iterator), or comes from amath equation, everything else is one or max two actual words. Comments are usually short and to the point. Basically, good code is one that you can understand at a glance. (Sometimes it isn't possible, but usually is).
@@kiwikemist Yeah, that other guy explained it pretty well. I was specifically thinking of complex inheritance trees that require you to navigate 10 different files to understand what's going on.
this was recommended to me at the exact moment I started thinking about open source as a means to get a job. I agree that you shouldn’t do it for that purpose, but I also think people should consider helping the community, as there will always be space for that (people with small projects and ideas who will appreciate the interaction and exchange of coding experience). But I agree ( as a beginner that I am) you should not be trying to impress people with big projects or doing it just because you want to, but because you genuinely believe it’s a good thing
Hacktoberfest can only work if project owners pick a list of contributors that considerably increased project value. "At least 4 PRs" is a broken metric.
i think the problem is the job market requires credentials that are so overinflated that "open source" is just being used as brownie points to get ahead
It is simply too rough out there. So many people lured into getting CS degrees because they were "in demand" only to find an industry with pretty freaking high barriers to entry. In this very competitive environment career starters search for things that will make them stand out in order to get a few crumbs from employers. First it was getting good at leetcode, then it was having a portfolio, now it is having contributed to open source. A combination of the industry's need for novelty and the bar for entry-level ability is creating this phenomena.
I wanted to learn TypeScript for a while now, cause I hate JS for not having types. But I only use JS on side projects at home and never at work, so I've never been quite motivated to learn Typescript. But you'r're 4 second Typescript tutorial help a lot! I'm an expert now.
To generalize the statement "dont contribute to OSS" seems instantly bad, a narrow minded pretty opinionated take (surely intentionally clickbaity ofc). Neither the poster asked for anything like free teaching/mentoring nor was the issue "getting a job" ever mentionend, also BS so called "beginners" are not in genereal incentivisd "go do some OSS stuff". Also as you mentioned "might help you get a job" is true, but this is never monocausal (might be very well ONE piece to get to a job, though) nor will this destroy or hinder OSS contribution (Theos take). Instead of asking the OP what he is using and getting into issues he might contribute to (even with the hint "typescript might be helpful"), the underlying issue for "new people" is where to start, because it really might not be that easy to find a job (obvious to me since the wording "NEED" has been used, also not monocausal, though). Anyways thx for the thoughts and uploading.
As a undergrad in India, it has already fucked around as a thing to do get a job, as much that I was rushing to learn React to contribute something, but my understanding and use of oss has been extensive(i use neovim btw)therefore I respect the maintainers and devs who do it, and will be lucky+compentent enought to contribute something around neovim, vim or editor space someday, to give back to the community.
I hear so many seniors telling beginner devs to do OSS, but none of these seniors did OSS when they were starting out... It's definitely not a requirement for a job, I've been developing professionally for over a decade without doing any OSS, including top tech companies in the bay area - and most of my coworkers also never contributed. It's actually hard to find the time when working a demanding job
"Grammar PRs you are literally the worst Person" ... god i can remember an old "Javascript Architect" (... the Quotes are intended) from a Company who did that 24/7 on big public projects after he got booted. Also Changing stuff like Master/Slave to Leader and Follower ... Guess what - hes now leading a Bootcamp here in my Country - and boast that he contributed to so many opensource projects - you cant make that sh.. up
IMO, the way to start OSS is to start by making some cool project you can use yourself. After that you will start seeing problems in other codebases, and may customise them using wrappers, or contribute the solution to bug fixes. This will help you learn and spent time building a good community, and helping people in their problems. This is the true spirit of Open Source.
Some really good takes here. I've been told many times not to re-invent the wheel. There is a time and place for this though and if you are gaining knowledge by reinventing the wheel it totally provides value. In production environments maybe look at existing solutions before reinventing the wheel. If it doesn't fit the bill, it doesn't fit.
I know Java and some C. I wanted to contribute somewhere. When I read the Linux commands in C, I just stopped. I am no where good enough to even read the code, how can I even contribute? Issue is I don't ever see myself being good enough to contribute. (I am not contributing to Linux or something, I was just checking the some open source code to see the standard) I am almost fully self-taught. I am working as a Java Spring Boot developer for 2 years. I am learning actual computer science concepts and its really difficult. Getting the confidence to contribute is almost impossible for me.
It takes time even as someone with a traditional degree background where the steps are laid out for you.. if you’re going the self taught route don’t put a time expectation on it. You stating what you don’t get is a big step; now just focus in on that. Look into makefiles and how gcc works; docs are everywhere on that stuff. Also start some sample c projects on your own where you have to write Makefiles with flags and compile them. You’ll get there eventually if you are consistent; but again, do not put a time expectation on this, you get it when you get it.
Don't worry, it is hard but a lot of it is experience/building knowledge. Design patterns (as much as I hate that description), but basically knowing how to tackle different problems, why the approach is bad/good (i.e, you will learn way more of this by building/maintaining your own software and learning the hard way). So don't give up :)
Had a professor in college, who used to work on SUSE, told us there are parts of the Linux code base that only a handful of people in the world fully understand. He said portions of the code are very complex.
You just described my experience. I'm a Platform Engineer with +5 years in the area, did CS. And first time I saw the Kurbernetes code I didn't even understood the issues opened, i didnt even passed by the issues that they want to solve.
You don't need to fix bugs to be able to contribute, add docs and create high quality issues also count. You mentioned you know some Spring Boot, why don't you try to solve a issue in spring boot repo which you might be more familiar with.
The discussion at the end makes me think of the accounting and programming subreddits. There are so many people wishing they had gone into the other field because they think it would be easier.
This is what I needed to hear back when I graduated in 2019. I struggled with finding a project that i can understand to contribute which me question my abilities and feeling quite inferior.
To be fair to Theo, he's talking about beginner JS devs, so we should probably assume they don't like TS because they don't think types is a hurdle, not because they want to use JSDoc or Rust instead. And TypeScript is definitely among the top things beginner JS devs looking for a job would benefit from learning.
20:13 @ThePrimeTimeagen (or anyone who agrees with this take), can you explain why such people are the worst? I asked a bunch of FOSS contributors and maintainers, and they all agree that even a small (typo/grammar) fix is still a fix and an overall improvement to the project. I also made a few of such PRs and everyone was grateful, so I don't get why such negativity all of a sudden.
I mean, look at Blender? Doesn't seem that doomed. Krita neither. Even a little Aseprite, when the author decided to drop GPL, got forked under Godot's main dev name, then gained an actual maintainer and I think it has two people working on it now as LibreSprite. In Krita I guess not being related to webdev probably saves us from being drowned during hacktoberfest. In fact I didn't even know about it, especially as a problem. There are only some spam proposals to GSOC every now and then.
idk how I ended up on programmer YT, but it's interesting to see the overlap between music creation and programming. Like so often I hear people say "what genre should I make?" "what program should I use?" "what should my effects order be?" and it's so subjective, so case-dependant, and so knowledge dependant that I just tell people that it doesn't matter. Try a bunch of effects, make some shitty songs, grab ten different music programs and see which comes more naturally to you. Build, see what fails, ask people on HOW you could fix the problem, and try again. The knowledge of what goes where and when will come eventually over time
i have contriputed to 1 open source project. and the reason was that we were using that at work, and it had a issue with 1 of the features that we needed. So i fixed the issue and created pull request, it got accepted and we could continue on working :D
That @t3dotgg video is pure gold. In fact, inexperienced devs should never be making pull requests of any type to OS projects. They should be learning and testing things out. That's it!
I think this honestly serves as a good point toward why going to college is a good idea for some people. Some people need the guidance of assigned projects to help them discover the capabilities of programming. It's genuinely what helped me get to a point where I'm more confident in trying new things and creating my own projects because I didn't have to worry about not knowing what I was supposed to know. Of course there are free resources, but sometimes having so many of those can clutter your path which is hard when you're desperately looking for a clear one.
same here, i went to a bootcamp rather than a college, but i had a little self taught experience under my belt. playing around with the basic programing on the TI84 calculator, later a bit of lua in computercraft. taking a webmastering elective in highschool, then a java class as a senior. I knew by then that I loved programing, I loved the satisfaction of solving a problem with logic and code. But I lacked in my own inspiration for ideas of what to build next to further my growth. I also just thrive better in a more structural environment anyway to guide my focus. But the boot camp I attended was really helpful as project after project there was something new to learn, and at the same time building out a portfolio of all the things i can do and what personal problems I've solved to show in interviews. Something else I think was helpful as a learning exercise, and fun as a challenge, would be to take something existing, and then try to replicate it in whole or in part. A classmate and I learned a bunch about dom manipulation by each making a jquery clone, and then we could compare to each other, as well as to the original and discuss the thought process behind our decisions. It was also a lot of fun ^_^
I'm broadly with you. Firstly, I think open source is a great way to learn, and may be a great way to help with your career path. However, I'd question the motives of someone contributing just to improve their employment prospects. I've contributed to a bunch of projects, but I've always contributed because I'm interested in the project, not because of any expectation of career progression. I have never looked at open source from the point of view of "what project will by skills suit", but rather, "I like this project, what do I need to learn to contribute to it." There have been projects that I've decided not to get involved with because it uses technologies too different from my skillset, but if I was excited enough by the project, that wouldn't be a barrier.
I think it's an overall bad take. If you're a beginner trying to get experience working on a team, and the response is "get a job", *that's* putting the cart before the horse. It's like answering "How do I achieve this goal?" with "Maybe you should already have achieved the goal before you try to achieve the goal." It's not *wrong*, but it is extremely unhelpful to somebody who's actually looking to learn. But then, making hot takes isn't about helping other people learn, is it?
currently building a nfl player stat comparer. even though things like it exist and i dont really have a huge interest in football it has still been fun and helped me to learn quite a bit
As someone who hires people... junior and senior... open source work helps show me the person's skills. Even though I am the author and maintainer of several OSS projects that has nothing really to do with my interest in others' work. It is just an avenue for me to determine skill. So too would be references, coding tests, etc. The difference for me is that references and coding tests don't really tell me you know what you're doing day to day. If you are helping build, test, package, deploy, write docs, etc. on an OSS project that shows me the depth of your experience. If you can share that information in other ways... great.
I generally like typing, but I also like the simplicity of being able to create quick and dirty objects without going through hoops, or just being able to parse and serialise json easily. Been working with AssemblyScript and missing that. Also missing some of the quality of life things c# does (ie type inference). For me the ideal is strong types for the bulk of it, with the possibility to use untyped data when you want to, either when dealing with json data or for quickly testing things.
Here's the take you're looking for optimum primus: 1: You either contribute to open source projects for yourself because you're proud of your ability to help the world OR 2: You contribute to open source projects to help awesome developers and get an opportunity to make friends with them That's it. If you can find some way to use either endpoint for some other thing, that's up to you. But all OSS offers is bragging rights and friendship points as a proximal goal, and if you don't try to do either of those things as your proximal goal, you won't get anything good out of it. It's all in the cathedral and the bazaar, by eric s raymond.
This reminds me about the class I had that failed me for not getting 100 points on stackoverflow. In a mobile dev class, where all questions I had had been answered, or were easily found. Only guys that got it spammed stupid questions.
I know the “throw an any on it and you’re good to go!” was a joke but there are TONS of high level typescript repos that have code that would never get merged at my job because of using ‘any’ (for no reason)
I'v mentored more then one programmer, for free, mostly because it was a rewarding activity and I got more then one good friend out of it. However I no longer do it , cause 1) I don't have as much time anymore and 2) just really hard to find motivated people anymore. I guess problem is that up starts are now spoiled with the enourmouse ammount of free information and resources available and if you don't spoonfeed them they go read another tutorial instead of doing the work and asking questions.
I can speak on this from the other side and I can give you some insights. When I first started programming I was mentored by a wide range of people and they were experienced developers but everybody was new to this little game called Minecraft in 2011. We were all motivated to make mods for Minecraft and all of us had time enough to talk and help people coming into the modding scene after. I think the reason why your programming or trying to learn programming can extend that motivation to keep learning it or keep teaching it an extreme amount. I was learning how to program by creating mods for a game that we were all playing so when I would ask a question about programming to one of the clearly senior modders and programmers it never felt like the tedious nonsense instead it was just helping a modder out try to create something cool
#2 was my initial thought as well. As the years have gone by, there's been less and less interest in _receiving_ mentorship. Instead, too many programmers just want you to tell them what to do. Forget about the how or the why or anything that's important. Just tell them what to do so they can go fail at doing it, then come back to you saying it's impossible, after which you end up having to do it for them. There's no value to these individuals. And yet they still manage to find a way to get a job.
When Prime recorded this, the original video was released by Theo 1 day ago. He probably didn't want to release it right after Theo as to not syphon views from the original creator on UA-cam (in this case Theo). But yes, I'm chanting "always blue, always blue" as we speak.
everyone needs to start doing open source, it helps everyone, have you not seen what its done for all of us. Hats off to anyone contributing, so that reddit thread was completely right.
Thanks Prime, since I follow you I'm a full open source contributor: I successfully changed the copyright year in over 200 projects now!
I might be starting at a new company soon and I know the first thing I'll do is automate the year change on their copyright
The copyright notice is there to tell you when a work was created. It is not there to tell you what the current year is. Everybody already knows what the current year is.
If you are blindly updating copyright notice years just because it’s a new year, you’re screwing up (and causing your copyright notice to be invalid in the USA, equivalent to no notice at all).
Copyright notices aren’t required anyway, creative works are automatically copyrighted. If you are going to update your footer, just take the notice out altogether.
@@LengCPP It's best not to automate too much. If management realizes how much less work you could be doing you'll automate yourself out of a job.
interesting, I assumed the year told you when the copyright is active. I read up on it thanks @@qic
It's a important job and someone has to do it, and that someone is you 😅. You trolled them like a boss
I am not convinced that Theo is not just you in a wig.
Gotta watch the mustache- the only true way to tell
The moustache is the only real proof.
Literally my wife was walking past and saw my screen and was like, "Are you watching a guy watching himself??"
Maybe he shoulda kept the blue hair
there's no way. He does not write unit tests.
Instead of doing Hacktober, you should do “Coffeetober”: An annual drive to donate your day’s coffee to an OSS project of your choice.
Yes
I don't think I spend more than a few cents per coffee daily.
@@VojtěchJavoraEvery penny counts
@@VojtěchJavora Coffee in the US is expensive
Good idea
I am employed and don't typically contribute to OSS. But I use nvim, btw, and a plugin I use didn't have a feature I wanted. I looked at the source code and felt like I knew enough to implement what I wanted. I added my feature and submitted a PR fully expecting to end up using my fork, but the author accepted and merged my changes. Felt good man.
Wow, thats awesome!
Can you send the link to the feature ?
@@chindianajones3742 thanks!
I only contribute to open source projects that I actually use, that actually have a problem than I want / need to solve. To me, OSS is not the goal, it is the means to an end. The end being good free software that I (and others) can use.
I was using a graphics library that would always crash on my computer, due to misuse of the Vulkan API. I submitted an issue, and they tried to fix it but failed. (nothing against them, hard to debug a crash that doesn't happen). So, I dug around Vulkan's documentation, went through their code, found the issue and fixed it myself.
This is the way.
Then it's rejected because it doesn't 'align with the maintainer vision' and mysteriously one of the maintainer's friends fixes the exact issue a week later because because almost all projects are a good ole' boys club
@@whistler9 Depends on the project, but yeah lol
@@bluesillybeardYou win some. You lose some.
@@whistler9 Just fork it and fix it
The one big open source contribution I've made is to a Minercraft mod. It adds a feature I want for my server, but it was implemented in a way that removed some vanilla behavior. So I checked out the code and saw an easy fix. Now I can use the mod on my own server with my friends.
This is the way. Solving the problems you run into and hope it helps others and the project as a whole.
Minecraft's modding community is great in this regard, I did the same for a mod that fixes how Minecraft's cursor works in textboxes with shortcuts like ctrl + left and ctrl + right, I made that mod work with the equivalent shortcuts for macOS, and it makes things a lot easier when writing commands on mac
I contributed some code to Bukkit to add the tab completion API, and to Refined Storage to prevent lag when large numbers of heterogeneous items are in the inventory (think enchanted damaged bows from mob grinders). Somehow, this is a lot easier to me than going through with a project of my own; I have to have both a good vision and the strength to follow it through, whereas with things I'm already using, I can just go "oh this feature is missing and it's really bugging me, let me throw it in there".
That said I do have plenty of projects of my own, but they fizzle out all the time because motivation is hard.
Very excellent example of doing OSS contributions right. I run Cobblemon and a lot of the support we get in coding is just helpful issue fixes that save me and my team time investigating, clearly things that were bothering the person and they chose to take action. Minecraft modding is a factory producing new developers and its effectiveness grows with the ratio of open sourced projects in the ecosystem. Crazy what people can do when working on something they think is cool.
Theo: turns a tweet into a 9 minute video
Prime: turns a 9 minute video about a tweet into a 36 minute video
I'm waiting for the feature-length film about *this* video
then the netflix docu-series about the feature-length film
a great way to pass time
That's why I often go to as close to source as I can. I don't want to wast 30 min of my life to get 30 sec worth of information.
@@test-rj2vl I agree actually. I like both of them and their content but usually when I see one of the reaction vids I just find the thing they're reacting to and close the video.
"When a measure becomes a target, it ceases to be a good measure"
Money
@@DrachensingsangCorrect.
In any jungle competition (for self promotion, jobs, etc), gaming the system is the optimal strategy.
Unfortunately, this will come at the expense of relevancy and usefulness.
In other words, there are no good measures, therefore there is no way to evaluate anything and therefore no way to know if something is better or worse than something else.
@@SilkCrownin other words, the target not the measure.. how do you miss the point so badly
I've recently read a rant from a scientist at CERN that bashed on hordes of PhD candidates that work half-ass on their project, do not share any knowledge on what they're working on and leave piles of garbage (be it code or data) behind because they disappear the moment they finish it.
Is that on a public forum? I enjoy a good rant.
@@joelazaro461 It's not and unfortunately I don't have access to the original text, my memory dump in OP contains the memo minus all the slurs🤭.
nice pfp, the spray from 1.6 :)
@@Luzum IIRC it's from 1.4 (:
@@chupasaurus true. I just remember it from 1.6 since that was my era
Problem as I see it is no one wants to invest in developing the next generation. Ever. Everyone wants a bunch of people with 5-10 years of experience and a handful of people with 20+ years of experience. Making it seemingly impossible to break into a field and squeezing out the old timers. Not a new problem.
Because the industry is oversaturated with junior devs and hire one senior dev is effectively a better choice than hire five junior devs
A good way to learn is creating your own (possibly open source) projects, and that's how you're "intended" to learn in their eyes. Me and most of my friends in Uni did that to varying degrees. You won't have to pick and possibly annoy existing open source projects. You're free to learn what you want, and jump ship quickly if it doesn't work out.
The only big problem is time - we did it during uni time, because our uni workload (and social support system in germany) made it possible to do own projects next to studying.
Yeah most of these projects, maybe all, will be small scope, but it gives you the ability to learn at your own pace, and if you present it with a few images or a video on a simple homepage, anyone else the ability to see what you can already do on your own.
@@iskb6766 But a common problem I am seeing from a good chunk of senior devs is that they are wasting their time doing junior dev work as well because of this exact reason and junior devs won't become skilled senior devs without getting hired and trained. It might cost a bit of time and money to train people, but that is how you keep an industry healthy. A lot of industries overall seem to be forgetting this lesson recently.
Not a new problem but it slowly gets escalated. Last year I've seen usually 2+yoe on entry level jobs but 2024 3+yoe.
Im fine with whole "wishlist" thing, but you already know that the success rate is lower for anyone that wants to start a career
@@iskb6766 You can't afford the senior dev with the skillset of 5. Nobody can. They're enjoying their early retirement.
Damn, prime really hit us with that "it's not about doing what you love, it's about loving what you do" at the end
I understood this 27 years ago and have never worked in my life ever since. All my work is my hobby that i love.
The main issue here is that the narrative of the industry started as: “ juniors don’t have deep knowledge “. Then juniors asked what do do and the answer usually involved contributing to real projects like open source and learning from mistakes and learn from people who have more experience. Now the narrative is that juniors shouldn’t contribute to open source because it will create a hurdle in open source. I guess it’s fair to say that no matter what junior developers do, they’ll never have the chance. It’s like I’m describing gatekeeping at this point. I think the “necessity “ to contribute to OSS comes from bootcamps or something similar that require the student to make a contribution in order to finish the course.
I've never heard or read that junior devs should contribute to open source.
But I'm not really informed about open source because I don't care about it, so maybe that's a thing.
The advice I always give is to work on and finish personal projects.
Keep in mind that this is true for most jobs, not just Dev. Would you ask a plumber in his first day at work to fix your pipes, or would you rather have someone experienced?
@@EdmondDantèsDE depends on where you are. Where I live, every local cs UA-camr and their mom is telling you to contribute to open source.
"As word got out, and it became a thing, it got shitty."
This is a great way to put it. Applicable to so many things. This also perfectly sums up how I feel about the internet in current year.
Applicable to all things
Hipsterism in a nutshell
Contribute by sending sponsor money works very well too.
I'd love for new devs to contribute to my repos. Nobody else does.
😂
Whats your github username
thats because you use ts
xD
Careful what you wish for
link
Beginner may also mean "easy for someone not familiar with the code base". For example, I have 9 years of C++ and 6 years of C experience on embedded/microcontroller projects with on and off Vulkan/graphics tinkering. I wouldn't consider myself a beginner programmer. However, I would still ask for beginner issues if I applied myself to contributing to Gimp or Blender or Inkscape. Not because I don't think I could do it, but because many issues just require deep knowledge of the respective codebase. That's why even those very complex projects have issues marked for beginners.
If Theo called his video "You don't need to contribute to open source", nobody would be talking about it. I.e. clickbait.
i cannot begin to describe how much i love strongly typed languages as compared to the ductape typescript thing.
Gotta work with what you have available, if your only choices are pure JS or TS... easy choice to me
@@Pico141 yes ts for sure
@@Pico141 PureScript and Elm are both viable alternatives. Then again, I don't use massive front end frameworks like React or Vue or etc.
typescript is an improvement of javascript, you can't just compare it to golang or C# like it's another random language
You mean stronly typed like Ruby and Python? I cannot begin to describe how often people talking about strong typing while meaning strict typing.
"Type safety is a spectrum" killed me xD
some of my best work there
Agree... but would also have accepted "...is a lifestyle choice".
Great Princess Bride reference. "Life is pain. Anyone who says differently is trying to sell you something."
A work colleague told me that they like chat gpt because it doesn't judge them (he had about 20 years of experience, I'm not that far behind) . This video reminded me of that conversation. The reddit OP just got farmed for content for asking a question without being disrespectful.
Same here. Its refreshing
Sure, but I think both Theo and Prime expressed great educated perspectives that the OP would benefit from. The people that was disrespectful or just recommended typescript should be ignored, 'cause those opinions are unhelpful. But had OP just limited him/herself to chatgpt, he/she would never have access to the good opinions.
@@nopnop4790 but they are locked behind 45 minutes of reactions? and hundreds of unhelpful comments?
@@cewla3348 thio's video is literally only 9 mins long???
People would be shocked to really understand all that a successful farmer needs to do and know. Easily as complicated as development, but developers don't typically deal with the weather, politicians or the economy nearly as much. Loved the takes from Prime and Theo! I learn with my hands by doing and can't agree more with go build things and spend time in the trenches, it is the most important tutorial you can take.
for some reason theres this thing with reddit where people LOVE to just answer a completely different question than the one asked, for no apparent reason.
its the basis of that site
Yeah, Reddit doesn't typically work for it's own purpose.
To varying degrees that happens in all online forums. And sometimes even in face to face conversation. Enter the reason we have the sarcastic turn of phrase, "What does that have to do with the price of beans in Denmark?"
How empathetic Prime is to new people; people starting their career 'later' in life, people with imposter syndrome, and people just trying to make a living whilst staying passionate about finding joy in what you do is why youre one of the most likeable faces in the programming world.
You can contribute to open source simply by using and documenting HOW you use the project. I LOVE real world problems that have been solved using open source, and examples of that are awesome. In addition, documenting the issues that you overcame can help the collaborative effort. If you have a work around for an issue, that's fricken awesome!
Sadly, most "HOW you use the project" are shit.
It's somewhat poetic that Hacktoberfest turned out to be a clustefuck, mirroring the event from which it drew its name inspiration.
Since when are puke and alcohol fueled violence are perceived so negatively?
I guess MarDataGras, Cinco++de mayo fest and Str.Paddy's day fest will be similarly bad.
Americans who drink love to "celebrate" other culture's holidays 🙄
There are lots of way to contribute to OSS projects that do not involve writing code. Updating and/or translating documentation is usually a very welcomed contribution, even if it does not inflate egos.
Contributing to open source has become a meme like “having passion”. A lot of successful OG programmers (and honestly, non-technical co-founders) talked about needing to be passionate about programming to really be successful, so a bunch of people who just wanted good jobs but didn’t really care started calling themselves “passionate”. It’s following the letter of the advice but not the spirit. But I feel for the people that do things like that, truly, because ultimately they just want a job, and there’s nothing wrong with that.
It's the orphanage story all over again. "Rabbi, I realized I wanted to build an orphanage for ego, so I decided not to build it" "Build it! The orphans won't care about your feelimg of self-importance". As long as the contribution is good and useful, no need to worry too much about your motives.
Wow I love how prime is bringing guest speakers onto his channel to avoid showing his blue hair
We’re just lucky he’s still here… I would have moved to a non extradition country rather than colour my hair blue.
can someone aware me on the blue hair?
@Intense011 it said he lost a bet on the video where he recorded having blue hair
That "learn to build a mousetrap" is such good advice. So many developers somehow think they can go from "zero experience" directly to "single man unicorn startup". While the barrier to entry for software development is dramatically lower than just about anything else technical, it isn't completely effortless.
I'd add to that an alarm clock. This is very common type of app that's very good for learning new programming environment/platform.
This kind of sounds like a homework assignment, TBH. I'll bet a professor told him he had to do that.
So far my only contributions to open source was a bug report for SageMath a number of years ago and a suggestion on adding a function. The bug was fixed and the function was eventually added.
There could definitely be be a fun, invite only spectacle “hack fest” where the goal is to fix the grimiest, longest-standing, most horrendous bug in a project you use.
Maybe the contestants suggest the issues that are to be fixed.
Then the judging is on how good the fix was, how well it integrated, did it require a breaking version release, did the team want your fix, etc.
But that’s a hole different kettle of fish.
6:52 "like the problem is is that, there's like a whole- there's a whole problem"
absolute wisdom lol
Programmer: I have this issue with my code and I am using synchronous due to legacy compatibility (or other valid reason).
Other programmers: Make it async for absolutely no reason.
OP: Gets angry
Others: Gets angry at OP for getting angry...
// How I see online "programmer forums/discussions"
The first rule of open source is, you do not contribute to open source.
The second rule of open source is that you never allow anyone else to contribute
@@JLarkythe third rule is, Dont open source
See here I thought that the first rule to open source was not to push an update that breaks the build.
Is not capitalism, it’s free market! There is no free meal!
If you contributed for the first time - you have to make a pull request.
"Very few people think types are bad."
Dreamberd: Allow us to introduce oursleves.
OMG You've made my day. I laugh loudly so rarely nowadays. Thank you sir 🙏
I think colleges and bootcamps should do open-source in a mentorship capacity, maybe have an open-source club full of maintainers of certain projects who open-source some useful software so that first-time contributor students can get a good idea of what it's like but for just a guy sitting on his chair reading github it's really hard to make a great contribution if you're not a good programmer and don't even use the software often.
28:15 I'm in a python class for my major right now and what easily became my biggest teaching tool was saying to myself "what can I make with this thing we learned in class that I want to do"
I have a decent enough grasp on the random module and with loops purely because I wanted to build a dice roller for when I play dnd. Dice rollers already exist, I am "reinventing the wheel" but 1) it taught me how to use the tools at my disposal, and 2) there's something just like *_fun_* about solving the problem, be it making the whole thing work or tracking down the specific bug you left in.
maybe it's a position of luxury since CS isn't gonna be my job, so I get to code for fun and not stress about it. but I feel like there's some kind of truth in this experience.
Python is particularly good for this.
While watching this video I learned TypeScript, typescript and Typescript. Thank you.
"Asking where to contribute is like asking what to build"
"The best project to contribute to is the one you use [and] you have a problem with"
100%!!! Could not have said it better myself
I am not a developer, but I am a network engineer. if I find an issue in how something is implemented from a networking standpoint, I won't know how to fix it in their codebase. However, I can absolutely point out what the problem is, how it is presenting itself and what it should look like. I think some dev's like to only work with other developers and tend to ignore the infrastructure that their code runs on. They put up their blinders and focus in without looking at the bigger picture of how the environment as a whole will work.
Additionally, a LOT of dev's immediately jump to blaming the network for all of their problems. This really does need to stop, the number of times a firewall that does not exist in the network path gets blamed is obnoxious and no matter how many times it is proven they still blame the network without providing any proof to back up their claims. No one thinks to check the local firewall on the underlying host, no one thinks to check if it's anti-virus or HIPS.
just contribute if you find an issue that you want to get fixed and have the skills to fix it
I am lucky enough to have a REALLY good mentor thats been really good to me.
Now i talk to them much less but i am working on papers with a DR (after i failed highschool) and its been pretty good.
I did help those people but i do think the taking a chance with me bit (which they are still doing) is very nice
A grammar correction on a regular comment or on some user facing thing, is still a correction. Don't hate. Love the polish.
One of the reasons why people think that they need to contribute to open source to get a job is because every interview nowadays asks for your Github account upon sending your resume, and I've been to a couple of interviews myself where I was asked to talk about open source projects I've contributed to... so yes, I can see why people think that they need to have a good "commit" history to get a job.
Imagine interviews for any other profession asking for verifiable proof that you're actively volunteering. Not to say that volunteering for something you're passionate about isn't good, but you're not hiring me to do volunteer work, and I would want to be evaluated on how well I would be able to contribute to your organization rather to other random projects.
It can be a solid part of a resume. It shouldn't be a required part of a resume.
I’ve re-written stale open source projects for clients so that they work with, for example, the current version of React. Imagine if I made a PR back into the repo and my employer saw the code they had paid me to write now being open source.
@@ness-ee It really sucks that this code you've rewritten could benefit a lot more people at no extra cost to the client, but there's still this hesitancy.
Damn, didn't expect this level of sincere wisdom in a Prime video but here we are 😂❤️
The "Learn Typescript" comment was completely valid in context. Lots of React OS projects are written in Typescript, and if they're a react dev they probably should learn Typescript given the current React ecosystem
One specific type of "just make something" that was useful for me was to write a suite of very simple tests, one for each aspect of the language, library, framework etc that you don't fully understand.
I did this about a decade ago when i was brushing up on JavaScript for a new job. I found it was a much better way to internalize things like rules for semicolon insertion or non-strict equality, or the semantic difference between let and var, or function hoisting vs var hoisting (in a function).
Reading documentation for a language feature or API is not going to stick if you don't use it. So write a quick test program. And then the jump to using it in an actual project is much more manageable.
So here is the thing too: there are job postings asking for open source projects that you contributed to. So inexperienced people will naively start to ask that kind of question because they need a job. It's not right at all. Companies should not be asking for that type of work.
Meh, open source is just code that is...open. It's nothing special or something to be "respected". If working on open source is just a means to an end for someone who cares.
@@tbunreall well, usually it's not just the person contributing that spends time on this, but also a maintainer or other main contributors. So submitting shit code wastes time of other people. Which is especially nasty if those people do it for free or for cheap.
But if you submit good code with ulterior motives, then yes, who cares.
But the OP was complaining aboit companies requiring that, not beginner devs doing that for a job.
OK, not a programmer, just ended up here on the tides of the TY algorithm. But why are there no newbie contentment projects? Like, let's make Paint but open-source or let's make Word but open-source. It's obvious that employers look at open-source contributions like work experience, so this isn't going to go away unless you convince every employer to change their mind globally simultaneously. So your best bet honestly would be to make contentment projects over gatekeeping. Plus, it's also a win for the noobs as they still get their résumé padded and a free t-shirt.
At 0:28 - look at the mustache, look at the hair, these two guys are twins - one the apple version, the all blue collar. Amazing... :D
I hate when people have these generalized hot takes, and then you listen to the take and it only applies to a very specific subset of people. Quit tweeting this clickbait and then justifying it with 1000 qualifiers
Why would people quit doing that if that's what gets them the attention
This is a grotesque gatekeeping manifesto.
You know, we put "good first issue" label on issues because we could trivially do them ourselves but choose not to, so that someone else can get involved
I remember when a few of my internet friends gamed the system to get free tshirts. But they all did so by making a bunch of their own repos and sending pull requests *to each other*. Even when gaming the system, they absolutely would never have gotten the idea of doing it by disturbing actual open source maintainers.
So true. You learn so much by debugging FOSS.
Some of it is quite horribly written too lol.
@@gunt-herhow do you write better? I'm a scientist so my frame of reference for thinking is different
@@kiwikemist it's a huge topic. Like "how to write better novels". But you can google "clean code", "kiss principle", "single responsibility in coding", that would be a good start. Frankly half of the learning is seeing how beautiful good code of others is, and the other half is getting angry at yourself for writing incomprehensive code a week ago and now spending half an hour on trying to understand it, add comments, rename variables to something that will be easily understandable later etc. In math-related scientific articles you have whole paragraphs of context around the equation with single-letter variables; in programming if you use a single letter variable, it's either temporary (usually an iterator), or comes from amath equation, everything else is one or max two actual words. Comments are usually short and to the point. Basically, good code is one that you can understand at a glance. (Sometimes it isn't possible, but usually is).
@@kiwikemist Yeah, that other guy explained it pretty well.
I was specifically thinking of complex inheritance trees that require you to navigate 10 different files to understand what's going on.
"Don't contribute to open source. Your code is garbage, people will laugh and you will abandon coding, and we don't want that now, do we?"
this was recommended to me at the exact moment I started thinking about open source as a means to get a job. I agree that you shouldn’t do it for that purpose, but I also think people should consider helping the community, as there will always be space for that (people with small projects and ideas who will appreciate the interaction and exchange of coding experience). But I agree ( as a beginner that I am) you should not be trying to impress people with big projects or doing it just because you want to, but because you genuinely believe it’s a good thing
Hacktoberfest can only work if project owners pick a list of contributors that considerably increased project value. "At least 4 PRs" is a broken metric.
i think the problem is the job market requires credentials that are so overinflated that "open source" is just being used as brownie points to get ahead
It is simply too rough out there. So many people lured into getting CS degrees because they were "in demand" only to find an industry with pretty freaking high barriers to entry. In this very competitive environment career starters search for things that will make them stand out in order to get a few crumbs from employers. First it was getting good at leetcode, then it was having a portfolio, now it is having contributed to open source. A combination of the industry's need for novelty and the bar for entry-level ability is creating this phenomena.
I wanted to learn TypeScript for a while now, cause I hate JS for not having types. But I only use JS on side projects at home and never at work, so I've never been quite motivated to learn Typescript. But you'r're 4 second Typescript tutorial help a lot! I'm an expert now.
To generalize the statement "dont contribute to OSS" seems instantly bad, a narrow minded pretty opinionated take (surely intentionally clickbaity ofc). Neither the poster asked for anything like free teaching/mentoring nor was the issue "getting a job" ever mentionend, also BS so called "beginners" are not in genereal incentivisd "go do some OSS stuff". Also as you mentioned "might help you get a job" is true, but this is never monocausal (might be very well ONE piece to get to a job, though) nor will this destroy or hinder OSS contribution (Theos take). Instead of asking the OP what he is using and getting into issues he might contribute to (even with the hint "typescript might be helpful"), the underlying issue for "new people" is where to start, because it really might not be that easy to find a job (obvious to me since the wording "NEED" has been used, also not monocausal, though). Anyways thx for the thoughts and uploading.
As a undergrad in India, it has already fucked around as a thing to do get a job, as much that I was rushing to learn React to contribute something, but my understanding and use of oss has been extensive(i use neovim btw)therefore I respect the maintainers and devs who do it, and will be lucky+compentent enought to contribute something around neovim, vim or editor space someday, to give back to the community.
I hear so many seniors telling beginner devs to do OSS, but none of these seniors did OSS when they were starting out...
It's definitely not a requirement for a job, I've been developing professionally for over a decade without doing any OSS, including top tech companies in the bay area - and most of my coworkers also never contributed. It's actually hard to find the time when working a demanding job
Jobs are much more competitive now though
"Grammar PRs you are literally the worst Person"
... god i can remember an old "Javascript Architect" (... the Quotes are intended) from a Company who did that 24/7 on big public projects after he got booted.
Also Changing stuff like Master/Slave to Leader and Follower ...
Guess what - hes now leading a Bootcamp here in my Country - and boast that he contributed to so many opensource projects - you cant make that sh.. up
7:47 "It's extremely hard to try to look at someone else's code" so true
I thought you said "It's really easy to gooch this up", and now I have a new saying.
IMO, the way to start OSS is to start by making some cool project you can use yourself. After that you will start seeing problems in other codebases, and may customise them using wrappers, or contribute the solution to bug fixes. This will help you learn and spent time building a good community, and helping people in their problems. This is the true spirit of Open Source.
Some really good takes here. I've been told many times not to re-invent the wheel. There is a time and place for this though and if you are gaining knowledge by reinventing the wheel it totally provides value. In production environments maybe look at existing solutions before reinventing the wheel. If it doesn't fit the bill, it doesn't fit.
I know Java and some C.
I wanted to contribute somewhere.
When I read the Linux commands in C, I just stopped.
I am no where good enough to even read the code, how can I even contribute?
Issue is I don't ever see myself being good enough to contribute. (I am not contributing to Linux or something, I was just checking the some open source code to see the standard)
I am almost fully self-taught.
I am working as a Java Spring Boot developer for 2 years.
I am learning actual computer science concepts and its really difficult.
Getting the confidence to contribute is almost impossible for me.
It takes time even as someone with a traditional degree background where the steps are laid out for you.. if you’re going the self taught route don’t put a time expectation on it. You stating what you don’t get is a big step; now just focus in on that. Look into makefiles and how gcc works; docs are everywhere on that stuff. Also start some sample c projects on your own where you have to write Makefiles with flags and compile them. You’ll get there eventually if you are consistent; but again, do not put a time expectation on this, you get it when you get it.
Don't worry, it is hard but a lot of it is experience/building knowledge. Design patterns (as much as I hate that description), but basically knowing how to tackle different problems, why the approach is bad/good (i.e, you will learn way more of this by building/maintaining your own software and learning the hard way). So don't give up :)
Had a professor in college, who used to work on SUSE, told us there are parts of the Linux code base that only a handful of people in the world fully understand. He said portions of the code are very complex.
You just described my experience. I'm a Platform Engineer with +5 years in the area, did CS. And first time I saw the Kurbernetes code I didn't even understood the issues opened, i didnt even passed by the issues that they want to solve.
You don't need to fix bugs to be able to contribute, add docs and create high quality issues also count. You mentioned you know some Spring Boot, why don't you try to solve a issue in spring boot repo which you might be more familiar with.
“If you ask that question (what oss should I contribute to) you’re not ready” couldn’t have phrased it better.
The discussion at the end makes me think of the accounting and programming subreddits. There are so many people wishing they had gone into the other field because they think it would be easier.
Just do solo stuff. That way the project will by definition match your skill level.
So many WPF calculator apps
This is what I needed to hear back when I graduated in 2019. I struggled with finding a project that i can understand to contribute which me question my abilities and feeling quite inferior.
To be fair to Theo, he's talking about beginner JS devs, so we should probably assume they don't like TS because they don't think types is a hurdle, not because they want to use JSDoc or Rust instead. And TypeScript is definitely among the top things beginner JS devs looking for a job would benefit from learning.
14:15 "Tha is incredible ToXiC" - that Hair 😂
20:13 @ThePrimeTimeagen (or anyone who agrees with this take), can you explain why such people are the worst? I asked a bunch of FOSS contributors and maintainers, and they all agree that even a small (typo/grammar) fix is still a fix and an overall improvement to the project. I also made a few of such PRs and everyone was grateful, so I don't get why such negativity all of a sudden.
So what I'm hearing is that if an open source project is mostly used by non-programmers, it's doomed
Which is obviously not true
I mean, look at Blender? Doesn't seem that doomed. Krita neither. Even a little Aseprite, when the author decided to drop GPL, got forked under Godot's main dev name, then gained an actual maintainer and I think it has two people working on it now as LibreSprite.
In Krita I guess not being related to webdev probably saves us from being drowned during hacktoberfest. In fact I didn't even know about it, especially as a problem. There are only some spam proposals to GSOC every now and then.
idk how I ended up on programmer YT, but it's interesting to see the overlap between music creation and programming. Like so often I hear people say "what genre should I make?" "what program should I use?" "what should my effects order be?" and it's so subjective, so case-dependant, and so knowledge dependant that I just tell people that it doesn't matter. Try a bunch of effects, make some shitty songs, grab ten different music programs and see which comes more naturally to you.
Build, see what fails, ask people on HOW you could fix the problem, and try again. The knowledge of what goes where and when will come eventually over time
Lol, a few months ago, Theo told us that contribution to open source is the only way to get a job in current market 😅
The man was cooking and by 3 minutes the man cooked.
i have contriputed to 1 open source project. and the reason was that we were using that at work, and it had a issue with 1 of the features that we needed. So i fixed the issue and created pull request, it got accepted and we could continue on working :D
That @t3dotgg video is pure gold. In fact, inexperienced devs should never be making pull requests of any type to OS projects. They should be learning and testing things out. That's it!
I think this honestly serves as a good point toward why going to college is a good idea for some people. Some people need the guidance of assigned projects to help them discover the capabilities of programming. It's genuinely what helped me get to a point where I'm more confident in trying new things and creating my own projects because I didn't have to worry about not knowing what I was supposed to know. Of course there are free resources, but sometimes having so many of those can clutter your path which is hard when you're desperately looking for a clear one.
same here, i went to a bootcamp rather than a college, but i had a little self taught experience under my belt. playing around with the basic programing on the TI84 calculator, later a bit of lua in computercraft. taking a webmastering elective in highschool, then a java class as a senior. I knew by then that I loved programing, I loved the satisfaction of solving a problem with logic and code. But I lacked in my own inspiration for ideas of what to build next to further my growth. I also just thrive better in a more structural environment anyway to guide my focus. But the boot camp I attended was really helpful as project after project there was something new to learn, and at the same time building out a portfolio of all the things i can do and what personal problems I've solved to show in interviews.
Something else I think was helpful as a learning exercise, and fun as a challenge, would be to take something existing, and then try to replicate it in whole or in part. A classmate and I learned a bunch about dom manipulation by each making a jquery clone, and then we could compare to each other, as well as to the original and discuss the thought process behind our decisions. It was also a lot of fun ^_^
I am happy that I randomly stumbled upon somebody who became my mentor and a friend
I'm broadly with you. Firstly, I think open source is a great way to learn, and may be a great way to help with your career path. However, I'd question the motives of someone contributing just to improve their employment prospects. I've contributed to a bunch of projects, but I've always contributed because I'm interested in the project, not because of any expectation of career progression. I have never looked at open source from the point of view of "what project will by skills suit", but rather, "I like this project, what do I need to learn to contribute to it."
There have been projects that I've decided not to get involved with because it uses technologies too different from my skillset, but if I was excited enough by the project, that wouldn't be a barrier.
I think it's an overall bad take. If you're a beginner trying to get experience working on a team, and the response is "get a job", *that's* putting the cart before the horse. It's like answering "How do I achieve this goal?" with "Maybe you should already have achieved the goal before you try to achieve the goal." It's not *wrong*, but it is extremely unhelpful to somebody who's actually looking to learn. But then, making hot takes isn't about helping other people learn, is it?
currently building a nfl player stat comparer. even though things like it exist and i dont really have a huge interest in football it has still been fun and helped me to learn quite a bit
As someone who hires people... junior and senior... open source work helps show me the person's skills. Even though I am the author and maintainer of several OSS projects that has nothing really to do with my interest in others' work. It is just an avenue for me to determine skill. So too would be references, coding tests, etc. The difference for me is that references and coding tests don't really tell me you know what you're doing day to day. If you are helping build, test, package, deploy, write docs, etc. on an OSS project that shows me the depth of your experience. If you can share that information in other ways... great.
14:53 Great dolphin impression!
I generally like typing, but I also like the simplicity of being able to create quick and dirty objects without going through hoops, or just being able to parse and serialise json easily. Been working with AssemblyScript and missing that. Also missing some of the quality of life things c# does (ie type inference). For me the ideal is strong types for the bulk of it, with the possibility to use untyped data when you want to, either when dealing with json data or for quickly testing things.
Here's the take you're looking for optimum primus:
1: You either contribute to open source projects for yourself because you're proud of your ability to help the world OR
2: You contribute to open source projects to help awesome developers and get an opportunity to make friends with them
That's it. If you can find some way to use either endpoint for some other thing, that's up to you. But all OSS offers is bragging rights and friendship points as a proximal goal, and if you don't try to do either of those things as your proximal goal, you won't get anything good out of it.
It's all in the cathedral and the bazaar, by eric s raymond.
I will never contribute to any software unless I know that the lead dev of software is racist and his software is GPL licensed.
This reminds me about the class I had that failed me for not getting 100 points on stackoverflow.
In a mobile dev class, where all questions I had had been answered, or were easily found.
Only guys that got it spammed stupid questions.
I know the “throw an any on it and you’re good to go!” was a joke but there are TONS of high level typescript repos that have code that would never get merged at my job because of using ‘any’ (for no reason)
I just fork. I hate my code. It's almost always a Jerry rig to get some embedded driver to work.
I'v mentored more then one programmer, for free, mostly because it was a rewarding activity and I got more then one good friend out of it. However I no longer do it , cause 1) I don't have as much time anymore and 2) just really hard to find motivated people anymore. I guess problem is that up starts are now spoiled with the enourmouse ammount of free information and resources available and if you don't spoonfeed them they go read another tutorial instead of doing the work and asking questions.
I can speak on this from the other side and I can give you some insights. When I first started programming I was mentored by a wide range of people and they were experienced developers but everybody was new to this little game called Minecraft in 2011.
We were all motivated to make mods for Minecraft and all of us had time enough to talk and help people coming into the modding scene after.
I think the reason why your programming or trying to learn programming can extend that motivation to keep learning it or keep teaching it an extreme amount.
I was learning how to program by creating mods for a game that we were all playing so when I would ask a question about programming to one of the clearly senior modders and programmers it never felt like the tedious nonsense instead it was just helping a modder out try to create something cool
#2 was my initial thought as well. As the years have gone by, there's been less and less interest in _receiving_ mentorship. Instead, too many programmers just want you to tell them what to do. Forget about the how or the why or anything that's important. Just tell them what to do so they can go fail at doing it, then come back to you saying it's impossible, after which you end up having to do it for them. There's no value to these individuals. And yet they still manage to find a way to get a job.
Is it an old record? Because how could his hair unblue themselves?
When Prime recorded this, the original video was released by Theo 1 day ago. He probably didn't want to release it right after Theo as to not syphon views from the original creator on UA-cam (in this case Theo).
But yes, I'm chanting "always blue, always blue" as we speak.
everyone needs to start doing open source, it helps everyone, have you not seen what its done for all of us. Hats off to anyone contributing, so that reddit thread was completely right.