Jump to content
The Dark Mod Forums

Internships


Gildoran

Recommended Posts

Only advice: don't! :laugh:

 

I'm kidding, mostly. If it's what you want, go for it. You could probably just pick a company you're interested in and drop them a line; if you present yourself as you are, and something (skillset or 'stuff') desirable, and they want someone cheap enough who can do good work, they'd probably take you on. As for what skill, anything you can offer is up for consideration; the more you offer (and thus the more talented you are) the better. Hey, wasn't it Tim Stellmach who contacted LGS one day to complain about something and then offered to do QA and eventually became design and management? You never know till you try, and you won't know if your most desired company would take you unless you try that one specifically. Take aim and shoot.

 

Be ready to relocate in most cases though. The short contract I did was remote along with a handful of others, and after a few months, we were all let go, because it wasn't working out. Only those who would relocate to the office stayed on. Every case I know of other than that (even someone I knew who worked at id) required relocation, no exceptions. Hm, then again, isn't Oddity doing something remotely?

 

Oh and be ready for 80 hour weeks with low pay (if any, as an intern). But I guess you know that part already. :)

 

And don't forget TDM damnit. :P

Link to comment
Share on other sites

If you want to make a game, you should try to do it. If you want to work as a programmer, then you should look for some "normal" company. :) I don't know if it is really desirable to work in a game company as a wage slave, because you get low money and you have to work a lot for it. And I'm not really sure if you can work your way up to where you can actually make decisions about a game. At least it will take very long. I also played with the idea, but then I contacted some game companies, and looked at what they would offer, and I couldn't really accept it. Maybe I'm not commited enough. :) But I have family to support, and I can't really half my income just for a hobby. So it depends on what you want to achieve in the long run. Getting some experience in a company might help you though.

Gerhard

Link to comment
Share on other sites

You have to have a particular type of personality to work as an intern as well.

I could never do it, my pride wouldn't allow it. It would sicken me to have to work with other people, doing the same job as them but getting paid peanuts in comparison. It would make me resentful, aggressive, and overly competitive. (even more so than I already am)

The way I'm getting in is by first learning to be very good at what I do, being conspicuous in the CG internet community, doing freelace work for the experience, and also putting together a great portfolio.

I'll either get straight in as an equal, or not at all.

Having said that, I'd prefer to work freelance forever, but it's not a very predictable income.

Civillisation will not attain perfection until the last stone, from the last church, falls on the last priest.

- Emil Zola

 

character models site

Link to comment
Share on other sites

I could never do it, my pride wouldn't allow it. It would sicken me to have to work with other people, doing the same job as them but getting paid peanuts in comparison. It would make me resentful, aggressive, and overly competitive. (even more so than I already am)

 

Working with other people is not the real problem, as you have to do this always. :) But it can get really annoying when you know that something could be done better, but for political reasons it gets denied.

 

I'll either get straight in as an equal, or not at all.

 

I doubt that you will get in as an equal, even if you are the best. The industry always demands some experience in the industry, but as soon as you are in you can make your name.

 

Having said that, I'd prefer to work freelance forever, but it's not a very predictable income.

 

With your skills it should be. :)

Gerhard

Link to comment
Share on other sites

I think I can expect near equality straight away. Digital sculpting is a new art anyway, so it's not as if there are guys who've even been doing it for more than 3 or 4 years anywhere.

With experience I'm getting from working in real commercial pipelines as a freelancer, and the quality of my work, I'd never have to work as an intern to get a first time job in this.

Internships are for people who are either desperate, impatient, or both.

Civillisation will not attain perfection until the last stone, from the last church, falls on the last priest.

- Emil Zola

 

character models site

Link to comment
Share on other sites

it's not for everyone working in a team. Of course an important part of working in a team is the people you work with. I've had the pleasure to work with an art team where everybody was treated the same and there was no competition among the artist.. but it's not always the same elsewhere.

 

For an internship i would look at a smaller studio which can provide you to do more tasks. Showing the work you've done on the mod or other game-related stuff is very helpfull.

Link to comment
Share on other sites

Internships are for people who are either desperate, impatient, or both.

And that is why a good education pays off in the long run. Showing up without real experience in the industry puts you in a real iffy position. Having a bachelors in, for example, Computer Science means that you have a certain base level of skill, and now you're a better bet. Having a Masters or Ph.D., on the other hand, makes way overqualified as a simple code monkey (or model monkey, as the case may be), but even then, a portfolio is very important. There's damn good reason why I applied here.

