Live data from Hacker News

Ask HN: What’s the biggest difference between professional coding and academia?

news.ycombinator.com

41–50 of 54 posts

Re: Ask HN: What’s the biggest difference between professional coding and academia?

#41
post #28
post #25

Previous HN discussion: "Why can't you guys comment your fucking code" https://news.ycombinator.com/item?id=14692691 Copy&pasting my response there: --- Why is code coming out of research labs/universities so bad? 1. DON'T SEE WHY CLEAR CODE MATTERS Academic projects are typically one-offs, not grounded in a wider context or value chain. Even if the researcher would like to build something long-term useful and robust…

> Previous HN discussion: "Why can't you guys comment your fucking code" Who is that clown? and why is the shit-post of a 4-day old reddit account being discussed all over the interwebs like gospel? That person very likely has regrets not finishing high school and is venting frustration in the form of misplaced anger.

What resonates with people, and why, is a rather deep question. Indicative of an arbitrage opportunity (lucrative), if you can really get to the bottom of it.

It would befit someone of your intellect to try to figure out why the post was so popular, instead of an arrogant dismissal.

Re: Ask HN: What’s the biggest difference between professional coding and academia?

#43
The consensus here is that "professional" code is more maintainable than "academic". That's probably the ideal, but not entirely sure it holds up in practice. In particular, approaches which put a lot of emphasis on clarity and "testability" of individual functions/"units"/whatever can make it harder to understand and reason about what the program as a whole is doing.

Also, the focus on building software in teams seems to lead to architectures that need teams (vs. suites of manageable-size, "do one thing well" tools).

Slightly different take on this: http://yosefk.com/blog/why-bad-scientific-code-beats-code-fo...

Re: Ask HN: What’s the biggest difference between professional coding and academia?

#46

Academics aren't paid to code. Academics are paid to do research. Professional coders are paid to code.

Maybe this is unusual, but I've seen labs hire CS grad students to write their code. I always assumed this was widespread practice.

Re: Ask HN: What’s the biggest difference between professional coding and academia?

#47

Academics aren't paid to code. Academics are paid to do research. Professional coders are paid to code.

Maybe this is unusual, but I've seen labs hire CS grad students to write their code. I always assumed this was widespread practice.

That is usually done for large research projects that collaborate with industry and require high quality code (e.g. EU-funded project "HOBBIT"; https://project-hobbit.eu/)

Re: Ask HN: What’s the biggest difference between professional coding and academia?

#48
post #37
post #3

Earlier quoted context omitted.

Currently having this problem right now. The authors also don't respond to emails either.

Because they're working on the code for other papers and fixing old code doesn't add anything to their CV. Try to make your company offer them money to cooperate. They might be suddenly very interested in your questions.

I'm just a student doing research, trying to use their code. I don't even want them to fix the code, I just wanted to ask the primary sources about how they implemented a few things. I don't have to ask them, I could go to someone else or a forum and ask the same thing. Maybe I'm naive, but it doesn't take a whole lot of effort to just respond back and tell me that they don't have time.

Re: Ask HN: What’s the biggest difference between professional coding and academia?

#49
post #26
post #23

Earlier quoted context omitted.

This is not a good rule of thumb, it depends on what your research is. In most cases I've dealt with (security) the academic software displays terrible performance characteristics and is very buggy. The industry application that surfaces years later does not have these problems but it doesn't present anything novel.

I said academic systems papers; their evaluation criteria is generally performance.

Not really. Their evaluation criteria is usually only performance if there are existing established ways of doing something.

Re: Ask HN: What’s the biggest difference between professional coding and academia?

#50
post #41
post #28

Earlier quoted context omitted.

> Previous HN discussion: "Why can't you guys comment your fucking code" Who is that clown? and why is the shit-post of a 4-day old reddit account being discussed all over the interwebs like gospel? That person very likely has regrets not finishing high school and is venting frustration in the form of misplaced anger.

What resonates with people, and why, is a rather deep question. Indicative of an arbitrage opportunity (lucrative), if you can really get to the bottom of it. It would befit someone of your intellect to try to figure out why the post was so popular, instead of an arrogant dismissal.

What makes you think a highly upvoted online discussion is something that resonates with people, especially in the era of strong correlation between anonymous foul-mouthed posts and massive vote manipulation.

But let's discuss that post in case you couldn't assess the level of ignorance of that shit-bag:

- A universal claim, e.g., one starting with "every [javascript] project ...", is fairly easy to debunk (I guess it's fair that a high-school dropout like him did't know that), and lo-and-behold, it did not take me more than 10 minutes of google and github search to find javascript projects with a near-complete absence of code comments, and with variable names resembling the ones that moron was complaining about.

- He is a total hypocrite, as pointed out multiple times on reddit as well as HN, for pissing on other developers about short variable names and yet making a post and comments full of acronyms himself.

- If JS developers are 'inbred peasants' (his own characterization), the fact that one of those visits a machine-learning forum and throws a temper-tantrum at the whole community for variable naming and code comments, only goes further to confirm the impression that the JS community carries some of the least-educated, least-knowledgeable nasty teenagers who just discovered the developer console of a browser they use 24x7 to cast slurs on each other, and now they think they're the gods of computer science.

Even if you ignore all that, the biggest thrust of that shit-post is a wholly subjective one, that variable names he's encountering while reading machine learning code are _not to his liking_. That is it. I could just as well go ahead and say, ctx_h is a perfectly fine variable name, 'ctx' stands for the word 'context' (a well-known shorthand), the underscore is borrowed from the latex convention of subscripting, hence the 'h' is a subscript. And while it is not clear from the name what 'h' should stand for, it's obvious that ctx_h is a special case of some 'context', and it's completely fair to expect the reader to understand this source code in light of the paper associated with it, (which by the way is the source's documentation and, in a sense, a super-polished form of code-comments). Not to mention, this naming convention is practised even more faithfully in the mathematics community, where you would find names like x_i, a_0, all over a theorem or proof (again underscore representing a subscript). And yet my whole argument would be based on a subjective opinion.

While I completely admit that academics, by virtue of being domain-experts first and software-developers second, are more likely to suffer from problems of lack of clean coding and established software-engineering practices, it is far from being a black-and-white case. Not even close. Spending half a decade in a grad school after spending many years in the software industry, and advocating use of modern software-engineering practices, I recently took up work at one of the big software companies, and was shocked to find out the quality of their C++ code was worse than any of the Fortran and C++ codebases I encountered at the university. And personally, I've found machine learning python codes to be a fair bit cleaner than most C++ codes I've come across.

I'm not against criticism, and I think machine learning community could use a lesson or two on software engineering, but if you're up for such undertaking (criticizing the whole community) you better make sure you don't come across as a complete ignoramus and a hypocrite.

Post reply on HN