- Dec 11, 1999
- 16,363
- 4,068
- 75
C++ does all of those things, if you use the STL.
Perhaps. But I've never found any really good documentation for the STL online. This is the best I've ever found, but it doesn't hold a candle to JavaDocs, IMHO.
C++ does all of those things, if you use the STL.
Perhaps. But I've never found any really good documentation for the STL online. This is the best I've ever found, but it doesn't hold a candle to JavaDocs, IMHO.
So much hate for C++.
Yeah, pointers and memory management can be a bitch to begin with, but I think that it's an important skill that you need to master.
Well, this is an interesting topic of debate. I'll go with: no it's not, and no you don't.
As someone who started with BASIC in 1975, graduated to assembler in the early 80's, and taught C++ to corporate students in the early 90's, I have a healthy respect for that language and all the now-arcane skills that went with it. But over the same period I have watched the level of abstraction that the average developer deals with increase steadily, and for very good reasons. Unless someone tells me they specifically want to do device drivers or kernel software of some kind, or high performance engineering/scientific applications I would not recommend they start with C++, or learn about heap management. They're just not going to need it, ever again.
Well, I write low-level hardware simulators so I may be a bit biased.
I really like my job, and I think that if I had started out learning a higher-level language I wouldn't have some of the foundations/skill sets that I'd need. I would *think* that it would be easier going from a lower-level language to a higher one, but that's just my personal experience. I learned C++ first, and learning ASM was harder than going to Java or C#. And it's not like a RISC architecture syntax is hard, just the transferring of what's in your head to code is just different conceptually.
But now that I think about it, you're right. Most people aren't going to be doing this kind of stuff. I enjoy getting my hands dirty with the innards of programming, and hopefully that will make me more marketable as everyone shifts towards the newer stuff.
I disagree. Although that may just be because I did it the other way and thought it worked well.
I think the complexities and details of lower level languages get in the way of learning good fundamental programming practices and concepts. I started with Java and when I later did ASM and C, I could focus on the details since I already understood the big picture. It was kind of like learning to drive first, then peeking under the hood to see how everything worked.
99% of code is performance insensitive. This is not a good reason IMO.You can do a lot of neat tricks in assembly to get faster, smaller code. People who start out with a higher level language often try to replicate those patterns into the assembly and end up writing larger, slow assembly than necessary.
__________________
99% of code is performance insensitive. This is not a good reason IMO.
So much hate for C++.
Yeah, pointers and memory management can be a bitch to begin with, but I think that it's an important skill that you need to master. And do you guys really think that the syntax is that hard? :\
I'll probably start with Python... Any suggestions on resources to learn Python? Hopefully a website with a lot of very well explained examples as well as good info... like the yourhtmlsource.com website... I'd love it if there was just a yourpythonsource.com or something.
Since nobody seems to be helping you anymore, I'll point you in the right direction:
http://docs.python.org/tutorial/
Start there. If that's not enough, just Google "python tutorial" and you'll find tons of resources.
Oh, and just to add my opinion to the debate, everyone recommending C/C++ thinking it's important to learn memory management, you are kind of missing the point of learning how to program. You want to learn how to think about algorithms and problem solving, not about whether you forgot to free some malloc'd memory and are causing a memory leak. And this is coming from someone who writes a ton of VHDL and C/C++ every day specifically with high performance in mind.
Oh, and just to add my opinion to the debate, everyone recommending C/C++ thinking it's important to learn memory management, you are kind of missing the point of learning how to program. You want to learn how to think about algorithms and problem solving, not about whether you forgot to free some malloc'd memory and are causing a memory leak. And this is coming from someone who writes a ton of VHDL and C/C++ every day specifically with high performance in mind.
I don't think anyone was arguing that C++ was a good choice because it's important to learn memory management. I certainly wasn't.
Yeah, pointers and memory management can be a bitch to begin with, but I think that it's an important skill that you need to master.