top | item 21235220

(no title)

throwaway57023 | 6 years ago

Writing code in research is quite different from writing code in industry. For starters, in research, absolutely no one will read your code. Not your boss, not your peer reviewers, not your colleagues, not your tech-savvy users. No one. They just care about getting the right results and will complain if they don't, which most of the time steers you into producing correct code.

Also, most programs usually have a maintainer team that's exactly one (1) person strong, and that person is usually an underpaid grad student or postdoc with a billion other tasks at hand and not much time left for that issue you opened three months ago.

On the other hand, hey, you never have to fear the dreaded 'code review', so it's not all bad.

discuss

order

GordonS|6 years ago

> Writing code in research is quite different from writing code in industry

Hah, not always.

A short while back I was tech lead for an AI project, the goal of which was to reduce the weight (and, ergo, cost) of large steel structures.

The megacorp consultancy I work for decided to staff this project only with AI people, about half of which were fairly fresh graduates. Now, they all had a great grasp of AI, both old-skool (neural networks, genetic algorithms, particle swarm optimisation etc) and more recent innovations. But these were not developers.

The customer was a Microsoft shop, and mandated that we use C# (which was cool, it's my favourite language!), but it was immediately apparent that the "devs" had only basic training in Java. The code was a fcking mess, and we had numerous issues around software engineering concerns such as source control, DevOps and processes - the customer eventually canned the project due to the bugginess of the platform. They really did have some brilliant minds on the project, but those were not the minds of software engineers.

On a more recent AI project, unusually I was consulted first on staffing, and I insisted on a mix of AI research types and* software engineers - unsurprisingly, this project was far more successful.

dEnigma|6 years ago

Seems like your formatting was messed up by putting an asterisk in "f*cking", which caused everything to be rendered in italics between that word and the "and" which you actually wanted to be in italics.

ujuj|6 years ago

I just finished an internship at a research lab and was completely dazzled by the lack of control on the code people write.

The reasoning is that since it's research code that is used to get results only and not be used in a product, doing tests is not useful. I disagree completely: being sure that your implementation of your model or equations is exactly doing what is should is very important to evaluate your model, and yield correct results.

dimtion|6 years ago

I imagine you said that as tongue in cheek, but good "code reviews" should not be feared. If it is the case it either means that environment you are coding is toxic, or that you have not made clear with your peers that code review is not about judging.

Code review should not be about being right or wrong, but as a team to provide the best work possible. People should accept that everybody make mistakes, and the goal of the environment/society is to minimize the consequences of those inevitable mistakes, not judge individuals based on arbitrary metrics.

ShroudedNight|6 years ago

Code reviews delay gratification. Often by long enough that the visceral relevance drops off a cliff. While (good) code reviews definitely improve the software quality for a project, they can be very jarring breaks in flow. It should be fairly understandable why some of us would regard them as about as pleasant as eating a fibre supplement.

lupire|6 years ago

Problem is, we don't want the results the author thinks are right; we want the results that are accurate.

chimi|6 years ago

The problem is, it's impossible to know if they are accurate without doing everything the computer was coded to do for you.

DataWorker|6 years ago

If only research paid as well as violating the privacy of the American people to trick them into clicking on advertisements there might be more parity in code quality control between research and industry. But we’ve instead allowed google to take all the money away from the scientists, who are increasingly doing societies heavy lifting for free.

pishpash|6 years ago

Generating clickbait ("engagement") and playing roulette ("trading") have become the greatest pasttimes of the STEM talent pool.

analog31|6 years ago

A grad student faces an existential career risk for every day they spend on anything other than finishing their degree. That's because events beyond their control can throw them out onto the street. This includes loss of funding, loss of their faculty advisor, health issues, visa problems, and so forth.

They may also be the only qualified programmer in their group. A lot of research, while officially housed in some specific department, is quite multidisciplinary.

I work in an R&D group in industry, and our team invited a software engineer to join our group and teach us better practices.

macspoofing|6 years ago

>Writing code in research is quite different from writing code in industry.

Depends on which industry. For example, writing code in research is actually a lot like writing Excel macros in Finance.

DougBTX|6 years ago

> They just care about getting the right results and will complain if they don't

That sounds like a group of people willing to cut corners to get approval from their boss... which isn’t all that different from the incentives in “industry”.