|
On January 08 2010 11:30 illu wrote:Show nested quote +On January 08 2010 11:27 Cloud wrote:On January 08 2010 11:25 illu wrote: Wait. You need TUTORs to TEACH you how to program? Are you for rela? Uh what's so wrong about that? I just don't think it is worth his money to hire someone to teach it to him: writing computer programs is easier than learning how to use chopsticks. But the way most self-taught programmers code is comparable to using a chopstick as a spear. Sure it works a lot of the time, but everyone else who sees it is gonna wonder what the fuck you were thinking.
|
On January 08 2010 11:30 illu wrote:Show nested quote +On January 08 2010 11:27 Cloud wrote:On January 08 2010 11:25 illu wrote: Wait. You need TUTORs to TEACH you how to program? Are you for rela? Uh what's so wrong about that? I just don't think it is worth his money to hire someone to teach it to him: writing computer programs is easier than learning how to use chopsticks.
It's easy to write code that works.
It's hard to write code that 1) is flexible so that years down the line unforeseen situations can be easily handled 2) is modular so that thousands of people can concurrently work on it 3) maintains consistent hierarchy and naming conventions so that it is easy to understand.
|
On January 08 2010 12:22 ulszz wrote: wut u have 4 year cs and need a tutor? and i thought i was going to come out with my cs degree knowing shit... I was foolish and wasn't able to secure an internship before graduation which made it awfully hard to get an actual programming job right out of college hence why I'm working as a tester right now to get my foot in the door. I'm paying for that stupidity now but I've resolved to redouble my efforts this year.
Just don't be like me, make sure you get that experience via an internship before you graduate. Or at least build up a decent personal portfolio you can talk about and pull code samples and such from. Thinking that this diploma alone would guarantee me a job was so utterly idiotic in hindsight. Makes me wish I could go back in time and punch myself.
Anyway, back to looking towards the future...
|
Illu... oh man. Rofl. Disappointed. Your remarks are the true symbolism of a terrible, terrible programmer.
Or you find chopsticks insanely difficult to use.
Anyway the point is, I think it's definitely worth paying money to have good programmers teaching you how to program. You'll develop way less ferral habits, and you'll have someone else's brain to bounce of asap rather than trawling community sites for advice which might be the advice of someone like yourself. And we don't want that.
|
On January 08 2010 13:16 prOxi.swAMi wrote: You'll develop way less ferral habits, and you'll have someone else's brain to bounce of asap rather than trawling community sites for advice which might be the advice of someone like yourself. And we don't want that. This is pretty much what I was thinking. Steering away from bad habits and such.
As I think about this more, any suggestions on what specifically to ask for would be helpful. I think I have a pretty good idea what I would request in terms of tutoring but I'd like to hear what you guys think as well.
|
On January 08 2010 11:30 illu wrote:Show nested quote +On January 08 2010 11:27 Cloud wrote:On January 08 2010 11:25 illu wrote: Wait. You need TUTORs to TEACH you how to program? Are you for rela? Uh what's so wrong about that? I just don't think it is worth his money to hire someone to teach it to him: writing computer programs is easier than learning how to use chopsticks.
Please post more terribly. I have tried both activities and using chopsticks is far easier.
|
Bill307
Canada9103 Posts
What exactly do you mean by "learning how to program"? Obviously syntax isn't an issue, and I'm assuming your schooling has taught you a number of useful algorithms and how to analyse efficiency and such.
So I'm guessing you are wondering how to write good code.
Personally, I highly doubt the usefulness of being tutored on writing good code.
IMO, the most effective way to learn this skill is to write your own programs, then try to modify / augment them a month or two later. There is nothing more memorable than seeing and struggling with your own past mistakes, and viewing your own code through the eyes of someone who had no idea what you were thinking when you wrote it (not touching your code for a month will generally have this effect).
Another crucial experience is to write one very large program over the course of many months to a year, as opposed to writing many small ones. For one thing, you will inevitably find yourself coming back to pieces of code that you've long-forgotten and needing to improve it, so it takes care of the above. But in addition, there are skills you will learn from writing a large program that you will never learn from writing small ones. Such as, how to organize your code and data so that you can: - easily find a method or piece of data after you've forgotten where it is - wrap your mind around all aspects of the increasingly-complex program without going insane - etc.
For instance, you might try writing a moderately-complex game, and experience the following:
1. You get bogged-down from the growing number of relationships and amount of communication between different game objects.
2. You make your code easier to comprehend by using event senders and listeners for communication between objects, as opposed to having unique methods for every interaction between objects.
3. You start encountering the drawbacks and caveats of event handlers. E.g. maybe you thought, if object B is listening to object A, then object B doesn't need to keep track of object A, but then object B is destroyed and suddenly you get an error because A tried to send an event to B. So now B and A have to know about each other, so that B can tell A when it is being destroyed. But if B simply called a method from A, then A wouldn't have to know about B and the whole interaction would've been much simpler. Or maybe you have A check if B is still active before sending it an event, but now it becomes much harder to pool Bs for reuse, and you might find yourself with a veritable memory leak because the event just doesn't get triggered 99% of the time. In any case, you find a simple call from B to A would have been a much better option in this situation.
4. You gradually learn the kinds of situations where events are useful, and the kinds where they are more trouble than they're worth, and you establish a healthy balance between the two in your game.
Now imagine you learn several dozen things about programming in this way. If you were simply told these things by someone else, and never got to experience them first-hand, how thoroughly would you actually understand those lessons, and how many would you remember two years from now when you end up needing them?
|
GOOD LUCK computer science isn't easy. Getting stuff to compile is so annoying.
|
On January 09 2010 04:47 Bill307 wrote:+ Show Spoiler + What exactly do you mean by "learning how to program"? Obviously syntax isn't an issue, and I'm assuming your schooling has taught you a number of useful algorithms and how to analyse efficiency and such.
So I'm guessing you are wondering how to write good code.
Personally, I highly doubt the usefulness of being tutored on writing good code.
IMO, the most effective way to learn this skill is to write your own programs, then try to modify / augment them a month or two later. There is nothing more memorable than seeing and struggling with your own past mistakes, and viewing your own code through the eyes of someone who had no idea what you were thinking when you wrote it (not touching your code for a month will generally have this effect).
Another crucial experience is to write one very large program over the course of many months to a year, as opposed to writing many small ones. For one thing, you will inevitably find yourself coming back to pieces of code that you've long-forgotten and needing to improve it, so it takes care of the above. But in addition, there are skills you will learn from writing a large program that you will never learn from writing small ones. Such as, how to organize your code and data so that you can: - easily find a method or piece of data after you've forgotten where it is - wrap your mind around all aspects of the increasingly-complex program without going insane - etc.
For instance, you might try writing a moderately-complex game, and experience the following:
1. You get bogged-down from the growing number of relationships and amount of communication between different game objects.
2. You make your code easier to comprehend by using event senders and listeners for communication between objects, as opposed to having unique methods for every interaction between objects.
3. You start encountering the drawbacks and caveats of event handlers. E.g. maybe you thought, if object B is listening to object A, then object B doesn't need to keep track of object A, but then object B is destroyed and suddenly you get an error because A tried to send an event to B. So now B and A have to know about each other, so that B can tell A when it is being destroyed. But if B simply called a method from A, then A wouldn't have to know about B and the whole interaction would've been much simpler. Or maybe you have A check if B is still active before sending it an event, but now it becomes much harder to pool Bs for reuse, and you might find yourself with a veritable memory leak because the event just doesn't get triggered 99% of the time. In any case, you find a simple call from B to A would have been a much better option in this situation.
4. You gradually learn the kinds of situations where events are useful, and the kinds where they are more trouble than they're worth, and you establish a healthy balance between the two in your game.
Now imagine you learn several dozen things about programming in this way. If you were simply told these things by someone else, and never got to experience them first-hand, how thoroughly would you actually understand those lessons, and how many would you remember two years from now when you end up needing them?
Thanks for the response, I can definitely see what you're getting at. I without a doubt remember the lessons I learned the hard way through weeks and weeks of toiling better than the stuff I was simply told in class. I guess I was thinking about the time that I've been sinking into that kind of approach. I retain things better but it takes a lot longer obviously. Perhaps I'm just getting impatient with myself...
I really should start a larger project, and I've been meaning to for awhile now that you remind me.
So do you really feel there is no way to better take advantage of my proximity to a large collection of programmers? I understand your points but I can't help feeling that I'm squandering an opportunity to accelerate my learning.
|
|
|
|