They, of course, have very strong reasoning/learning skills. So, sitting in the freshmen programming course has been a suboptimal use of their time. Are there online courses that quickly rise from beginner to intermediate level? Something that teaches good programming habits (solve problems on paper first, effectively use library documentation etc)?
Even a recommendation for a bootcamp over the summer would be great.
I skimmed it and it is not bad.
After this, perhaps a university-level data structures course?
I would not recommend a bootcamp from what I have heard (I have proper CS degrees, and did consider one elite bootcamp back in the day so did some research)
I wrote a free course on fundamentals of computing and Python that can get you up to speed on Python. Can you ask them to check it out of it works for them?
Will be happy to help out.
- Learning Scientific Programming with Python by Christian Hill - OR -
- Numerical Python: Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib 2nd ed. Edition by Robert Johansson
AND THEN one or two of these depending upon interests:
- Understanding Optics with python
- computational physics: problem solving with Python by Paez, Landau, and Bordeianu
- Classical Mechanics: A Computational Approach with Examples Using Mathematica and Python
- Dynamical Systems with Applications using Python
Your colleague can browse through those (some of them are probably in the university library) and see which ones they prefer. Doing physics with python will make the learning process more fun, imo.
Some other books for getting a full picture of beginning and intermediate python are:
- Introducing Python by Bill Lubanovic (book might progress a little slow for your colleague but a good starter book)
- Fluent Python by Luciano Ramalho (there is a new edition coming out shortly... this is a good intermediate Python book).
- Neural Networks from Scratch in Python by Kinsley and Kukiela... you build a basic, but complete, NN library in python with optimization, back-propagation, and everything using numpy, python classes, and so forth
Other than searching for topics to learn, I also recommend these resources to learn more about python and python for physics computation:
- https://learnbyexample.github.io/py_resources/
- https://composingprograms.com/
- https://pythonprogramming.net/
- http://scipy-lectures.org and this Hacker news post and links therein: https://news.ycombinator.com/item?id=25682103
- https://pythonnumericalmethods.berkeley.edu/notebooks/Index....
- Mr. P Solver's Youtube Channel (highly recommended!)
- Freecodecamp (someone already recommended that)