Thread: Thinking about learning something else

  1. #16
    Registered User
    Join Date
    Apr 2008
    Posts
    890
    Quote Originally Posted by tiachopvutru View Post
    Also, my choice right now is Python, as it's heavily recommended for beginners, but I'm having trouble looking for a tutorial (or rather, I don't know where to find a *good* tutorial...)
    http://diveintopython.org/toc/index.html
    http://docs.python.org/tut/tut.html

    Python is a great language. Need to get out of consulting and into a position of power so I can mandate its use.

  2. #17
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Ah yes, inflict somehting you like on others by mandating a cookie cutter solution, regardless of hte particulars of the problem. You are definately management material.

  3. #18
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by abachler View Post
    Ah yes, inflict somehting you like on others by mandating a cookie cutter solution, regardless of hte particulars of the problem. You are definately management material.
    I understand your point, but I've never really encountered a problem that was inelegant to solve in Python.

  4. #19
    Hmm...? gin's Avatar
    Join Date
    Jun 2008
    Location
    Glasgow, Scotland
    Posts
    51
    Quote Originally Posted by Neo1 View Post
    "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration" - Edsger Dijkstra

    Just thought it was worth mentioning
    My secondary school computing course teaches TurboBASIC (or is it TrueBASIC?), either way I'm doomed! Thing is, I'll have to learn it to pass.
    Last edited by gin; 06-21-2008 at 05:58 AM.

  5. #20
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    There is nothing wrong in learning any kind of programming language. BASIC has been the starting point of many programmers. Many who today easily stroll through these boards with one leg behind their backs.

    In fact because they share an history of several programming languages, that makes them stronger programmers, capable of easily adopting new syntaxes and new programming paradigms. Something you can hardly see on someone who choses to adopt a more centered approach to their learning process and dismiss other programming languages on such subjective notions as "It's too simple", "It's crap", "It's a toy".

    BASIC introduces fundamental programming aspects while retaining an easy syntax and freeing the student from complex constructs. In BASIC I learned all about program flow, variables, loops, conditionals and general programming logic while quickly building fun and useful programs and without having to wrap my head around complex debugging or hard to detect errors.

    Certainly little nothings if one already knows about these things. But a national education system cannot be built on an individual basis. Regardless, If one already knows about these things, it should be a breeze to pass the exams while studying their own favorite subjects at home. If one doesn't know, they are about to learn. Just a few years ago you didn't even have computer related disciplines in high-school. You're the lucky ones.

    BASIC is still a very interesting programming language to study. And the new generations like Visual Basic or PureBasic are powerful programming languages on their own right.

    For an idea of the importance of this programming language, take a look at the list of derived or otherwise closely related to BASIC:
    http://en.wikipedia.org/wiki/Categor...anguage_family

    It's not any language that you are learning there.
    Last edited by Mario F.; 06-21-2008 at 10:19 AM.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  6. #21
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    There is nothing wrong in learning any kind of programming language. BASIC has been the starting point of many programmers.
    I tend to agree, but Dijkstra appears to disagree, at least where one's first programming language is concerned.

    Many who today easily stroll through these boards with one leg behind their backs.
    hmm... they stroll while hopping?

    BASIC introduces fundamental programming aspects while retaining an easy syntax and freeing the student from complex constructs. In BASIC I learned all about program flow, variables, loops, conditionals and general programming logic while quickly building fun and useful programs and without having to wrap my head around complex debugging or hard to detect errors.
    I have a feeling that the Dijkstra quote has something to do with GOTO rather than BASIC by itself, but we need more context to understand it. A slam on a language by one of the great pioneers of computer science is damning, but the language that he condemned and what is currently in use can be drastically different.

    EDIT:
    Oh, the context is in How do we tell truths that might hurt? Consequently, it is clear that Dijkstra was not being entirely serious, though he did intend to make a point about what he regarded as poor programming languages, among other things.
    Last edited by laserlight; 06-21-2008 at 10:46 AM.
    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. #22
    Hmm...? gin's Avatar
    Join Date
    Jun 2008
    Location
    Glasgow, Scotland
    Posts
    51
    I don't mind anyway. Will be easy to pick up (I played about with Visual Basic when I was about 11, so should be easy). No worries then I suppose.

    EDIT: But the thing is, I don't see why my school doesn't use Visual Basic... they have it installed.

  8. #23
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by laserlight View Post
    Oh, the context is in How do we tell truths that might hurt? Consequently, it is clear that Dijkstra was not being entirely serious
    Definitely. The GOTO statement probably being on his mind, since historically he is perhaps its biggest and most famous detractor. The language itself is definitely one of the most innocuous alive. The GOTO statement was a necessity(?) in the imperative style of classic BASIC versions. But definitely, fell in disuse in the procedure-oriented versions. What's more, I'm yet to know of someone who was hopelessly lost to GOTO and label and couldn't learn anything that didn't use it or made its use reproachful under most circumstances (C/C++, for instance) .

    Besides he himself was exposed to BASIC without any side-effects we can attribute... except perhaps a renowned bad temper

    I think it's one of Dijkstra's famous tirades that stood the test of time and that perhaps makes a lot of sense at the time he wrote it (1975, precisely around the time BASIC was being put on about every home computer and everyone wanted to learn it) and the fact his favorite programming language, ALGOL, and BASIC sharing some similarities, particularly syntax.

    Quote Originally Posted by laserlight View Post
    hmm... they stroll while hopping?
    Well, I could go on how you folks could easily develop an advanced roller_skates class and inherit yourselves from a finely-tuned balance class with heuristics. But... instead I will say, precisely, you can stroll with one leg
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  9. #24
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Quote Originally Posted by brewbuck View Post
    I understand your point, but I've never really encountered a problem that was inelegant to solve in Python.
    OK, use python to perform a sigmoid calculation on a vector of floats using the GPU, and do it elegantly

  10. #25
    Disrupting the universe Mad_guy's Avatar
    Join Date
    Jun 2005
    Posts
    258
    Here's my two cents:

    I'm particularly fond of python for beginners simply because it is fast to get stuff running. You can go from nothing to something very quickly, the syntax is simple and straightforward, and there are batteries included. After a few days you can probably get something interesting up that you could show to a friend or just use yourself. This is absolutely critical as a beginner, I feel: you must be able to motivate yourself, and nothing gets that pumping more than seeing something you've built up, running and working. You get a sense of accomplishment, and it feels good. You have fruits of labor.

    I've technically released/accomplished little in my programming endeavors since I have started (then again, I've been a student in the US school system ever since I started; haven't had much of a chance for a job.) Even then, the feeling of accomplishment I get when I create something - whether it works on the first try, or I spend many hours debugging, tweaking and even rewriting it - is great. But you will also not create some things, you won't finish them, etc. etc.. However, this tolerance for failure and dealing with what is many times complete BS is acquired and learned, never given.
    You'll go through a lot of failures no matter what, and the first ones are some of the most disheartening, I know. Even with Python, you will surely have problems, not accomplish something and so forth - the reason I recommend Python though is, I feel by using a higher level language than say C++, and, thus lowering the threshold of entry, it may make these failures more tolerable and instructive; not simply frustrating and demoralizing. At the very least I would think it would make it easier to accomplish many things, and that's important, regardless of skill.

    I've seen a lot of people give up on programming because they couldn't get anything interesting working in something like C or C++ after spending a while learning it, and thus wrote off programming altogether as something that has little reward, is too arcane, or perhaps both. That's not to say they're stupid (I would think it's more a part of human nature: first impressions are critical) but more that they wanted fast results and they wanted to build fun stuff. There's absolutely nothing wrong with that, and if you want that, I highly suggest python. Don't get me wrong - you'll spend a few days getting up and running, familiar with the syntax/ideas, etc.. But after that, you'll have plenty of areas to explore and you'll be able to get stuff going quick. You will surely complete some things and never complete others: losing is a part of the game. In the end though, I think you'll have a language that can show you - as a beginner - that programming can be fun, instructive and easy. That you can create stuff, and that while it's not all fun and games, it can sure as hell be a lot of fun when it is.
    Last edited by Mad_guy; 06-22-2008 at 08:10 PM.
    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/

  11. #26
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Nothing you said about python cannot be said about C/C++

    The problem is with unreasonable expectations. Because C/C++ are billed as the most powerful language, people expect bigger results their first time out. If you follow the standard (hello world) tutorials, C/C++ are easy to get something up and running.

  12. #27
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Quote Originally Posted by abachler View Post
    Nothing you said about python cannot be said about C/C++
    Wouldn't this mean if a person is uncomfortable learning C/C++ and finds Python easier to learn and it just so happens Python can handle whatever that person problem domain is at that time, Python becomes the perfect tool for the job? A better tool than C++?
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  13. #28
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Quote Originally Posted by Mario F. View Post
    Wouldn't this mean if a person is uncomfortable learning C/C++ and finds Python easier to learn and it just so happens Python can handle whatever that person problem domain is at that time, Python becomes the perfect tool for the job? A better tool than C++?
    Wouldn't this mean if a person is uncomfortable learning python and finds C/C++ easier to learn and it just so happens C/C++ can handle whatever that person problem domain is at that time, C/C++ becomes the perfect tool for the job? A better tool than python?

    So really that statement is pointless.

  14. #29
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    Hehe, but as I remember you started the whole Python i not good debate
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  15. #30
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Quote Originally Posted by Mario F. View Post
    Hehe, but as I remember you started the whole Python i not good debate
    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. While this may not be an issue for 99&#37; 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?

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