Link to comment
Share on other sites

Depends on what you mean by educatiuon. When I applied for my first job as a programmer, I had no formal training (and I still don't have on till today). I learned BASIC and assembly by myself, and learned later on C and still later C++, because I was intrigued by computers and how they worked. When I applied for my first job then, I already had a bunch of applications to show, and my prospective employer was still quite shy, because he didn't trust that I can do what he needs. So he put me to the test and demanded that shall write him, on paper, a function that scans a directory for files in DOS. Not only was I finished in record time (took me about ten minutes to write it down) I also wrote it such that it worked recursively, which he hadn't even required. And when he typed it into the computer it worked. He was so impressed about this, that he told a lot of new employes in their first talk about me, which I later learned, because he never told me himself.

On the other hand, I have seen people who had highest grades in formal training, and they still can't think straight when it comes to programming. A friend of mine had best grades in her entire school and once she was finished she told me she never wants to program again (or anything related to it), because she felt that she still didn't understand it. If an employer sees your work, and he still claims that you have disadvantages because of lack of formal training it's either of two cases. Your showcase is not impressive enough, or he bargaining for money. I also had such a case where she told me that without that training I can't expect the much money I requested, because she had people with a proper grade which demanded less. I told her that she can put these people to the test and then we will see what counts more. Training or experience. Formal training is good if you don't have much to show, but nothing beats experience. If you learn from a book, that a certain instruction is fast, but you know from excessive testing that it is not, helps you a lot more, and also impresses your boss more than a nice paper saying that you can do your homework.

Gerhard

Link to comment
Share on other sites

That's because a system of memorising given information long enough to remember it in an exam it useless..

A parrot can memorise given information. Big Deal.

You can't teach the three 'i's, and it's those that separate the wheat from the chaff - improvisation, innovation, and individuality.

In fact, make that four 'i's. Add inspiration to it.

Civillisation will not attain perfection until the last stone, from the last church, falls on the last priest.

- Emil Zola

 

character models site

Link to comment
Share on other sites

And that's why I'm saying the current education system has to go. Let's examine a typical friend of mine. (they're all Chinese)

improvisation? no, they'd rather have every minute detail planned by them or someone else (preferrably someone else)

innovation? sometimes, because they know the basics so well, they're not afraid of making mistakes while innovating.

individuality. cross that.

inspiration? for them the reason to do something is because they have to not because they love to.

Link to comment
Share on other sites

I had a physics/math teacher who was quite a good teacher IMO. First time we had some exams with him, I was a bit surprised, because one of the first phrases that you get used to hear in such exams is "Put away your calculators please." Later it changed to "Put away programmable calaculators, only normal calculators are allowed." This teacher didn't say that, he just gave us the papers and said we should get started. One of us became unsure about this, and he explicitly asked wether we can use programmables as well, and he said yes. It became soon apparent why and he also told us afterwards with a sly smile. He wrote the exams in such a way, that if you just memorized everything, you could only get a rating just enough to put you through the test without actually failing it. If you wanted a better rating, you needed to understand hat you did. Programming the computers with formulas didn't help, because you had to know how to use them and where. I always liked this kind of tests much more then these stupid "learn A, B and C and you get a first class rating" tests.

Gerhard

Link to comment
Share on other sites

Calculators are almost useless for higher level maths, since you are mostly manipulating symbols rather than calculating values. No calculator is going to help you with calculus or Taylor expansions, for example.

 

A-level physics on the other hand, was just "Multiply this very large number by this other very large number and write down the result."

Link to comment
Share on other sites

Well, the calculator that I had was a small computer, and it could solve equations and also work with symbols. I also know about HP calculators for engineers which are also quite sophisticated and can do these things. Definitely with calculus IMO.

Gerhard

Link to comment
Share on other sites

Formal training is good if you don't have much to show, but nothing beats experience. If you learn from a book, that a certain instruction is fast, but you know from excessive testing that it is not, helps you a lot more, and also impresses your boss more than a nice paper saying that you can do your homework.

And that raises the question of how you intend to gain such experience. Trust me, at the college level, formal training is much better than most people can do through self-teaching. This is especially true for people doing graduate work, although, at that point a lot of it becomes a from a directed self-learning (thesis and dissertation).

Link to comment
Share on other sites

Heh, that story reminds me of a great math teacher I used to have... On every test, he'd have a "gift" question - if you just followed recipes and cranked out the numbers, it'd take a bunch of time, but if you understood the ideas behind what was being taught in class, the gift problem would become trivially simple. This same instructor also gave out an exam question where the students had to use calculus to optimize marijuana farming. ;)

 

