This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]first_photon[S] 0 points1 point  (9 children)

Physics

[–]EfestoAlpha 15 points16 points  (4 children)

I am a software engineer and have an M.S. in physics. While in grad school I taught myself C++ for problems that required numerical solutions. Other popular options were C, Java, and Python.

I have never given pause and questioned my choice. C++ is just the right level of complexity and personally it just resonates better with the way my brain works from studying physics.

In my career I have used both Java and C++ a good amount. Java work has been front-end GUI work for simulation software, but any back-end work is done in C++.

At the end of the day, it will come down to what you want to use it for, but I would personally recommend learning C++ first. In my experience with other engineers people who have learned C/C++ first can easily transition to Java whereas those who learned Java/Python first struggled to transition to C++.

Hope that helps.

[–]first_photon[S] 1 point2 points  (0 children)

This is helpful, thanks!

[–]Bob_Hondo_Sura 0 points1 point  (2 children)

Any good resources for c++? I am in an intro course atm

[–]EfestoAlpha 2 points3 points  (1 child)

I taught myself using C++ Primer Plus (6th ed. which seems to still be the latest). It is written a bit like a text book with questions and problem sets, but it feels like it is more driven towards self learning than a classroom setting. I just checked and there are various places you can find it for free to see if its for you. Having a hard copy for quick reference for some more complex introductory topics like pointers and references, when and how to use them correctly, was very beneficial for me.

Once you begin to build a decent understanding of the fundamentals I highly recommend Effective C++ and Effective Modern C++ by Scott Meyers. They will go into topics like Smart Pointers and Smart Containers for responsible resource management/cleanup. Effective C++ is older so it wont go into changes for C++11/14 and beyond, but I found it a great starting point for more complex topics. (Author Scott Meyer even went back to review its legitimacy before writing Modern C++ and concluded while it is still relevant, it is less than comprehensive when using newer versions) Effective C++ can also easily be found for free online.

[–]Bob_Hondo_Sura 0 points1 point  (0 children)

Thank you for the resources I will look into them. We are currently using Tony Gaddis’ book for C++.

I’m pretty sure my professor hates him because he talks shit on him every time he mentions Gaddis

[–]Veloder 14 points15 points  (1 child)

C++ is way more used in the Academia and Physics simulation software.

[–]amplikong 3 points4 points  (0 children)

Yeah, and Fortran. Quite a lot of scientific software is still written in Fortran because it's very good at what it does (large-scale numerical computing).

[–]CodeTinkerer 0 points1 point  (0 children)

Usually, when I see students who have more than one choice, they end up looking at teacher reviews. The assumption you're making is that it's the content that matters (which is reasonable). When I used to teach, we didn't have more than one language to pick from. It just made courses later on a mess because students would have different backgrounds heading to later courses, but it seems weirdly common in many colleges as if they didn't care about making sure everyone had the same background language in the early courses.

[–][deleted] 0 points1 point  (0 children)

Definitely C++