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

Learning to Code

2»

Comments

  • edited June 2010
    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.
    That's the part I agree with.
    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.
    He doesn't seem to be saying that, -
    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.
    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.
    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.
    I wouldn't read too much into what Scott says. It's more often a case of that he means just exactly what he says, rather than any deep reading into it.
    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.
    That seems to be, essentially, what Scott is advocating, unless when he said "How do I learn to program? Just start programming" he meant something a little more complex than to actually just start programming, which I doubt, as if he did, he would have brought it up by now.
    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.
    Yep. And that's what I called him out on initially, and he chose to argue back on that point.
    Post edited by Churba on
  • Setting aside what Scott has said so far, you pretty much do learn programming by just starting to program.

    For example, just playing with the Python interpreter is a great first step. Of course, you will need to have some sources of information, but simply reading the documentation and some quickly Googled material will tell you everything you need to know. With programming, the information you need is more easily accessible than with many other skills, though, which is the reason why just diving in with documentation and the Internet to back you up is all you need.
  • edited June 2010
    Hey guys, I like to talk about my future career a lot. This career involves me laying your unconscious body on a bed that shoots high-energy radiation through you, running tubes into your brain through your aorta, jugular, and carotid, and then using those tubes to delicately alter the structure and functioning of an organ responsible for letting you control your body. All these actions are controlled me using several different control consoles and 5+ screens. To do this, I need 4 years of undergrad to learn about biological systems and their chemistry. Then 4 years of med school to learn how the integrated system of the human body functions and learning procedures, only performing basic procedures after 3 years of extensive study and proving myself. Then, 5 years learning how to operate the machines necessary to perform catheter surgeries on the body. After THOSE 13 years, I will spend two studying the structures of the human brain until I know them better than the streets around my house, and only then will I be certified to do what I want to do.

    If you can honestly tell me that you would lie down on a CT bed and let me run things into you to learn how to do that very thing and without prior study, Buzz Aldrin has a fist for you.
    Post edited by WindUpBird on
  • edited June 2010
    Setting aside what Scott has said so far, you pretty much do learn programming by just starting to program.

    For example, just playing with the Python interpreter is a great first step. Of course, you will need to have some sources of information, but simply reading the documentation and some quickly Googled material will tell you everything you need to know. With programming, the information you need is more easily accessible than with many other skills, though, which is the reason why just diving in with documentation and the Internet to back you up is all you need.
    As someone who is learning programming through pretty much just this method, I agree, though I will note it can be really frustrating sometimes.
    If you can honestly tell me that you would lie down on a CT bed and let me run things into you tolearn how to do that very thing and without prior study, Buzz Aldrin has a fist for you.
    I wouldn't, but I can't speak for anyone else.
    Post edited by Churba on
  • If you can honestly tell me that you would lie down on a CT bed and let me run things into you tolearn how to do that very thing and without prior study, Buzz Aldrin has a fist for you.
    Cadavers lawl
  • If you can honestly tell me that you would lie down on a CT bed and let me run things into you tolearn how to do that very thing and without prior study, Buzz Aldrin has a fist for you.
    Cadavers lawl
    The difference between operating on a corpse and a living being with vitals, potential complications, undiscovered secondary conditions that must be handled immediately, and life-changing decisions that must be made in seconds is the difference between the sun and the fucking Great Attractor.
  • edited June 2010
    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.
    He doesn't seem to be saying that, -
    Agreed, that's not what he was saying, that was my addition. If he was implying that then he should have just come out and said it. But he didn't. One should never assume that people are going to be able to read subtext or implied meaning in a statement.
    Post edited by Techparadox on
  • One should never assume that people are going to be able to read subtext or implied meaning in a statement.
    Also, as a companion statement, one shouldn't assume there IS a subtext or implied meaning.
  • image
    Yeah, this thread seems like it'd be interesting, but I really don't wanna read Churba's posts. Sorry Churba, just like, I have novels and stuff... Those have stories and aren't much longer than your posts.. lol
  • Yeah, this thread seems like it'd be interesting, but I really don't wanna read Churba's posts. Sorry Churba, just like, I have novels and stuff... Those have stories and aren't much longer than your posts.. lol
    Nah, It's cool, I'm used to it, it's hardly unusual. I mean, Rym and Scott have trouble getting most people to read anything longer than a Tweet for book club, and the stuff they select is usually interesting, so what hope do I have?
  • dsfdsf
    edited September 2011
    The Wrong Quesiton: I want to learn to code, what should I do?
    You guys are really not helping at all with these posts.
    If you want to learn to code, you should either take an intro class somewhere or get a decent book.
    Things to keep in mind:
    There are quite a few basic concepts that need to be learned: Programming in conventions, How things get stored in memory, Data structures, sorts, object oriented programming, functions, classes, inheritance, polymorphism, ect...
    People who learn more than one language tend to be better at understanding how programming works.
    The cool thing is when you start to be able to pick up a new language and question,"how do I express (insert concept) in (insert language name), you're getting it.

    Seriously if you follow most of the advice in this thread you will probably end up being a really shitty programmer. Scott has had at least 4 years of programming classes and multiple high level math courses and then probably a math-programming bridge course or two also. Most of the tutorials on the web will only help you if you already know how to program in a language already. But if you, for example don't know anything other than how to use an array then you will probably use arrays for everything because you don't even know to look for a better structure.

    Over the summer I worked for an Art major web designer that was forced into programming when websites started getting more complicated. He and his co-workers had no idea how to parse anything, create classes properly, use anything other than arrays, ect... They leaned on me to do a ton of back end coding that hey had no idea how to do, and it took me 4 weeks to do what they couldn't figure out for 6 months. The point is, if you don't know the basics well, you will not be able to function on a high level. Sure you can be great at Wordpress, Css, HTML and JavaScript, but good luck with real programming.
    Post edited by dsf on
  • Scott has had at least 4 years of programming classes and multiple high level math courses and then probably a math-programming bridge course or two also.
    I knew how to program before I went to college. College helped, but not that much. The biggest benefit the classes offered me was giving me tasks that I had to accomplish by a particular date. They didn't actually do much to help me accomplish the tasks. I learned almost entirely by doing, reading documentation, and Googling.

    Most people have a problem learning to program because they view learning as an end, and not a means to an end. If learning is your goal, you will fail. You need to have something you want to make or change, and you will learn the necessary skills as you attempt to accomplish the task. The more times you do similar tasks, and the more you research, you will find better and better ways of doing the same thing until eventually you don't suck.

    If you are in need of tasks, I suggest http://projecteuler.net/
  • dsfdsf
    edited September 2011
    Scott has had at least 4 years of programming classes and multiple high level math courses and then probably a math-programming bridge course or two also.
    I knew how to program before I went to college. College helped, but not that much. The biggest benefit the classes offered me was giving me tasks that I had to accomplish by a particular date. They didn't actually do much to help me accomplish the tasks. I learned almost entirely by doing, reading documentation, and Googling.

    Most people have a problem learning to program because they view learning as an end, and not a means to an end. If learning is your goal, you will fail. You need to have something you want to make or change, and you will learn the necessary skills as you attempt to accomplish the task. The more times you do similar tasks, and the more you research, you will find better and better ways of doing the same thing until eventually you don't suck.

    If you are in need of tasks, I suggest http://projecteuler.net/
    I've been programming since I was child too, but I took a huge hiatus from 2000-2007 from being in the military and making no forward progress in ANY of my important skill sets. What I have gotten out of my 4 years of college is more math skills, better understanding of multiple languages and a more structured understanding of how to handle things by reference and use pointers. Which I think makes me a hell of a lot better than I was. Not to mention shaking off 7 years of rust. Oh but I am book marking project Euler. I don't have time at the moment to do those things since I am working on a mobile app, an ecommerce site, and a game but I will take a look at it eventually.
    Post edited by dsf on
  • I wonder if I sent Project Euler a problem that I'm not yet certain of the answer, if they would post it and see if anyone finds an answer. The same problem I posted in the math and puzzles thread. I could easily generate a text file with an arbitrarily large matrix as the test.

    I think that a certain amount of academic knowledge helps build a solid foundation for jumping into programming. You can approach the basics from the language and syntax, or from the mathematic perspective, but some knowledge of both is fairly useful before getting your feet wet. I'm going to come out waffling and say that there are certain advantages to the purely pragmatic side of programming and the purely academic. What I mean by pragmatic vs. academic is just the difference between real world problem-solving and the theoretical problem solving. You need to take something from both sides, or you are going to be crushed under the weight of the other.

    In school, most of my coursework often focused on "right answers" and the abstract concepts of programming. Data structures, algorithm design, fundamental logic, math, and certain parts of optimization. All of which are incredibly powerful things to understand, but you have to temper this with a bit of the practical - that the real world is basically full of "rocket fuel" problems inside "rocket fuel" problems. And you won't necessarily see all of them coming. All the academic knowledge in the world doesn't necessarily prepare you to go out and build real world software. You need to always factor in time, money, and whatever else the world throws at you. You might even spend a lot of coursework on how to supposedly deal with these real world problems, proper systems analysis, different management techniques and styles, but the truth is that even those things cost time and money to train, implement, and maintain.

    Then there's the business side of things. There are goals and deadlines, limited resources of time and money, and all that matters sometimes seems to be making that work "good enough" for the time being. But this is where having a strong foundation of knowledge and good academic processes is needed to temper yourself. I've worked with far too much code that was written just to "get by". But you have to sometimes remember that the cheapest (in terms of time, money, or whatever else is limited) solution is not necessarily the "right" solution for the job either. Right answers in the real world involve figuring out all the other potential costs and determining what is actually going to work for your circumstances and goals. And part of that sometimes comes down to figuring out how much time and money you have to figure out how to do that, with all those little rocket-fuel problems inside. But having a good foundation of base knowledge of all those data structures, algorithms, standards and practices and everything else will give you the ability to actually handle that practical side in a way that pays dividends down the line.

    And there are pragmatic academic problems, and academic pragmatic problems, within the context of how I'm vaguely defining things here. I remember some other article linked here recently about how "engineers" solve problem versus how a "scientist" solves problems. It was perhaps too biased. Both have reasons to need each based on their specific circumstances and the nature of the specific goal.

    Basically, "no plan survives contact with the enemy", but that doesn't mean you shouldn't have a plan and the ability to adapt. Just telling someone to find a problem, find a solution, and repeat till they have beaten all the bosses and saved the princess is insufficient. Similarly, telling someone to "get a good book" and learn all the theory and concept behind things is insufficient. Greater power comes from mixing both types of magic. I'm no expert on the exact ratio of mix, and how much of one side to add before focusing on the other. And I guess that's the root of this thread in some sense. Do you start off with data structures and basic algorithms, or building a functioning "thing"? Ideally both are mixed in the process, but I don't think you can reliably depend on one or the other alone to teach the other half.
  • Hey, what I posted in the math thread was very nearly a good solution to the problem. If you make the text file, I'll do it.
Sign In or Register to comment.