Learning C/C++
#1
Posted 09 October 2006 - 10:03 AM
What would a realistic time line be to become proficient in C then graduate to C++.
Ideally what ground should I be expecting to cover over the next six months.
Here's the caveat, I'm not the brightest, no mathematician and next to no programming experience, other than very basic acquaintance with C years ago in Macintosh Workshop and Visual Basic not so long ago. OK so please keep this in mind when you say 'oh it only took me three weeks to learn how to re-work my linux kernel in C++'
#2
Posted 09 October 2006 - 10:09 AM
On a real note knowing math is your biggest help, because programming and math go hand and hand. You will have to learn C before C++, unless you want to make it alot harder then it needs-be. Just go buy yourself a copy of C for dummies and get started. That is where I started, and even though. I don't program, I do know how to do it. I just find programming very boring.
#3
Posted 09 October 2006 - 10:34 AM
"buy yourself a copy of C for dummies" funnily it's what I started with on the mac.
For pacing I think I'll go checkout CS at a local Uni and get their course outline.
Oh and as for the jokes please, please, please.
Edited by candy_flipper/serial_killer, 09 October 2006 - 10:35 AM.
#4
Posted 09 October 2006 - 10:59 AM
It's a myth that you need to learn C before learning C++. There's really no valid reason why someone new to programming cannot begin with C++.On a real note knowing math is your biggest help, because programming and math go hand and hand. You will have to learn C before C++, unless you want to make it alot harder then it needs-be. Just go buy yourself a copy of C for dummies and get started. That is where I started, and even though. I don't program, I do know how to do it. I just find programming very boring.
#5
Posted 09 October 2006 - 11:19 AM
not, really I start learning C by using programming C++, and I moved to C and found it alot eazier.It's a myth that you need to learn C before learning C++. There's really no valid reason why someone new to programming cannot begin with C++.
#6
Posted 09 October 2006 - 01:38 PM
Go for a pure top-down or bottom-up approach. If you really want to learn about hardware, operating systems and all that tasty low-level stuff, you can start with assembly language. Many people disagree here, because they think it's too difficult to use. Since you won't be using it to make large programs that actually do useful things (which is difficult in assembly , and takes considerable skill), this just isn't a concern. Also, once you understand assembly, C will be a snap to understand. The biggest difficulty of understanding C is knowing what's really happening behind the scenes. Without that, you'll never really understand your C code.
A top-down approach would mean starting with one of the modern dynamic programming languages. I love Ruby, but it's for the OO purist (that means if you don't already have a strong grasp of OO concepts, perhaps you should skip it for now). Python is a good place to start. It's easy to learn and has TONS of free documents and books you can get for free over the internet (and python itself is free too, of course). Starting with top-down means you'll be writing more useful programs earlier, but you won't understand what's really going on until later.
People learn at their own pace. Don't set schedules for yourself, artificial goals don't help anything. The important part is to be learning something. Don't mess around for months or even weeks looking for the "perfect" approach, just start learning something. Whatever you learn, whether high-level or low-level can be applied to the next thing you learn. Don't think you're trapped in whichever language you've learned either. If you think it's time to move on, learn another language, all the concepts you learned from the previous language will help you, so don't be too unsure of "abandoning" all the time you invested in learning a particular language. Remember, it's the concepts that are important to learn, not the specifics of the language. Once you understand all the concepts, learning new language is a snap. If you just learn from "tutorials" (type this, and you'll get this result), you'll never move from that language.
#7
Posted 09 October 2006 - 11:07 PM
#8
Posted 09 October 2006 - 11:13 PM
If you wanna know more about how computers and software work, just get a good assembly language book, such as "Assembly language step-by-step" by Jeff Duntemann. You can't be wrong with that book.
#9
Posted 10 October 2006 - 04:49 AM
I'll look into Python & asm as well.
Ohm, Interesting advice. I was trying to avoid asm I just assumed I’d need to use it with an emulator. Your right about the goal setting- it's not worth getting stressed about but I think I do need some sort of goal to help motivate me, hell I was supposed to be finishing some (five) assignments but just spent the day pissing about on the net.
Aghaster, thanks for the link. btw nice jumper.
livinded, what can i say CHEERS I’ve been looking for some non-technical books for some fast gratification; the shopping list is sitting on my table for tomorrow.
#10
Posted 11 October 2006 - 02:31 AM
1) Pick a decent IDE. You really don't want to be worrying about command line options and shit while you're learning. On windows, the commerical IDE's are vastly superior to any of the free ones, so do yourself a favor and spend a few bucks.
2) Consider a high level language. There's no reason (besides ego) to start with C. Those with interactive shells like Python, ruby and lisp/scheme are ideal.
3) Stay the hell away from C++. C++ is to C as cancer is to the lung.
Edited by eliasd, 11 October 2006 - 02:41 AM.
BinRev is hosted by the great people at Lunarpages!












