9 ms·
> in the 21st century programming proficiency on its own is neither representative of the skills that the marketplace requires from computing graduates, nor do
by oytis 5y ago
> 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 that give you a better picture of the industry in the long run
Conversely, Jira-fu, unit testing, peer reviewing etc. is something a junior engineer learns in their first year at work. And burdening open source maintainers with training students in these issues is hardly a good idea. In my (probably unpopular) opinion, it's better to start contributing to open source projects after having some experience with real projects at work, not the other way round. Just because at work one has a supervisor and optionally a buddy/mentor, which open source projects have no opportunity to provide.
- chalst 5y agoThe CACM Viewpoint proposal doesn't mean that students have to work on the kind of open source projects that businesses will assign developer labour to. The open source projects can be chosen to complement the educational aims of the course.
- tehbeard 5y agoThis just sounds like hacktoberfest blended with eternal September...
- DarkWiiPlayer 5y agoExcept hacktoberfest was for some merch; this puts peoples degrees on the line, so they will be much more motivated to find something to "fix".
- dgb23 5y agoAgreed! I found one recently that does some interesting stuff, a formal verification library for Rust: https://www.pm.inf.ethz.ch/research/prusti.html https://www.pm.inf.ethz.ch/research/prusti.html
- timlatim 5y agoI agree with your point of view, it does seem to shift some of the teaching burden from instructors to project maintainers. I generally like the way student performance is assessed, with more emphasis on the technical quality and presentation rather than the binary "was this contribution accepted or not?". However I still think that, depending on the initial choice of the project and the issue to work on, some students may receive a lower grade through no fault of their own, e.g. a PR not getting accepted by deadline, changes required at the last minute, etc. These problems are not present with traditional assignments isolated from the "real world", and I believe those can teach the student just as much as open-source participation, if done right. Take group projects, for instance, where students are expected to collaborate using project management tools, set up unit tests themselves, etc.
- DarkWiiPlayer 5y agoI completely agree with both points. 1) No, universities shouldn't waste too much time preparing people for the job; they should prepare give people the more scientific types of skills that one doesn't really pick up on the job: Data structures, algorithms, paradigms like OOP and FP, etc. 2) Unleashing a horde of yet incompetent newbies on the open source world with a mission to contribute won't be helping FOSS; what's more, if this was the norm, it would cause much more harm than good by spamming projects with low-quality contributions. See Goodharts law.
- tester34 5y agobut there's already significant amount of ds, algos, OOP in academia, also I don't see how those are "scientific types of skills" I do also wonder what people *precisely* mean when they talk about "data structures and algorithms" in context of academia You talk from perspective of competitive programming?
- DarkWiiPlayer 5y agoYes, there is already a significant amount of it; and that's good. My opinion is that academia should not waste too much time preparing people for a job, but give them as much as possible of precisely the kind of problem solving skills that they won't be picking up on the job.
- tester34 5y agoPlaying devil's side: It's dependent on the job, but anyway they can learn this stuff not only during work hours (learning hours or whatever it is called), but also in their free time It's not like only Academia is authorized to teach DS&A, FP
- DarkWiiPlayer 5y agoI mean, yes, you can learn these things on your own, but that's by no means an excuse that higher education should focus less on these aspects. It shouldn't be the default that university teaches you job skills and leaves you to learn the theory on your own. Honestly, I really don't see a solid case there.
- siva7 5y agoUniversities are of course nowadays also vocational education facilities (with a strong track on research). I'm always flabbergasted where this misconception about higher education as some form of romantic ivory tower comes from.
- Ekaros 5y agoI don't really see why they shouldn't be understood as both. Specially in fields like CS, engineering, law, medicine and economics and so on. There is need for highly skilled and educated people in industry even for regular roles. On other hand there is also need for scientist and researches. Both roles are somewhat different, but I dont' see now reason why they couldn't be trained at same facilities.
- enchiridion 5y agoWell I'll take a stab at why CS should not be vocational. The field is first and foremost a branch of applied mathematics. The tooling taught in a CS program only has utility insofar as it serves to teach the fundamental mathematical concepts. This is especially true for undergrad. In my opinion, there are far too many people enrolled in CS programs who would be much better served by a software engineering degree or program. However, modifying the way CS is taught us not the answer. A separate niche needs to be carved out.
- hocuspocus 5y agoIn many European countries, vocational schools (usually called universities of applied sciences, for instance Fachhochschule in DACH, IUT in France) offer just that. Nowadays there are even bridges to "proper" universities if you want to pursue a more academic MSc after your vocational BSc.
- marcus_holmes 5y agoBecause universities see themselves as research institutions - that's where they get their prestige and status from, not from teaching. Teaching people to code doesn't do anything for them (except pay some of the bills). The whole bachelors -> masters -> PhD process is just winnowing out the unworthy and stupid. The ones who survive this and go on to publish papers are the entire point. The entire IT industry is a byproduct of CS research, not the point of it. The point of it is to explore the intellectual realms enabled by the mathematics of CS. Reducing this to "university CS departments exist to train programmers" is ridiculous. Slightly tongue in cheek, but not too much.
- Tade0 5y ago> In my (probably unpopular) opinion, it's better to start contributing to open source projects after having some experience with real projects at work, not the other way round. Or don't start by contributing code. There's a lot of work to do in areas like bug triage, reproducing issues or creating setups which do that. I used to be part of a commercial, but open-source project. Unfortunately we didn't have the resources to scrutinise every pull request that arrived and I think few projects do.
- urthor 5y agoDocstring PRs. So many docstring PRs to be done.
- pjc50 5y ago> 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 requirement (but still mandatory for your CV for a lot of employers), and you can get by with a three-year degree. But the history of non-university vocational training for programmers is a bit controversial (e.g. Lambda school https://news.ycombinator.com/item?id=25415017/ https://news.ycombinator.com/item?id=25415017/ ) and there's not that many of them even in the US. What's the UK equivalent to Lambda School? The French equivalent? > Conversely, Jira-fu, unit testing, peer reviewing etc. is something a junior engineer learns in their first year at work A formal apprenticeship model would be great for programming, but there's a lot of obstacles to that.
- rsj_hn 5y agoThe taxpayers want skills education and that's what they are paying for. The ones receiving the taxpayer funds want to promote fringe ideas and revolutionary societies. So this is a typical principal-agent problem -- the universities take public funds and public guarantees and then try to redirect those for their own private agenda.
- cudgy 5y agoThis seems very shortsighted. The fringe ideas as you call them are the modern ideas in many cases. Companies can equally benefit from these new ideas coming from recent grads. University is a time to explore new ideas and old ideas at a level of detail that one hopes they can maintain throughout their career, but most likely once one enters a career they are focused on the needs of their employer, which is not necessarily the best for personal advancement or the advancement of software as a whole.
- em-bee 5y agofrance has a lot of engineering schools, which are not universities. autoconf is one famous project from a french engineering school. likewise germany has the fachhochschule, which is also expressly for vocational education at university level. i would not call those equivalents to lamda school, mostly because lambda school is private profit oriented startup, whereas french and german engineering schools are established government funded public schools with a history of more than 50 years. one could argue that maybe US community colleges should be the US equivalent of those schools with a focus on vocational education.
- em-bee 5y agoUniversities 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. if i can, i will prefer the school that gives me more options later on. that also explains why everyone wants to get into the top schools, because those provide even more options. computer science students would have to have a bad reputation as programmers in order to stop companies who need programmers from hiring them. or we change the system such that you always start with vocational training as a programmer on a school dedicated for that before you decide to either get a job or move on into academics. requiring that academic researchers have relevant industry level training doesn't seem like a bad idea.
- UncleMeat 5y agoThe 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 the university education model. But I also think that employers would be very foolish to demand that junior engineers have prior experience with git.
- sitkack 5y agoTeaching 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.
- glangdale 5y agoI agree. Further, to the extent that students need to learn "Jira-fu, unit testing, peer reviewing, etc." they can learn this in a controlled environment run by the university. The problem with trying to have all students (not "some exceptional students", but all students) going out and engaging with the real world of open source is that the degree of difficulty in navigating different open source projects is enormous and may not be obvious to the professors nor students ahead of time. Some students may wind up working on projects with nice guard-rails, helpful communities, plenty of up-to-date high-quality documents for how to contribute. Others... maybe not so much. It will be very hard to judge whether students have been successful and to compare their performances against each other (a perennial chore of academia, but one that people seem to insist on: grades!).
- alisonkisk 5y agothe students should be supervised by their teacher.
- watwut 5y agoAnd also, open source maintainers are not free teachers. If university expects them to teach students, university first should ask open source maintainers whether they are ok with it. Otherwise it creates absurd situation in which highly expensive institution is demanding that part of teaching is done by third parties for free.
- ivirshup 5y agoAs an open source maintainer, I'm happy to have contributions from first time contributors, even if they aren't completley familiar with the workflow. It's how I learned, and I'd love be able to pass this experience on. That said, I would love if the professor would reach out so I could recommend specific issues and let them know whether I'll be particularly available for more in depth PR mentoring this semester. It does seem like they're accounting for the burden put on maintainers as well: > Getting a contribution accepted is not a prerequisite for passing the assignment > a small-scale contribution is the only realistic goal. The key to making the course's assignment work, is to have what are, on first sight, very low ambitions for the students' contributions.
- AussieWog93 5y ago>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 that give you a better picture of the industry in the long run That may be the case, but the job market for grads is fierce (or at least was when I went through the gauntlet 5 years ago) and projects absolutely help students stand out. >burdening open source maintainers with training students in these issues is hardly a good idea I've had exactly this happen - a random Argentinian student I met on Reddit modernised a whole lot of my project's codebase and we went through the review process together etc. "Burden" is not the word I'd use; it was a positive experience without a doubt and the contributions he made were generally of a high standard.
- sudosteph 5y agoThere's a difference between a vocational school, and a university program which teaches vocationally relevant skills. Many land-grant universities especially, were explicitly founded to teach practical, technical, economically relevant skills in the context of a broader liberal arts. In that context, it's not surprising that many public universities do see post-college employment metrics (employment rate, median salaries) as an extremely important measuring stick of success. Many of these programs do make efforts to include vocationally-applicable education in the core curriculum, because it helps to keep those numbers up.
- chakkepolja 5y agoI agree with most of your points. But disagree with the fact that universities should teach only theoretical aspects. Apart from the top ivy league schools, many schools are not going to teach the theory stuff well anyway. And teaching the tools (not JIRA but, say git and docker) are not dry carpentry, there are concepts which a computer science student should be equipped to understand. Last time I remember, an MIT course on programming tools gained traction on this site. As for not contributing to OSS projects right away, I agree, universities should rather have a project after each course completion so that students get to exercise the concepts.
- urthor 5y agoYMMV, 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 possible way, open source is a great way for people on the HS/college track to take responsibility for themselves. It doesn't require much active effort on the part of the open source community to deny a PR or exclude a bad apple if that makes sense. And I'd say the majority of open source communities long ago put systems in place to deal with bad apples (or should have).
- kandeel4411 5y agoI 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.
- gumby 5y ago> Universities are not vocational education facilities though. This depends on your country. In many countries they are. Also even in countries were the undergrad system is intended to be broader (e.g. US, Canada), politicians typically discuss it as if it were a job training system.
- jerf 5y ago"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 back down to something like a 1980s level and reflect their expectation that they are not doing vocational training.
- uberswe 5y agoThis 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.
- goodpoint 5y agoYes, 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.
- nicoburns 5y agoUS and UK. We might get a loan in the UK, but the level of debt is still excessive.
- sprafa 5y agoonly 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.
- stonemetal12 5y agoMaybe 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?
- karmakaze 5y agoI really liked the separation of the theory and higher learning from classes vs learning the hands-on real-world programming from summer and co-op jobs. Even before I had those, I was already a hobbiest programmer on my own time. The difference these days is that people go into CS/software development as a career job and expect a degree to prepare them for it. I'm all for effectiveness so it would be up to each institution, but hopefully they're not continually churning out programmers who would have been good to have 5 years ago.
- DSpinellis 5y agoVery interesting comment. Having initially taught a more theoretical software engineering course and now teaching this one, I've realized that grasping the theoretical aspects of software engineering without practicing them in a realistic context is difficult and results in pretty shallow learning.