Jump to content

Self Taught - how many get along with this?


xanas3712

Recommended Posts

I'm well aware of the fact that in the past many got their start on self taught programming, but today the development procedure for games is significantly more advanced/difficult than it was perhaps in the past. (Maybe difficult is the wrong word, but you can't make a game without people of various talents anymore).

 

Personally, what I have the most interest in is programming. I was really interested in programming when I was in HS, had a very fun C++ class but it was doing stuff in dos. I've more recently played around with some of the open source engines like Ogre, etc. but even it's a little hard when I haven't had any real training on things. Most of my other experience where I felt that I was really pretty good was in the NWN1 scripting language. I developed a pretty large spawnsystem that required knowledge of sql, I wrote a plugin for nwnx in C++ for my pw to help in the deletion of characters and a few other things, and did other various things.

 

I've got a wide span of interests so I've even done some mapping for ut2004 for fun, or php stuff for web pages, etc. I just really like to learn, but it's difficult sometimes to find more advanced information. I'll also be honest that while I was great at math in HS (last class was AP Calculus), it's been a few years since then so I'm a little rusty on some of the concepts :p

 

Anyhow, to the questions..

 

1) Any recommendations on sites/tutorials/products that are really helpful for getting one from a beginning C++ experience to a higher level of understanding of 3d APIs, graphics engines, etc.?

 

2) Is a degree absolutely necessary for getting a job in the industry?

Link to comment
Share on other sites

  • 3 weeks later...

You sound a lot like me, with the exception, you actually like programming. I taught myself programming when I was ten and wasn't offered anything challenging until college. And there, I was talked out of taking a CS degree because you didn't work in C until year 3 which seemed like a waste.(Also, very few hot chicks in the department and that seemed like a reasonable priority at the time) I spent alot of time doing web development starting in 91 so I've worked in a ton of languages, other than C. And it has really helped as many of those languages have been incorporated or replicated as scripting languages.

 

As for teaching yourself, it's always best to keep a goal in mind. Identify a solution that needs to be met and decide how to approach it. It sounds like you are already doing that with your NWN stuff.

 

Not having a degree definitely makes it tougher to move to being an actual programmer, because self taught does miss out on opportunity for some basic mental cheat sheets when problems arise. Also the big difficulty is standards. If you are self-taught, you don't always do things the "right way" as for formating or mem management, etc. You might do what works for you. And that is tough, as even small teams now have multiple people working on the same code bits.

 

You can make it as a programmer without a degree, probably starting out as a scriptor somewhere and moving up as opportunities permit. It is tougher though, and in the fast paced competitive game industry, it may pay off to take some night classes and get some sort of degree.

 

But it sounds like you got your head in the game, your a doer, and you've actually got some things done, which is more than most aspiring game developers do. So hang in there, your shot is bound to appear. And nail it when you get it!

 

That's just my two cents.

Link to comment
Share on other sites

My first year I learned Java, and I was in the same boat wondering "What's the point?? C/C++ is the dominant way."

 

But learning the language is the easy thing. The data structures and programming methodology I learned in my Java classes still apply to my C/C++ classes I'm in now.

 

With hindsight, I have also realized that Java seems to more strict than C development, which is not necessarily a bad thing for the new people coming in with sloppy structure. For example, Java explicitly only allows a boolean type in an iterative IF statement. However, C allows for a integer value, where any non-zero is considered true. As a result, putting if (i = 2) will work in C but not in Java. As a result, I was able to get it into my head immediately that a single equal is assignment, and a double equal is a measure of equivalence.

 

Also learning about queues, stacks, SLLs, DLLs, and hash tables in my second CompSci course has virtually nothing to do with Java....we only used it as a medium to program with.

Link to comment
Share on other sites

I'd say aside from my first or second course, the classes have very little to do with syntax. Most of the courses simply use a language to teach a concept, and that language may vary. Once ya know a few languages, you can pick up a new one in a matter of weeks anyway. What isn't so easy is getting all the advanced concepts, which is where a lot of formal education courses focus. Having a working knowledge of trees, stacks, queues, graph theory, a.i., genetic algorithms, etc. is the real gem that ya get from formal education in my opinion.

Link to comment
Share on other sites

1) A good start would be to download the DirectX SDK from Microsoft. This has the reference, samples and tutorials. Come up with a concept for a simple 3D application (maybe just a screensaver) and make it happen.

 

2) The degree isn't necessary, but it makes it a whole lot easier to get in. I'd recommend getting the degree.

Link to comment
Share on other sites

Generally speaking, as in not games developer specific, it would be a very good idea to get that degree. If for no other reason, then to show that you've got what it takes to be in that line of work.

 

