Should I switch to learning C instead?

closed account (z0My6Up4)
I have tried to learn C++ and lost my way. Recently I thought I would be better off just learning C mainly as it is a much smaller language. The thing is for the last two weeks I have had "The C Programming Language" right next to me but have not picked it up. I'm wondering if I should just go back to "Accelerated C++"? I read up to the 3rd chapter of this. Before Accelerated C++ I worked through C++ Primer and worked through the chapter on Classes.

I nearly finished C++ Primer then went backwards and tried to read and do all the exercises in Accelerated C++. When I go stuck I thought finally about picking up C. Like I said I have K&R 2nd edition, plus the answer book and a book called the indispensable guide to C. I have all the materials to get started on C but still I am wondering if I am making a mistake. I have already invested a lot of time in learning C++ and I have many C++ books.

I am wanting to learn as a hobby - something to keep me occupied in my spare time. I have noted that all of the interesting projects seem to have been written in C - Operating systems - Im interested in minix, device drivers etc are all C coded. If I learn C I would be able to have a better understanding of eg how a device driver is coded and it would advance my minix interest. This is what makes me move toward C.. but still I am not sure about giving up on C++.I am certain C has a lot of difficult topics also and dont think it will be any easier than C++.

To help me make my mind up I just want to ask the question here - should I switch to trying to learn C or should I stick with C++?
C is lower level. That doesn't necessarily mean it's easier.

C++ (and C for that matter) are like a weird mix of high + low level languages. They abstract a lot of concepts but still require you have a low level understanding of what is actually happening.



Anyway... to answer your question... if you learn better "top down"... that is... you find it easier to grasp abstract concepts first and then learn the details later... then either stick with C++ or pick an even higher level language (like maybe Python?)

Or... if you learn better "bottom up"... that is... you want to understand exactly what is going on under the hood and build your understanding of more complex tasks on top of that knowledge... then switch to C or another lower-level language.
closed account (z0My6Up4)
I think I am going to stick with learning C++ simply because I have nearly covered most of the important topics. I suppose what I need to do is to try and write a few real programs to get that next step up in my understanding.
Topic archived. No new replies allowed.