Interview: Expert Programmers

Started by
19 comments, last by superpig 14 years, 8 months ago
So this is my first actual post here, but I've been following the gamedev site and forums for almost 2 years now. I've found that gamedev is the home of more of the best, most experienced programmers I've seen than at any other site.. Thats why I've come to you for help! See I've been programming C++ for just about a year now, and I've gotten past all the beginning tutorials, but compared to you guys I still consider myself a complete beginner in the language. My goal is to one day be a professional programmer and to be as good as you guys, so for my school project I've chosen to research programming as a future career in life. This is where I need help from you guys. I need to interview an expert, and you guys are the only experts I know if lol. So if anybody who programs for a living or has programmed for a living, could answer the following 10 questions to the best (most detailed) of your ability I would really appreciate it. Multiple people can answer these, all I ask is you provide your job title, and your name if you could. Thank you so much in advance! 1.What inspired you to become a programmer? 2.What are the biggest challenges you faced as a beginner programmer? 3.When was your first “big break”? How did it happen? 4.What makes you enjoy programming so much? 5.Did you always want to be a programmer? If not, what did you want to be before you decided to get into this field? 6.Is there anything that you wish you could pursue while programming at this time? If so, what is it? 7.What do you feel is the easiest part of programming? 8.Do you feel programming takes a special kind of person, or do you feel most people could do it if they really tried?? 9.What advice would you give to a starting programmer? 10.Whats the biggest mistake you've made in your career as a programmer? thanks again! [Edited by - Ravuya on August 7, 2009 12:02:37 AM]
Current project:http://devinegames.prophpbb.com/
Advertisement
Software Engineer; name withheld to protect the innocent.

1. My father was/is a programmer, and it's one of the few things I can tolerate doing for hours on end.

2. I lacked a college degree, so overcoming that barrier to entry was easily my biggest challenge.

3. A few years back I happened into a company who had low enough standards (and equivalently low pay). No magic on my end. Just persistence.

4. I enjoy problem solving quite a bit. The lack of manual labor is an upside as well.

5. Pretty much.

6. I'm not sure I understand the question. I do hobby programming on my own time that isn't in line with what I do at work. Games, programming languages, number theory stuff. I also do non-computer gaming and sports in my spare time in addition to the usual sort of social desires.

7. Actually programming. Taking a problem and turning it into source. Identifying the problem, architecting a design, interfacing with business people, not shooting my fellow programmers... all that's the hard stuff.

8. I feel that programming is like painting. Everyone can do it, but it won't always be pretty. You'll get better at it with practice, but certain people will have a knack for it or will have other traits (eye for beauty, steady hand, patience) that make it easier for them.

9. Just know that you don't really know anything. The field is vast, and even once you make inroads there, the domain specific knowledge you need to program meaningful applications is just as vast.

10. Starting with C++. It alone delayed my progress about 4 years.
This should be in the Lounge, but I'll bite.

1) My dad was a COBOL programmer for EDS back when I was in elementary school, and he showed me how to get our Commodore 64 to ask my name and repeat it back. I was hooked immediately, and never looked back.

2) Finding help before the advent of the world wide web was impossible. I remember walking down to the high school (before I was in high school) to ask math help from one of the teachers for a game I was working on. They didn't know anything.

3) The summer before my senior year in high school, I landed a job doing C++ work for a young tech company. I got introduced to the company through my dad. He's a headhunter, and this company didn't have the budget for his regular list of programmers. So he said he had someone good, but on the cheap.

4) I like creating things. Creating programs is something I'm good at, and which can be done with basically no capital outlay (vs. robotics or actual construction).

5) Basically, yes.

6) You mean, something besides programming to do alongside programming? I actually do lots of other stuff. I've learned mountain biking and snowboarding the last few years. I've gotten married and had a kid.

7) Fixing compilation errors.

8) It takes a person who can very easily think on many different levels of abstraction. In other words, you need to be able to trust the black box, and build your own well-defined black boxen for your own future use.

9) Decide on a thing you want to build, then find a way to make it. Do this many, many times. If you don't actually want to do that, then give up on programming forever.

10) Contradicting Zahlman on a question of C++ trivialities.
I am not expert programmer; however, I like to answer to first question.

I was inspired by finding a bug in TI-83 calculator game.
I wouldn't really consider myself an "expert", but I am a professional programmer.
And this is only my second post here, but I want to answer anyways. lol

