I've been going to school for this for months and I just can't seem to get a grasp on it. It's super frustrating and I feel like at this point I'm wasting my time and money if I'm this far into it and don't get it yet. Does anyone have any suggestions on what to do or how to go about maybe understanding this better?
Having a real bitch of a time learning programming
What are your actual issues with learning it? What language are you working in? Need specifics in order to help.
Are you having problems with logic flow? If this, then do that. Otherwise if this, then do that.
Exactly how many months are we talking about that has actually focused on programming?
Programing just clicked for me about a month ago. The last time I tried programing was 5 years ago. I would pretty much just choppy and paste what others had done. But this time I just started c++ and started typing.
It takes time. Its half memorization. And half thinking like a machine. But once you realize that programing is just a bunch of if then statements. Sometimes a loop or two. Or if you really want to get fancy a if statement in a loop. Then it all becomes really easy.
Even if you manage to finally struggle your way through this course, you probably will not have much success/fun with a carrier in programming. Your talents lie elsewhere.
What language are you learning in? (Java/C/C++/Python etc.) And what specifically are you having a hard time with?
Without knowing any specifics my only advice is to try to simulate your code in your head line-by-line. Start at the first line in your main() function and walk through each line, in your head perform the operations on that line and keep track of the state of all your variables. If you act like the computer then you'll be able to see why the computer isn't doing what you expect.
Alternatively, add a bunch print statements everywhere.
@RustySanderke said:
Even if you manage to finally struggle your way through this course, you probably will not have much success/fun with a carrier in programming. Your talents lie elsewhere.
Pretty much this. I don't want to put you down, but if it has been several months and are still struggling with routine (ha! puns) operations then programming may not be for you and even if you did land a job as a junior dev you probably won't be there for long if you still struggle with some of the more basic concepts.
If you really want to be a programmer then do whatever you can to finally make it click. Maybe it is the language you are working in and need to take a step back and go for something a little more simpler to learn. Perhaps all you need is Visual Basic to help you out. It's not like you are working in assembly.... are you?
I don't think we know enough about the situation to say he's not cut out for programming. It's certainly not for everyone, but I have no reason to believe his struggles are worse than I had when I started to program. He could even just have a shitty teacher or something.
codecademy.com is good for beginners, if you're just starting out.
Programming is not especially hard to do. Maybe you're just missing something? Since your originial post has absolutely no info there is not much help to give except people linking you sites. I just looked at that codecademy.com site and I really feel like you should just get a book on the basics of whatever language you're learning, read it, and do the lessons. Once you know the basics it's pretty easy to addon to your base of knowledge.When I started I started with BASIC and that was easy enough, went through a couple of the other basic like languages. Learned VB and made a couple of games with that. After that I went to C/C++ and assembly. It's incredibly easy to just do stepping stones. Now I can just look at SDK's do a couple of practice applications to make sure I understand how everything is working and it's just as easy as ever. Not being able to find information is the most troubling thing about programming, so if you have trouble finding information on the language you're learning you either need to find as much information as possible or try another language where more info is available. You could try and just teach yourself, but if you're already having trouble I don't think that'd be ideal since you'd teach yourself a lot of bad things. Good luck, maybe post again with more information.
@TyCobb: I've been going to Coleman College for video game design and development for 2 and a half (what they call semesters) mods. We've been working with C++ and I just cannot understand what the hell I'm doing. I'll try to read into the code and see what other people are seeing, but I just can't do it. I don't know if the courses are just too fast for me, being as they are condensed or sped up classes to get you through quickly, or if I'm not smart enough to grasp it or what. It's just really frustrating the hell out of me to the point where I don't want do it, but I also don't want to quit because it's a fairly substantial amount of money that I've put in to it so far. Andyes, logic flow is a big part of my troubles, but there are other smaller issues as well.
@Brenderous said:
codecademy.com is good for beginners, if you're just starting out.
I second this recommendation.
Yeh C++ is a hard language to start on, if you have some more specific example of what your finding hard to understand I might be able to point you in the right direction.
Though a good site to check out in general for C++ is :
@fuzzypumpkin: I'm not an expert, but I get the impression that starting out is usually very difficult. Maybe you're just having a hard time getting used to the fundamentals, and once you get past the initial difficulties, things will be much smoother. I think most people have a really hard time starting out, even incredibly successful programmers. I would keep on going as best as you can and wouldn't worry too much. If other people seem to be catching on much faster than you are, I'd be willing to bet that they've already had a good amount of previous experience with programming.
@fuzzypumpkin said:
@TyCobb: I've been going to Coleman College for video game design and development for 2 and a half (what they call semesters) mods. We've been working with C++ and I just cannot understand what the hell I'm doing. I'll try to read into the code and see what other people are seeing, but I just can't do it. I don't know if the courses are just too fast for me, being as they are condensed or sped up classes to get you through quickly, or if I'm not smart enough to grasp it or what. It's just really frustrating the hell out of me to the point where I don't want do it, but I also don't want to quit because it's a fairly substantial amount of money that I've put in to it so far. Andyes, logic flow is a big part of my troubles, but there are other smaller issues as well.
First off, if you are having trouble there is nothing wrong with that. The best advice I can give you after many years as a professional is that you need to step back from the code and only look at it when you need to. Any time I get stuck in the millions of lines of code in a project is just switch to the note book and write down the goal and then create questions for why something isn't working.
Goal: "Actor needs to transition to a zip line after situation YYYYY"
Q: How does the actor find zip lines?
Q: How does the actor go into the zip line state?
Q: Why does it work for XXXXX situation but not YYYYY situation?
---
By breaking down any problem into the smallest subset of issues you can tackle all these small issues one at a time. This helps humans understand what's going on, and it helps you write code for the project since computers like binary things. It's also great for your moral because even if you don't end up with the full solution you have a clear track progress in your notes and you can come back to the notes later when you need a refresher later.
---
If you have any specific questions, I'd be glad to help you out.
I don't know anything about how your course is structured or what kind of books you've been assigned, but if you really want to be a game developer, you need to step back and focus on the foundations of computer science and the branches of math involved before diving into making games.
Read The Elements of Computing Systems to understand how machine architecture connects to assembly language and how that relates to the compiled languages you're working in.
Look at books like The Pragmatic Programmer and Code Complete for a high level overview of coding best practices and concerns.
Codeacademy is a good intro, but I would also recommend trying something lisp/scheme/racket-based like How to Design Programs or the Structure and Interpretation of Computer Programs(SICP) to get started writing code.
Learn about Algorithms with a book like Introduction to Algorithms ot the The Algorithm Design Manual.
You need to understand the pros and cons of various data types and structures. It's best to find a book covering them for the language you're learning.
Also make sure you have an understanding of object oriented concepts--Object Thinking is a good book for that. Also check out Refactoring. Design Patterns can be useful too, but maybe a little advanced.
If you're doing 3D games, you also really need to familiarize yourself with linear algebra. You should also learn something about game engine architecture and real time rendering.
On top of all that is the specialty stuff like physics, AI, pathfinding, state machines and planning systems if those are areas of interest for you.
On the other hand, if you are only interested in designing games and not coding, you're going to have a harder time getting work, but you can skip most of this. If you still want to learn to program, I would still look at these subjects, even if the course doesn't cover them. In my opinion, If you want to learn anything in school, I think you always have to put in extra effort and not rely on the course alone to teach you everything.
@Mattalorian said:
@fuzzypumpkin: I'm not an expert, but I get the impression that starting out is usually very difficult. Maybe you're just having a hard time getting used to the fundamentals, and once you get past the initial difficulties, things will be much smoother. I think most people have a really hard time starting out, even incredibly successful programmers. I would keep on going as best as you can and wouldn't worry too much. If other people seem to be catching on much faster than you are, I'd be willing to bet that they've already had a good amount of previous experience with programming.
Actually, it's not some of the hardest CS courses are well beyond the fundamentals. Some of the later courses in a CS major don't even have very much to do with actually programming as much as knowing what a thing is doing it the background. (Knowing what and how a compiler works, how to debug your code outside of whatever standard debugger you're using, etc etc) My advice to the thread creator this isn't for you. It's one thing to struggle with learning but to get to the point frustration and feeling like your wasting your time then I say look elsewhere. There's a guy in a couple of my CS classes who struggles with actually doing programs and understanding whats going on but he enjoys what he's done so far so that's why he sticks with it. For you though just from the post you made I say try something else. You wouldn't be alone in the people that have "wasted" 2+ semesters on something you realize you didn't like doing (BTW it's not really wasting as much as just discovering what you want to do).
Disclaimer:Talking about programming in general, don't have a lot of experience with game development
I have learned over the years that some people just don't "get" programming. Doesn't mean they are not smart people, but not everyone is good at the specific kind of logical reasoning (analytic thinking) that coding needs. The single most important thing (I think someone mentioned it here) is to be able to deconstruct a complex problem into small logical bits and solve those seperately. Once you know what you need it's basically just translating those logical bits into a language the machine understands, pretty much like translating into a foreign language except that these languages need to be laid down in a very strict and structured manner. The translating part becomes very easy after a bit of experience with that specific language/platform, the logical deconstructing remains the big challenge that makes coding fun. Especially when you are using an object oriented technology defining the logical bits in the full picture (and the hierarchy between them) are extremely important and different people can come to completely different solutions.
Most people that have problems with programming have a hard time doing the deconstructing thing, but I have also seen people that have problems with the "structured translating" for some reason.
Not saying you are one of those people that just don't get it, but it wouldn't surprise me either as this goes for a lot of people. If you actually want to become a programmer I'd probably rethink that, if it's just one of the modules and you want to get into a different field of game development then it might be worth it to suffer through.
@AmatureIdiot: I don't know how your course was structured either, but I would guess that the problem might have come from a lack of explanation of how a compiled language manages memory and why arrays are way of simplifying fairly complicated systems in assembly to keep separate items stored in memory associated with each other. I think it's really difficult to understand a lot of the major concepts of a high level language if you aren't familiar with the more concrete structures they're abstracting.
My best advice is to stay away from specific languages for as long as possible while learning the things that are fundamental to all of them.
I am a programmer at EA and I graduated last year from USC with a Masters in Computer Science. It is hard given your description to know exactly what you might be struggling with but I would first take a step back and evaluate the program you are enrolled in. Doing some cursory searches, Coleman University is not properly accredited and the program you are in only confers an Associate's Degree. I had not heard of Coleman University prior to reading your post and would think that an associate degree from your program would mean little to most developers at major studios. If your goal is to program video games at a major developer, a specific degree matters less than your demonstrable ability to deliver results (ie being able to think through problems and implement solutions irrespective of programming language/framework/etc) and your enthusiasm for programming.
My advice would be to sit down and reflect on your goals and what you enjoy doing. I found myself in a similar position a few years back. I was in a PhD program, looking at a future in academia that I thought I had wanted and had worked my ass off for years. I gradually realized though that I wasn't happy or motivated by what I was doing even if I found it interesting at some level. I took stock of the things I had done in the past, and the hobbies I did enjoy, and decided to go back to school to prepare myself to program for video games.
If your goal is to be in the games industry but you don't know in what capacity, perhaps engineering isn't the right field. If you do really enjoy the bit of programming you have been able to grasp, and think your future lies there, maybe some different resources would supplement what you are currently learning. In any case I'd be happy to answer more questions here or privately.
@Puddlesworth said:
I don't think we know enough about the situation to say he's not cut out for programming. It's certainly not for everyone, but I have no reason to believe his struggles are worse than I had when I started to program. He could even just have a shitty teacher or something.
I am with you. I took 2 years of programming (Java) in high school and my teacher was balls. I felt like we really jumped in the deep end too. Half the first semester was getting the basics done and then it was right into object oriented programming. By the end of the class, I remember we had to draw shit on the screen using code. Basically, the entire class was a blur. I also feel like the teacher wasn't really into teaching the class.
Last year, I took C++ in college and it was a much better experience. Half the class was basics and the other half started to touch on classes and stuff. As of now, I'm taking Adv. C++ and we're now really getting into OOP. And I'm understanding everything.
As a student who is about to enrol in their final year of University studying Games Development, all I can say is, if you are really struggling and don't see yourself ever "getting" it, back out now while you can. Personally, I don't hate it, but if I graduate I'm going to be stuck with a degree that could get a me a job I simply have no passion for anymore (the programming that is, I still love playing games!) Not backing out earlier, is one of my biggest regrets and I wish I switched to a course I could see myself excelling in long term.
@AmatureIdiot: Actually, once you use them a lot (took me about 1.5 years), you get the hang of it, and start to understand their usefulness, even if you never took a class in C or Cpp.
But in general programming itself (i.e. simple stuff like GUIs and such) isn't that hard. You just have to practice a LOT. It's like math in a sense. I usually never had to force myself to do it, though. In the beginning, it was harder, sure, and it took more motivation to start doing stuff. After the initial "aha, that's how it works", it'll get easier and easier, and you'll have a lot more fun doing it. That is, if you get the hang of it, though. I've been into programming for a WHILE now. The first few years was just dabbling, though, until I started studying CS at University (got my degree earlier this year and I'll start working next month, programming Embedded C stuff with OpenGL. That'll be fun!), which is when a part time hobby became my "bread and butter". The beginning was the hardest, because the HUGE mountain of information that had to be absorbed...
@fuzzypumpkin: One of the biggest issues people have when venturing in game development is the balance of recreation and work. It will become a very big love/hate relationship, I can assure you that.
How much time do you spend coding a day?
What other coding languages have you attempted or know/familiar with?
What kind of IDE do you use for class and does it integrate any 2d/3d libraries?
@SathingtonWaltz said:
Enjoy competing for work with Indian and Chinese slave labor!
As depressing as that is, I have a legitimate question relating to that.
Are the programming languages still in English? They'd have to be, right?
@Apparatus_Unearth said:
@SathingtonWaltz said:
Enjoy competing for work with Indian and Chinese slave labor!
As depressing as that is, I have a legitimate question relating to that.
Are the programming languages still in English? They'd have to be, right?
I... I don't know! I'm not a programmer but I have friends in the computer science and IT industry so I should ask them. And that's where my comment came from, a buddy of mine was telling me how it's rare for him to actually work with anyone that's from the US. He said that as technically capable as many of the foreign chinese programmers are "they are like fucking drones." (to quote him directly) "It's like these folks have never enjoyed anything in life, and don't know how. Work and their profession is all they know." I remember him specifically telling me that they had a lot of problems using more creative means to solve problems and stuff related to coding. But they just work and work and work for infinity and I guess that's why employers love them.
It took me a couple of classes to "get it" when I was learning to program, too. I didn't even really enjoy it until it finally clicked for me. If you really think you'll enjoy programming once you do get it, then stick with it. Do you like solving puzzles? That's a good indication of whether you'll actually like programming once you get the hang of it. If the answer is "no," then you may want to get out now and avoid throwing good money after bad.
Please Log In to post.
Log in to comment