tokumaru wrote:
SatoshiMatrix wrote:
I'm currently a journalism student but due to my interests, I'm thinking of switching careers next fall and going into programing.
Seriously, just stay on journalism. Programming for current stuff is not fun at all. The great majority of programming jobs is for boring business stuff, but even when this is not the case, the tight deadlines will always have you using a shitload of code/libraries made by other people and not coding any of the fun stuff yourself.
If your main goal is to code for these retro platforms, studying programming at college won't help you at all. Not a single person I know that graduated in computer science has the slightest idea of how a game works. Most courses teach only linear programming (where you take some input, do some processing with it, generate an output, and you're done), or at most some event-driven programming (when something happens when the user does something, like click a button). Fact is that none of that prepares you to keep a simulated world constantly working, something essential in an action game.
I have to disagree with all of this. Colleges and college students that you are familiar with must suck.
I have a Bachelors of Science degree in Computer Science from the University of Missouri - Rolla (USA). I also have minors in math and history. Most of the hard-core CS students spent their free time coding up games and simulations. I did. I wrote a (working, but sucky) RTS game (was going to be a clone of Command and Conquer) for unix. It ran on bare X11 (no widget kit) or VGALib (this was before SDL was wide-spread) and used TCP and was client/server based (bad design decisions, but hey, it was fun to work on).
The "input -> process -> output" was only taught in the "intro to programming" class (a required freshman weed-out class). The data structures classes were fun. One very memorable assignment was to write a program to solve the "peg solitaire" game using a depth-first recursive solver. For my final senior project, I wrote a miniature C compiler, assembler, linker and virtual machine to run the executables in. From scratch. I didn't copy stuff from the famous "dragon book" (seminal work on compiler design). Designing, coding, testing and demonstrating those things to the professor certainly isn't as simply as stripping a text file and adding up values. These certainly were not brainless coding tasks one would hand to a junior programmer.
My wife also has a CS degree. For her second-level data structures class, the professor had the entire class hack on the source code to a mud to add features.
One of the CS students at UMR wrote his own 3-D graphics implementation on Solaris. It used the raw frame buffer on the server and was VERY FAST. It blew away the speed of opengl on a MITSHM extended X11 display.
UMR was a tough school. Only 30 percent of the incoming freshmen graduated. Most washed out. By the time a UMR student had 60+ credit hours, you knew that they were serious. UMR students were all top of their high school classes which made them highly competitive with each other (place 5000 alpha geeks in one campus and then drop 70% of them, you can see the pressure that this puts on you).
I've met my share of idiot programmers... With college degrees. We won't hire them. Ever. They do exist. But a blanket statement that "graduates in CS haven't the slightest idea how a game works" (I paraphrased you here) is laughable.
UMR spent exactly ONE semester on learning a programming language. When I was a freshman (1994) that was pascal (turbo pascal 7.0 on MS-DOS) (today it is Java or .net, idk which). After that, every CS student was expected to learn any required language with "2 weeks and a manual". The rest of the curriculum was on data structures, cpu micro architecture, AI, language translation, graphics, networking (Understanding the physics of the wave traveling down the wire all the way up to writing tcp servers and measuring network latency / global performance issues), recursive decent parsers, etc... Each professor dictated what language we had to use, and there was a variety (pascal, C, C++, fortran, cobol, x86 asm, ibm 370 asm, shell and/or perl, java, lisp, scheme). I will grant you that the language choices have really bloomed since then.
I am willing to bet that there are a great number of college CS graduates that could create a game (PC or NES). Just like there are students who can't code their way out of a wet paper bag.
A CS degree is NOT a prerequisite for bring a great software developer. It is a path. There are many. But to say that everyone who walks down a given path sucks is totally inaccurate.
If SatoshiMatrix wishes to pursue a CS degree, then good for him. The advise that I would have when picking a degree program at a college is this:
IMHO, you can judge how good a college program is by the count of undergrads who publish research papers (sadly, I did not do this. I was also working two jobs and got married my Junior year, so I had no time to do real research), and how impressive the list of big-name companies that recruit graduates from the college. The later is a direct indication of the refined job market's assessment of the quality of the college / degree program. The former is (one) indication of how much the college encourages pure science (peer review, etc...). Many colleges don't encourage undergrads to publish. Those that do seem to be ahead of the curve in doing research and exposing real science to the undergrads
As for real programming jobs being boring. Yes, they can be. My entire professional career has been writing code for financial companies (payroll software, credit card processing software, file transfer automation / sysadmin scripts). But even in these environments, there is room for fun stuff. Ever write code to use an inverse Fourier transform to look for transaction account fraud? I tinkered with it. We've written neat data visualization stuff too. Data mining is fun.