Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is an issue in my field (Engineering) as well.

Most people in my field (materials engineering) are not programmers either they are lucky if they've done one intro course 10 years ago (which was probably done in a language like Java or Visual Basic).

Even then what gets taught in an intro course at university is not the type of code that is written "on the job". I did two semesters of programming courses when I was at uni (as electives) my courses were taught in Java and focused on stuff like object oriented programming and memorizing stuff about "the waterfall model"

There is a pretty big gap between this and my first experience which was being sat down in front of some 30 year old Fortran code which had no objects, no classes etc.

The goto at least in my org when people are trying to understand scientific code - write their own algorithms etc is the 30 year old "Numerical Recipes" (https://en.wikipedia.org/wiki/Numerical_Recipes) textbook. The explanations in this textbook are best and simplest I have come across by far.

I know I personally referenced this book heavily when I was writing code in C to do Spline interpolation/smoothing. I am unaware of any other reference for a lot of algorithms/techniques than this book.

Only other thing I am aware of is the GNU GSL library which in my experience is harder to understand for beginners - even it's example code is "for loop based"

For example: https://www.gnu.org/software/gsl/doc/html/bspline.html

If I had to convert this code to R (which I do know) or python (which I've never written) I'd probably write it this loop based style as well it's what I know and what makes sense to do me and the people in my org I'd expect to be interacting with my code. (the "Engineers can write Fortran in any language meme" is a real issue).

Maybe someone should write a new textbook on "modern" way to solve these sorts of problems if such a thing exists I am unaware of it but would certainly be welcome.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: