|
PurpleCurse
|
 |
« on: July 07, 2012, 09:08:46 AM » |
|
Hi everyone, I have always been interested in the programming part of making video games. I now go to a vocational high school and have been in the Computer Programming and Web Development shop for three years now. We made a few video games, starting with Game Maker, then unto ActionScript and C# in Unity. But I (and the rest of my shop) still do not understand many parts of programming.
My question is: When did programming start making sense to you?
|
|
|
|
|
Logged
|
|
|
|
|
Maud'Dib Atreides
|
 |
« Reply #1 on: July 07, 2012, 09:15:04 AM » |
|
When I started to copy and paste C# code from Stack Overflow and then realized "Hey maybe I'll play around with this until I learn what each line does!" They usually say that teaching yourself a language by "winging it" is a bad thing (I had this problem not only in programming, but also in French Class  ), and I agree that it's bad, but it's sure taught me more than the 18 week Java class taught me (Where our final project was basically to make a recursive loop that printed "Hello World" x times) Oh, the time that was wasted. Try changing things around in code, and do the most absurd things, like jumbling things around, changing object names, and creating new methods. Don't stress a compiler error, you can change things back, take notes, stare at code, stare at others code. It's not going to make sense at first.
|
|
|
|
|
Logged
|
Guy: Give me all of your money. Chap: You can't talk to me that way, I'M BRITISH! Guy: Well, You can't talk to me that way, I'm brutish. Chap: Somebody help me, I'm about to lose 300 pounds! Guy: Why's that a bad thing? Chap: I'M BRITISH.
|
|
|
|
zacaj
|
 |
« Reply #2 on: July 07, 2012, 09:16:30 AM » |
|
I got started programming with Lego Mindstorms when I was 12, and I don't remember having any real problems understanding anythi;g even then...
|
|
|
|
|
Logged
|
My twitter: @zacaj_Well let's just take a look at this "getting started" page and see-- Download and install cmake
Noooooooo
|
|
|
|
Richard Kain
|
 |
« Reply #3 on: July 07, 2012, 09:36:36 AM » |
|
The basics of programming "clicked" for me immediately. I was always pretty good at algebra, and the basics of variables and conditional statements made sense right away.
However, I didn't really start getting into programming in a big way until I learned how to handle object-oriented design. Even though I understood the basics of procedural programming, I couldn't stand how complex and difficult to read my code would eventually get. It didn't seem worth it to me to work on larger projects when my programs were taking up hundreds, and even thousands of lines of code. Basic procedural coding just didn't seem worth the trouble, and I couldn't find a tutorial that properly explained OOP in C++.
A few years later, a new job I got necessitated that I take another stab at coding, this time in AS3. AS3 was object-oriented and memory-managed by nature, and made learning OOP considerably easier and more enjoyable. Once I fully grasped OOP, I was able to divide my software up into more manageable chunks, and this freed me to pursue much larger projects. I've been programming ever since.
|
|
|
|
|
Logged
|
|
|
|
|
Paul Eres
|
 |
