Thread: C++ , Ridiculously more difficult than it needs to be?

  1. #1
    Registered User
    Join Date
    Apr 2016
    Posts
    9

    C++ , Ridiculously more difficult than it needs to be?

    Hello,

    Just wanted others opinions on this..

    So I started working with C a few weeks ago, dropped it and started learning C++ two weeks ago, and suddenly, today... I feel confident I know the basics. I'm not saying I know it super well, or that I could write any program without going back over my notes, or google some parts to make sure I get the syntax exactly straight. I could definitely study a bit more on Arrays, and even strings... But I've come to the conclusion that, they, (computer scientists) seem to make the difficult parts of it like... "Polymorphism, Object Classes vs Sub-classes, pointers and dereferences and Function Overloading stupidly harder than it needs to be... If I was explaining any of these terms to a computer class I feel I could explain it really simply... I don't quite get it, cause its almost like they intentionally keep people from learning it, by using long drawn out explanations or BIG words like POLYMORPHISM... Once you read over those terms from 15 different books or examples, you realize its all REALLY simple. Its a lot to take in just with everything else like compiling, variables and data types, and everything else without the added over complexity of the terms I just stated above.

    Does anyone else feel the same about this? Or am I the odd man out with this stuff?
    Last edited by LaddaCode; 04-14-2016 at 03:30 PM.

  2. #2
    Registered User Codeplug's Avatar
    Join Date
    Mar 2003
    Posts
    4,981
    Sounds like you got burned by a bad book or something. It is what it is - once you know it

    gg

  3. #3
    Guest
    Guest
    I'll leave this here, it's a fun read

  4. #4
    Registered User
    Join Date
    Apr 2016
    Posts
    9
    Ha! HAAA HAA! Thanks for the post Adrian, definitely a good read... Priceless interview! lol

  5. #5
    Registered User
    Join Date
    Sep 2015
    Location
    Australia
    Posts
    63
    Hi all,

    I do tend to agree. Plenty want to toss around all the technical names for everything, rather than explaining a simple way. If I start reading and it sounds messy I move on to another....usually you can find someone that breaks things down into its basic terms.. Some people should never Teach or write Tutorials...

    John

  6. #6
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by LaddaCode
    But I've come to the conclusion that, they, (computer scientists) seem to make the difficult parts of it like... "Polymorphism, Object Classes vs Sub-classes, pointers and dereferences and Function Overloading stupidly harder than it needs to be... If I was explaining any of these terms to a computer class I feel I could explain it really simply... I don't quite get it, cause its almost like they intentionally keep people from learning it, by using long drawn out explanations or BIG words like POLYMORPHISM... Once you read over those terms from 15 different books or examples, you realize its all REALLY simple. Its a lot to take in just with everything else like compiling, variables and data types, and everything else without the added over complexity of the terms I just stated above.
    The problem has to do with the difference between discussing between peers and explaining to students. Having a shared vocabulary is very useful for discussion with peers: instead of having to describe the concept every time it comes up, someone could just say "inheritance-based runtime polymorphism could be used", and people with some idea of the terms would immediately understand what is being said. But if you don't already have the vocabulary, then it sounds like the speaker is intentionally keeping you from understanding the conversation, but that is not the case.

    The "long drawn out explanations" is probably because the teacher was trying to explain the concepts in an abstract way. Coming into my teaching assistant stint, I discovered that I would do just that, e.g., following the habit of programmers demonstrating generic concepts to other programmers, I would use meaningless names and symbols to make the examples generic, or I would try to describe the salient features of the concept without examples, whereas the teachers that I admired would use concrete examples, e.g., with numbers, physical objects, animals and other real world examples, and then go from the concrete to the abstract. You probably encountered something similiar, e.g., for function overloading, a teacher might start by listing the conditions by which function overloading can be done, which can be hard to imagine initially, whereas another teacher would present examples where function overloading is well used, and then point out what makes it function overloading.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  7. #7
    Registered User
    Join Date
    Jun 2015
    Posts
    1,640
    Quote Originally Posted by LaddaCode View Post
    I've come to the conclusion that, they, (computer scientists) seem to make the difficult parts of it like... "Polymorphism, Object Classes vs Sub-classes, pointers and dereferences and Function Overloading stupidly harder than it needs to be.
    Your question betrays a lack of experience with technical disciplines generally. There are a lot of subtle details and historical precedent encapsulated, so to speak, in the terminology. Just because polymorphism turns out to be relatively simple (as you well know from your two weeks of experience) doesn't mean it should be called many-shapey-thing. Specific terms are used because that's what the professionals understand and a technical vocabulary provides precision and brevity.

  8. #8
    Registered User
    Join Date
    Apr 2016
    Posts
    9
    Well, I completely agree with every statement thus far... Yes I'll be the first to admit, I am a beginner, but not completely as I used to build little programs in Basic way back in the 1980s.

    The thing is... I tried learning C++ about five years ago, and as soon as I got to things like Polymorphism, I was turned off by it, and thought it was way over my head. I personally know others who've said the same thing. Move ahead to a few weeks ago I decided I'd give it another go. Plus I decided I'd try to approach it in a different way. Basically I downloaded about twelve different books, and if I didn't understand one teacher's angle on a specific point, I'd immediately pick up a different book, or watch a different tutorial till I did get it. I discovered there's a HUGE difference between the way some teachers explain the terms and material. Ofcourse nearly all of it is like a stepping stone way of learning... Like if you don't understand what a function is, you won't be able to grasp classes, and globalism vs local, and if you don't understand globalism vs local, you won't understand how pointers work, etc.

    I come from a background in the arts... I've met plenty of sophisticated art elitists who will talk to you in depth about the deeper metaphors of pluralism associated by the trancendance partially obscured by social decline through cultural postmodernity of modern mans disconnect of self vs early advant-garde abstraction viewed through the cultural frames of early deconstructivism while simultaneity observing the... Bla bla bla...

    Or you could just grasp the basics of value, shape form and color, pick up a brush, some paint and paper and start actually painting something.
    Last edited by LaddaCode; 04-15-2016 at 08:00 AM.

  9. #9
    Registered User
    Join Date
    Oct 2006
    Posts
    3,445
    Quote Originally Posted by LaddaCode View Post
    if I didn't understand one teacher's angle on a specific point, I'd immediately pick up a different book, or watch a different tutorial till I did get it.
    This, I think, is a critical part of learning anything. You need to be prepared to step outside the way you've always done things, and look at the problem from a different (possibly someone else's) perspective.
    What can this strange device be?
    When I touch it, it gives forth a sound
    It's got wires that vibrate and give music
    What can this thing be that I found?

  10. #10
    Registered User MutantJohn's Avatar
    Join Date
    Feb 2013
    Posts
    2,665
    C++ isn't the only "more difficult than it needs to be" language.

    JavaScript, for example. We can implement generator-based asynchronous control flow by yielding promises and then upon their resolution, iterating through the generator with the resolved value.

    Many languages are home to jargon and the learning curve can be quite steep. C++ is better, imo, because if you know C, you can gradually learn C++ in due time. JS on the other hand is kind of just this huge beast where you need to know everything at once.

    Edit: I completely forgot. I think the realm of functional programming would be the worst for jargon. Monadic compositions, setoids, this is the reason why I got a C+ in Math 100.
    Last edited by MutantJohn; 04-15-2016 at 07:32 PM.

  11. #11
    Registered User
    Join Date
    Nov 2012
    Posts
    1,393
    Is the term really the problem, or maybe the explanation that you encountered was lacking. For example, you didn't mention that you had any trouble with "compiling". But maybe some would-be programmers have also stopped right there and thought to themselves, Jeez, compiling, variables, functions, what the heck is all this stuff?? and then just gave up.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. This library makes drawing 2D stuff in C++ on windows ridiculously easy :)
    By ErikOrjehag in forum Projects and Job Recruitment
    Replies: 4
    Last Post: 03-27-2014, 10:01 AM
  2. How Difficult is This?
    By MAtkins in forum C Programming
    Replies: 43
    Last Post: 02-11-2011, 02:21 PM
  3. need help...c++ using strings...difficult for me
    By dukebdx12 in forum C++ Programming
    Replies: 4
    Last Post: 04-18-2008, 07:55 AM
  4. Difficult C programs
    By aijaz in forum C Programming
    Replies: 7
    Last Post: 04-15-2008, 10:52 AM
  5. why must everything be so difficult!
    By ... in forum C++ Programming
    Replies: 14
    Last Post: 03-22-2002, 04:21 PM

Tags for this Thread