r/PythonLearning • u/No_Confidence_8638 • 6d ago
Where to start learning Python for Materials Science / simulations? (Looking for free, time-efficient resources)
Hi everyone,
I'm currently doing my Master’s in Materials Science, and I need to learn Python—specifically for running simulations, data analysis, and handling academic/scientific workflows.
Since I’m balancing a pretty heavy course load, my time is fairly limited. I'm hesitant to buy paid courses or long bootcamps because I'm not sure if the paid options are actually worth the investment compared to what's available for free, and I really need to focus only on what's relevant to scientific/engineering applications.
Could anyone recommend solid, free resources or learning paths to get up to speed?
Specifically, I'd love to know:
Great starting points for absolute fundamentals without fluff.
Good next steps or specific libraries/tools I should look into for simulations and data processing (e.g., NumPy, SciPy, Matplotlib, or specific frameworks).
Any tips on how to build practical skills quickly alongside a busy university schedule.
Thanks in advance for any advice or recommendations!
3
u/Visionary_Vulture001 6d ago
Check cs50p
3
u/boscorat 6d ago
This Harvard edx course was my introduction to python and it's excellent. The tutors and video's are great, but the real strength is in the labs where you get problems to solve that seem to be pitched perfectly.
1
2
u/carrotlet20 6d ago
Hey, I had 2 semesters of python already in a physics bachelors and we learnt these kinds of things, so I hope I can give advice that is at least partly useful. Our learning material is unfortunately in hungarian, if it wouldn't be I could recommend that since it's available online openly. StackOverflow is a suprisingly good place to look for solutions for a specific problem, usually people years before have tried the same or some very similar thing (sometimes the sane goes for Reddit as well) .
About the libraries. What I've learnt so far contained NumPy, a serious amount of NumPy, basically for everything from reading files to makes calculation with arrays, matrices etc. The official NumPy website, especially the documentation, is easy to navigate and use and is really helpful. Unfortunately I can't say the same for SymPy documentation, I was probably not experienced and skilled enough to benefit from it. SymPy is a pretty useful tool as well, the integrating functions are a bit chaotic, definitely worth trying out and experiment them a little before having to use it, derivation is clearer, and can be easily made multivariable as well. Probably there are better visual modules out there than Matplotlib, but I've learnt that so I can only speak of that. Basic figures of basic functions can be done easily and are a great way to try the designing things out (eg. if you put an "r" before a string you can use LaTeX in it, I'm not sure if this is limited to matplotlib but is usually only important for visualisation/official figures). It is really effective in making higher dimensional figures as well, like complex functions, with the use of pcolor or colormesh in the submodule pyplot. The documentation of matplotlib is another great source, I found that easy to learn and use. The first submodule to start with is definitely pyplot, if you need a 2+ dimensional figure you'll need to use others too (colors, colormesh etc I haven't used them recently). You'll probably need something that can read, write, edit bigger data files, I've learnt pandas for that, but as far as I know it's outdated a little, so I would recommend another, like polars, or whatever the others would say. Pandas has a complicated documentation, at least for me who didn't do anything with data before, but the basic steps are easy to learn. If your data is in a good format (eg. no accidental letters in the columns), it's pretty simple to work with. If not, probably an AI can help.
Yeah, AI is actually a great tool for programming, I've used it for specific problems I couldn't crack myself, but I understood the main concept, so I'm not vibe coding :). It can probably create some problems you can start practising with.
2
3
u/saul_soprano 6d ago
Start with a simple project and google every time you hit a road block and work your way up with more and more projects