Thread: How far in detail should I go?

  1. #1
    NotSoAvgProgrammer
    Join Date
    Jul 2007
    Location
    Virginia, U.S.
    Posts
    57

    How far in detail should I go?

    I've noticed that I'm finding a ways to get what I need done, but I'm not understanding how it is getting done. As I am a beginner to c++, should I be concentrating on understanding how vectors work, or should I just know what they can do when I punch in the text, then worry about the how later, after I can remember the functions as classes?
    I can make a vector, get items in it, etc. But I don't understand how it works, should I spend some time into learning this?

    Thanks,


    Joe

  2. #2
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Moved to GD since there isn't an obvious question about C++.

  3. #3
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    As I am a beginner to c++, should I be concentrating on understanding how vectors work, or should I just know what they can do when I punch in the text, then worry about the how later, after I can remember the functions as classes?
    I can make a vector, get items in it, etc. But I don't understand how it works, should I spend some time into learning this?
    I suggest concentrating on using vectors and other standard containers effectively. Use them in the code you write, and learn how to design and implement classes. Once you have such basics down, learn how to do memory management, and possibly also how to use C++ templates. At that point, how to write a simple vector-like container will be obvious.
    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

  4. #4
    Registered User
    Join Date
    Jul 2006
    Posts
    162
    learn about how information is fundamentally formatted and manipulated.

    e.g. study digital principles, and logic, i even went in to component design... it's not necessary, but it's interesting. also assembly, and read in to turing machines and other abstract computing devices.

    you can go through the above thoroughly in a month, small sacrifice to move a head a lot.
    assembly might a lot of practice, but understanding the concepts may suffice.


    from there everything in c++ will have more light shown on to it, and the concepts will translate in your mind more comprehensibly. OOP after all is a high level approach to translating information from and to various formats. that's all programming and systems are, information manipulating concepts.

    training your mind for the approach is fundamentally important, you're mind as an adaptive network needs to approach problems in a pattern-matching oriented fashion to succeed to the highest degree.

    you exploit your nature by "prepping" your mind with the proper abilities to learn and memorize future concepts in any field.

    so study all the appropriate background information, not just the language on its own.


    that is, of course, just my opinion.
    Last edited by simpleid; 08-22-2007 at 09:11 AM.

  5. #5
    Registered User
    Join Date
    Jan 2005
    Posts
    7,366
    >> should I be concentrating on understanding how vectors work
    No.

    >> should I just know what they can do when I punch in the text
    Yes.

    >> worry about the how later
    Yes.

    >> But I don't understand how it works, should I spend some time into learning this?
    You should spend just a tiny bit of time getting a quick overview of how they work that is enough to satisfy some of your curiousity, but you should save learning how they work in detail until you've had time to learn the other basics that are required for that understanding.

    Most beginning programmers don't need much more than a simple overview of how ints work, or how functions work, or how compiling works. A vector is just like any of those tools.

    If you do want to understand how all those tools work in detail, then you wouldn't be learning C++ right now, you'd be studying other topics.

  6. #6
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    Even after 20 years as a programmer/software engineer, there are many details of "what happens inside this black box", I don't know. I have a rudimentary understanding of many of the black boxes that exist in libraries and operating systems, but as far as knowing how exactly it works, is pretty meaningless - unless you need to either write the functionality for some reason, or you have to fix a bug in one of those functions.

    It's also a bit like peeling an onion, once you've remove one layer, you find that it's just the same again (more stuff you don't understand) - if you figure out how vector storage works, you'll find that you don't know how the fundamentals that it uses works.

    Software is built in layers (somewhat like an onion) - you need to understand what "your" layer does precisely and the layer above/below you need to understand the basics of, but it's almost impossible for most ordinary humans to understand all the layers from the user application (say a web-browser or calculator application), the libraries used by the application, graphical user interface libraries and all the way down through to the drivers inside the OS. Yes, you can have a good idea of how it works, but knowing all teh details of how ALL of it works is beyond most of us - and when I say most, I mean that we should probably exclude Linus Torvalds, Alan Cox, Dave Cutler and some other OS architects that obviously will have to know pretty much everything about the OS they have architected (although I'm almost certain that either of those actually KNOW every single part of the OS, but they know enough to quickly find out any part they need).

    --
    Mats

  7. #7
    Registered User
    Join Date
    Jul 2006
    Posts
    162
    Software is built in layers (somewhat like an onion)
    An Ogre... is also like an onion. ;-) lol...

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Detail about How VPTR and Virtual table works
    By asadullah in forum C++ Programming
    Replies: 3
    Last Post: 03-10-2008, 12:42 PM
  2. get keyboard and mouse events
    By ratte in forum Linux Programming
    Replies: 10
    Last Post: 11-17-2007, 05:42 PM
  3. Compilation steps in detail?
    By hardi in forum C++ Programming
    Replies: 18
    Last Post: 12-09-2006, 12:21 PM
  4. Linked Lists in Detail
    By SlyMaelstrom in forum C++ Programming
    Replies: 1
    Last Post: 11-10-2005, 01:08 PM