« Reply #4 on: July 07, 2012, 09:46:29 AM » |
|
i'd say it takes writing about 10,000 lines of code before you get comfortable at programming, and another 100,000 lines before you get competent (capable of programming most tasks or learning what you don't know). experts have probably coded over a million lines in their lives or more
basically programming is like everything else, you have to put in long hours of doing it to get good at it. this is also related to the 10,000 hour rule: to become an expert at something, simply do 10,000 hours of it
(i'm also not talking short programming exercises, those don't count towards your total. i mean actual complete games or programs. you don't get good at learning a foreign languages by doing exercises in a textbook, and you don't get good at programming by doing programming exercises in a class, you have to do actual stuff on your own. i suspect that most programming students *do not* program stuff on their own, which is why it doesn't click for them)
|
|
|
|
|
Logged
|
|
|
|
Sir Wolf
Level 0

A wolf cub growing up
|
 |
« Reply #5 on: July 07, 2012, 09:53:27 AM » |
|
I had a good teacher.
I spent almost half a year in a programming class, and didn't really understand a thing. I was in danger of failing that class, and got some private lessons from a seasoned veteran. He didn't only know how to program, but was an excellent teacher too. He started the first lesson by asking what had we been using in the class to learn programming. I answered Netbeans. He immediately said he doesn't really consider that a good way to start learning from scratch, and told me to open Notepad. He started from things like explaining how Java works, what a Virtual Machine is, what "compiling" means, and wrote a simple Hello World which we then compiled using the command line.
In five hours I understood more than during the months sitting in the class with another teacher, and ended up getting an A from the class. I probaly would have given up on programming, thinking it's not for me, but that one man just explained the very basics to me in a way that made it click, and now, years later, it really feels like "my thing".
|
|
|
|
|
Logged
|
"We don't stop playing because we grow old; we grow old because we stop playing." -George Bernard Shawn
|
|
|
|
xgalaxy
|
 |
« Reply #6 on: July 07, 2012, 10:19:04 AM » |
|
I am self taught - for the most part - but especially when I started. I was learning ANSI C by myself. Most things weren't too difficult, but I struggled with pointers for a long time.
But the second I understood pointers, and I mean really understood them, it was like a light switch turned on and everything else made sense.
|
|
|
|
|
Logged
|
|
|
|
|
JobLeonard
|
 |
« Reply #7 on: July 07, 2012, 10:23:29 AM » |
|
They usually say that teaching yourself a language by "winging it" is a bad thing (I had this problem not only in programming, but also in French Class  ), and I agree that it's bad, but it's sure taught me more than the 18 week Java class taught me (Where our final project was basically to make a recursive loop that printed "Hello World" x times) Well, "they" are wrong. Breaking stuff is a great way to figure out how they work, and I bet the problem with that 18 week Java class was that it spent more time on the syntax than on understanding how algorithms work. I think there are a few basic generic concepts that any programmer needs to grasp: - boolean logic - conditionals (basically: if/else) - control flow (basically: for loops) - how information is stored inside the computer (integers, strings, floats) Where "grasp" really means "being capable of fluently expressing yourself with that as if it were plain English". As a programmer you are two things: a writer ("this is what should happen"), and a translater ("how to tell the computer that in such a way it understands"). Just think of the computer as an extremely, extremely literal-minded person, speaking in his own literal-minded language and thinking in his own literal-minded concepts. Of which the above are the most important ones, in my opinion. Oh yeah, and pointers/references are also quite fundamental I suppose. EDIT: And what others else has said about programming being a skill you have to sink hours into is absolutely true too.
|
|
|
|
|
Logged
|
|
|
|
|
Maud'Dib Atreides
|
 |
« Reply #8 on: July 07, 2012, 11:03:25 AM » |
|
They usually say that teaching yourself a language by "winging it" is a bad thing (I had this problem not only in programming, but also in French Class  ), and I agree that it's bad, but it's sure taught me more than the 18 week Java class taught me (Where our final project was basically to make a recursive loop that printed "Hello World" x times) Well, "they" are wrong. Breaking stuff is a great way to figure out how they work, and I bet the problem with that 18 week Java class was that it spent more time on the syntax than on understanding how algorithms work. I think there are a few basic generic concepts that any programmer needs to grasp: - boolean logic - conditionals (basically: if/else) - control flow (basically: for loops) - how information is stored inside the computer (integers, strings, floats) Where "grasp" really means "being capable of fluently expressing yourself with that as if it were plain English". As a programmer you are two things: a writer ("this is what should happen"), and a translater ("how to tell the computer that in such a way it understands"). Just think of the computer as an extremely, extremely literal-minded person, speaking in his own literal-minded language and thinking in his own literal-minded concepts. Of which the above are the most important ones, in my opinion. Oh yeah, and pointers/references are also quite fundamental I suppose. EDIT: And what others else has said about programming being a skill you have to sink hours into is absolutely true too. So... are you agreeing with me?
|
|
|
|
|
Logged
|
Guy: Give me all of your money. Chap: You can't talk to me that way, I'M BRITISH! Guy: Well, You can't talk to me that way, I'm brutish. Chap: Somebody help me, I'm about to lose 300 pounds! Guy: Why's that a bad thing? Chap: I'M BRITISH.
|
|
|
|
JobLeonard
|
 |
« Reply #9 on: July 07, 2012, 11:33:29 AM » |
|
Uh, yes I do? Wasn't that obvious?  Maybe I should have been more clear that only the first paragraph was a response to you, and everything else a response to Hfish. Oh, and of course those concepts I listed are just the starting point. There's lots of other things one needs to understand to be a good programmer.
|
|
|
|
|
Logged
|
|
|
|
|
Moczan
|
 |
« Reply #10 on: July 08, 2012, 11:12:30 AM » |
|
i'd say it takes writing about 10,000 lines of code before you get comfortable at programming, and another 100,000 lines before you get competent (capable of programming most tasks or learning what you don't know). experts have probably coded over a million lines in their lives or more
basically programming is like everything else, you have to put in long hours of doing it to get good at it. this is also related to the 10,000 hour rule: to become an expert at something, simply do 10,000 hours of it
(i'm also not talking short programming exercises, those don't count towards your total. i mean actual complete games or programs. you don't get good at learning a foreign languages by doing exercises in a textbook, and you don't get good at programming by doing programming exercises in a class, you have to do actual stuff on your own. i suspect that most programming students *do not* program stuff on their own, which is why it doesn't click for them)
The 100,000 lines of code doesn't make sense, because lines of code don't have same value. Also saying that short exercises don't count is stupid, because those are perfect to master stuff like data structures, certain 'basic' algorithms, pointer arithmetic etc. So I would say that getting those basic stuff covered by short exercises and doing one finished 'big project' (to learns how to design and maintain huge codebase) should be enough to 'click'. But it all goes back to your natural talent in logic and 'computer' thinking. I was writing text adventures in BASIC in my notebook in elementary school and they pretty much worked when I got back home. Past half year I spent teaching people programming and I have one student (who is more than 30 years old) and he just can't get it. After 3 or so month he struggles with basic stuff like multi-dimensional arrays. So if it doesn't 'click' now it probably will never do. There are many great programmers here on TIGs and I suspect most of those guys got it very soon and now they are at level where they can practically learn any programming language pretty fast and implement most stuff based on a little web research without much problems. Stuff like syntax or libraries are secondary, as long as you get the basic you can learn them easily.
|
|
|
|
|
Logged
|
|
|
|
|
PurpleCurse
|
 |
« Reply #11 on: July 08, 2012, 01:29:38 PM » |
|
Wow, thanks for all the answers! After reading through these, I think that my confusion is mostly with the object-oriented stuff like classes, enumerations, pointers, etc. I'll make sure I work on learning those for the remainder of this summer. Thanks again 
|
|
|
|
|
Logged
|
|
|
|
|
JMStark
|
 |
« Reply #12 on: July 08, 2012, 04:00:32 PM » |
|
I was 8 and I had stumbled upon Klik'n'Play while looking for Commander Keen fan games. At first I was only using the built-in logic, so I wasn't really programming. But then I tried to create an action RPG battle system and all of the basics behind the logic began to "klik"  . It was very accidental. Though in regards to real programming, I have found it helpful to read tutorials for different languages from the beginning, going over the basic concepts people have already listed multiple times.
|
|
|
|
|
Logged
|
|
|
|
|
VDZ
|
 |
« Reply #13 on: July 08, 2012, 05:10:28 PM » |
|
When I started programming I was in elementary school, living in a small village in the middle of nowhere and had no internet. In other words, no internet tutorials to teach me or to copypaste from, no people I could talk about regarding programming things (it was an era where being able to start Windows 3.1 from DOS made you a computer nerd), and no books that could teach me how to program. I started "programming" by analyzing a .bat readme file and noticing it displayed text upon being run. Analyzing how it did that, I started making text adventures using only .bat files (RIGHT.BAT: @echo off/echo.You go into the cave./echo.A bat blocks your way./echo.Fight the bat or go back?/cd cave) with a directory for each situation. Messing around on the computer some more, I found QBasic, and there was some program that used "print" and "input" to do the same thing I did with .bat files, just much more elegantly. I analyzed it and created stuff with that. From that point on, I continued to learn stuff from looking at other QBasic programs and reading the QBasic reference (it wasn't much, but holy shit was it useful when you have nothing else). There wasn't a specific moment when it "clicked" for me, as from the start I've understood what I was doing. Even nowadays when I get code from the internet, I read through the entire thing so I know what it's doing. Wow, thanks for all the answers! After reading through these, I think that my confusion is mostly with the object-oriented stuff like classes, enumerations, pointers, etc. I'll make sure I work on learning those for the remainder of this summer. Thanks again  What parts don't you understand? Just ask away and some of us might be able to explain in a way you understand. Many things are a bazillion times easier if you simply have someone to help you and explain stuff - although I tried many times, I could never get into C++ from internet tutorials, until I got classes with an actual teacher I could ask why shit did or didn't work. (C++ still remains for a great part black magic to me so I rarely use it, but at least I understand most of how it works now.)
|
|
|
|
|
Logged
|
|
|
|
|
gf11221
Guest
|
 |
« Reply #14 on: July 08, 2012, 05:20:59 PM » |
|
Hello, I was once(or so?) an ambitious guy who would like to make games since i was Grade 3. I was pretty fascinated by Indie Game's unique visuals than those in the market and started using Game Maker back in 2005 but i haven't bin serious about it. 7 years has passed, Now i am starting to learn GML/Game Maker Language bits by bits. I am heavily inspired by Indie game developer's documentaries like the Mojang Documentary about Notch and the birth of Minecraft, while Indie game: The Movie was the most emotional and very inspiring and motivating film about programmers that actually "clicked" me to be more focus on computer programming although i don't have mathematical skills.
What i am trying to say is to focus and keep in-mind what was your purpose in the world of programming, be inspired and motivated. Things will pull you down but remember to stand-up on your own, no man can learn to walk without learning how to crawl and facing trials of fails.
|
|
|
|
|
Logged
|
|
|
|
|