Thread: Who Learns How?

  1. #31
    Senior Member joshdick's Avatar
    Join Date
    Nov 2002
    Location
    Phildelphia, PA
    Posts
    1,146
    My CS prof once asked our class, about eighty or so freshman CS majors, who wants to be a programmer. Some rose their hands; I did not. He then told those people to put their hands down. He informed us that a programmer is the sort of person who goes to ITT Tech or some place like that and who are doomed to be a code monkey in a cubicle. We should aspire to be computer scientists.

    I think this is a very important point. Merely learning how to program in a language or two isn't going to get you anywhere, professionally that is. If your sole goal is programming as a hobby, more power to you. But if you're considering a career in computers, you'll want a good deal of formal education on more abstract subjects.
    FAQ

    "The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs." -- Joseph Weizenbaum.

    "If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it." -- Richard Pattis.

  2. #32
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    100% self taught through books, msdn, oodles and oodles of help files, tons of PDF books, trial and error, the internet in in general....and oh yeah, - www.google.com.

    Taught myself C/C++, assembly - thanks to Randall Hyde's AOA - thanks a million Randall (like he's on this board or something), BASIC - had one class in HS and was so far ahead I was programming a windowing interface while the others were still printing "Hello" ten thousand times. Taught myself PASCAL although I've forgotten most of it and also have gotten into some VB and Java although they are not my favs.

    By the way some of the computer science techies seem to take the most bass ackward approaches to problems. Use what works and if it ain't broke don't fix it. Who cares if your code uses the newest fastest binary search tree method with twenty power nodes and executes at log(log n) (yeah right). Does it work and does it do the job or is it so convoluted and crappy that it is useless?

    To quote Andre Lamothe in several of his books - "use what works".

    For game programming the number one factor is not how you coded the stupid thing because no one cares. It's whether or not the end result is fun and whether or not people are going to buy it. Some of the best code in games has been some of the simplest. For business programming I could see using a lot of computer science and algos for huge searches, databases, storage methods, etc., etc.

    Nothing against CS people as I wish I could have done that....but there is such a thing as the education world and then the real world. Sometimes the two don't mesh very well.

    I've seen some self-taught people that could code circles around the educated ones and I've seen some educated people that have forgotten more code than the self taught ever knew about.

  3. #33
    Senior Member joshdick's Avatar
    Join Date
    Nov 2002
    Location
    Phildelphia, PA
    Posts
    1,146
    If you're a CS major, of course your code works. That should never even be a question. The question is: Does it work well? Is it the most efficient, fastest, does it use the least amount of memory, etc. And you're example of programming games is not in your favor. Games are under great speed constraints. They must be optimized to run fast enough so that they don't lag.

    By definition, any programmer can program, but a CS major can program well.
    FAQ

    "The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs." -- Joseph Weizenbaum.

    "If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it." -- Richard Pattis.

  4. #34
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    The question is: Does it work well? Is it the most efficient, fastest, does it use the least amount of memory, etc.
    And you're example of programming games is not in your favor. Games are under great speed constraints. They must be optimized to run fast enough so that they don't lag.
    Did I miss something here?

    By definition, any programmer can program, but a CS major can program well.
    Rather a clique-like statement wouldn't you agree. Like saying that if you don't go to school and study their way or do what they do you will never be good at programming. Afraid I have to disagree. Not against school here.....but clique statements like you must or you have to be a CS major to program well are simply out of balance my friend.

  5. #35
    Senior Member joshdick's Avatar
    Join Date
    Nov 2002
    Location
    Phildelphia, PA
    Posts
    1,146
    Originally posted by Bubba
    Rather a clique-like statement wouldn't you agree. Like saying that if you don't go to school and study their way or do what they do you will never be good at programming. Afraid I have to disagree. Not against school here.....but clique statements like you must or you have to be a CS major to program well are simply out of balance my friend.
    A point of logic: I didn't say that you have to be a CS major to program well; instead, I said that CS majors program well.

    My statement has nothing to do with any clique. I'm just trying to point out an important distinction. The mere ability to program is not the same as being able to program well. Also, computer science is about so much more than just programming. As I already said, programming languages are only like one-ninth of all computer science. Merely programming is nothing exceptional, and I don't see how you can say that reading up on a subject is anything like several years of collegiate studies.

    And as for the difference between the "real" world and academia, although I can't speak for all schools, I know that my Drexel education will not fail in that regard. Five years from now, I will have BS degrees in mathematics and CS, and I will already have 18 months of job experience thanks to the great co-op program here at Drexel.

    Oh, and this is a little pet peeve of mine. What exactly is the "real" world? If I'm not in the "real" world, does that mean I'm in a "fake" world? How is it that college was considered the "real" world back in high school, but now it's suddenly "fake," too? I have to worry about bills, I handle my own finances, I'm extremely in debt like the rest of the "real" world now, I have a job in addition to the 18 credits I'm taking, I have to take care of transportation, laundry, food, etc. I have tons of work to do. I have deadlines to meet. I work together with other CS majors to accomplish some work. I have a whole hierarchy above me. I have more responsibilities than you know, and I handle them well. What on earth is "fake" about that?!
    FAQ

    "The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs." -- Joseph Weizenbaum.

    "If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it." -- Richard Pattis.

  6. #36
    Registered User Codeplug's Avatar
    Join Date
    Mar 2003
    Posts
    4,981
    I think I'm going to adopt joshdick......tear.

    Bubba, I can tell that you are the kind of person that once you take a couple high level computer science courses, you'll be hooked and thirsty for more knowledge. I know cuz I was just like you in highschool. If you have the means, do it.

    You don't know joy until you've developed a genetic algorithm that beet the MIT held world record for the longest path in an 8 dimensional hypercube (86) for an AI course term project.

    Damn! It's Holloween and I'm drunk and bragging on the cboard.

    Cheers!
    gg

  7. #37
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Like I said....college.


    Anyways enough hijacking...whatever this thread was about in the first place.

    I'd be bored in college...trust me...been there done that.

  8. #38
    Registered User Codeplug's Avatar
    Join Date
    Mar 2003
    Posts
    4,981
    It is unfortunate that you have to go through the other BS just to get a BS so you have a better chance of getting a job doing CS.

    I don't normally rhyme.

    gg

  9. #39
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    But you did there.



    Anyways my point is that making cut and dry exclusionary statements on a board designed for everyone is not cool. Some of us have been to other colleges and some of us are not at a point where we can attend.

    However I do not judge a person based on their credentials but based on what they can produce. I don't often make enemies on this board and that's not my goal here....just include everyone... there are some very very good hobbyist and professional programmers on here.

    I have a four year degree in another field so I know all about college life....but I also know that after getting out of college...things were not so black and white as they seemed to be in class.

    Its great that you are attending college and I certainly applaud the effort bro because its not easy...just remember the little guys and the newbies who come here for simple advice. College is not for everyone and I'm convinced of that but those same people can usually accel in a field w/o college. It really boils down to the person.

  10. #40
    Gronkulator of Surds littleweseth's Avatar
    Join Date
    Oct 2003
    Posts
    68
    I miss the structure and feedback the most. I found the structure of Teach Yourself C++ In 21 Days, by Jesse Liberty, very helpful. It has a good tutorial style with questions and exercises at the end of each chapter with answers and solutions in the back. The problem is, most of the more advanced books aren't structured for self-learning like this, and it's difficult to know if you really "get it".
    Very true - i've been doing c++ for only a year, and that book (i'm looking at it right now ) is absolutely awesome - that and my copy of Dev-C++ anyway.... i can do some alright stuff, though the relatively simple stuff like say, bubble sort, is new to me *hangs head in shame*

    And as far as the teachers/lecturers thing goes - im 14, so i have zilcho idead about lecturers, but as far as my ICT teacher goes, i know stuff that she doesn't even know the name of - css, advanced photoshop, html (ok, so not quite that bad, she knows the <p> tag).......... i end up helping everyon in the class, so i dont have time for my own stuff.

    Then again, i literally live in a hole (valley) - a backwater at any rate. Therefore my situation is not applicable to the population at large.

    Hope i haven't violated any kind of rule or offended anyone.
    Ph33r the sphericalCUBE

  11. #41
    Registered User
    Join Date
    Sep 2003
    Posts
    135
    Originally posted by joshdick
    If you're a CS major, of course your code works. That should never even be a question. The question is: Does it work well? Is it the most efficient, fastest, does it use the least amount of memory, etc. And you're example of programming games is not in your favor. Games are under great speed constraints. They must be optimized to run fast enough so that they don't lag.

    By definition, any programmer can program, but a CS major can program well.
    I hope the guys working for me don't waste their time writing code that is the most efficient, fastest, uses least memory etc. Not unless it's required, anyhow. That's one of the things people have to learn in the 'real world', that you have to produce a solution that is 'good enough', not necessarily 'the best' (for some definition of best). Getting the balance right comes harder to some people than others.

  12. #42
    Senior Member joshdick's Avatar
    Join Date
    Nov 2002
    Location
    Phildelphia, PA
    Posts
    1,146
    Originally posted by Omnius
    I hope the guys working for me don't waste their time writing code that is the most efficient, fastest, uses least memory etc. Not unless it's required, anyhow. That's one of the things people have to learn in the 'real world', that you have to produce a solution that is 'good enough', not necessarily 'the best' (for some definition of best). Getting the balance right comes harder to some people than others.
    That thinking there is the problem. Software companies only make their code good enough and no better. The result is often software riddled with bugs or security vulnerabilities. I don't see why this is acceptable with software but no other product. If you were about to hop into a car, would you want one that was built as best as reasonably possible or would you want what somebody considered to be good enough but turns out to have serious safety flaws? People and companies should learn to take pride in their work and produce good code.
    FAQ

    "The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs." -- Joseph Weizenbaum.

    "If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it." -- Richard Pattis.

  13. #43
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    If you were about to hop into a car, would you want one that was built as best as reasonably possible or would you want what somebody considered to be good enough but turns out to have serious safety flaws?
    Hence the term factory recall. Companies would go bankrupt if they ironed out every flaw prior to release. I work at a factory in quality control and there is a certain level of imperfection that you must allow to leave the factory. Not saying that quality is not important, it is, but so is production. Our specs are based on what our customers report back to us - if they find that our specs are too lenient for their tastes, we adapt them for that customer only. Quality control is a fine line between quality and quantity - one that is not always so black and white. Sometimes you must 'buy' defects/flaws that you really don't want to just to maintain a certain level of production.

    Prob same is true for software bugs. What is the probability that this bug is going to be encountered? What's the seriousness of the bug and what will it affect? Since software is basically another form of production with its own quality control department I would imagine they have specs to go by as well.

    We do not live in a perfect world and if it's made by man or made by a machine made by man...there will be defects in it somewhere.

    Just check out the recall notices on cars - there are literally thousands of them...ranging from defective seatbelts to defective engine parts to defects that could even cause fires - like faulty ignition circuits, etc. Waiting to produce perfect code with the perfect algos and perfect memory usage will put your company in the out-of-business sector. Some companies won't even use C because they can use VB to do nearly the same thing in almost 1/3 of the development time. Do they care if C is more elegant than VB? Absolutely not.

    Windows XP was released with nearly 30000 bugs in it and while we do not all aspire to be like MS...you can see that it is impossible to iron out all bugs prior to release.

  14. #44
    Registered User axon's Avatar
    Join Date
    Feb 2003
    Posts
    2,572
    I agree with both of you guys (bubba and joshdick) companies should make their product as best as possible, and virtually flawles...but that will never happen. A piece of software that was virtually "buggless" would cost even couple times more then it costs now. Why do I think so? well since you've been taking about cars think about this. Cars which have very little problems, and almost no recalls at all cost about 5 times as much as a normal (middle class car). Not many people can afford a >$80K dollar car, just like not many would be able to afford a >$2K piece of software.

    I agree that our "good enough" standard is too low...but there is no way to change that in just one part of our economy.

    some entropy with that sink? entropysink.com

    there are two cardinal sins from which all others spring: Impatience and Laziness. - franz kafka

  15. #45
    Registered User jr2007's Avatar
    Join Date
    Oct 2003
    Posts
    16
    I have been teaching myself while revising for GCSEs.

    I use this site and source code from others and a book C++ Weekend Crash Course.
    JR Industries
    www.neono.co.nr

Popular pages Recent additions subscribe to a feed