C or c++ programming.

C programming.
Iv’e decided that i really need to do a “proper” course of some sort.
What i really need is some sort of tutor or workshop i can attend.
Working from books just is not cutting it for me.

w London , any ideas please ?

It’s gonna cost.
Lots.

There are plenty of very good online tutorials…perhaps you just haven’t found the right one. Keep looking until you find one that makes sense to you.

There are also some very good books available, too. Go to Amazon and read the reviews on the C/C++ books there and take a chance on one. If that fails, check local technical schools or colleges to see if they offer courses. Most will likely let you attend as a “for audit” student at a fairly reasonable price. I wouldn’t settle for online courses, as you may find it desirable to have the prof in class with you so you can ask questions.

Finally, if you are new to programming, stick with C first and take on C++ after you are very comfortable with C. A mastery of C will serve you in good stead for most programming tasks. You can take on C++ when you feel you’re maxed out on C.

UCL do some good courses. They last three years, and cost lots of money. They're called "A Degree".

majenko:
UCL do some good courses. They last three years, and cost lots of money. They're called "A Degree".

ive done done a couple of them.
Im in the uk.
Required qualification these days to be a postman or burger flipper.

Required qualification these days to be a postman or burger flipper.

I needed that laugh.

Someone here posted a link to a free online course… I think it was in the Bar Sport forum. Caveat noted on not having a direct line to the instructor, but I’ve found StackOverflow and this forum can answer just about any question you have. Very rarely have I gotten stuck and not found at least one SO question with thoughtful points of view and references.

It’s a great time to be alive. General academics aside, universities are losing their monopoly on knowledge.

I learned how to code c++style with NeverWinter Nights video game.... perhaps something along that line is what you need to start on...There are many video games out there which allow you to modify code... I believe the unreal engine as well is a good one... and there is more then enough tutorials on that stuff.

Iv'e decided that i really need to do a "proper" course of some sort.

Have you taken a "proper" computer science class using any language OTHER than C?
If not, you might want to look for that instead of looking for a C class. C is very much NOT "in style" as an introductory programming language, so it's probably difficult to find such a class. Java is more common.

The various important principles of programing: variables, data, scoping, decisions, looping, functions, subroutines, libraries, pointers, and so on, are common to MANY computer languages, so if you find a class that explains them well in Java, or C#, or Visual Basic, you'll be able to carry important knowledge over to C without many problems.

Unfortunately (IMO), a lot of beginning programming classes throw very advanced concepts (graphics, internet, etc) into their classes in an attempt to hold the interest of people that have been USING computers since they were tiny. I guess that's OK, but I tend to believe that it leaves too much in "black boxes" that obscure the basics (interestingly, this is the same complaint that many "real" microcontroller programmers have against Arduino.) This means that I don't have any particular MOOCs to recommend; I've only browsed a couple, didn't particularly like them, and I'm not sure I'm qualified to evaluate them :frowning:

(Hmm. Stanford's CS106A has a promising course title ("Programming Methodology") and the intro lectures sounded pretty good. http://www.youtube.com/playlist?list=PLEB3C3CDCD100F5C9 - This is a videotaped "live class" rather than an online class with all the bells and whistles.)

Note that that a typical "intro to programming" University class is 10 to 15 weeks of 15 to 10 hours of work per week (1/3 in class, 2/3 homework/reading/etc.) And that that qualifies you to ... take the next class. There is a lot of effort involved in the "formal" development track.

If you can't learn C from a couple of good books, and a computer to actually try out the concepts as you learn them, then maybe computer programming is not for you.

westfw:

Iv’e decided that i really need to do a “proper” course of some sort.

Have you taken a “proper” computer science class using any language OTHER than C?

Fortran, but early days, when most decent courses were still in the USA.

Couple of pascal later , distance learning with open university.
Mostly used assembler which for most of my ilk was self taught.

This means that I don’t have any particular MOOCs to recommend; I’ve only browsed a couple, didn’t particularly like them, and I’m not sure I’m qualified to evaluate

Yes , im finding that.
Ou has good courses but they have to be done according to their timetable which does not suit me.
If i had the money i would do a residential course anyway.

SirNickity:
It's a great time to be alive. General academics aside, universities are losing their monopoly on knowledge.

Yes , i happen to think my generation has seen the very best this world has to offer, in the west anyway.
Very not sure the upcoming generation will take that view though.

SirNickity:
Caveat noted on not having a direct line to the instructor,

Thats the real sticking point i think.
I really did not expect learning c to be that difficult for me.
I seem to have forgotten loads.

Making lots of silly mistakes , still using pascal syntax a lot.
Sometimes difficult to form the right question , posting code here and asking whats wrong with this all the time will probably get some deserved terse coments.

I recommend Kelley and Pohl's "A Book on C".
It has an intro to C++, and I find the style much easier then K&R.

AWOL:
I recommend Kelley and Pohl's "A Book on C".
It has an intro to C++, and I find the style much easier then K&R.

That's because they are "standing on the shoulders of giants" :wink:

AWOL:
I recommend Kelley and Pohl's "A Book on C".
It has an intro to C++, and I find the style much easier then K&R.

Funny you should say that, I really like K&R's style, very clear and to the point. I've never come across another tutorial style book that impressed me enough to recommend it.

But perhaps that just demonstrates that one size doesn't fit all, and that the OP is well advised to keep looking until he finds the book that clicks for him.

Learning C for me had four components:

a) generalizing from languages such as Pascal and FORTRAN I already had some experience with
b) reading K&R
c) writing lots of poor to mediocre C code
d) reading code examples from people who knew what they were doing with the language, and seeing how my poor to mediocre efforts could have been improved.