A big pet peeve of mine has been how many other students just try to memorize recipes rather than understand the underlying concepts - memorization is far more difficult and less effective than understanding. I've tutored classmates who act mystified when I'm able to solve problems we haven't been given recipes for.

Link to comment
Share on other sites

A big pet peeve of mine has been how many other students just try to memorize recipes rather than understand the underlying concepts - memorization is far more difficult and less effective than understanding. I've tutored classmates who act mystified when I'm able to solve problems we haven't been given recipes for.

I go to one of the most prestigious universities in the country (at least top 10 in engineers, and within the top 3-5 in my major, iirc), but half the time I feel like I'm one of the smartest students in the class, just because nobody else seems to get the concepts. Computer Science (my major) is tied with Computer Engineering, Mechanical Engineering and Aeronautical Engineering for the second hardest major in my university, and yet people don't seem to be even trying to learn it. Of course, it doesn't help that at the undergrad level, the CS program doesn't actually teach you to become a true Computer Scientist, instead relying on the students being able to figure out the fundamentals for themselves (you don't teach an AI class in Lisp when your students don't understand functional programming).

 

Then again, I could be learning CS at Clemson, where they teach you programming strictly by route. Apparently, several people have failed out of Clemson's CS program only to become a straight A student in our CS program. When I first heard it, I was shocked, thinking that it implied that they had a superior program. Wrong. Just last year Clemson celebrated breaking into the list of the top 25 engineering schools--they were either 24 or 25 (I can't remember).

 

At least here, they try to teach you the little things--you know, like good design, CS theory, et al. Their main failing is in ensuring that the basics are being taught. Nobody in their right minds assumes that because their students know object-oriented design and how to do low-level optimization that they can already do functional programming. Originally, the intro to programming course was taught in Scheme (a functional language), followed immediately by the intro to object-oriented programming course (still taught in Java), but now they've switched over to Python in the intro course. That's fine and dandy, but there are plenty of upper-level courses that are being taught that require students to know good functional design beforehand! (The AI course previously mentioned mandates that students do not borrow, in part or in whole, any Lisp code on the internet, in a book, or even written by the students themselves!)

Link to comment
Share on other sites

And that raises the question of how you intend to gain such experience.

 

By experimenting.

 

Trust me, at the college level, formal training is much better than most people can do through self-teaching. This is especially true for people doing graduate work, although, at that point a lot of it becomes a from a directed self-learning (thesis and dissertation).

 

A formal training is quite well. You can learn a lot that you probably wouldn't learn otherwise, either because you don't know about it, or you don't know how to attack it. I got some formal training as well, because later on I attended an evening school to learn some of the stuff that I missed, but it didn't help me much, because I learned much more at that time already by myself. When I went to that school I was already doing project managment and were programming for ten years. I merely tried this because I thought it would help with my job as a bonus. That's why I said above I haven't got any formal training, which is not entirely true.

 

On the other hand, I had some teachers in this school that learned by ways of formal learning, because they tried to learn the same stuff that they needed to teach us, with only a small step ahead of us. I was quite surprised at the result and the bad quality of it, because of the lack of experience on the teachers part. On teacher showed us code, where I said it will not work. He said it does work. We put it to the test and it really worked. But only because he used an extremly old compiler which didn't check the syntax properly in that particular case, and also because the sample was very small. He didn't allocate pointers, he just used them. It worked because there was enough memory available when you start the app, but if you would use the same code in production code, it would have crashed, because the memory was corrupted.

Another example was a teacher who tried to teach us C and she explained some functions in a rather strange way. She always warned us that we should never use this function because it doesn't work properly. At an exam, I was using these functions, because I knew how they were supposed to work, which was a bit different from what that teacher told us. Consequently the teacher gave me a bad rating, claiming that my code wouldn't work and turn in an endless loop. I showed her the C standard definition and proofed to her that my could work, and resolve all the issues that she always claimed. Only at this point did I realize that she did not tell us that crap because she wouldn't go to much into the details (most of my classmates were beginners, so I thought she might tell this on purpose), but in truth she told us this crap because she simply didn't know it, as she never had tested it. She just read some papers telling how it was supposed to work, and thus never knew how it really worked. I knew this because I had actually worked with these functions already. There are enough other cases as well, where the teacher just read his textbook and told us crap because of it. One such case I reduced an exam with four questions to two, because two of them simply didn't work and the teacher was quite pissed off about it. Was quite funny though. :)

