I'm working in London as an experienced python developer and Linux systems administrator, and have recently been asked whether I'd like to do some training as my department's got some funds to get rid of. I've got a strong background in web technologies, but my Java is pretty poor and my C++ is nonexistent. This seems to be a good opportunity to fix that; partially to improve my employability but mainly to get a good, solid understanding of an important language.
To this end, I was wondering if anyone here has any pearls of wisdom on the following:
- Which C++ courses are well regarded? Preliminary research has turned up the CPA and CPP courses run by Pearson and the C++ institute, although it's been difficult to find out whether this is any good as I keep coming up with their press release instead of any objective evaluation.
- Which courses / training would you take, if money was no object? I've been looking at the Red Hat Certified engineer qualification, some of Oracle's Java certs etc, but I'm open to ideas.
If anything comes to mind, I'd be grateful to hear your thoughts!
I've been independently studying C++ for 5 years now for free via the internet, and I feel I have a much better education than any course can give me.
The main problem with courses is that there seems to be a consistent pattern of professors teaching bad C/C++ practices - we see it on this forum all the time. I'm taking a C++ class currently at my college, and I have actually had to go and research old outdated and even incorrect information to pass the exams.
Learning programming language often involves bugs; and when it comes to C++, you may be surprised even when you know it.
This said, I'd recommend using IRC if you want to ask for a quick fix for a problem. Because of IRC's nature, response time is nearly instant; comparing to at least few minutes that you need to spend at forum, it's really nice; not mentioning simplified communication.
Myself am using freenode's ##c++basic and ##C++-general although first channel would be sufficient.
And I'd back L B with internet learning. I guess it's always good to use external, safe resources like books, but online tutorials and examples are almost countless. You can approach problem from many different angles, and see many different styles. It helps you choose the one that fits you most.
Cheers!
PS. Of course it doesn't mean I'm against some courses/trainings like Red Hat's or Oracle's. However, I don't know about them, so I'm not in right position to rate them.
Hello; many thanks for that astoundingly comprehensive list! Looks like it might come in handy.
You certainly have something on the dangers of shoddy teaching, or providing qualifications for the pleasure of charging for them; it's the main reason I thought I'd ask a community of people who actively work in the area.
I agree that determined, self-researched work with a language is going to be more productive than taking a didactic course. However, since I've been offered the money, and paid time off work to take the course, it seems like too good an opportunity to turn down - as long as there's a course out there worth taking.
As far as my C++ use goes, it will depend wildly on what future projects take my interest. Having hacked about with a few languages, it would be nice to get closer to the hardware level; I'd also just like to have more tools to approach problems with. Python is lovely but it can't do everything.
If you're interested in the hardware level, skip C++ and go straight to C. C and C++ have diverged quite dramatically over the years, with C++ becoming more high-level and C becoming more low level. For example, plain raw pointers are rarely used in modern C++ anymore.
I have devoted all my time to C++ and so I am no good at C. They're different enough that knowing C++ does not mean you know C.
hiya josh,
i've been on a few courses many moons ago in London.
I believe the 2 companies were 'QA' and 'Learning Tree'. They were both pretty good, but as i said this was about 6 or 7 years ago. http://www.learningtree.co.uk/ http://www.qa.com/