Live data from Hacker News

Why Computing Students Should Contribute to Open Source Software Projects

cacm.acm.org

121–130 of 179 posts

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

#121
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…

only rich people say this. For poor and middle income, yes universities are vocational. at least in my part of the world. But I've heard lots of privileged people say this, and only them... which is true for them is not true for the pop in general.

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

#122
post #113
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." Their prices say they are. There is no way they could be as expensive as they are, except that they are capturing a lot of the value of the vocational education they are expected to provide. Their prices speak louder than high-falutin' principles. I'll permit University's their "we're not vocational training facilities" argument when their prices come bac…

This is more of a US problem. In the EU much of higher education is very cheap or free. Some students even get paid a small amount of money and have access to loans with low interested and great terms so that it's easier to focus on school and everyone is on a more even playing field.

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

#123

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.

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

#124

As a relatively inexperienced undergrad with some basic knowledge in C and python, can anyone recommend how I should go about to start getting involved in any project? I dunno how to work alongside anyone on anything useful or "real" and all I have done is making line drawing algorithms, sorting algorithms, avl trees and some basic games and simulations in python. I am kind of interested in lisp and functional progra…

If you don't mind learning a new language (golang and it's not particularly a difficult language), then you should consider joining our Kubernetes SIG Instrumentation meetings (https://groups.google.com/g/kubernetes-sig-instrumentation). We're particularly well suited for people who want to get their feet wet, and despite our focus being instrumentation in Kubernetes, the kind of work that we do varies a bit, we've written hand-rolled parsers for promql, CLI tools, static analysis tools which analyze metrics across the kubernetes codebase, etc. That google group should have a calendar link on top, if you subscribe, you'll be auto-invited to our meetings :) Hope to see you there!

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

#125

As a relatively inexperienced undergrad with some basic knowledge in C and python, can anyone recommend how I should go about to start getting involved in any project? I dunno how to work alongside anyone on anything useful or "real" and all I have done is making line drawing algorithms, sorting algorithms, avl trees and some basic games and simulations in python. I am kind of interested in lisp and functional progra…

My first recommendation is to send them to a project you use and care about. If you try to send a PR to a project you don't use, it's difficult for you to understand the jargon, the hidden assumptions, the vision, and other high level stuff that are obvious (or easier) if you are using the project.

* Send nice bug reports, with foolproof reproduction steps. Err on the side of too foolproof. People underestimate the importance of bug reports, but they are very helpful. Try to see how they fixed it, so perhaps next time you understand where the error is and perhaps fix it. (Sometimes navigating the project structure is hard, and it's difficult to even find the file where the error is.)

* Send PR fixing typos. Typos in the docs. Typos in comments. Typos in error messages. The nice part is that it's an easy fix, it's probably correct, and it has a high chance of being approved. (English has a few spelling variants, check that it's not just a en-uk vs en-us difference.)

It's also helpful because you must learn how to clone the project, use github (or gitlab, or the mailing list, or whatever system they are using), and how to interact with the maintainers.

* If you have a feature you want and can implement it, it's a nice PR. Start with easy and short features. Don't spend more than one or two days building it (4 to 8 hours, or even less). Nobody guaranties that it's correct, that it's in the vision of the maintainer, that the maintainer is not a moron. If it's not merged, you've only lost one or two days. If the maintainer likes the idea but want a different implementation, you've only lost one or two days.

Some people recommend to ask in the mailing list or an issue in github/gitlab if the maintainer likes the idea. My English is not so good, and some features are difficult to explain. So I prefer the alternative method of just writing the PR, but only short PR that need one of two days of work.

Be prepare to fix your PR. There are implicit local rules about the code, like tabs vs spaces, trailing spaces, indentation, ... try to follow the local conventions. Also, you may need to add some new test for the new feature or a regression test, and other testing. So expect that sometime you will need additional work to polish the PR.

* For big features, discuss them with the maintainer first. Again, nobody guaranties that it's correct, that it's in the vision of the maintainer, that the maintainer is not a moron.

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

#126
post #105

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…

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 pass the test suite, failing to follow contribution guidelines, etc.

Choosing an issue that has not been publicly resolved in code should prevent obvious cases of plagiarism.

I'm not sure if this could scale up to a big lecture-type course with TA is doing the grading, but I think it could be a fun assignment.

The risk of course is that there is some unforeseen problem preventing the "known" solution from being valid. But maybe that in and of itself is part of learning exercise...

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

#127
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…

Exactly, I had only one summer internship back when I graduated many years ago, now a days 2-3 is not unusual

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

#128
*Should write their own software.

Software design and implementation is FUN. Now I know not everyone agrees, but a self contained game etc (no it does not need to be reusable package that are 'useful for other people/future'!) is a very helpful experience for software implementation.

e.g. http://aperocky.com/cellular-automata/

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

#129
post #113

Earlier quoted context omitted.

"Universities are not vocational education facilities though." Their prices say they are. There is no way they could be as expensive as they are, except that they are capturing a lot of the value of the vocational education they are expected to provide. Their prices speak louder than high-falutin' principles. I'll permit University's their "we're not vocational training facilities" argument when their prices come bac…

This is more of a US problem. In the EU much of higher education is very cheap or free. Some students even get paid a small amount of money and have access to loans with low interested and great terms so that it's easier to focus on school and everyone is on a more even playing field.

Yes, and in various countries universities have a solid theoretical and scholarly approach to STEM topics.

In US Engineering is framed as a very practical, "how-to" oriented, to the point that people can be surprised to learn that engineers do research and publish papers.

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

#130
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…

Maybe not in your neck of the woods. Over the course of my education I attended three separate universities. All of which had Industrial Councils to make sure that their programs were teaching skills relevant to industry. All of them had industry partnerships to get their students exposed to what was current in industry. That was across the entire engineering spectrum not just Computing.

I am surprised that more Computing departments haven't embraced Open Source. It seems like it would be a great way to introduce students to larger projects, and act as a great advertisement for their core areas of expertise. After all who hasn't heard of BSD, or X11.

It ought to be out there along the ASME's racing events where students design and build race cars. Why shouldn't Computing students design video or audio codecs, raspberry pies, or other things for real world experience?

Post reply on HN