Gerhard

Link to comment
Share on other sites

A big pet peeve of mine has been how many other students just try to memorize recipes rather than understand the underlying concepts - memorization is far more difficult and less effective than understanding. I've tutored classmates who act mystified when I'm able to solve problems we haven't been given recipes for.

 

In math when we learned that quadratic equation I could never memorize it. A collegue of mine, who was pretty good in math, explained it to me in great detail and showed me how to actuall derive it. After that, I wouldn't have needed to memorize it, because I knew how to get at it, but the funny sideeffect was that from this point on I could memorize it very well. In fact even two years later I still knew, just from this (have forgotten it right now though as I almost never need it), but this was very impressive for me. I always tried to understand WHY something works, not just how. Maybe that's why I became a good programmer, because I never just learned a language I always wanted to know how it works and what it does on the machine level.

When we learned matrix calculations we learned a trick how to get the determinant, and I was allways annoyed that this work, but I didn't know why. Our teacher said that he has not the time to show us all this stuff in detail, but as long as we know that it works it's sufficient. When I worked on this mod, I bought a book about mathematics in computer algorithms, and the good thing about this was that this particular book did not just show the algorithms and the maths, there is also a long chapter at the start where the author exaplins also WHY this maths work. This was the first time that I understood how the determinant works and why it can be calculated with this trick that we learned in school. IMO it's one of the best books that I found on this topic and it helped me quite a lot.

Gerhard

Link to comment
Share on other sites

At least here, they try to teach you the little things--you know, like good design, CS theory, et al. Their main failing is in ensuring that the basics are being taught. Nobody in their right minds assumes that because their students know object-oriented design and how to do low-level optimization that they can already do functional programming.

 

When I attended that school I often had the impression that the schools nowadays start at a rather high level, whcih often requires the students to accept it as handwaving and learn the motions themselve, or they have to investigate further. I can understand that there is a big timeconstraint, and learning assembly takes some time. But I think that this low level programming really teaches you how computers work and help you also to understand highlevel issues that otherwise seem like a mystery to them. Maybe it's because I'm an old-school assembly programmer, but I often got the impression that students would understand a lot of concepts much easier if they would know how a computer actually works. For example, pointers in C were always regarded as the toughest concepts, which I never understood. If you know the background, then pointers are quite natural. And in such courses something like a stack is usually only cursory mentioned, if at all. Actually, that was exactly the reason why my teacher (from teh example I wrote above) did think that my function wouldn't work. Because she didn't really understand how pointers work. Having high level concepts is fine and really helps you to speed up development, but if you loose contact with the foundation you can easily get into situations where you don't know what's going on.

Gerhard

Link to comment
Share on other sites

Yeah.

 

My university (ANU) has a decent compromise for assembly language - there's one compulsory course which teaches assembly language for a simplified virtual machine they created, called PeANUt. It's just a Java application that simulates the basic operation of a simplified CPU, and lets you look at the inner workings (so you can see the contents of the stack and the heap and step through programs to watch them change). That way you learn the basic concepts without having to deal with some of the complexities of real assembly language.

 

There was even an assignment that required us to write a couple of (very simple) programs directly in machine code. Actual 0s and 1s. That freaked out a few people. :laugh:

My games | Public Service Announcement: TDM is not set in the Thief universe. The city in which it takes place is not the City from Thief. The player character is not called Garrett. Any person who contradicts these facts will be subjected to disapproving stares.
Link to comment
Share on other sites

WOW! Well, if you are just a programmer, then working with 0's and 1's is certainly overkill. :) Coding at the level of mnemonics is quite enough to get a good understanding of how the CPU works and how memory, stack, flags, etc. are bound together.

Gerhard

Link to comment
Share on other sites

By experimenting.

Smartass. :angry::P I meant the "royal you," not you specifically. Most people aren't going to be able to get a good enough understanding completely on their own. For example, since about 8th grade, I could explain to you exactly how to do a lot of graphics algorithms, such as deep shadow mapping and terrain rendering, and even the basics of the OpenGL pipeline, but I couldn't even grasp why anybody would use pointers (that may have been because of a bad tutorial, though). It wasn't until I got into college and started learning OO that pointers suddenly made sense.

 

