Live data from Hacker News

Why Computing Students Should Contribute to Open Source Software Projects

cacm.acm.org

141–150 of 179 posts

Re: Why Computing Students Should Contribute to Open Source Software Projects

#141
post #32
post #8

> in the 21st century programming proficiency on its own is neither representative of the skills that the marketplace requires from computing graduates, nor does it offer the strong vocational qualifications it once did. Universities are not vocational education facilities though. Time a student has in university is better spent on getting deeper understanding of things that are hard to pick up in the workplace, and…

> Universities are not vocational education facilities though I see this argument a lot; universities would like to not be vocational education, but unavoidably they are. Certainly for all the older class of professional job: engineer, actuary, lawyer, doctor. For those you absolutely have to go to university to even begin your vocational training. Programming is different in that the degree is less of a hard require…

thats not the point though. most that do not do university, will not on their own accord get to the level of cs understanding that graduates have.

programming is much much more that being proficient in the current tools of the day.

Re: Why Computing Students Should Contribute to Open Source Software Projects

#142
post #53
post #52

Earlier quoted context omitted.

Maybe the only contributions that could be useful in this case is tests.

Not even that is 100% sure. You still need to vet the tests. Documentation is also a good thing to add. The perspective of a fresh user is precious and only lasts so long. Documenting the onboarding process can point to documentation shortcomings that are great to fix.

> Documenting the onboarding process

I just want to add that this kind of documentation is worthwhile even for experienced developers.

I've come across so many projects in my career in which the hardest task of all is figuring out where to start looking at the code. The entrypoint is often non-obvious and starting at main() often fails to elucidate the narrative of the program.

To rectify this moving forward I've started keeping something of a development journal with new software I write. It's a cross between a README and a changelog and a sitemap; like printed MapQuest directions for my code.

Re: Why Computing Students Should Contribute to Open Source Software Projects

#143
post #105

Earlier quoted context omitted.

Yeah I think this is a huge issue. It might be good for the students to get this experience, but it would be horrible for the projects. People working on a project to check a box is not going to lead to good outcomes. A better option would be to require students to work on projects which depend on eachother, and practice pull-requests on eachother's student projects.

How about this? The instructor forks a real open source project, with an existing license, contributor guide, etc. The instructor then picks an issue from the issue tracker with a known solution, but no PR yet. The assignment is to submit a PR to the instructor's fork of the project that fixes the issue, and the PR itself is the final project submission. Points can be deducted, according to a rubric, for failing to p…

I think that would work. Then the instructor (or a enterprising student) could push the PR back to the real project if it turns out to be worthy of a real merge.

Re: Why Computing Students Should Contribute to Open Source Software Projects

#144

How would this work? How many project maintainers would sign on for this? "Hey, can you merge this PR? I'll fail if you don't review and merge this by tomorrow morning. I'm sorry I left it until the last minute but I had a bunch of work do to in another class and couldn't get to it until today." "Hey, I ran everything through flake and black and spent the past 72 hours getting my test coverage (and the coverage of th…

My schools senior projects were group projects done for real people out in the world. A similar thing could be done where the instructor would solicit a dozen OS projects that would be willing to trade labor for responsiveness.

My school had a co-op program where we would actually get paid to do real work.

I think if you want your university program to teach real world skills, a co-op program is the only non-abusive way to do that.

Re: Why Computing Students Should Contribute to Open Source Software Projects

#145
post #92

In my opinion, the Hacktoberfest controversy last year points at the opposite being true. A computing student is not likely to understand the processes and etiquette of the industry. Open Source projects are not toy projects, billions of $ depend on them running smoothly, and I don't think we should expect someone with no industry experience to have assimilated this fact. Lately I have been observing an endemic probl…

This seems like another argument for "Private copying levy" but for open source developers that create useful libraries. So maintainers would be receiving some kind of stipend and not abandon projects.

https://en.wikipedia.org/wiki/Private_copying_levy

Re: Why Computing Students Should Contribute to Open Source Software Projects

#146

Earlier quoted context omitted.

My schools senior projects were group projects done for real people out in the world. A similar thing could be done where the instructor would solicit a dozen OS projects that would be willing to trade labor for responsiveness.

My school had a co-op program where we would actually get paid to do real work. I think if you want your university program to teach real world skills, a co-op program is the only non-abusive way to do that.

What’s abusive?

Re: Why Computing Students Should Contribute to Open Source Software Projects

#147
post #32
post #8

> in the 21st century programming proficiency on its own is neither representative of the skills that the marketplace requires from computing graduates, nor does it offer the strong vocational qualifications it once did. Universities are not vocational education facilities though. Time a student has in university is better spent on getting deeper understanding of things that are hard to pick up in the workplace, and…

> Universities are not vocational education facilities though I see this argument a lot; universities would like to not be vocational education, but unavoidably they are. Certainly for all the older class of professional job: engineer, actuary, lawyer, doctor. For those you absolutely have to go to university to even begin your vocational training. Programming is different in that the degree is less of a hard require…

