Thread: Thinking about learning something else

  1. #31
    Disrupting the universe Mad_guy's Avatar
    Join Date
    Jun 2005
    Posts
    258
    The problem is with unreasonable expectations. Because C/C++ are billed as the most powerful language, people expect bigger results their first time out.
    You are absolutely 100% correct. People expect to be able to build things instantly, and when they can't, they get frustrated, disheartened and just decide that it's not worth it. That's just the way it is.

    My point was, however - which you didn't address - is that it is easier to get up and running with python. You can start to build cool stuff, fast. You can go from no-knowledge to building a GUI app in probably a week or so. Can the same be said about C++? I am doubtful, and it is because of this that I do not recommend it. Again: motivation is critical for a beginner, and seeing yourself build something real is the best way to keep it going.

    Having said that, what do you think will impress a beginner more (generally speaking): seeing themselves after, say, a week creating things like basic GUI calculators or a notepad-clone, or after a week still being in the console and just getting to structures and just beginning to grok those weird things called 'pointers'? For gods sake, why do you think so many people flocked to visual basic for a beginning language, and still do? Because it tells their subconscious they're actually accomplishing something.

    Of course, you can argue as much as you want that this is dependent on the person, in which you would be right. But really ask the question to yourself - or an actual beginner - and the answer should be immediately clear as to what will impress someone starting off more. This thread you have posted in should already be evidence of that.

    1. It (python) is not C/C++.
    "This thing of which you look at does not exactly replicate in all ways what I already have, and therefore, you should not learn it because by definition it is already inferior in all possible ways."

    2. It lacks comprehensive close-to-the-metalness.
    Fair enough. Keep in mind you probably *need* close to the metal. He doesn't.

    #2 is pretty important for a lot of scientific and engineering work, where every ounce of computing power needs to be sqweeeeeezed out of a system. Most of the applications I develop are pushing or exceeding the limits of todays COTS hardware.
    You sound like you have an exciting job, honestly. :] However, I doubt this new person using python will be worried about performing "a sigmoid calculation on a vector of floats using the GPU" using anything for a while.

    While this may not be an issue for 99% of programmers today, what about in 10 or 20 years? Will you still be writing web apps or do you hope to move on to something more complex?
    Who knows. I might be developing web apps in 20 years, I might be dead, I might be homeless, I might work at Intel, or the apocalypse might happen.

    Regardless, this is an entirely useless statement and, if anything, all you're trying to do with it is plant a seed of doubt by saying "in 20 years you're going to look back on what you learned and feel like an idiot for not listening to me because I was right, and you will realize everything you've done is insignificant and worthless, compared to what I have done." It also seems to imply that you think that if he doesn't learn C++ he'll be developing web applications or something 'boring' all his life, which is completely nonsensical if not just downright ludicrous.

    When the time comes, will you have 10 or 20 years of experience in a languiage that can meet the engineering requirements of your complex tasks, or will you have 10 to 20 years experience with python?
    So you're saying your success depends entirely on the tool you choose to learn now? As a greenhorn? I'm pretty skeptical of that in its entirety. If in 20 years you have exceedingly complicated tasks to accomplish, I would figure that 20 years experience will guide you more than just knowing C/C++ or whatever language you will be using. I would much rather hire someone that has 20 years experience in a good set of languages, than someone who's spent the last 20 years just doing the same thing over and over. If nothing else, it indicates that the 'jack of trades' is more open to change and adaption, and that's excellent, because programming is about adaption. Would you rather have the ability to move or only be dead in the water?

    It's just a tool, nothing more. Not a religion, not a mandate, not a constant. A tool. Tools get replaced. Better tools come around, and old tools can still have their place in a new world (no, not everybody uses top of the line power tools.) Pick the right tool, don't waste time on superficial bullcrap and you'll go farther than you would otherwise. I can promise it.

    Perhaps the real problem is that you only have a hammer, so everything looks like a nail?
    Last edited by Mad_guy; 06-24-2008 at 02:55 AM.
    operating systems: mac os 10.6, debian 5.0, windows 7
    editor: back to emacs because it's more awesomer!!
    version control: git

    website: http://0xff.ath.cx/~as/

  2. #32
    Registered User
    Join Date
    Apr 2008
    Posts
    890
    Quote Originally Posted by abachler View Post
    To be fair, my position is not that python lacks inherent goodness or fitness for any purpose, only that -

    1. It (python) is not C/C++.
    2. It lacks comprehensive close-to-the-metalness.

    #2 is pretty important for a lot of scientific and engineering work, where every ounce of computing power needs to be sqweeeeeezed out of a system. Most of the applications I develop are pushing or exceeding the limits of todays COTS hardware.
    Sounds like C and C++ are right for your application domain.

    While this may not be an issue for 99% of programmers today, what about in 10 or 20 years? Will you still be writing web apps or do you hope to move on to something more complex? When the time comes, will you have 10 or 20 years of experience in a languiage that can meet the engineering requirements of your complex tasks, or will you have 10 to 20 years experience with python?
    Python is useful for much more than web apps. In fact, it plays nicely with C and C++ and as such can be used until you need to drop down to "close to the metal" code.

    And in 10 to 20 years, if all you have is C and C++ experience, you'll almost certainly be backed into a nearly unmarketable corner.
    Last edited by medievalelks; 06-24-2008 at 02:49 PM.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. learning ability...gone?
    By jessie23 in forum A Brief History of Cprogramming.com
    Replies: 14
    Last Post: 02-08-2003, 04:02 PM
  2. Learning Rate Of C++
    By Krak in forum C++ Programming
    Replies: 27
    Last Post: 01-29-2003, 01:53 PM
  3. Help with Constants and enum constants. Newbie learning C++.
    By UnregJDiPerla in forum C++ Programming
    Replies: 5
    Last Post: 01-07-2003, 08:29 PM
  4. What do you think about learning C++ and the C?
    By incognito in forum C++ Programming
    Replies: 6
    Last Post: 11-29-2001, 02:01 AM
  5. what do you think of Learning C++ and then C?
    By incognito in forum C Programming
    Replies: 7
    Last Post: 11-28-2001, 03:12 PM