beyond the (very) basics

Aug 14, 2011 at 1:26pm
I'm studying physics at uni and as part of my course did a brief introduction to C++, roughly covering the topics in the tutorial here. I really enjoyed it and would like to learn more, as it would be very useful to me in a future physics career, and also because I'd interested in learning about careers in programming/software development.

My question is, where do I go from here? What do you think are the most important topics to study? What books or courses might help me? Some have suggested to me that the way to really learn programming is to get work experience in the real world - at the moment though I'm pretty sure I don't have enough knowledge so how do I get to the stage where that's a possibility? (I'm very aware I've only just scratched the surface of this!)

Thanks for any help you can give.
Aug 14, 2011 at 2:55pm
I'd begin by reading a good book on it, like "C++ primer 4th edition" that should give you the basics and a bit more. There's probably much you already know but it won't kill you to take a second look at it.

It most certainly did not kill me. ;)

After that, well that's up to you. Join an open source project, or something that makes you feel that you are the weakest link in the chain, it's always a good push to learn more.
Aug 14, 2011 at 3:13pm
Given your background, in addition to a C++ tutorial, you might also be interested in a "numerical methods in C++" book.

I don't know which books are in vogue, but you could Google for universtity reading lists which include them (this is my standard way of finding solid books).

I came into softtware development via physics, and my earliest proper programs (as opposed to the ones I wrote out of interest as a teenager, ...) were written to model physical systems.

Using your programming skill to solve physics problems will give some focus to your C++ studies. Outside of algorithmic work, it should also motivate basic GUI graphic, for examples.

Andy

P.S. And algorithms are not only one of the main things you need for physics programming; they are also one of the highest paid skills in the financial programming world.
Last edited on Aug 14, 2011 at 3:16pm
Aug 14, 2011 at 4:38pm
Books are awesome.
Websites are great.
People can teach you.

But the greatest thing you can do is practice. Come up with tasks you want to accomplish and iron them out in code. You'll learn a ton, and the things you need to learn will come up when you need them =]

When I first started I had several goals, after they came into fruition, the knowledge that I gained sprouted new ideas, and it just kept going off, like a chain of small bombs flowering out. It just keeps getting better =]
Aug 14, 2011 at 5:33pm
For me path to learning c++ was simple(ish). I did write always firstly:
1
2
3
4
5
6
7
#include <iostream>

int main(int argc, char ** argv)
{

	return 0;
}

(even then when i did NOT know what parameters to the main function was all about)

Next i just made experiment with printing (aka std::cout'ing) varibles and text. Next big heap (to me) was learning usage of if (condition) // And "derivates" such as else if and else (also switch(condition)) .
After those learning for, while, do-while loops was easier (at least to me).

Next big thing was classes and how to use them wisely... (still on that path :P)

Hopefully this helps... :)
Aug 15, 2011 at 1:14pm
Thanks all. Sounds like a decent book or two and lots and lots of practice is the key :)

On the topic of GUI, what's the consensus- any particular place to start?

And thanks Andy for the numerical methods suggestion - I'm sure I'll do that later in my course but it'd be good to get a head start.
Aug 15, 2011 at 2:20pm
GUI-wise -- are you going to be starting off with Mac or Linux or Windows?

One possibility is to look at a cross-platform GUI toolkit, like Qt, wxWidgets, or FLTK

Andy

P.S. If you google "Qt vs wxWidgets" you will find loads of debates about this.

P.S.S. You can also search this site for "wxWidgets" and "fltk" and look at the "should I use..." type of threads. They will usually compare toolkits against each other. (the site didn't let me search for "qt" -- I guess it must ignore very short words?)

P.P.P.S. As ultifinitus has since pointed out, the previous P.S. should have been P.P.S.
Last edited on Aug 15, 2011 at 4:13pm
Aug 15, 2011 at 2:52pm
andywestken wrote:
P.S.S.


http://en.wikipedia.org/wiki/Postscript

QT has done well for me, I have few complaints.

If you haven't done much programming you may find it confusing.
Aug 15, 2011 at 4:06pm
I do have some knowledge on C but I know that it is different from C++ I just don't know how far is their differences. And so, I am trying to learn things in here. :)
Aug 15, 2011 at 4:11pm
@ultifinitus

Erk - meant to double the P, of course. Not sure what happened between my brain and the keyboard!
Topic archived. No new replies allowed.