Hello everyone, I will be starting school up this summer semester, pursuing a computer science degree. While I realize this is not completely needed for game development, I do not expect a career in game design. But I would like to work in the Computer Science industry. Keeping game development as a hobby, if it takes off that is fine by me .
Starting out I have the option to take Java Programming, Programming Concepts(over arching class about types of programming), and C++ Programming. Do you guys recommend these, I would imagine that it will help with unity, although I will be using C# for unity. I know of course knowing these languages will help with a career in the computer science industry.
Comp Sci is more about logic. You’ll have to code in many different programming languages. Sometimes you’ll take a course and the instructor will inform you that he likes some obscure language like ADA and that his course projects will be done in that language. You have to adapt.
At Univ I had to code in Java, Javascript, C, C++, ADA, Assembly, Visual Basic, and also SQL (i may be leaving some out)
I would definitely take at least one C++ course as that knowledge transfers over to every other language and really drives OOD principles home.
I HATED coding in college and I ended up working in IT Support for my career (3 yrs exp), but recently i’m considering a career change into an entry level programming job. Funny how that works.
Excellent, thank you very much for your fast reply. I am trying to do this all efficiently as possible, I appreciate getting advice from people who have experienced it already.
If I had a dollar for every time someone I am interviewing says “sorry, I wasn’t taught that at University” I’d have bought Facebook, Google and Apple by now. The college/uni will teach you a curriculum. That’s not intended to be definitive. Instead use the years as a chance to learn all the things you are interested in. I doubt a course in Java will teach you anything useful for a career in games. It’ll teach you concepts of programming, for sure. Just don’t think you are being taught a language that the games industry use. (Minecraft and Runescape excepted.)
There is definitely a difference between theory, and application. In this case theory being curriculum. I realize the value of self education, I plan on as I am taking all of these college course to continue using my online and community resources to learn application to game development. I try to be realistic about my goals, to me getting a high paying job in game design is the same probability of becoming a rock star. So if that doesn’t work out at least I will have skills to land a job somewhere in the Comp. Sci. industry and still make games as a hobby.
Don’t get me wrong though, Id want nothing more than to make games for a living.
I lived in Florida as a kid and let me tell you the difficulty of getting me my friends indoors and to school when there was all that ocean, all those creeks, and all those woods, bamboo, and abandoned citrus groves (to raid for snacks), pop bottles and cans (to collect for cash) made us all legs and curiosity. Snakes, beavers, giant mud turtles, fish, eels, sharks, sting rays, birds and on and on…
Why not combine Florida Biology 101 and gaming and see where get from there? Introduce yourself after you’ve completed some game work to local national state biologists, park rangers, and the tourist industry leaders (local chamber of commerce). I think it’d be a mistake to take your inspiration from the gaming community online given the saturation. We used to catch snakes hatching in the creek and take them down the road to Gatorland and offer them for sale. Florida’s got a lot of unusual tourist attractions that might serve as inspiration to you.
I think in the various natural ecosystems and various old human cultures can serve as a big tap of underutilized inspiration for games. If you make them right and rigorous then you might even have some games adapted as a teaching aid for classroom studies.
And the good thing about this approach is that even with 2 1/2 million Unity users the scope of just customizing your games to your local ecology and culture leaves plenty of ecology and historical angles for you and others to take this approach no matter where you live in the world. It’s also unlikely another is creating your take, even if they live in the same area as you.
Also, as the world still has many places where there are no Unity developers you can create games in those niches - say various tropical rain forests and taiga / tundra / arctic environments and then the richness of history in just the past 50,000 years presents a lot of material for games especially if you escape the medieval wizards / zombie / modern war niches that have been absolutely run into the ground. What’s on PBS? Damn, the Civil War again?! What’s on the Hitler, I mean History Channel? WWII? Again?! What’s on Animal Planet? Shark Week? Again?!
If I had the option to choose between courses, I would rather take a course that focuses on mathematics/algebra/calculus than on programming itself. I’ve spent some time on learning programming concepts, but the biggest problems I face have to do with mathematics which I couldn’t be bothered with at school (they explain it so boring I fell asleep more or less). In my opinion having this knowledge gives you a better base to do some serious programming. I’m not saying you can’t do it without this, but it definitely helps a lot.
He’s right - 1. because those courses will make you learn programming (statistics, numerical analysis, computer graphics, …) and because, as hinted at in the Florida skipping school post above, I failed 3 years of high school and went to college having only completed ‘consumer mathematics’ as they called it… and I got my butt kicked in college. I had to start out, semester by semester, algebra, trigonometry, up till I caught up with the others in calculus and physics. And you can say the same about other hard subjects like physics - if you basically skipped high school then your 1st year in college will be high school - do that and the 2nd if needed in community college and avoid the expensive main university until you catch up. Don’t feel bad though if you are in that boat, those years exploring can’t be replaced so easily once you join the work force.
I took my intro programming classes in Java and Python, and honestly it was probably better that way. I took C++ in my second-year Data Structures course and there are just so many things about C++ like compiling builds and using the command line that are tough for beginners. I’m happy that I waited until later to use it (but do use it!).
If you take the Java course you can use a nice IDE that takes care of many things for you. There are a lot of programming things that are the same or similar across every language, so you might as well pick an easy one to learn them. Do you really want to be worried about your build failing due to things like folder structure or a mis-named file when your homework is really about how to properly code a linked list? With C++, you have the freedom to do anything, but basically nothing is done for you at all. With Java, the “boilerplate” work is often taken care of automatically by the IDE.
The only job I was denied for not knowing a language was as a new grad and I didn’t know Cobol in order to work at Humana. After that I have to admit it was knowing a language so well that I didn’t have a Master’s or PhD in computer science, math, or physics (a Bachelor’s doesn’t cut it) was overlooked as that level of expertise is generally required to do something as complex as work on Unity’s game engine technology (a secure PBX instead). For a while after I returned from CH in the northeast US some recruiting agencies were insisting on advanced degrees and that the degree be from an from an Ivy League school and we all know about the meltdown that followed that myopic reasoning.
Learning to program requires time, practise and understanding. It’s not like you go study a specific language somewhere and you’re suddenly a programmer.
In fact, I wouldn’t recommend you to learn one specific language (C++, C#, Java, etc.) right now, make sure you understand the fundamental concepts of programming overall first (which means without concentrating on a programming language).
Once you understand that, you will see learning your first programming language will be so much easier (and even easier to learn a second, third, forth, etc. one).
I would take Java first and C++ later. Java is much easier, so you can concentrate on the OO principles that apply for every language. With C++ you have to handle many things that distract from that. (And Java and C# are almost the same, so most things you learn apply to Unity too.)
Any serious CS major will be language agnostic in the end. You learn core principles that are here to stay and are not bound to any one language. But you can make your life easier by starting with the easier ones and do the hard ones if you have the basics.
The biggest error you can make is selecting courses based on languages you already know. Don’t be afraid to take stuff you have no idea about, it will make you a better developer.