I think really good C programming approaches art. An extravagant claim perhaps, but although I've seen code in other languages where I think "that's clever", I occasionally see things written in C where I think "that's beautiful". I think the difference is due to the unusual and elegant expressiveness of C.

Having said that, you don't have to treat C any differently to any other 3GL. Some people insist on writing BASIC programs in C, and it is quite doable. Certainly, you can write var = var + 1 in either BASIC or C. But in C you can also choose to write either var++, or ++var to increment a variable, and the difference between those alternatives, and why you'd choose one rather the other in a particular situation, is the sort of nuance that sets C apart from clunky languages like BASIC. But also perhaps makes it more challenging for beginners.

I'd certainly recommend getting reasonably confident in plain C before moving on to C++. C++ is an outgrowth of C, with lots of extensions in various directions, some well-thought out, some not. C is a small, compact language. C++ is not. I almost feel sorry for those who start learning C++ without having learnt C first. You will miss out on the "small is beautiful" thing with C in that case.

I like C. C++, as a whole, I have more mixed feelings about. But learning C/C++ is definitely a journey worth undertaking.

Thanks for the suggestions.
Letters up the chimney, ill see if santa obliges.

Only book in my local , once excellent, reference library was C++ for Dummys.

Really glad I did not buy that one.

robtillaart:

AWOL:
I recommend Kelley and Pohl's "A Book on C".
It has an intro to C++, and I find the style much easier then K&R.

That's because they are "standing on the shoulders of giants" :wink:

So was Stroustrup, but look what a pig's ear he made of his first edition.

I agree that C is elegant. When I write programs, after spending some time contemplating the best way to divide tasks into functions, then how those functions should work, then writing the code to implement those ideas, I often look back at the screen and think -- gosh, that's pretty! :smiley: Maybe it's just a face a mother would love, I dunno, but it's nice to look at.

Anyway, the best thing you can do to learn C is come up with a small project that inspires you to keep plugging away at it. For me, it was learning how to read .wav files. I started with learning the basic stuff -- file I/O, reading command line parameters, building structures and learning how to use pointers and all that. Once I could open a file and read the headers, I moved on to learning how to open an ALSA sound device. And then how to buffer and play audio samples. There were small, achievable goals along the way... some I could meet within hours of looking up APIs and example code. Each success gave me the confidence to add one more new thing.

Before long, I was flying solo. I had test code to get all kinds of data, or just play a file outright. I was rocking out to Cee Lo Green with a big ol' "IT WORKS" grin on my face. Shortly after that, I upped the ante to reading MPEG audio files too. During my research into file specs, I found a post where someone made an error calculating frame sizes, and I thought, HEY! I know how to do that now! So I posted a working code sample in reply. Two years later, a developer working on Firefox found that code and asked to use it in Mozilla's push to abstract the media player stuff from the native OS libraries. That was a rewarding experience.. my humble attempt to learn C ends up in a product tons of people use on a daily basis. You never know where your code will end up when you contribute to a discussion online! It's awesome.

AWOL:
I was at the Software Development Conference in 1987 (I think) when Bjarne gave a talk titled: "C with Classes". There were about 750 of us in the auditorium. At the end of the talk, 749 walked out saying: "WTF was that all about?!"

I've known a ton of super bright programmers who can craft beautiful code, but they simply don't know how to pass that knowledge on to someone else. I had a programmer working for me who was probably the best coder I ever have known. One summer I gave him a really bright intern to mentor. Two days later she came to me in tears saying she quit. When I asked why, she said Tim refused to answer any of her questions. Actually, I'm sure he answered her questions...she just didn't understand his answers.

For students of any language, you just need to search for a writer who resonates with you. Personally, I found K&R pretty tough sledding. Thinking others might feel the same led me to write The C PRogramming Guide back in 1982. That's a pretty big chunk of hubris, but the book did very well...different strokes for different folks. For this student, do some research, examine the online resources, read some C reviews on Amazon, and find a book that works for you.