> A formal apprenticeship model would be great for programming

It exists since 1997-1999, varying on the country. An apprenticeship takes nominally between 3 and 3½ years, concludes with a level 4 EQR and the rules and by-laws are determined by the chamber of commerce, who also holds the examinations. It is treated as a trade, similar to blue collar professions like heating installer, lathe operator etc.

Re: Why Computing Students Should Contribute to Open Source Software Projects

#148
post #51

Earlier quoted context omitted.

Universities are not vocational education facilities though the problem is that this doesn't matter, because all the industry expects is programming skills, and while any fachhochschule, french engineering school, or even a US community college could provide those programming skills, the university provides them too, and as a result, a university graduate has more job options than a graduate from those other schools.…

The industry expects programming skills, yes. But a lot of the missing semester skills (how to use git, how to write unit tests, how to write a design doc) are very easily taught on the job. Topics like data structures and operating systems are more difficult to teach on the job because they do not come up every day and therefore do not get repeated practice. I don't think it is unreasonable to have alternatives to t…

Teaching the "missing semester skills" are indeed learned by most people on the job because they are often site specific because everyone is self taught in them, so the cycle continues.

Becoming a senior engineer usually takes lots of on the job experience, one can't really train for it. A PHd helps, but unless it models the same shared industrial scale codebase, there will be gaps in the schooling vs a large engineering org.

One could get a masters (extra year in the US) in the missing semester skills. Learning to refactor could be a 5 credit course. Same thing with testing, could cover property testing, ci/cd pipelines, incremental repeatable builds, fault injection, gradient descent, rollback, fuzz testing, formal methods, proof systems etc. but in a practical way.

It is one thing to know about a skill vs having actually used the skill to solve a problem. It takes years to actually learn how to use Git well. Same for most processes and tools, a formal education in those areas would accelerate the state of the whole industry.

Two things should probably happen. One for early education and second for post hs.

The whole k-12 education system should get more rigorous, front load the early education and get everyone on a rock solid foundation. Like everyone exiting 5th grade can read the international phonetic alphabet and are fluent in a second language at at-least the 2nd grade level.

For post highschool academic education, the credit hours to graduate should be extended or be made variable depending on the degree. Some "hard" science degrees already do this, by declaring 5 credit courses as 3 credits. Still 90 credit hours to complete but the difficulty is much higher. Basically the 4 year degree is now the 5+ year degree. This is ok.

We have or did have a huge commercial market for computer jobs in the "code camp/school" space. All these new participants showed up because there was a huge need for these skills. They mostly teach the missing semester stuff and build a ton of context so they don't get shunned at the new job for the huge gaps in their knowledge.

I think the commercial votec school system does need to get some form of accreditation.

I will not discuss the levels of foolishness by employers in their hiring practices. Utter insanity.

Re: Why Computing Students Should Contribute to Open Source Software Projects

#149
post #86
post #8

> in the 21st century programming proficiency on its own is neither representative of the skills that the marketplace requires from computing graduates, nor does it offer the strong vocational qualifications it once did. Universities are not vocational education facilities though. Time a student has in university is better spent on getting deeper understanding of things that are hard to pick up in the workplace, and…

YMMV, but isn't it the complete opposite? Open source projects do not, and have never, gone out of their way to teach these things. Ofc doing it for a grade is silly But if you contribute to open source, you must follow the etiquette or your PR is denied etc. What inexperienced programmers get from open source is that experience where they better learn how to fit in effectively, or they get bounced. In the nicest pos…

I agree, personally as a CS Student, I gave contributing to open source a shot and I felt like it really helped me a lot. Joining a project's slack, chatting with maintainers, developing features with docs and tests and code reviewing really makes you feel like you're an actual software engineer. It gave me quite the confidence boost that I can do this after years of internship rejections and never knowing what I was doing wrong.

I'd recommend it for someone/student who feels like their technically competent but never got the chance to work with an already built codebase and a team because it really puts you up to the test.

Re: Why Computing Students Should Contribute to Open Source Software Projects

#150
post #111
post #32

Earlier quoted context omitted.

> Universities are not vocational education facilities though I see this argument a lot; universities would like to not be vocational education, but unavoidably they are. Certainly for all the older class of professional job: engineer, actuary, lawyer, doctor. For those you absolutely have to go to university to even begin your vocational training. Programming is different in that the degree is less of a hard require…

"A formal apprenticeship model would be great for programming, but there's a lot of obstacles to that." Is there? The standard for the locality I live in, around the University of Michigan, is that students seem to be trying to pick up internships every summer now, including their first summer after being a freshman. It also not uncommon to see people who graduated with several internships on their resume. When I gra…

Yes - but that's an informal system, not a formal one, and linked to being a university student. Accessing it without having gone through university admissions is harder.
Post reply on HN