Title: Programmer (yep that's my actual title.)
Name: Nathan

1. I've always loved working with computers. I've always been good with computers and electronics. So naturally, I chose a field with computers.
But since electric engineering wasn't an option at the nearest college (seriously, lol) I chose programming.

2. Getting a job. It's hard to find a job where the place will accept a new programmer. Especially if you don't live in (or don't want to move to) a big city.

3. Big break? I got the job I'm currently working at by applying to several places, being friendly in the interview, and getting accepted for the job because I had "the best personality." lol... (no one else even replied back to my applications! But this place is great anyways, so I'm happy.)

4. I don't know. I'm not sure if I enjoy programming as much as I should, but I love learning new things and love finally getting something really hard to work. And there is a LOT of that in programming.

5. No! Like I said before, I wanted to work more with hardware and learn more about how computers worked on the inside.
But I am very good at programming, and the college I wanted to go to only had robotics and programming, I chose this over robotics.

6. I really want to program small game applications. I believe I may start this with the just-announced Zii Egg and the Plaszma SDK. I'll try my best anyways. (I also love C/C++, so it's a good place to start, I guess)
Currently I work on mostly web design/programming with php at work.

7. For me, the easiest part of programming is the logic.
From the very beginning I understood how programming worked, how computers worked, and why things work in code.

8. It DEFINITELY takes a special person to program. I even discussed this with my boss when I started this job. He agreed of course.
Not everyone can do this.
As proof, I site my class size at college. We started out with about 80, at the end there were about 6 of us that graduated... :)

9. Pay attention to the LOGIC part of your classes. And also pay mind to your teachers - they (should) have lots of experience and (should) know how to do things right. At least mine did.
You can always look up how the syntax works, but it's vastly more complicated to go back and rework your logic.
And you may not need to know all the syntax/languages they teach you, but logic is ALWAYS useful.

10. lol... I updated the live server with a couple small glitches that I didn't catch, but should have.
Nothing big like my boss has done, which at one point or two, broke the entire live server.
And yes, that IS what test servers are for. :P
Quote:Original post by BeanDog
This should be in the Lounge


I concur. Moved.
1.What inspired you to become a programmer?

Nothing really. I wanted to make video games since I was 9 years old. I followed the programming route since I'm a terrible artist, and programming classes in high school were pretty interesting.



2.What are the biggest challenges you faced as a beginner programmer?

Getting a job I guess. Getting in as a new graduate has as much to do with where you live, and who you know than it does talent and work ethic.



3.When was your first “big break”? How did it happen?

A friend of mine got a job at a game developer out of university, he got me an interview about a year later and I was offered a job. Been there ever since (about 4 years now).



4.What makes you enjoy programming so much?

Problem solving, math, it lets me make games.



5.Did you always want to be a programmer? If not, what did you want to be
before you decided to get into this field?

Pretty much... well at least I always wanted to make games. If I wasn't a programmer I'd have to be a rock star, or professional hockey player or I'd kill myself.



6.Is there anything that you wish you could pursue while programming at this time? If so, what is it?

My own game company (although I think my taste for making a AAA title and lack of interest in the business side of things kills this), also writing and recording music.



7.What do you feel is the easiest part of programming?

It just makes sense (most of the time).



8.Do you feel programming takes a special kind of person, or do you feel most people could do it if they really tried??

It doesn't take a special kind of person, but the better ones definately are special (their drive and determination are awesome to witness).



9.What advice would you give to a starting programmer?

Work hard, MEET PEOPLE, keep in touch with other aspiring game developers from University, keep working towards your goal, and MAKE GAMES.



10.Whats the biggest mistake you've made in your career as a programmer?

Lost touch with some people that I used to work with. You never know when you'll be out of a job and you need a helping hand. The good thing is that you can always get back in touch.

As for actually job related, I guess underestimating tasks, or breaking aspects of games when working on another area, but these can be fixed.
Definately not an expert programmer, but I'll give the best answers I can.

1) King's Quest. Not my first video game mind you, but the first one that had a WOW factor for me. That's the game that got my interest in computers started.

2) As with other answers, getting a job.

3) No real big break yet, as I'm still looking for it.

4) Solving problems. Anyone can type code, but solving problems is an artform.

5) Not really sure what I wanted to be before this honestly. Several years in and I'm still not sure where I want my career to head towards.

6) I've always enjoyed drawing, but unfortunately, as you get older, you have less time.

7) Honestly? Solving the problems. I'm weird in the sense that the easier a thing is, the longer it takes me. Not just programming, but pretty much everything. I crave challenges. Unfortunately, this is a very bad thing™ in the real world.