I started out as a self tought and it was all very nice, except that I had to work twice as hard as people with a paper to get recognition for what I did. Later in life, I went back and did my CS thing, and that was the best move in my life.

 

Not only did it open my eyes for a completely different world, but it also taught me the naivite of my previous work.

 

Today, I have the benefit of age and a network of friends in all the right spots around the world, no small part of whom are buddy's from the university time.

 

And that's just the social and and employment potential benefits.

 

From a purely professional point of view, self taught people tend to very limited in theit "skill palette", they are very good at what they are interested in, but they are not very flexible when it comes to working on even related tasks. I know this, because I've had to let a few people go every now and then (mostly self taughts), they simply were not flexible enough. Specialists are very good for contract jobs, but not for permanent employment.

 

For me, the most important lesson learnt, was the skill of aquiring new developer skills. Something that might require a different mindset than the "untrained" mind.

 

Getting a formal education definitely broadens your horizont as a developer, games developer or not.

 

Just my 0.25$

“He who joyfully marches to music in rank and file has already earned my contempt. He has been given a large brain by mistake, since for him the spinal cord would surely suffice.” - Albert Einstein

Link to comment
Share on other sites

Wow, this thread went forever without a response and then it gets 7 ;)

 

Well anyway, I didn't know a ton of C++ when I wrote this. I'd done enough to write a simple app, then I'd get confused by something I didn't understand, etc. and back off for a bit..

 

Anyway, right now I'm going through Bruce Eckel's Thinking in C++ (available at http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html ) to really learn all the major stuff. After that I plan to go through one of Bjarne Strousup's books. For one thing, I don't have a lot of money so I'm trying to stick to things I can do with linux tools for the most part. I'm trying to avoid the IDE's because I know from experience you can learn how to use an IDE and still not really know what you are doing when creating something more complex.

 

Now, there were a few things mentioned here I'm interested in that you guys were talking about that are taught in CS courses. I'm really curious if I can get any of that knowledge elsewhere in a book or something, if you have recommendations, specifically in regard to algorithms I'm going to want to know well.

 

If the degree option were available to me at this point (it's not financially viable now) I'd go for that, and I do plan to at some point but I need to get far enough that I know for certain it's going to be worth it. I already have one degree that I'm not using and I don't need to spend more money on another one, lol.

 

Another question is on books, if anyone can give me a good list that would go from beginning -> intermediate level game programming. I can use my time to go through those after I'm done with what I'm doing. Just to get an idea of how I go, so far I've moved through 12 chapters of the book I'm on in about 5 days (exercises included, not just the reading). That's basically from learning what objects are (which I already knew) up to where I'm doing operator overloading and such now.

 

As far as techniques goes, I haven't learned a lot except for how to create basic containers, linked list data structures, etc.

Link to comment
Share on other sites

I agree.

 

Computer Science isn't about programming....it's about algorithms (which are useful in programming) ;)

 

Though programming practice is usually covered in such degree's along side the algorithm theory.

 

 

Agreed. But from what I hear only so much for the first years (I'm only in my second year, but already the instruction for C/C++ is much quicker than when we studied Java the year before).

 

 

It's funny how an algorithm can really speed up the efficiency of your program. One of the simpliest and most obvious ones is summation of numbers 1 through x.

 

It is exceptionally easy to make a loop that can do this (a simple while loop), a much quicker solution is [x(x+1)]/2. In the first method, you have to do x assignments for every number, whereas in the second method you only perfom the instructions one time...so if X is huge, it's way faster.

 

Admittedly this is a really, really, REALLY simple example, but as I learn the algorithms it's kinda neat how much more efficiently I can code, and like Gorth mentioned, see the errors of my previous code.

 

 

As for xanas, sounds like you are well on your way. Although I speak from limited experience, I'd recommend getting a book on Data Structures and Algorithms.

 

Data Structures help you deal with the common structures such as stacks, queues, the various linked-lists, hast tables etc. It also generally helps you to analyse the efficiency of these structures. (e.g. for small lists, a linked-list works fine, but for huge lists, a hash table with linked lists works much, much, faster).

 

Algorthims will go along far in these instances as well. Coding efficiently cannot be overstated IMO, and will help you out in the long run.

 

 

As for post-secondary education, look into some scholarships and other financial aid. It's possible to get bursaries from various organizations based on financial need (I know I did). Furthermore, look into scholarships from the institutions you wish to attend. I found out that there is over $50,000 in various scholarships for just Computing Science students (not including the scholarships for the Faculty of Science, which CompSci students are a part of as well). Work your ass off in school (which is mostly what it takes) and get a piece of the pie. That's my plan for this year :D

Link to comment
Share on other sites

1) Any recommendations on sites/tutorials/products that are really helpful for getting one from a beginning C++ experience to a higher level of understanding of 3d APIs, graphics engines, etc.?

 

