This forum is in permanent archive mode. Our new active community can be found here.

Learning to Code

edited June 2010 in Technology
Since the job market sucks and I'm having trouble finding a job, I'm stuck with loads of free time this summer. So I thought I'd give a swing at learning to code for the iOS platform. Now before you guys go off on blah blah Apple sucks blah blah closed platform blah blah. My mind has already been made and the reason is because I want to update my favorite Twitter app for the iOS called Natsulion for iPhone. The Developer has made the code freely available, and is fine with people making changes, and releasing their own version.

So my question to you is, what is the best way to learn a programming language by yourself and are their any good places or resources to learn how to code? The only experience I have with programming languages is Visual Basic back in 9th grade, a good 5 years ago, and HTML/CSS/a little of JavaScript. Does anyone here have any experience with Cocoa, Mac OSX dev, and iOS? Tips and help are appreciated.
«1

Comments

  • edited June 2010
    How do I learn to play baseball? By playing baseball.
    How do I learn to be a carpenter? Get some tools and wood and start carpenting.
    How do I learn to sing? Start singing.
    How do I learn to program? Just start programming.

    Our culture of school has really got people into this state where they can't do things. We believe that we always have to prepare and learn to do things before we do them. In some cases, like SCUBA, there is definitely some mandatory pre-doing learning activities. For something like programming, no such thing.

    If you're going to code for the iOS, you need a Mac. I assume you have one. Install the dev kit. Open the code in XCode. Read the instructions. Just start doing it. Everything you need will be at http://developer.apple.com.
    Post edited by Apreche on
  • Hmm, true. I guess the best way to learn is to do it. I was really just asking for any general tips and advice.
    Thanks.
  • Remember, computers are dumb.
  • Remember, users are dumb.
    And other coders most of the time as well.
  • Remember, computers are dumb.
    Wait, what? There isn't a little Wizard in my computer who knows what to do? MIND FREAK!!!!
  • There isn't a little Wizard in my computer who knows what to do?
    No, but there is magic blue smoke. If you let that smoke out then nothing will work right until you replace the part that got smoked.
  • This might be a good place to start: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/

    If the lectures are not complete enough I have the older course which I downloaded from iTunes and the site (If you want that I'm not sure of the best way to get that too you, it's over 11gb). It is a very good start on iphone programming.
  • This might be a good place to start: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/

    If the lectures are not complete enough I have the older course which I downloaded from iTunes and the site (If you want that I'm not sure of the best way to get that too you, it's over 11gb). It is a very good start on iphone programming.
    Sweet, thanks. Leo Laporte was talking about this.
  • edited June 2010
    How do I learn to play baseball? By training a lot.
    How do I learn to be a carpenter? Get an apprenticeship under a qualified carpenter.
    How do I learn to sing? Start singing with a teacher, who knows what you're doing wrong and how you can sound better.
    FTFY, Scott.
    Post edited by Churba on
  • How do I learn to play baseball?By training a lot.
    How do I learn to be a carpenter?Get an apprenticeship under a qualified carpenter.
    How do I learn to sing?Start singing with a teacher, who knows what you're doing wrong and how you can sound better.
    FTFY, Scott.
    Owned.
  • How do I learn to play baseball?By training a lot.
    How do I learn to be a carpenter?Get an apprenticeship under a qualified carpenter.
    How do I learn to sing?Start singing with a teacher, who knows what you're doing wrong and how you can sound better.
    You can train in baseball all you want, going in batting cages and such, but you have to play in a lot of real games before you will be any good. Most of the game can only be learned on the field. You can practice pitching all you want, but you've got to face real batters in real games to learn what you really need to know.
    What do you think a carpenter's apprentice does? They get taken out on real jobs to do real carpenting. It's basically just an opportunity to carpent, because nobody will hire you to learn.
    The singing teacher will have you sing. You'll also have recitals quite often, because you need to sing in front of a real audience.

    In school you do fake learning. You read about science, and maybe even have a few labs, but you're rarely doing actual science for real unless you're a grad student. You read about match, and solve prepared problems, but you rarely solve real problems with math in school. You do it outside of school while playing games involving numbers or handling money.

    Most programming instruction has you do fake programs. They have some BS programs that aren't actually for real, they're just examples. Make a web page that says hello! Make fizzbuzz. All these sorts of tutorial programs aren't actually real programs you would ever write in the real world. In all my years of undergraduate study, I only twice did projects for class that were for real. This is why there was such a gigantic divide between the people who coded on their own, and those who only coded for school. Almost everything I really know about computers I learned on my own trying to use my computer to do things for real.
  • edited June 2010
    Scott, you Don't actually know about what you're talking about, apart from the programming, on which I'll take you at your word, due to your experience and education in the field. I'm picking apart your terrible choice in analogy and lack of knowledge about the topics on which you speak.
    You can train in baseball all you want, going in batting cages and such, but you have to play in a lot of real games before you will be any good. Most of the game can only be learned on the field. You can practice pitching all you want, but you've got to face real batters in real games to learn what you really need to know.
    Question - How much baseball have you actually played? Let me fill you in some - I played for the Carina Redsox, and Was selected for and trained with the Queensland Rams, before I quit for lack of time between work and trying to doing recreational things like sleep. Let me clue you into something - The actual game is NOTHING but proving who trained harder and better, for a prize of shiny medals, trophies, and the lamentations of their women. Winning the game is what the training is for, and no matter how many games you play, without training, you're not going to win a game by any other means than cheating, or having the other team forfit.

    If you want to be worth a pinch of shit in the game, you train and train and train and train. I could put you, as you are, on the field for a hundred games, but if you didn't train, then I'll still whoop your ass up and down the street at every single fundamental skill in the game that isn't warming a bench, and then tie it all up in a nice little bow, when my trained and seasoned team eats your hundred-game-no-training team for a light snack.

    Most of the game Can only be learned on the field? Are you high, or just arrogant and ignorant?
    I don't care how many games you've played, if you haven't trained, you're absolutely useless, because you lack the fundamental skills you need, you lack the ability to use these skills proficiently enough to be of use to anyone, you lack the ability to react fast enough to any given situation, you lack the ability to react correctly without thinking about it, you lack the physical fortitude and attributes that training improves.
    I haven't played in two years, and despite the previous skill I had, and you'd be hard pressed to find a team that would do anything more than put me on a bench till I'd trained enough, and Qualifying for the rams again, forget it.
    What do you think a carpenter's apprentice does? They get taken out on real jobs to do real carpenting. It's basically just an opportunity to carpent, because nobody will hire you to learn.
    Now, I wasn't a Carpenter's apprentice, but I worked briefly as a Painter's apprentice, and worked alongside carpenters and apprentice carpenters, and briefly as a mechanic/fabricator with apprentices working under me, so I'm pretty clued in on how it works - which, to the complete lack of surprise to one and all, pretty much nothing like you think it does. You think a carpentry apprentice is just taken out on jobs and does same same carpentry as anyone else, just with a little more supervision right off the bat? Then you'd be in for a rude shock if you'd ever set foot on a worksite for more than twenty minutes and a quick look-around. Christ, as a first year apprentice, you're nothing more than a shit-kicker who gets all the make-work jobs and simple, easy shit so that you can learn the fundamental skills - there's that term again - of the trade. You're fetching Tea and coffee for the bosses, picking up lunch for everyone, you're being sent on errands to fetch tools and equipment, lugging shit about, sweeping and cleaning, and doing simple things, for example, sawing some wood down to size, sanding things down, setting nails and putting glue where you're told. The only person below you on the ladder on the site is the work experience kid, if there is one.

    You know why? Because, if you hand a carpentry job to a first year apprentice, he's going to make an absolute dog's breakfast of it. Maybe, you hand the job to a third(depending on the job) or a fourth year apprentice, you'll end up with something like what you're looking for, hell, they might even do a good job of it - because they've spent two and a half to three years, eight or more hours a day, day in, day out, learning the job, and the skills needed.

    Oh, and before I forget - For the entire apprenticeship, the whole four years, you're filling out paperwork, studying learning materiel, doing homework, and taking tests, and being interviewed and tested on your knowledge, and having your skills tested. A mate of mine from when I was working at D&R; Automotive, Tommy, He was a fourth year apprentice, and he failed a test on automotive electrics, by barely two percent - literally one question took him over the line from Pass to fail - and it extended his apprenticeship another eight months before he was able to take the test again.
    The singing teacher will have you sing. You'll also have recitals quite often, because you need to sing in front of a real audience.
    Finally, something you're actually NOT talking made-up shit about. Yes, a singing teacher will have you sing, so you can practice the Fundamentals - funny how they keep coming up - and so that they can find your weaknesses, correct them, and so that you can learn to sing well, rather than just being another barely-worth-karaoke warbler, or just another Joe average who can sing a few songs REALLY well, but as soon as you hand them something else to sing, they sound like a half-strangled cat protesting someone attempting to turn it into a completely strangled cat.. And yes, they have recitals, because that's a part of being a good singer, rather than just a technically proficient singer - If you can't sing in front of an audience, then as soon as you're on stage, then you're a singer who can't sing, which is even less worth than set dressing your razor arse is surrounded by.
    And, time for the fun "How YOU know, smartass?" part, I've been in the theatre since I was eight, and have been out a grand total of three and a half years. Along the way, I learned how to sing opera. I do a pretty mean Sweeney Todd, and my Phantom ain't no slouch either.

    Much of High School is, while I think Fake learning is a little bit strong, Certainly not all it's made out to be, and certainly not a comprehensive course. I can't speak on university, because the most university I've attended was showing up to do my Radio show on Leeds Student Radio and hitting on the occasional Student. But the problem is, unlike you seem to think, that doesn't mean that you learn most things by just leaping into them - If you were dropped right into high school, without having been taught to the end of the primary school level, you're going to fail miserably, because you don't have the fundamental skills or knowledge you need, such as reading or writing.
    If you hand a novel written in Japanese to someone who doesn't speak any Japanese, it's not going to teach them Japanese, because they don't have the fundamentals of the language, and all the symbols are meaningless gibberish, no matter how many times they read it, or, more accurately, look at the symbols.

    If I hand you a rifle, and tell you to strip it, clean it, re-assemble it to my satisfaction, you won't be able to do it, because you don't have the knowledge you require and if I drop a rifle into your hands, set a target 1000 yards away, and tell you to get at it, and from where you are, hit the target, the only way you're hitting that thing is luck or cheating, even if I gave you a month to do it. Sure - you might learn to compensate for bullet drop. But, will you know how to compensate for wind speed and direction correctly, or temperature, humidity and weather? Will you even know how to properly pull the trigger? Will you know when to fire in the cycle of your heartbeat, or how to hold your breath correctly when you fire? Of course you won't, because you don't have the skills and knowledge you require, and you can't learn them by just shooting.

    As I said before, Scott, I'll take your word for it in regards to programming, at this point - For all I know, your very next post, You know more than me on the topic, and have hundreds upon hundreds of hours more experience. But don't make the stupid, stupid mistake of thinking that this applies anything close to universally. Give advice on programming - you're a smart(if somewhat arrogant) guy, and when it comes to that field, you know your shit forwards, backwards and upside down - but either work on picking which analogy you use better, or don't bother.
    Post edited by Churba on
  • edited June 2010
    I think you're being waaayyy overly-critical, Churba. Scott's core point is a sound one; if you want to learn to do something, you need to be self-motivated enough to get yourself to learn it, whether that means you sit down and study the programming books or you go out and find/pay for a voice coach to help you sing. If you want to do something, your own willingness to try hard and ability to be independently motivated is what is going to make you succeed.
    Post edited by Sail on
  • I think you're being waaayyy overly-critical, Churba. Scott's core point is a sound one; if you want to learn to do something, you need to be self-motivated enough to get yourself to learn it, whether that means you sit down and study the programming books or going out and finding/paying for a voice coach to help you sing. If you want to do something, your own willingness to try hard is what is going to make you succeed.
    I agree with Scott, to a point, and his core point is good, if obvious - Yes, you have to have the motivation and determination to learn something if you want to do it well - you'd have to be pretty obvious to miss that one.

    But the analogies he chose to show that point were extremely poor, and in fact, damaged his point rather than supporting it, and then he chose to argue back over those points. To change it to food for no reason other than that I'm hungry - Sure, he has a perfectly cooked prime rib-eye, but if that prime rib is served buried half-way down in a whole wheelbarrow of manure - it's a very good steak, I won't deny, but I'm still not going to eat it, because it's buried in a large pile of horseshit.

    As a purely personal point - You think Scott wouldn't do the same to me, were our positions reversed? Goddamn right he would - as much as I've observed, Scott doesn't dance around a point, if he thinks you're making a bullshit argument, he'll say so, even if your core point is correct. I possibly was a little harsh in the way I worded it, but frankly, that's the way I talk. I might be a little more observant of societal niceties than Scott seems to be, by most accounts of his manner, but I don't see the point in pissing about and patronising him or coddling him with my words. I respect him enough to speak my mind to him, rather than messing about with niceties that he doesn't care for anyway.
  • I think you're being waaayyy overly-critical, Churba. Scott's core point is a sound one; if you want to learn to do something, you need to be self-motivated enough to get yourself to learn it, whether that means you sit down and study the programming books or you go out and find/pay for a voice coach to help you sing. If you want to do something, your own willingness to try hard and ability to be independently motivated is what is going to make you succeed.
    In a round-a-bout way that can be claimed to be Apreche's core point, but it is not. In actuality he's just telling people to do something they haven't learned. Even at a university you are first and foremost taught various ways to program instead of just being told to program. That comes after you've been taught, as to practice what you learned. Everything is learn -> practice -> make happen. If you want to program you will have to learn the different programming paradigms and the syntax of the language you want to use. THEN you can start programming.
  • In a round-a-bout way that can be claimed to be Apreche's core point, but it is not. In actuality he's just telling people to do something they haven't learned.
    I read it this way too. I'll give Scott that he probably meant, if you really want to learn something, read the rules and look at examples of what you're trying to learn, and then use that to practice with. With a lot of things, programming included, you can do that and be fairly successful. I also agree with him that in many cases, the learning you do in school is largely theoretical and has no real application in the real world. But I think he is foolish to believe that school-like learning is useless, especially when it comes to programming.

    I also got my degree by doing lots of programming, with electrical engineering tied in wherever possible, and most of it was basically just writing my own versions of common API. Those things are fairly useless in the real world because they've already been done. But the fact is I'm still programming. That itself is not useless. In the exact same way, I did countless 2-5 page essays during grade and high school. In my profession, will I ever have to write a 5 page essay about anything? Probably not. But it still helped me become a very competent writer.

    As Nine said, everything is learn -> practice -> apply. And if you really want to be good at something, unless you are a goddamn genius, you have to learn under someone who has more experience. To Scott's point, luckily programming is one of those things where you can learn on your own, so if you want to learn it, you are fully able to.
  • I'm going to train for baseball. I read books about baseball. I get some balls and examine them. I watch videos of baseball, even go to games. If you toss me out on the field at this point, I'm going to suuuuuck ass.

    Ok, so I go in a batting cage. I hit off a tee. I learn to throw, and play a lot of catch. Put me on a field, still suckage.

    You might know the rules of the game on paper, and have the fundamental skills mastered, but you have to go out and actually play for real. Otherwise you'll be doing stuff like throwing to the wrong base. Running when you should stay put. You won't understand the psychology of what kind of throw pitchers are going to send your way in different situations.

    I'm not talking about mastery. I'm talking about learning. Going from zero to something. Obviously if you've got nine guys who already know how to play, then training to throw harder, run faster, and swing better will put you on top. That's not what we're talking about here. We're talking about not knowing how to do something at all, and then learning to do it. The fastest way is to just do it and fail and learn from the mistakes. I'm not saying book learning is useless. I'm not saying practice or training of fundamental skills is useless. I'm saying the fastest way to go from zero to something is to actually do it, for reals. Even if you do it just a handful of times, or even once, that experience will give you a context for book learning, practice, and training, making them all the more valuable.

    Don't think about someone who wants to be a carpenter, think about someone who has never seen a hammer in their lives, let alone know how to swing it properly. They shouldn't be reading a book about carpentry. They shouldn't get a plastic hammer and nails. They shouldn't watch videos of hammering. They should pick up a hammer, some nails, some wood, and make a bird house.
  • ./cat/timetostopposting.jpg
  • edited June 2010
    ...think about someone who has never seen a hammer in their lives...They should pick up a hammer, some nails, some wood, and make a bird house
    And they're going to end up with one of the crappiest looking birdhouses in the world. And if they continue down that path they're either going to produce nothing but crappy birdhouses or they're going to get frustrated and give it up. Or they're going to end up trying reinvent techniques that have been around for hundreds of years that they could have learned in no time flat with proper instruction. Drive to learn will only get you so far when it comes to learning a new skill or trade. A trainer at a company I previously worked for once told me, "The best way for someone to learn a new skill is to tell them how to do it, show them how to do it, and then watch them as they do it." That holds true for pretty much everything, including programming. Sure, taking a class to learn how to write "Hello world!" on a screen seems pretty basic and useless to someone of your level of training, Scott, but I think you are forgetting that we were all n00bs at one time and that having a tutor or a mentor to guide you through the training increases the amount of knowledge gained and retained by an order of magnitude. At the very least it gives you someone with previous training to bounce ideas off of or to help guide you to the proper solution when you're stuck trying to figure out how to do your first bubble sort (or some other basic programming task). Anyone can go out and pick up a book on programming in C#, Java, or Python to try to learn how to program, but if they don't have the groundwork laid for them then they're more likely to get frustrated and give up, or worse they'll end up producing crap code that is so full of bugs that it will put anyone who implements it at risk.
    Post edited by Techparadox on
  • edited June 2010
    Didn't you people ever hear the story of the pottery class? A teacher told half the students they would make just one pot, and one pot only. Their grade would depend on the quality of that one pot. He told the other half of the students they would be graded on the quantity of pots they made, regardless of quality.

    The students who were going to make just one pot studied, planned, and prepared like crazy. They worked so hard on that one pot, and they turned out alright.

    The students who went for quantity made a lot of really shitty pots. However, by the end of the semester they were making pots that were superior to the pots of the students who were making one pot.

    All the students had the same amount of time, one semester. Studying, preparing, reading, planning, they are all well and good. However, they are no replacement for doing. Got one guy who never wrote a program in his life, but read every programming book and put him up against a guy who never took any formal instruction, but has written 100 programs. Who's going to write something better? Take a guy who's studied running like crazy and put him up against someone who just runs every day without thinking about it. Who's going to win the race?

    I'm not saying learning and such has no value. You people need to learn to read. I'm just saying that there is no substitute for doing. If you want to learn to do something, start by doing it as much as possible.
    Post edited by Apreche on
  • You people need to learn to read. I'm just saying that there is no substitute for doing.
    And if that's what you're saying then you need to make sure that you're making your point clear from the beginning of your argument, because in your original statement it was implied that all one needs to do is go out and start doing that thing, no extra instruction needed. Every example you gave in your original post, save programming, was something that would benefit from (or possibly even require) formal instruction in addition to personal study and practice to be competent in that field (I'm not talking mastery here, I'm just talking competency), and one could still make the argument that formal instruction would benefit a programmer as well. Sure, someone can learn programming on their own from a book, but I'd still want to see examples of their code before I hired them to do anything.
  • You people need to learn to read. I'm just saying that there is no substitute for doing.
    Can't read what you haven't said yet, so maybe it's better if you learn to write. Of course, you'll keep on denying that and you'll keep going with your charade since I doubt you'll listen anyway.
  • I'm going to train for baseball. I read books about baseball. I get some balls and examine them. I watch videos of baseball, even go to games. If you toss me out on the field at this point, I'm going to suuuuuck ass.

    Ok, so I go in a batting cage. I hit off a tee. I learn to throw, and play a lot of catch. Put me on a field, still suckage.

    You might know the rules of the game on paper, and have the fundamental skills mastered, but you have to go out and actually play for real. Otherwise you'll be doing stuff like throwing to the wrong base. Running when you should stay put. You won't understand the psychology of what kind of throw pitchers are going to send your way in different situations.
    Y'know, there is a reason that nobody trains like that, and rather, trains using drills and using the skills as they would in a game, and practice a lot. Funnily enough, I didn't even mention that someone would train the way you're saying, because I figured that it was too stupid of a concept to even be proposed. I didn't say "Sit around and read books, or watch videos, or hit from a tee" - I said TRAIN. The point of the training is developing, polishing, and maintaining ALL of the skills you'll need, both mental and physical, and it doesn't matter how many books you read or videos you watch, that's not training for baseball.
    You know what's more useful than being able to understand the psychology of what kinda throw a pitcher is going to send at you? Being able to read his movements, and react fast enough. If you can do that, you can tell exactly what the pitcher is doing, before the ball even leaves his hand. You know how you do that - Not by playing in the game, where your focus is hitting the ball, but in training, where you're improving yourself, and you can do it over and over again till you have it. Think about it - In an average game, you'll be up to bat somewhere in the region of eight or nine times, usually for little more than one to five minutes a time, and you'll get one hit in, and most likely you'll face no more than three pitchers at most. In training, if you want, you can bat just once, but for four solid hours - the equivalent to roughly forty eight turns at bat, and without the worry of that you HAVE to hit it, or being struck out, or walked, and you can take as many swings as you like, and you can face as many pitchers as you have people on your team who can pitch. If you want to put the pressure on, you can make it into a competition. If you just want to practice form, you can just practice form. But you're still getting far, far more benefit than you are by playing a hundred games, if you're not training.
    I'm not talking about mastery. I'm talking about learning. Going from zero to something. Obviously if you've got nine guys who already know how to play, then training to throw harder, run faster, and swing better will put you on top. That's not what we're talking about here. We're talking about not knowing how to do something at all, and then learning to do it. The fastest way is to just do it and fail and learn from the mistakes.
    Nor was I - I was pulling apart your fundamentally flawed argument, while recognising that your core point was good.
    However, again, Do not make the mistake of thinking that this method applies to everything, or even most things - To go back to the example of the rifle, No matter how many times you screw up the shot, it's not going to teach you to fire between heartbeats, with your breath exhaled and held, or how to squeeze the trigger steadily, rather than pulling it hard, because it's something that would be non-obvious if you don't have the experience or a good teacher.

    The thing is, on one level, you're entirely right - some things, the best way to learn them is to do them, fuck up, figure out how you fucked up, and do it again. and again. and again. But that doesn't even apply universally within a single field. To jump back to baseball, playing a hundred games isn't going to teach you by trial and error to throw optimally, it's going to teach you to throw how is comfortable and familiar to you.
    Even within programming, this applies - Sure, the best way to learn python is to screw about with python, but that assumes you already know know a base level about what you're doing. If you wanted to teach, say, my sister to program(who is a very average "people who know about computers are wizards doing magic" kinda person), you wouldn't just throw her into practising programming by writing code, you'd teach her the very basics first.
    Don't think about someone who wants to be a carpenter, think about someone who has never seen a hammer in their lives, let alone know how to swing it properly. They shouldn't be reading a book about carpentry. They shouldn't get a plastic hammer and nails. They shouldn't watch videos of hammering. They should pick up a hammer, some nails, some wood, and make a bird house.
    No, they shouldn't. What they should do is seek out someone, and say, "Hey, can You teach me how to do this?" or maybe "Hey, can I watch you while you do this thing, so I can figure out how to do it?" - To bash away at when you know nothing is a bad way to learn, because as TechParadox said, you inevitably try to re-invent the wheel, and make a hash of it.
    I'll give you an example from my personal experience - When I was still learning some of the more complex stuff as a mechanic, I'd do stupid shit like that all the time. I fabricated a custom tool for cleaning out the gaps where piston rings go, and frankly, felt like a jackass when the tool I built didn't actually work as well as the method that's traditionally used - Break a piston ring in half, wrap one end in some cloth or tape, and use that - It's non-obvious, but perfectly sensible and obvious to someone who has the right level of skills and knowledge - the piston rings are sharp, perfectly sized for fitting into and filling that gap, and are softer than the pistons themselves, so there is minimal risk of damage to the piston.

    Learning things, especially things that you don't know anything about is not dropping a pre-fab wall down and propping it up - It's more like building a wall out of bricks, you start with a strong base, and you keep piling on the bricks and mortar, till you have a half decent wall.
  • (Pardon the double post, I had to break it into two parts, because it went over the character limit)
    Didn't you people ever hear the story of the pottery class? A teacher told half the students they would make just one pot, and one pot only. Their grade would depend on the quality of that one pot. He told the other half of the students they would be graded on the quantity of pots they made, regardless of quality.

    The students who were going to make just one pot studied, planned, and prepared like crazy. They worked so hard on that one pot, and they turned out alright.

    The students who went for quantity made a lot of really shitty pots. However, by the end of the semester they were making pots that were superior to the pots of the students who were making one pot.
    Whoever made up that story lives in fantasy land. If you are learning how to make pottery, a skill with your hands, you do it over and over and over again, because no amount of book learning gives you muscle memory, or the feel of the clay spinning under your hands.

    Also, whoever made up that story doesn't know bloody much about pottery, beyond what they saw through their eyeful of tears while watching that scene in the movie Ghost. Yeah, sure, you might have some students who make a shit-load of pots, and some of them might come out with superior quality pots.
    However, far more of the people who actually sat down and learned about the process from books before they made a decent enough pot are going to pass the test, because they're not going to have pots that crack and break in the kiln, because they know how long to put them in there, they're going to have pots that have superior use for the application, because they know what type of clay you want for an outdoor decorative pot, Vs a pot that you make to keep pens in on the side table. They're going to know how they should correctly apply and bake glaze to make waterproof pots rather than a porous clay pot that lets the water thorough.
    They're going to make an average pot, but they're going to know what to do to make a pot that's not a pile of shit once you put it to use - though, they won't make as well formed of a pot as the students who busted their arse at the wheel and made as many pots as humanly possible in the time, but it will, in the end, work better.

    The student who is REALLY going to make a good pot is doing BOTH - busting their arse at the wheel, AND building up their knowledge of the subject. THAT student is going to make a very well formed pot, that is going to be just right for the intended use, because they both have the hands on skills to make a damn fine pot, and the knowledge to make a pot that's not going to fail at the intended purpose because they used the wrong clay or glaze.
    I'm not saying learning and such has no value. You people need to learn to read. I'm just saying that there is no substitute for doing. If you want to learn to do something, start by doing it as much as possible.
    No, I'm sorry, that's just not right.

    Let me give you an example that relates to you specifically.

    You've mentioned before, that you can't replace the battery in your car, and that even if you learned the theoretical, you couldn't bring yourself to actually try it in a hands on fashion. But if you reverse the problem, and you just went out and tried to learn it by doing, even at the first thing you do in replacing the battery after you have access to it, you've got a 50/50 chance of blowing your electrics by pulling the wrong cable from the battery terminals first, and even if you do it successfully, you have every chance of screwing it up when you put the terminals back on in possibly the wrong order, or the next time you change the battery, or another time ten times down the line, because you don't know WHY you did it right the first time.
    Say you Change the battery on Rym's car down the line, and for whatever reason, his car is different to yours, and you do it as you would yours, you pull the wrong terminal and blow out his electrical system. You don't understand why you screwed it up, because while you have the practical skill, you don't have the knowledge base to back it up - and in all likelihood, you'll be ten times as frustrated when it doesn't work, because it's always worked before, and you don't know why it didn't this time, so you have a much greater chance of never bothering to do it again, thus turning the entire exercise into a complete waste of time.

    But if you pick up the knowledge, AND do the practical learning, then you'll do it right EVERY time, and trivially, because you know not only the practical skills of how to do it, but the correct order to do it in, and why it's done that way.

    Like I said - Your core point is mostly decent, but your argument is terrible. Practical learning has great value, as does book learning, but they're both worse than useless compared to the two of them combined.

    As for that We need to learn to read, I say in return, that you need to learn how to think about what you read. I've told you why what you're saying is wrong, and at length - though I'll admit, I started purely with the analogies you chose, because they were extremely poor choices to illustrate your point - but all you're doing is re-stating your point, with what I said twisted around like a circus contortionist so that it seems to support your point, without actually thinking about why they were poor analogies to pick in the first place, or why, in light of that, the conclusion you propose might be flawed.
  • Can anyone find the link to the pottery thing? It's definitely not fantasy land. It was either a TED talk or a blog post by the professor or something.
  • Can anyone find the link to the pottery thing? It's definitely not fantasy land. It was either a TED talk or a blog post by the professor or something.
    Pending viewing the original, I maintain my position, however, it may simply turn out that your interpretation of it to support your point is set firmly in fantasy-land. All i had to go by is your summary/interpretation.
  • image
    This is what happens when you let people read too many books.
  • edited June 2010
    The pottery thing was mentioned by Will Wright in that talk we went to. I have no idea what the original source was, but Scott's description of it basically matches what I recall.

    That said - even the students who made many pots were doing so in the context of a class, and it seems reasonable to assume that those students were exposed to at least some demonstration, theory, and critique. Experimentation and prototyping go a long way towards mastering a skill, but that does not mean they will take you anywhere on their own (at least, not very quickly). If you do any sort of rapid prototyping in software development, there's a very important feedback phase where you get someone (who is either your target audience or the person giving out the requirements) to tell you what works and what doesn't.
    Post edited by Alex on
  • edited June 2010
    Regardless of who said the pottery example, if you break it down it's still a flawed analogy (not to mention pretty obvious that Will Wright has never taken a try at throwing a pot on a wheel in his life). Group A is getting graded on the quality of a single unit, whereas Group B is getting graded on quantity of production, and then at the end you compare the quality of the group that was only allowed to make one unit to the quality of a group that was able to churn out crap for six months? Group A is screwed from the get-go under that comparison condition because pottery isn't a skill you can learn from just looking at pictures in a book or watching videos. Not to mention that the end conditions aren't equitable - either both groups should be graded on the quality of a single unit and given the same amount of study time but differing amounts of practical time, or both groups should be graded on quantity, with one group receiving instruction and the other getting no assistance. Either way, if I walked into a ceramics classroom and the teacher dropped any of these conditions on me as a grading requirement for the class, I'd tell him where he could stick his clay and go drop the class because I know a raw deal when I see it.

    I took two semesters of ceramics as part of my humanities requirement in college. I had never sat down in front of a pottery wheel in my life before that class. The first time I tried throwing anything on the wheel it was a hot mess. I scrapped so much work back into my clay stock it wasn't even funny. One day, about halfway through the first semester it finally clicked and all the instructions my teacher had poured out made sense. It was akin to that moment when you 'get it' when you're learning to play a rhythm game, or the first time you're able to ride a bicycle without wiping out. My hands were able to get the clay to do what I wanted it to and my feet were able to control the wheel. I was able to crank out bowls, pots, and all kinds of vessels with minimal trouble. I still have a whole box of the stuff I produced in storage in my parents' garage somewhere (provided they didn't throw it out - I should go dig that stuff up and start using it.) Even though I had reached a state of competency with the wheel, I knew I still had a long way to go. If you sat someone down in front of a wheel who had only read theory (and possibly watched videos) on the process but never actually handled a wheel and told them to throw a pot, you'd be lucky if you got a lump of clay with a dent in it in the center of the wheel, much less an actual pot. If you put someone in front of a pottery wheel with absolutely no prior knowledge and gave them all the clay they could ever want, they'd be lucky to generate something that even remotely resembled a pot in a year's time, much less a semester.

    I can see where Scott was coming from in his original point. If someone wants to learn how to do something, they shouldn't just sit around wringing their hands and wondering where to start. They should go pick up a book on the subject and learn more about it. They should seek out local instructors or college classes where they can learn the processes and techniques required. But if all they try to do is go it on their own and learn from their mistakes then their chances of frustration and, ultimately, failure are high. Scott just happened to pick bad examples for stuff that one can "pick up and go" and then be able to do competently without outside instruction.
    Post edited by Techparadox on
Sign In or Register to comment.