Newbie would like some C/C++ advice.

Hello,

After 25years in the steel industry i have now lost my job due to closure and my local job centre have offered to pay for me any C & C++ courses.

I have no knowledge of any computer language however i would like to learn C & C++ for two reasons.

1) for a possible future programmer job.

2) My hobby is building DIY modular synthesisers (Eurorack) and I've got to the stage where i would like to be able to write firmware/software for Cortex ARM processors/Teensy 3.2 etc for plans of possibly building my own synth modules.


So the questions buzzing around my head are...

1) Do i need to learn C first before i learn C++ ?
2) Am i just jumping into this blind and need to know other things first ?
3) Should i do a online course, any recommendations ?

any steering in the right direction will be gratefully received.

PS sorry I've just noticed i maybe should of put this in the beginners forum.
Last edited on
1.) No. C++ is fine.
2.) I think learning C++ is a good choice. A lot of schools (mine included teach it as their first course). Most teach Python nowadays but I personally like C++ as an introductory. That being said, C++ is stricter than most languages which makes it a little less beginner friendly.
3.) I have none. My school offers an online version of an introductory C++ course, but unless you are a Mormon you probably won't want to take a course by BYU.
1)You don't have to.
2)Try learning some simpler languages first, to learn some general syntax. Javascript would work well for this .
3)The tutorial on this website should be fine to start off.
Last edited on
Hi and welcome to cplusplus :+)

1. No. IMO it's much better to learn something higher level like C++ first. C is more for lower level stuff, doing this first will be harder in a lot of ways. C is also a different paradigm to C++, it involves a different line of thinking. I think this link might be helpful (it's a post by one of our top members)

http://www.cplusplus.com/forum/lounge/183836/#msg899457


2&3. The more you learn before the course starts, the better of you will be. Make use of the tremendous amount of knowledge there is here on this forum with it's members, start out simple, read the tutorials and some of the reference material as you go. Ask lots of questions, plenty of folks ready to help :+) Above all try to write as much code as you can. Be aware that not everything on the internet is correct. Get yourself a really good textbook.

I am not sure about learning another language in the mean time, each language has it's own formats, conventions and intricacies - this might make it harder to chop and change from one to another right at the start.

Languages do have things in common though: concepts such as types (int, unsigned int, short, long, double ), functions, flow control if, else if, else statements, looping (while, for, do)

It's these concepts that are handy when you come to learn another language, they are quite similar from one to another, but I wouldn't recommend learning another language right now to try and get ahead on that.

Any way, Best of Luck :+) we all look forward to helping out in the future. Regards
i would like to be able to write firmware

Fantastic :) everything you do with the synths will set you up for a job in embedded systems, theres a lot out there and the money is usually good :) The world is full of wannabe games programmers.

1.
From experience I can tell you that C is very widely used in firmware so if you find C++ hard to pick up, drop back to C so you can make progress on your board. Almost all C experience is relevant to C++. And in the early stages of learning seeing results is all important.

2.
Yes you are jumping into it blind, and that great. You have few preconceptions. There are other things you need to know first, but you can do them on the same day so to speak.
Get a demo program working on your board, then change it to do something else, even if it just flashes a couple of LEDs. progress progress progress.

3. you can do an online course if you like, they "should" give you structure and a learning path. But my opinion is to just dive in, get example code running and learn how to use a debugger to watch it working.

The most important thing you already have. A genuine interest and an existing hobby to apply it to.



Something every coming into programming in C, C++ or a language with a C-like compilation-link cycle:

https://www.daniweb.com/programming/software-development/tutorials/466177/understanding-c-from-source-to-binaries

I really mean it. Understanding how the lines of text you type get turned into a program that runs will make everything easier. Many starters don't learn this. It seems to be very rarely taught - most people only learn it when they spend a day staring at their code trying to find an error that they don't understand isn't actually in their code, and finally someone points them in the right direction.
Thank you everybody for all the replys your steering me in the right direction
Topic archived. No new replies allowed.