Only at this point did I realize that she did not tell us that crap because she wouldn't go to much into the details (most of my classmates were beginners, so I thought she might tell this on purpose), but in truth she told us this crap because she simply didn't know it, as she never had tested it. She just read some papers telling how it was supposed to work, and thus never knew how it really worked. I knew this because I had actually worked with these functions already. There are enough other cases as well, where the teacher just read his textbook and told us crap because of it. One such case I reduced an exam with four questions to two, because two of them simply didn't work and the teacher was quite pissed off about it. Was quite funny though. :)

I'm lucky enough that my school can afford not to hire incompetent professors--at least, when it comes to the subject matter; they haven't the greatest track record on hiring good teachers. It definitely cuts most of the crap.

 

In math when we learned that quadratic equation I could never memorize it. A collegue of mine, who was pretty good in math, explained it to me in great detail and showed me how to actuall derive it. After that, I wouldn't have needed to memorize it, because I knew how to get at it, but the funny sideeffect was that from this point on I could memorize it very well. In fact even two years later I still knew, just from this (have forgotten it right now though as I almost never need it), but this was very impressive for me.

Oh come on! x = (-b + (b ^ 2 - 4 * a * c)) / (2 * a) and x = (-b - (b ^ 2 - 4 * a * c)) / (2 * a) ! And that's remembering it all from middle school! (I actually derived the quadratic formula in 7th grade, only to be disappointed to find out the derivation was written out in the book already. At least I was able to remember it from then on!)

 

When I attended that school I often had the impression that the schools nowadays start at a rather high level, whcih often requires the students to accept it as handwaving and learn the motions themselve, or they have to investigate further. I can understand that there is a big timeconstraint, and learning assembly takes some time. But I think that this low level programming really teaches you how computers work and help you also to understand highlevel issues that otherwise seem like a mystery to them. Maybe it's because I'm an old-school assembly programmer, but I often got the impression that students would understand a lot of concepts much easier if they would know how a computer actually works. For example, pointers in C were always regarded as the toughest concepts, which I never understood. If you know the background, then pointers are quite natural. And in such courses something like a stack is usually only cursory mentioned, if at all. Actually, that was exactly the reason why my teacher (from teh example I wrote above) did think that my function wouldn't work. Because she didn't really understand how pointers work. Having high level concepts is fine and really helps you to speed up development, but if you loose contact with the foundation you can easily get into situations where you don't know what's going on.

Often times, it actually helps to start with a high-level language, like Python, and slowly work your way down. It can be a pain to go from not having to worry about memory management and always having built-in exception handling to the sheer torture pleasure of dealing with mallocs and the accompanying memory leaks and the all too easy buffer overflow. Despite that, you can learn a great deal about the lower things while operating at a higher level. I'm perfectly comfortable with pointers, even though I've only just begun to use them in even a trivial manner, simply because I have a good grasp of OO design (it's C's pointer syntax that gives me hell).

 

My university (ANU) has a decent compromise for assembly language - there's one compulsory course which teaches assembly language for a simplified virtual machine they created, called PeANUt. It's just a Java application that simulates the basic operation of a simplified CPU, and lets you look at the inner workings (so you can see the contents of the stack and the heap and step through programs to watch them change). That way you learn the basic concepts without having to deal with some of the complexities of real assembly language.

Currently, I'm being taught what could be called "Data Structures A-Zed." One of the earliest structures that was covered was the stack/queue (both array-based and linked-list), as well as the heap, and how it ties in to the JVM. It's very helpful for understanding why tail-recursion is so important, and it's also the same reason why most of my recursive functions essentially reimplement the activation stack (usually not to the same degree--reimplementing means I can carry less baggage).

 

There was even an assignment that required us to write a couple of (very simple) programs directly in machine code. Actual 0s and 1s. That freaked out a few people. :laugh:

One assignment? We have a (required necessary for most degree tracks--including grad school) class that has fully a third of it in machine code! (The rest is split between assembler and C.)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 2 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
    • Petike the Taffer

      Maybe a bit of advice ? In the FM series I'm preparing, the two main characters have the given names Toby and Agnes (it's the protagonist and deuteragonist, respectively), I've been toying with the idea of giving them family names as well, since many of the FM series have named protagonists who have surnames. Toby's from a family who were usually farriers, though he eventually wound up working as a cobbler (this serves as a daylight "front" for his night time thieving). Would it make sense if the man's popularly accepted family name was Farrier ? It's an existing, though less common English surname, and it directly refers to the profession practiced by his relatives. Your suggestions ?
      · 9 replies
×
×
  • Create New...