I'm running a Roon end point using RoPieee OS[1] which is connected to my DAC and amplifier. This also allows me to do Airplay or drop any streams on it so I can listen to it either on headphones or speakers connected.
HN user
khadgar25
Perhaps approaching from the point of view of programming as a means to end might be helpful? If they have any hobbies or academic projects that could benefit from automation or using computers, that might be a good starting point?
For example, when I started studying engineering, it was great to see solutions of differential equations and ways to solve them on computers. Others have suggested games which could be great if they enjoy gaming and want to know more behind the scenes. Basically my approach would be to find a problem or two and use programming to show that computers can do wonderful things once we learn how to interact with them in various ways.
"Logicomix: An epic search for truth" [1] is a graphic novel that chronicles the life of Bertrand Russell (logician and philosopher) and his interactions with legendary thinkers like Gottlob Frege, David Hilbert, and Kurt Gödel. I really enjoyed this. It was fun and highly educational.
[1] https://www.amazon.com/Logicomix-search-truth-Apostolos-Doxi...
I worked in a Scientific Computing team for a few years. Having some engineering background yourself and the curiosity to actually understand the code rather than "just port" it to C++ or Fortran will be more helpful. As others have mentioned, there is no one book or silver bullet but developing a good relation with the research team is a good starting point. Researchers love to talk and explain their stuff but often don't consider the scalability very well.
MPI is the usual backbone in parallelizing scientific applications so unless you have experience with it, getting some familiarity will be helpful. A good resource is Parallel Programming with MPI by Pacheco. MPI itself is not very hard but thinking parallel can be challenging unless you have some experience.
Just a word of caution though, well written MATLAB code is very hard to beat performance. You will need to carefully understand latency and bandwidth aspects of the cluster in order to get the most benefits out of parallelization.
I am a physicist by training but have been doing scientific computing after my PhD. I worked a quant and now write code for numerical simulation of various PDEs. I typically use C/C++/MPI/CUDA/Python in a linux environment on large scale clusters.
I love writing code and do side projects from time to time but I really enjoy applying the programming skills to solve a physical problem.
I have a PhD but I work in industry. We have people from national labs usually because of compensation. It's not high six figures but it is pretty competitive especially for the area I live in. I worked in finance for a few years in New York and although the pay was better, living in Manhattan has a way to humble you :)
To be honest, I feel like I really lucked into this job and don't really know many places that employ people like me for solving PDEs in industry but you could definitely try something like quant researcher/developer which will alleviate some of the compensation woes from university and still have aspects of mathematical code to some extent.
Not really udemy but CppCon youtube channel (https://www.youtube.com/user/CppCon) has a lot of content from all over the industry and since last year they even added back to basics track which goes into some advanced topics.
The talks cover a variety of topics ranging from production issues that big orgs like google face to people implementing scientific code at national labs.
I do scientific computing i.e. solve partial differential equations that arise in engineering using C/C++/CUDA/OpenCL with some Python/Matlab interfaces for non-specialist scientists to use.