what you're having, thinking in C++, is one good source. I do not specifically have a favourite C++ book on hand, and i usually improvise whenever i need something. the best is start a modestly scaled project and get cracking your skull on it.

 

2) Is a degree absolutely necessary for getting a job in the industry?

 

I got my job as a software programmer during the dot com boom, so even though i was not trained specifically for programming (I graduated an electrical engineer) I did land the job. (BTW I've since moved on into another, more interesting industry.)

 

the situation is alot different now. Go get a degree if u can. it matters. there're tons of graduates from computer science each year. there's no reason why employer employ you over someone who's professionally trained. Sure there're exceptions (you read tons of those on the net), but keep in mind those cases are exceptions, not the norm. I've worked with programmers who're not professionally trained and it's fustrating working with them. I imagine it's the same what my fellow colleagues thought of me when i started out.

 

also, are you sure programming is what u trully enjoy? some of it can be fun, but most of it can be dull, too. you may not be involved in creative algorithm writing (how many industry needs that?) but mundane GUI writing or DB access and stuff like that. The creative part is mostly system designing, hardly the actual coding.

Link to comment
Share on other sites

also, are you sure programming is what u trully enjoy? some of it can be fun, but most of it can be dull, too. you may not be involved in creative algorithm writing (how many industry needs that?) but mundane GUI writing or DB access and stuff like that. The creative part is mostly system designing, hardly the actual coding

 

I know this wasn't directed towards me, but I feel confident in my decision to go into CompSci because even the boring coding I still find really fun.

 

Our first project this year was to do a run-length encoding file compression which is really straight forward, but I still had oodles of fun doing (although it would probably be more of a creative algorithm thing though).

Link to comment
Share on other sites

I know this wasn't directed towards me, but I feel confident in my decision to go into CompSci because even the boring coding I still find really fun.

 

Our first project this year was to do a run-length encoding file compression which is really straight forward, but I still had oodles of fun doing (although it would probably be more of a creative algorithm thing though).

 

good for you. ;) I suppose encoding and decoding algorithms can still be fun. I learned some coding algorithms since I specialized in digital communication in my final year. It can be interesting.

 

for me, I'm having lots of fun coding simulation software (yet my title is not software engineer).

 

But the fact is, most of the software engineers out there are doing very mundane and routine work that does not involve much creativity/inspiration. I know that, because that's what my previous job (2 years of it) entails.

Link to comment
Share on other sites

Just for the sake of argument, how many hours is a Bachelor's CompSci program?

 

As I said, I already have a degree and that's one of the barriers is not wanting to add more loans :( so I do need to know a few things. It was from an accredited school so my basics should transfer, though I didn't have any math courses because I used my rather low (3) AP exam score in Calc to take care of basic math. Thing is, I'd really need to take math anyway, since it's been way too long since I've used anything more advanced than basic algebra/geometry.

 

Any ideas about current tuition at schools? As far as scholarships goes, not sure how I'd be there. My HS GPA was a 3.88 but I took the ACT rather than the SAT. My score on that was a 30 or 31, something like that. When I had taken the PSAT I think I made like a 1280, which is mediocre.

Link to comment
Share on other sites

From what I've experienced and compared with friends, the average CS degree course wise is about standard for a science/engineering degree, but a few more courses than most non engineering degrees. There tend to be a lot more lower division courses in CS than most degrees carry which leaves little room for electives aside from the bare minimum GER's required. Even if you can fit in a couple electives, they usually go into math or logic courses as it just makes sense. Just my experience, but my bachelors degree rounds out to be about 140 credits, with only 2 classes being non-Degreee/non-GER related. The average degree is around 120 right? Maybe I just got worked though...

 

Quick note on tuition... University of Alaska runs approx $120.00 per credit hour, and UA Fairbanks has a pretty strong computing center (used primarily for northern lights research and CS)... Pretty cheap compared to most schools I've seen for the quality of the degree

Link to comment
Share on other sites

Well, from my experience my degree was 128 hours or something, but the education degrees at my school were like 148 or something like that. So I don't think you were worked over based on that hehe..

 

120$ an hour is pretty cheap. That's a little less than I was paying at the school a few years ago, but they've recently uped it there to like 235$ so.. heh. I think the community college is about 60$ a credit hour though, and if I could find something at around 100-150$ to take a few courses here and there that'd be good. But obviously I need a distance program for that.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...