8) Like some other posts, programming is like art. Anyone can do it, but some people have more intrinsic talent. I've seen programs come from high school dropouts that were breathtaking, and at the same time, 4.0 MIT grads who had a hard time at basic programming logic.

9) Ask yourself, is this really what you want to do? It might sound fun, but it can be very tedious and mind numbing, especially considering that most likely what you'll be doing is fixing other peoples problems, which can range from very bad to "I want to send this to The Daily WTF". Why do you really want to program? Is it just for money, or for the challenge? Too many people imho are programmers just because when they went into college it was what the highest paying job at the time was.

10) Biggest mistake was going after the money. I regret ever taking my current job, as I was content with my previous job which paid less than half of what I'm making now, but my life is currently more than double as miserable. Learn to ask yourself what's really important, and what you're really after so you don't end up in my position.
Chris, Software Engineer 1

1. I really, really like technology. When I realised I could make my own software, and possibly make the games I liked playing, I decided it was definitely what I wanted to do.

2. Knowing where to start. I'd done some BASIC programming on Apple Macs at school, and bought a book on C++ and Win32 for an introduction to programming on Windows machines. Read a few chapters and couldn't make any sense of it. Turned out I'd bought an intermediate-advanced book by mistake. I took it back, got a beginner's guide to Visual Basic, and moved on to introductory C/C++ 6 months later when I'd been properly introduced to programming.

3. Certainly the EA intern programme. I was an intern in 2006 for three months, did well, and was offered a job when I finished my degree. I've been here almost two years now, and worked on some excellent projects.

4. As others have said, problem solving, the challenge of writing good, fast code, the fact that I don't have to work at Blockbuster any more (despite wearing my old Blockbuster t-shirt into work today :).

5. Yes. Since I was about 10, I wanted to be a games software engineer, and I poured all my energies into getting there. I geared my choices at college and university towards a career in programming.

6. I'd like to write, produce and direct computer-animated short films. I'm a huge fan of cinema, and I have some ideas for scripts, but nothing mature enough to begin writing.

7. I'm lucky in that I seem to find everything about programming relatively easy; I find more of a challenge in implementing mathematical solutions to problems.

8. It seems that everyone can program, but that most people shouldn't. Not at a professional level, at least. That doesn't stop people trying, though. I've seen some God-awful examples of code written by people who are poorly educated in programming languages and paradigms, or who simply have difficulty understanding logical constructs. Worse is a combination of those two. I've seen this both in academia and in industry.

9. Start off with small, simple projects that won't overwhelm you. Finish those projects. This is very important for two reasons: firstly, you'll have finished software that can be demonstrated to potential employers, and secondly, you don't end up demoralised with several projects that you never bothered to finish. Also, don't over-engineer things. Always go with the simplest solution that solves the problem that you currently have. If the requirements change, refactor to accommodate them when this occurs - planning for potential future requirements is great, but making things needlessly over-complicated can be a nightmare. Finally, don't optimize too early. Get things working first, no matter how slowly, then identify bottlenecks, and optimise where required. These are all traps that I've fallen into.

10. Attempting to run before I could walk.
My opinion is a recombination and regurgitation of the opinions of those around me. I bring nothing new to the table, and as such, can be safely ignored.[ Useful things - Firefox | GLee | Boost | DevIL ]

  1. We had a computer at home long before it became a commodity. There weren't any games available for it, so I decided to make them myself. I guess I was thirteen at the time.

  2. Not sure really. I always felt I'm more of a skilled hacker than a proper engineer, so the challenges, at least on a micro level, were the very reasons to start programming. I think later on, as systems you design and work on get larger, keeping complexity under control is never trivial.

  3. I'm not sure what you mean by "big break". I just gradually improved I guess. :)

  4. I don't always do, but the best moments are when I stumble upon a big problem, decide to clear my mind and go down the hall to get some coffee, and an elegant solution hits me on the way back.

  5. No, I never really knew what to do. I still don't know to this day.

  6. At this time, nothing in particular, although I'm thinking about entering the demo scene again.

  7. Watching stuff compile.

  8. I don't think we're all that special, but the ability to abstract, in your mind as well as applying it to your code, probably helps. But most importantly, enjoyment and enthusiasm goes along away, no matter what you like to do.

  9. Just do it. Put in the hours while brushing up your knowledge now and then by reading books and articles. And stay away from the Lounge.

  10. I can't remember any specific disasters, it's always these little mistakes that turn into nightmares three months later.

This topic is closed to new replies.

Advertisement