|
On December 03 2011 09:21 Phrost wrote:
Also about the whole c/c++/c#/cwhatever argument, if you learn the lowest level it will help you greater to understand the higher levels. The curriculum at my school (Full Sail in Florida) starts off with the most basic things and slowly works its way up so that you learn the "hard" way and the "easy" or convenient way to do things.
For example, we learned how to store data in a fixed size array, then a dynamic array, then how to use the STL vector. Each getting progressively easier to use but the knowledge of the previous helps a lot.
With the array knowledge we were able to learn how to construct basic strings before learning the STL string class.
I would highly suggest starting as low as possible and working your way up.
This is also relevant aside from a "useful to learn the later things" standpoint because each has its own advantages. There's a lot of knowledge that you get from programming from lower level languages that seems very theoretical and irrelevant at first but ends up being useful. From an "I want to fill a list of things" in a perfect world, you'll always just use the STL vector. But once you have real-world limitations (memory footprint, speed, flexibility, usability), you'll find that each approach is useful in its own right. Also you'll have the knowledge necessary to write your own version of the STL vector or dynamic array that fits a specific balance of performance vs. flexibility.
However you'll be looking at most of those differences just within the scope of C++ already, so while I might suggest learning assembly and C in a world where you have infinite time, I would suggest just skipping to C++.
|
On December 03 2011 06:56 Bey wrote: Don't worry about C. There are a lot of things that are bad about C and a lot of practices you'll pick up from starting in C that'll you'll need to unlearn when you move on to more mature languages. There's a reason we don't write software using the same tools that were used in the 1970's and that's because there are a lot of better tools out there today.
Skip C. It's not like a prerequisite, like C is your 101 level class that you have to take before the 102 of C++. It's not like C is arithmetic and C++ is calculus. It's not part of some progression you need to follow. C is different. It's old. There are a lot of ways to do C wrong and only a few ways to do it right. While there are some limited scenarios where it's the proper tool for the job, those are few and far between. And OOP is important. Start learning how to think that way now. When you're learning to be an architect, you don't start designing your first building to be built without hammers. Don't do the same when you're learning to be a developer.
I'm sorry, but this is tripe. If I had a dollar for every time somebody's told me that C is just an accident waiting to happen, I could retire right now and make my own video game. C, like any other language, is a tool. It's no more prone to "doing things wrong" than any other language, and BY FAR, the more important issue is the quality of the programmer. So much more, in fact, that I assert the language is largely irrelevant in the discussion. I'll take a great C programmer over a mediocre C++ (or any other language) programmer any day.
Furthermore, assuming C++ is where you're heading (which I think is a smart choice since almost all game development is done in C/C++ right now), I don't see a reason to not learn C since it is a subset of C++ anyway (IOW, you have to learn C to learn C++). But even more important is simply that C is so ubiquitous, that to not learn it for almost any CS field now, with the possible exception of exclusive front-end web development, would be a dubious decision. Let me just put it this way - I don't know a single C programmer right now that can't find a job, but I know plenty of ruby/php developers that are struggling, mainly because they are only able to do one thing. C proficiency will always be a valuable resource, at least for the foreseeable future.
Lastly, learning any language is valuable. The number one reason I like prospective applicants who have C experience is that the lower-level nature of the language requires you to understand (better) how the computer is actually working. Abstraction, as a concept, is a nice idea and has its place, but I want the people I'm working with to really know what's happening under the scenes, and I feel that C experience helps there.
So, in short: Learn C. You will almost certain use the knowledge, especially in game development, and it will make you a better programmer even if not (and you have to learn it to learn C++ anyway).
|
On November 17 2011 05:56 Lysenko wrote:Show nested quote +On November 17 2011 05:18 CecilSunkure wrote:So I began to research. What I found is there are three main types of developers: - Programmers
- Artists
- Designers
- Writers/Sound Engineers
At first I scratched my head, then I realized that like any good C programmer you started at an index of 0. I'm a programmer and I missed that. Nice work!
|
Great blog :D Hope it gets a few more people into coding.
On December 03 2011 07:36 Fandango wrote:Show nested quote +On December 03 2011 07:27 CecilSunkure wrote:On December 03 2011 07:01 Fandango wrote:On December 03 2011 06:48 CecilSunkure wrote:On December 03 2011 06:32 Fandango wrote:On December 03 2011 05:46 CecilSunkure wrote: You actually do learn to code in Assembly here at DigiPen, in order to appreciate and understand C better. Then by extension, do the same with C to C++. It's fine if you disagree, though you're argument is kinda lacking against mine.
You haven't argued anything at all, you've literally just said that this is the way it is without any justification, I provided reasoning behind why that approach is flawed and you didn't refute any of it and again just assumed you're right. There's really no reason to continue to argue with you either because you seem to think you know everything about game development when you're still at college and apparently not that far along from your outlook. I'm not suggesting that my outlook is definitively the best or anything i'm just saying that your approach to learning is flawed because you don't really know what you're arguing. Sorry I should clarify. By "mine" I meant what I've been taught here. I'm merely quoting people more experienced that me that tell me these things. For example the guy in the podcast in the OP, he's a huge proponent of the philosophy I've cited. I understand what you are saying and why you are saying it, but I just disagree since I trust these people here more than you. Sorry for being a bit unclear on "the argument", as again it isn't mine, just one I trust. You should be aware that he's only referring to the studios that stick to the old model of physical media and consoles releases and so on, what i'm referring to is the other side of the industry that makes web games, mobile games (including but not limited to iPhone/Android) and other contracted works where ultra high performance is needed. It's a whole different kettle of fish and there's even parts of big studios that focus on small projects that operate in the same manner and hire the same people. You should always be wary of anyone telling you that the industry is like this or this, it's almost always all of the above it's just whoever is saying it hasn't necessarily been exposed to that side of things. I've worked at a big studio, ran a small studio that was based on contract work and been to quite a few developer conferences and depending on who you talk to, everyone is wrong and everyone is right. As a student you should just look what you want to do and go about doing that, for you it sounds like big studio development and you're on the right path for that so great. I'd also like to add that at no point am I condoning not learning anything you want to learn about just what is considered a requirement. Although i'd still skip C because it's not going to be relevant to anything but embedded systems programming and unless you want to work on robots or custom peripheral hardware it's probably a waste of time. edit: Listen to the dude above too he's a cool cat Yeah I understand. In the podcast he even himself says that if you're just interested in Flash development that strong foundation in C/C++ isn't really necessary. Nothing was said on mobile development though. From people I've heard talk it sounds like heavy optimization is important in mobile development as well due to limited hardware power. It's just a matter of goals of the target audience. Well the issue with mobile development for iPhone and Android (and I believe the old Samsung OS that failed), is that they don't allow you to program in C++ properly anyway, it's either Obj-C or Java. Optimising is far far far far far more down to code design than language speed anyway, compilers (including the JIT ones used in C# or Java) are very good at optimising these days. The biggest thing is always going to be how you've programmed it, removing unnecessary loops, avoiding costly operations and so on. Hardcore optimisations that rely on language speed differences or knowing how to use the different programming caches are like the last resort that rarely need to be done outside of engine development.
iOS developer here. The vast majority of time the biggest concern(at least for me) when you're optimizing your code for a mobile device is much more related to maximizing battery life than to "optimization" as we often think of it. A simple example: when you're using the phone's GPS for a location-based app it's very important to weigh the benefit of increasing the accuracy of your current measurement versus the cost of obtaining the measurement in terms of battery life. It is very easy to construct an app that will destroy battery life. It's definitely true that there are situations where you're constrained by hardware power and you have to keep that in mind, but I feel like much of that typically falls under the general category of programming well. Unless it involves significant obfuscation of your code one should be choosing a reasonably optimal solution.
Also, fuck objective c.
|
Just wanted to add my commendations to what you've done in this thread and with your life. Excellent job writing this up, and excellent job following your dreams and being an encouraging figure for young programmers. I'm on the management side of life, but I go downstairs when I can and look over the shoulders of the programmers we have at my office.
Cheers.
|
On December 03 2011 12:50 SCbiff wrote:Show nested quote +On December 03 2011 06:56 Bey wrote: Don't worry about C. There are a lot of things that are bad about C and a lot of practices you'll pick up from starting in C that'll you'll need to unlearn when you move on to more mature languages. There's a reason we don't write software using the same tools that were used in the 1970's and that's because there are a lot of better tools out there today.
Skip C. It's not like a prerequisite, like C is your 101 level class that you have to take before the 102 of C++. It's not like C is arithmetic and C++ is calculus. It's not part of some progression you need to follow. C is different. It's old. There are a lot of ways to do C wrong and only a few ways to do it right. While there are some limited scenarios where it's the proper tool for the job, those are few and far between. And OOP is important. Start learning how to think that way now. When you're learning to be an architect, you don't start designing your first building to be built without hammers. Don't do the same when you're learning to be a developer.
I'm sorry, but this is tripe. If I had a dollar for every time somebody's told me that C is just an accident waiting to happen, I could retire right now and make my own video game. C, like any other language, is a tool. It's no more prone to "doing things wrong" than any other language, and BY FAR, the more important issue is the quality of the programmer. So much more, in fact, that I assert the language is largely irrelevant in the discussion. I'll take a great C programmer over a mediocre C++ (or any other language) programmer any day. Furthermore, assuming C++ is where you're heading (which I think is a smart choice since almost all game development is done in C/C++ right now), I don't see a reason to not learn C since it is a subset of C++ anyway (IOW, you have to learn C to learn C++). But even more important is simply that C is so ubiquitous, that to not learn it for almost any CS field now, with the possible exception of exclusive front-end web development, would be a dubious decision. Let me just put it this way - I don't know a single C programmer right now that can't find a job, but I know plenty of ruby/php developers that are struggling, mainly because they are only able to do one thing. C proficiency will always be a valuable resource, at least for the foreseeable future. Lastly, learning any language is valuable. The number one reason I like prospective applicants who have C experience is that the lower-level nature of the language requires you to understand (better) how the computer is actually working. Abstraction, as a concept, is a nice idea and has its place, but I want the people I'm working with to really know what's happening under the scenes, and I feel that C experience helps there. So, in short: Learn C. You will almost certain use the knowledge, especially in game development, and it will make you a better programmer even if not (and you have to learn it to learn C++ anyway).
Yeah learning a language requiring explicit memory management will make you a better programmer regardless of whether it's C, C++ etc.
|
I'm a Compsci (game emphasis) major finishing my second semester of C++... And I have to say, C looks sort of crazy. Not looking forward to writing an operating system in it during my senior year. Also blows my mind that you could accomplish anything without objects. >_<
|
I am nearly done with my first semester for my game programming degree-thingy and I was told the opposite. Grades don't mean shit. IF you are good, you will be a great contribution to large teams. If you are bad, you can run the company to the ground basically. Due to the efficiency of code, ability to make it easy to understand and so on.
Since many people don't got any programming experience on the study, the first two semesters are basically learning math and programming with small game-related studies since we share class with general program-study and network security. Can't wait till next autumn, where we'll really start this up.
We'll be using Java for AI-programming for some reason,
As a small side-note, I can't wait to make my own game engine. My biggest dream is probably to work behind the game, adjusting, optimizing the engine people using (prefferably DICE, Valve or Blizzard).
|
On December 03 2011 19:32 hasuterrans wrote:Show nested quote +On December 03 2011 12:50 SCbiff wrote:On December 03 2011 06:56 Bey wrote: Don't worry about C. There are a lot of things that are bad about C and a lot of practices you'll pick up from starting in C that'll you'll need to unlearn when you move on to more mature languages. There's a reason we don't write software using the same tools that were used in the 1970's and that's because there are a lot of better tools out there today.
Skip C. It's not like a prerequisite, like C is your 101 level class that you have to take before the 102 of C++. It's not like C is arithmetic and C++ is calculus. It's not part of some progression you need to follow. C is different. It's old. There are a lot of ways to do C wrong and only a few ways to do it right. While there are some limited scenarios where it's the proper tool for the job, those are few and far between. And OOP is important. Start learning how to think that way now. When you're learning to be an architect, you don't start designing your first building to be built without hammers. Don't do the same when you're learning to be a developer.
I'm sorry, but this is tripe. If I had a dollar for every time somebody's told me that C is just an accident waiting to happen, I could retire right now and make my own video game. C, like any other language, is a tool. It's no more prone to "doing things wrong" than any other language, and BY FAR, the more important issue is the quality of the programmer. So much more, in fact, that I assert the language is largely irrelevant in the discussion. I'll take a great C programmer over a mediocre C++ (or any other language) programmer any day. Furthermore, assuming C++ is where you're heading (which I think is a smart choice since almost all game development is done in C/C++ right now), I don't see a reason to not learn C since it is a subset of C++ anyway (IOW, you have to learn C to learn C++). But even more important is simply that C is so ubiquitous, that to not learn it for almost any CS field now, with the possible exception of exclusive front-end web development, would be a dubious decision. Let me just put it this way - I don't know a single C programmer right now that can't find a job, but I know plenty of ruby/php developers that are struggling, mainly because they are only able to do one thing. C proficiency will always be a valuable resource, at least for the foreseeable future. Lastly, learning any language is valuable. The number one reason I like prospective applicants who have C experience is that the lower-level nature of the language requires you to understand (better) how the computer is actually working. Abstraction, as a concept, is a nice idea and has its place, but I want the people I'm working with to really know what's happening under the scenes, and I feel that C experience helps there. So, in short: Learn C. You will almost certain use the knowledge, especially in game development, and it will make you a better programmer even if not (and you have to learn it to learn C++ anyway). Yeah learning a language requiring explicit memory management will make you a better programmer regardless of whether it's C, C++ etc. That's a really diffuse comment. A better programmer in what way?
See, when programming in C# or Java, it's definitely not bad to know how memory works. That doesn't mean you have to have experience with explicit memory management. All you need to know is the worst case scenarios for the garbage collector and minimize those, and learning memory management in C or C++ doesn't help at all since it's a completely different system. Experience with explicit memory management will generally not give you any advantages when programming in languages with garbage collection since you aren't explicitly managing it anyway.
|
On December 03 2011 03:31 CecilSunkure wrote:Show nested quote +On December 02 2011 22:04 Slaytilost wrote:The reason I've chosen to focus on C is twofold: in the game industry 90% of video games are coded in C/C++. You might want to adjust that 90% of yours, or perhaps adjust your definition of game industry. Perhaps 90%-ish of games that are boxed and are for purchase in your local store, but remember that the game industry is much, much more then that. The mobile game industry is booming, and web-games have been around for a while too. They usually use higher level languages such as Java/C# or Actionscript, and iOS games are frequently built in Obj-C. In fact; i've been a professional game programmer for 3 years now, and i hardly know any C++, let alone objective C. But i still have collaborated on 3 titles that are currently available in the appstore. Since we use some amazing middleware (Unity) we can code comfy in our C# environment, even for Android and iOS. In short i'd like to say that the game industry is much broader then what people think. Its not only the starcrafts, modern warfares and battlefields. Its also Doodle Jump, Dora the Explorer and Hello Kitty online. I understand, but that's a pretty specialized area. You'd have immense trouble getting a job in a lot of other areas due to not knowing C++. Also the quote was actually loosely quoted from the podcast in the OP by one of the teachers here at DigiPen.
Specialized? I'd beg the differ, i'd say triple A studios are specialized. Just count the number of studios creating triple a titles, and the smaller studios that create other games, including but not limited to educational and serious games. There's only a very small portion of the whole industry actually working on triple A titles, and for good measure. Working at a triple a studio sucks, bigtime. Just ask any employee at such a studio (i know a couple), the work hours are terrible and crunchtime goes on continuously.
Immense trouble getting a job in other area's? Well, .NET developers and even sharepoint developers are in high demand if you are looking outside the game industry. Sure, if you want to work at a triple A studio a decent knowledge of hardcore game dev. concepts are needed, but you can get along well if you dont have that. Besides, a programming language is a tool to get the job done, its not that significant. Just about everything C++ can do C# can too, its the concepts and the maths that are hard to learn.
|
On December 03 2011 19:49 brain_ wrote: I'm a Compsci (game emphasis) major finishing my second semester of C++... And I have to say, C looks sort of crazy. Not looking forward to writing an operating system in it during my senior year. Also blows my mind that you could accomplish anything without objects. >_<
Interesting that you learned OOP before Structured Programming. Hopefully you will learn Functional programming (I did business instead of comp-sci so I don't know what the syllabus is), if structured programming will blow your mind, then functional programming will blow up your whole universe.
Quicksort in one line of Haskell
qsortOneLine xs = concat [qsortOneLine [y | y <- tail xs, y < x] ++ x : qsortOneLine [y | y <- tail xs, y >= x] | x <- take 1 xs]
|
Wow, I am always excited when I see new people getting into programming - especially with writing and communication skills like yours. If you keep at it, I am sure you will find a terrific job in the tech field.
Your story is very similar to mine when I started programming 10 years ago. I was in middle school and started programming in Blitz BASIC. It's a language that was relatively simple and offered some nice tools specifically for programming simple video games. I agree that C/C++ is probably the best language to learn and use at this point. Because it is so powerful, learning it will make most other languages seem easy. It will force you to manually perform memory management which is important to understand if you want to develop complex, yet efficient applications. I use C/C++ now working on software for embedded systems used in Routers and Switches and no other language would be possible in this situation. Its size and speed allow us to work in these limited environments.
I graduated from college with a degree in software engineering and I was easily able to find a great job right after graduating. It seems like software is one of the fields that is still relatively prosperous in this bad economy. So if you really enjoy this, and it seems you do, keep at it and I'm sure you won't regret it!
On November 17 2011 05:18 CecilSunkure wrote: For the longest time I always considered people who develop video games far and out of reach. I just sort of assumed they were people who were really rich and had family that got them into that field of profession. I just had no clue how anyone would actually go about developing video games, or how they'd get there in the first place.
I also have a little aside / advice. This type of thinking is very dangerous and will only prevent you from succeeding. You can control what you become and don't let anyone tell you other wise.
|
On December 03 2011 19:49 brain_ wrote: I'm a Compsci (game emphasis) major finishing my second semester of C++... And I have to say, C looks sort of crazy. Not looking forward to writing an operating system in it during my senior year. Also blows my mind that you could accomplish anything without objects. >_<
I highly recommend you check out the book Inside the C++ Object Model. Through it you can see how objects actually work and you should then be able to see how you can write object oriented code in C.
+ Show Spoiler + Basically you make structs with all your members in them. All of the methods on the object are free functions that take a pointer to the struct as their first member (this pointer). If you need virtual functions you store a pointer to a static function table in your struct and look up which function to call using that table. You can implement privates by putting them in the .c file and not exposing them to the header. You can have private members by having a private struct in the .c file which has the public struct from the .h file as its first member followed by the private members then mallocing this private struct and returning the pointer to the public struct. Then you can simply cast to the private type when you need access to the private members.
On December 03 2011 20:50 Tobberoth wrote:Show nested quote +On December 03 2011 19:32 hasuterrans wrote:On December 03 2011 12:50 SCbiff wrote:On December 03 2011 06:56 Bey wrote: Don't worry about C. There are a lot of things that are bad about C and a lot of practices you'll pick up from starting in C that'll you'll need to unlearn when you move on to more mature languages. There's a reason we don't write software using the same tools that were used in the 1970's and that's because there are a lot of better tools out there today.
Skip C. It's not like a prerequisite, like C is your 101 level class that you have to take before the 102 of C++. It's not like C is arithmetic and C++ is calculus. It's not part of some progression you need to follow. C is different. It's old. There are a lot of ways to do C wrong and only a few ways to do it right. While there are some limited scenarios where it's the proper tool for the job, those are few and far between. And OOP is important. Start learning how to think that way now. When you're learning to be an architect, you don't start designing your first building to be built without hammers. Don't do the same when you're learning to be a developer.
I'm sorry, but this is tripe. If I had a dollar for every time somebody's told me that C is just an accident waiting to happen, I could retire right now and make my own video game. C, like any other language, is a tool. It's no more prone to "doing things wrong" than any other language, and BY FAR, the more important issue is the quality of the programmer. So much more, in fact, that I assert the language is largely irrelevant in the discussion. I'll take a great C programmer over a mediocre C++ (or any other language) programmer any day. Furthermore, assuming C++ is where you're heading (which I think is a smart choice since almost all game development is done in C/C++ right now), I don't see a reason to not learn C since it is a subset of C++ anyway (IOW, you have to learn C to learn C++). But even more important is simply that C is so ubiquitous, that to not learn it for almost any CS field now, with the possible exception of exclusive front-end web development, would be a dubious decision. Let me just put it this way - I don't know a single C programmer right now that can't find a job, but I know plenty of ruby/php developers that are struggling, mainly because they are only able to do one thing. C proficiency will always be a valuable resource, at least for the foreseeable future. Lastly, learning any language is valuable. The number one reason I like prospective applicants who have C experience is that the lower-level nature of the language requires you to understand (better) how the computer is actually working. Abstraction, as a concept, is a nice idea and has its place, but I want the people I'm working with to really know what's happening under the scenes, and I feel that C experience helps there. So, in short: Learn C. You will almost certain use the knowledge, especially in game development, and it will make you a better programmer even if not (and you have to learn it to learn C++ anyway). Yeah learning a language requiring explicit memory management will make you a better programmer regardless of whether it's C, C++ etc. That's a really diffuse comment. A better programmer in what way? See, when programming in C# or Java, it's definitely not bad to know how memory works. That doesn't mean you have to have experience with explicit memory management. All you need to know is the worst case scenarios for the garbage collector and minimize those, and learning memory management in C or C++ doesn't help at all since it's a completely different system. Experience with explicit memory management will generally not give you any advantages when programming in languages with garbage collection since you aren't explicitly managing it anyway.
Garbage collection isn't a panacea. You can still have logical memory leaks. You still often have to explicitly manage your memory just with less control over the process.
A excerpt from Refactoring:
Optimizing a Payroll System Rich Garzaniti We had been developing Chrysler Comprehensive Compensation System for quite a while before we started to move it to GemStone. Naturally, when we did that, we found that the program wasn't fast enough. We brought in Jim Haungs, a master GemSmith, to help us optimize the system. After a little time with the team to learn how the system worked, Jim used GemStone's ProfMonitor feature to write a profiling tool that plugged into our functional tests. The tool displayed the numbers of objects that were being created and where they were being created. To our surprise, the biggest offender turned out to be the creation of strings. The biggest of the big was repeated creation of 12,000-byte strings. This was a particular problem because the string was so big that GemStone's usual garbage-collection facilities wouldn't deal with it. Because of the size, GemStone was paging the string to disk every time it was created. It turned out the strings were being built way down in our IO framework, and they were being built three at a time for every output record! Our first fix was to cache a single 12,000-byte string, which solved most of the problem. Later, we changed the framework to write directly to a file stream, which eliminated the creation of even the one string. Once the huge string was out of the way, Jim's profiler found similar problems with some smaller strings: 800 bytes, 500 bytes, and so on. Converting these to use the file stream facility solved them as well. With these techniques we steadily improved the performance of the system. During development it looked like it would take more than 1,000 hours to run the payroll. When we actually got ready to start, it took 40 hours. After a month we got it down to around 18; when we launched we were at 12. After a year of running and enhancing the system for a new group of employees, it was down to 9 hours. Our biggest improvement was to run the program in multiple threads on a multiprocessor machine. The system wasn't designed with threads in mind, but because it was so well factored, it took us only three days to run in multiple threads. Now the payroll takes a couple of hours to run. Before Jim provided a tool that measured the system in actual operation, we had good ideas about what was wrong. But it was a long time before our good ideas were the ones that needed to be implemented. The real measurements pointed in a different direction and made a much bigger difference.
|
On December 03 2011 22:29 Slaytilost wrote: Working at a triple a studio sucks, bigtime. Just ask any employee at such a studio (i know a couple), the work hours are terrible and crunchtime goes on continuously.
I work at a AAA studio, and this is not the case for me. We do have crunch (we are crunching right now in fact as we are getting close to shipping), but it's not that bad - I'm working ~50 hours per week. We will get a lot of this back in comp time once we are finished. I love working on big time games, so AAA studios are perfect for me. There are studios out there that crunch way too much, like Team Bondi did, but studios are starting to realize that too much crunch leads to burn out of your best talent, and that hurts you as a company.
You will be crunching in most studios, AAA or not. It's just a question of how much and what studios are trying to do to minimize it.
|
i'm studying mech engi right now and its really pissing me off , i dont like any of the courses, it feels like a grind everyday. now i'm considering switching to com sci or software engi, and hopefully make it into the multimedia industry and more specifically, game design. Thanks a lot for the information, do you know if the industry have any preferences between software engi or plain programmer? or can programmer be a software engi as well?
|
i writing some games for school and they are in XNA its so easy with that
|
On December 03 2011 23:33 sluggaslamoo wrote:Show nested quote +On December 03 2011 19:49 brain_ wrote: I'm a Compsci (game emphasis) major finishing my second semester of C++... And I have to say, C looks sort of crazy. Not looking forward to writing an operating system in it during my senior year. Also blows my mind that you could accomplish anything without objects. >_< Interesting that you learned OOP before Structured Programming. Hopefully you will learn Functional programming (I did business instead of comp-sci so I don't know what the syllabus is), if structured programming will blow your mind, then functional programming will blow up your whole universe. Quicksort in one line of Haskell qsortOneLine xs = concat [qsortOneLine [y | y <- tail xs, y < x] ++ x : qsortOneLine [y | y <- tail xs, y >= x] | x <- take 1 xs]
The first semester we didn't use objects, but all the projects/assignments were very small scale. And yes, I expect functional programming to be insane... Quicksort in one line? Seriously?
|
I don't know if anyone else has posted this link, but if you could edit it into the original post that would be lovely, not all of us are from the U.S!
For those of us in the UK, Train 2 Game train people for the games industry. Anyone can apply for this, qualifications or not, and go on a course in how to design or program games, how to become artists or animators for games.
They did a "Jam" last month, where teams of people on the course come together and get given tasks of games to make over the course of the weekend. The winners of last months Jam are currently doing placements at Epic Games.
|
United States5660 Posts
Hmm
What do you think about using UDK and Unity3D and etc for games tho?
|
On December 03 2011 06:56 Bey wrote: C++ still gives you all the cool ways to shoot yourself in the foot and waste your weekends that C does. It has enough low-level power to prime you for that world but enough high-level expressiveness to get you used to working in that world as well. And if there ever comes a time when you need to fall back and learn C, your exposure to C++ is going to make that easy.
Ah I remember the subject I did in C, it was quite painful, probably in part because I found it hard to stay awake and alert during the lectures. The assignments specificially, I'm surprised I don't get nightmares about segmentation faults.
|
|
|
|