I’m currently preparing for a Machine Learning exam. While the course covers frameworks like numba, pycuda, and scikit-learn in Python, there’s no strict language requirement for assignments.
I’m personally drawn to Julia’s ML ecosystem (e.g., CUDA.jl, Flux.jl, MLJ.jl) and would prefer to focus my study there. However, I’m concerned that most companies seem to prioritize Python knowledge for ML roles.
What are your thoughts on this? Should I stick with Python for my exam prep and explore Julia in my spare time, or do you believe focusing on Julia now wouldn’t significantly hinder my future career prospects? Any advice is appreciated!
Hard to disagree with “most companies seem to prioritize Python knowledge for ML roles,” especially in an era of AI-driven HR. So, there’s a good argument for having sufficient Python skills to get the job.
Having both Python and Julia on your resume may be an even stronger statement, particularly if you can clearly articulate the value in that.
Last point: in my experience, it is often the case that practicing data scientists have a fair amount of liberty to choose their own tools, especially given that some will come from a Python (programming) background and others from R (statistics). This will obviously depend on the company, projects and shared workflow, but probably worth asking about. So while Julia may not get you in the door by itself in these cases, you may be able to work with it once you are in.
In general it’s good to first learn the tools that your target field now uses, and then you can later make a bigger push to Julia when/if you get a chance. How much to spend time on Julia on the side… follow your heart
I don’t believe a single course will determine the future. If the language requirements are truly not strict, go with anything that just gets the course done. But I’d double check this - I’ve submitted too many LaTeX documents only to learn that they expected docx, or programmed my analysis scripts in Julia only to learn that Matlab was expected.
If you want to showcase the course and your code on your resume, then I’d say pick Python and dabble into Julia on your spare time.
If you hand in in Julia and the grader isn’t familiar with Julia, you may want to point out things in your code that people from other languages may think are bad practices, e.g. indicate that your for-loops are not bad for performance etc
You can prioritize and specialize, but don’t sacrifice. You see academic and professional merits of learning ML in Python, and learning it won’t stop you from learning Julia when you have the time and introducing its relative strengths into your work when it’s worth it. Even if we wrongly assume that you can do the same things with Julia as you can with Python and that Python users will always have the patience or time to work across a language barrier, you would still have to know Python to collaborate with the Python majority. I strongly discourage reliance on extracurricular tools in predetermined assignments because you’re on your own if any issues or even bugs show up, a disadvantage most students will not have. There are better times to go against the grain.
You will find that knowledge of various algorithms and domains transfers rather readily between languages. If you understand what you are doing, switching languages at any point will be rather easy.
Frankly, as much as I like Julia, I would focus on the course content and stick to Python. The exception is if you feel Python is so frustrating that you have to do something else. I felt that way about Stata.
If you need to include the code with your assignment report, I recommend to stick to a language your mentors are familiar with. That way, you may not get bad grades if the results are not quite right due to minor mistakes, like off-by-one errors or skipping some trivial check.
I just want to echo the great wisdom being shared by folks here. For a perspective, I’ll give my experience doing what you did:
I took two courses on Machine Learning in my MS program where we could use whatever languages and tools we wanted so long as the results we got were accurate and correct to what the TAs had as answers. While the teaching materials were in R and Python, I used Julia.
It was certainly a headache to figure out how to reimplement teaching materials into Julia when there were simple import statements that solved problems for me in other languages. I oftentimes took 1.25x’s - 1.5x’s longer than my classmates on problem sets as I had to figure out how to translate the proposed approaches to Julia, what existed in Julia to solve the problems I was asked to address, and verify with classmates my approach even was correct.
With that said, do I feel like I got a better understanding of Julia per se? Perhaps a little, though I wouldn’t take this route if understanding the ecosystem better is all I would get out of it.
Now did I end up understanding the material more thoroughly as having to re-implement things from scratch myself? YES! Because of this painful process, I ended up becoming much more versatile with the material, understanding why popular packages in R and Python made the decisions they did, and what really happened under the hood of these packages (as well as discovering and understanding neat optimizations they did compared to my own). For that reason, I am glad I went through this tougher process; not to learn Julia better, but to learn the material that much better.
So, to offer perspective from someone who did what you did, that was my experience. Could you do the same with Python or R? Absolutely: Julia is not the reason why I delved deeper into the theory. Rather, it was because I had to verify my hand-rolled Julia solutions corroborated the theory.
I would not sacrifice your learning just for an implementation. Rather, I could be convinced to make the trade-off for time to learn the theory much more deeply in your studies – doing it in Julia was what drove me to this approach. But if you are concerned about learning a particular ecosystem for job prospects, yes, I would stick to a Python approach in particular (especially if you are not well-versed in Python world).
Thanks so much for all the great advice. This personal experience has also been really helpful.
Since I’m at a point where I can’t afford to spend more time than necessary on this, I’ll probably stick with Python for now and look into the Julia equivalents in my free time.
I still really hope to be able to dive deeper into both the theory and the package design choices, just as you mentioned.
Thanks again for all the great advice you’ve given me!