Live data from Hacker News

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

news.ycombinator.com

31–40 of 54 posts

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

#31
post #9

Academic code typically just has to work once or a handful of times, for a small number of highly expert users, frequently just for the author. Ease of update is of the essence - you'll rewrite most of it many times, as your understanding the problem change. You can use all sorts of ugly hacks so long as you get what you're after. If any of it ever becomes commercially released or whatever, there'll need to be a comp…

Well said. It's like iterating prototypes: why would you spend time and thought engineering it properly? The point of prototypes is they're quick and cheap.

My own experience with reusing code by making a framework in academia: it immediately prompted me to think of interesting cases not possible within it...

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

#35

Maintainability. A lot of academic code only has to last long enough for one project or thesis, and the only maintainer will be the original author. Real-world code will last longer[1], and be worked on by more people, including people of lesser skill without the original author around to guide them. Often, that code also has to run in more environments. This difference is reflected not only in the code itself, but e…

This is important. Plus everything related to debugging when shit happens at 3am and developers are sleeping and maybe contractually not reachable (think about big companies, not startups).

I've been moved to Operations for two years after 10 years of Development. When I went back to Development I started coding as if the 20+ years the code will live after the initial deployment are more important than the 6 months spent creating it. And they are more important for the company, because they pay everybody's salaries and the shareholders. The first 6 months? Not so much.

Academia never has that problem. They also almost never have to deploy code to production.

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

#36
In academia you get to choose your problem. This means that if something isn't working you can restrict the inputs or only operate on some subspace of the problem.

In contrast, industry doesn't let you choose the problem: you need to solve whatever the problem is that the client has. This means generalising a lot further and having a less optimal solution that is more robust to input error or poorly calibrated measurements. Even if it does fail you should be able to identify why and explain to the user what they did wrong.

In academia this feedback process is generally to the person who wrote the software, so a cryptic error message including some algorithmic details might be sufficient to debug the inputs sufficiently.

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

#37
post #3
post #2

Academia only worries about getting results for publishing. Testability, maintainability, clean design, all take a back seat because once the paper is done the author will likely never touch the code again.

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.

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

#40

Maintainability. A lot of academic code only has to last long enough for one project or thesis, and the only maintainer will be the original author. Real-world code will last longer[1], and be worked on by more people, including people of lesser skill without the original author around to guide them. Often, that code also has to run in more environments. This difference is reflected not only in the code itself, but e…

Ha. Check what I wrote two days ago on a different thread https://news.ycombinator.com/item?id=14708868 about great programmer habits.

> easier to maintain code is king. Unless you are writing something extremely time critical do not try to be clever. A little slower is okay (and yes, I am in the performance consultancy business) if it significantly decreases the maintenance burden. Clever hacks belong to toy projects and blog posts. The next person who maintains it will be stupid to the code -- even if it's yourself. That clever hack is now a nightmare to untangle. In short: always code under the assumption that you will need to understand this when the emergency phone kicks you out of bed after two hours of sleep in the middle of the night. The CTO of Cloudflare was woken to the news of Cloudbleed at 1:26am.

Now I correct myself: clever hacks belong to academia, toy projects and blog posts.

Post reply on HN