Page 6 of 6 [ 90 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6

peterd
Veteran
Veteran

User avatar

Joined: 25 Dec 2006
Age: 72
Gender: Male
Posts: 1,353

05 Aug 2012, 3:02 am

Unless you care about compiler dynamics or machine code modelling of class structures, you're better off starting with the language you're planning to use and the ways to get the results you want from it. I learned C before C++ before there was C++, I learned Pascal before C because I needed to use Pascal. I learned 8086 assembler before each of them, and 360 assembler before that because that was what the situation called for.

No single brain is big enough for the complete set so simplify whenever you can.



05 Aug 2012, 3:28 am

MyFutureSelfnMe wrote:
C++ is roughly a superset of C, and you won't *really* understand what is going on in C++ unless you know C. The standard library is the least of your worries.



Instruction in C is hard to come by these days it seems.....Unlike 12++ years ago. I would recommend learning C before C++. But another way to do it is to really learn and master the procedural aspects of C++ programming(especially functions and structs) before you advance to learning about classes and objects. The predecessor to a class in C++ is the structure in C.



noname_ever
Veteran
Veteran

User avatar

Joined: 25 Dec 2011
Age: 50
Gender: Male
Posts: 500
Location: Indiana

05 Aug 2012, 10:13 am

morslilleole wrote:
And as you say, C is more procedural while C++ is OO. Wouldn't it be an advantage to learn another language that focuses more on OO?


Not really. Learning C is learning a portion of C++. As someone else said, you can skip learning C directly by doing procedural C++.

Also, other OO languages use a different style of OO. Learning Java or C# is easy when you know the other one. They use roughly the same inheritance and class models (single inheritance with implementing interfaces to support multiple inheritance. C++ doesn't support interfaces, but supports multiple inheritance directly. C++ still uses pointers directly while C# and Java do not. )

Knowing Java didn't help me learn C++ though. Learning C in my languages survey class helped me immensely. I find C++ a lot closer to C than either Java or C#.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 46
Gender: Male
Posts: 1,385

05 Aug 2012, 12:10 pm

Yes you can do procedural C++, but I think straight C is a really nice clean breaking point between what I see as the two halves of learning C++. After you're good with C, you can port your C examples to C++. In C, you're forced to work with pointers, which in C++ are often abstracted in container classes. I think if you're using container classes, you should know what they're doing behind the scenes, which means having a complete understanding of pointers and to a lesser degree the C runtime lib.

I don't agree with the way programming languages are taught at all, and it actually upsets me that university CS programs are Java centric. They think pointers and cleaning up your own garbage are too difficult. It's not too difficult if it's taught correctly. Calculus isn't too difficult for Chinese second graders.



morslilleole
Veteran
Veteran

User avatar

Joined: 17 Dec 2011
Age: 36
Gender: Male
Posts: 511
Location: Norway

05 Aug 2012, 3:24 pm

MyFutureSelfnMe wrote:
Yes you can do procedural C++, but I think straight C is a really nice clean breaking point between what I see as the two halves of learning C++. After you're good with C, you can port your C examples to C++. In C, you're forced to work with pointers, which in C++ are often abstracted in container classes. I think if you're using container classes, you should know what they're doing behind the scenes, which means having a complete understanding of pointers and to a lesser degree the C runtime lib.

I don't agree with the way programming languages are taught at all, and it actually upsets me that university CS programs are Java centric. They think pointers and cleaning up your own garbage are too difficult. It's not too difficult if it's taught correctly. Calculus isn't too difficult for Chinese second graders.


At the university I went to, they taught Java to everyone the first year. To give everyone a general introduction to programming and because everyone had the same classes the first year. It was quite easy for me, but a lot of people had problems learning it. Then the second and third year focused on C++ programming.

I think the reason why it's often taught that way is because Java is a lot easier to understand, and programming requires a way of thinking that's not for everybody. It's not just that they think garbadge collection is too complicated, but it's too much to learn for a lot of people. And especially programming in C/C++ requires even more than Java / C# does.

But yeah, I wish my university taught me C instead of Java. I allready knew som general programming, so I think I would've been fine. But I think lots more students would struggle.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 46
Gender: Male
Posts: 1,385

05 Aug 2012, 3:34 pm

morslilleole wrote:
MyFutureSelfnMe wrote:
Yes you can do procedural C++, but I think straight C is a really nice clean breaking point between what I see as the two halves of learning C++. After you're good with C, you can port your C examples to C++. In C, you're forced to work with pointers, which in C++ are often abstracted in container classes. I think if you're using container classes, you should know what they're doing behind the scenes, which means having a complete understanding of pointers and to a lesser degree the C runtime lib.

I don't agree with the way programming languages are taught at all, and it actually upsets me that university CS programs are Java centric. They think pointers and cleaning up your own garbage are too difficult. It's not too difficult if it's taught correctly. Calculus isn't too difficult for Chinese second graders.


At the university I went to, they taught Java to everyone the first year. To give everyone a general introduction to programming and because everyone had the same classes the first year. It was quite easy for me, but a lot of people had problems learning it. Then the second and third year focused on C++ programming.

I think the reason why it's often taught that way is because Java is a lot easier to understand, and programming requires a way of thinking that's not for everybody. It's not just that they think garbadge collection is too complicated, but it's too much to learn for a lot of people. And especially programming in C/C++ requires even more than Java / C# does.

But yeah, I wish my university taught me C instead of Java. I allready knew som general programming, so I think I would've been fine. But I think lots more students would struggle.


I'm of the opinion that certain people are cut out to be programmers and certain people aren't. Even if, through valiant effort, they master languages, they likely still won't have the model of thinking that's necessary to engineer robust and user friendly software. That makes them about as disposable as an offshore programmer, and nobody wants to be in a disposable job.



morslilleole
Veteran
Veteran

User avatar

Joined: 17 Dec 2011
Age: 36
Gender: Male
Posts: 511
Location: Norway

05 Aug 2012, 3:48 pm

MyFutureSelfnMe wrote:
morslilleole wrote:
MyFutureSelfnMe wrote:
Yes you can do procedural C++, but I think straight C is a really nice clean breaking point between what I see as the two halves of learning C++. After you're good with C, you can port your C examples to C++. In C, you're forced to work with pointers, which in C++ are often abstracted in container classes. I think if you're using container classes, you should know what they're doing behind the scenes, which means having a complete understanding of pointers and to a lesser degree the C runtime lib.

I don't agree with the way programming languages are taught at all, and it actually upsets me that university CS programs are Java centric. They think pointers and cleaning up your own garbage are too difficult. It's not too difficult if it's taught correctly. Calculus isn't too difficult for Chinese second graders.


At the university I went to, they taught Java to everyone the first year. To give everyone a general introduction to programming and because everyone had the same classes the first year. It was quite easy for me, but a lot of people had problems learning it. Then the second and third year focused on C++ programming.

I think the reason why it's often taught that way is because Java is a lot easier to understand, and programming requires a way of thinking that's not for everybody. It's not just that they think garbadge collection is too complicated, but it's too much to learn for a lot of people. And especially programming in C/C++ requires even more than Java / C# does.

But yeah, I wish my university taught me C instead of Java. I allready knew som general programming, so I think I would've been fine. But I think lots more students would struggle.


I'm of the opinion that certain people are cut out to be programmers and certain people aren't. Even if, through valiant effort, they master languages, they likely still won't have the model of thinking that's necessary to engineer robust and user friendly software. That makes them about as disposable as an offshore programmer, and nobody wants to be in a disposable job.


Couldn't agree more with that. The problem is, at least for my part, that thoose who excell at programming often lack a bit at social skills compared to thoose who aren't cut out as programmers. Which means the less skilled person often gets the job.



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 46
Gender: Male
Posts: 1,385

05 Aug 2012, 5:31 pm

A lot of job interviews I've done in NY have been 80% programming skills and 20% people skills. It's not that bad. I still don't agree with *how* they analyze programming skills, but it's not as bad as what you're describing. They just want to make sure you're not completely antisocial.

Rising in the company is another issue.



morslilleole
Veteran
Veteran

User avatar

Joined: 17 Dec 2011
Age: 36
Gender: Male
Posts: 511
Location: Norway

05 Aug 2012, 11:28 pm

MyFutureSelfnMe wrote:
A lot of job interviews I've done in NY have been 80% programming skills and 20% people skills. It's not that bad. I still don't agree with *how* they analyze programming skills, but it's not as bad as what you're describing. They just want to make sure you're not completely antisocial.

Rising in the company is another issue.


I was asked to program in front of the interviewer once, on a blackboard. I hated it, but I survived. Didn't get the job, though =P



MyFutureSelfnMe
Veteran
Veteran

User avatar

Joined: 26 Feb 2010
Age: 46
Gender: Male
Posts: 1,385

06 Aug 2012, 12:50 am

morslilleole wrote:
MyFutureSelfnMe wrote:
A lot of job interviews I've done in NY have been 80% programming skills and 20% people skills. It's not that bad. I still don't agree with *how* they analyze programming skills, but it's not as bad as what you're describing. They just want to make sure you're not completely antisocial.

Rising in the company is another issue.


I was asked to program in front of the interviewer once, on a blackboard. I hated it, but I survived. Didn't get the job, though =P


A lot of them do that (whiteboard in the US). Everyone hates it, and they know it, a few of them bust out a laptop and let you use that. I've found that programming tests can be a little hit and miss even for very good programmers.