   Computer Software Engineer interview
  Hello, this is my first time using gamedev.net forums so please forgive me if i posted this in the wrong place.   I am a junior at White River High School. I am doing a research paper on Computer Engineering. I am looking to go to study computer engineering in college and join a development studio to work on graphics engines.If you have a few minutes to spare, I would greatly appreciate it if you could answer a few questions for me. Why did you decide to go into the field of computer engineering What kinds of education for software engineering did you have and what type would you recommend for someone interested in this field? What are some pros and cons of going into this field? What would you consider your greatest success What is your typical day of work like? What special advice would you give to someone entering this field, mainly to go into graphics engine development. What kinds of skills are needed for someone to succeed in this field? What are the most challenging aspects of your job?Thank you   
Why did you decide to go into the field of computer engineeringI was always good at math and science. I loved the control that software development provides.What kinds of education for software engineering did you have and what type would you recommend for someone interested in this field?I went to college and majored in Computer Engineering. (Not Computer Science.. CS degrees do *not* give you a firm education in software development.)What are some pros and cons of going into this field?PROS : Job security, salary, reputation. - If you stay away from proprietary design and learn TRUE Kernal/Core development you make six figure salary..*easy*..  The more you develop, the more you get a reputation for good software. people talk..CONS : Big corps like M$ are screwing up PCs as well as software development. The .NET platform shouldn't be used to replace languages like C/C++ (MFC), VB, and other application languages. Pushing application development to the web is really quite silly. (balance is always important.. one size doesn't fit all.)What would you consider your greatest success?Against all odds.. I've made it. I am a sr. software developer a company that is the #1 in the world. (I'm not allowed to say specifics.)I also manage my own software game engine/project. Everything with my career is progressing in a positive direction.What is your typical day of work like?Solving problems.. Creating elegant patches on someone else's buggy code. Every now and then I get to write a complete enhancement.What special advice would you give to someone entering this field, mainly to go into graphics engine development.Never give up. Never be afraid to learn. And leave your ego at the door. One of my greatest assets is that I don't have a "pre-madonna" attitude because I am a knowledgeable C/C++ developer.  There are alot of coders who think they are the "best".. There is no "best." Problems can be solved infinitely different ways, some faster and mre elegant than others; but the end goal is a solution. ;)What kinds of skills are needed for someone to succeed in this field?#1 Determination. Bug hunting and testing is the absolute most important feature for a developer. I've debugged and re-written my game editor/engine about 4 times over a 15year period. tweaking, changing overhauls.. #2 Listening & Communication. You have to listen to what users want, and communicate clearly what you are giving them. (ie Microsoft advertises Windows7 as something the *users* wanted.. but I doubt anyone on this site, wanted a 10Gig install of an OS. Or ridiculously high system requirements..) M$ really never listens to what I want.What are the most challenging aspects of your job?Dealing with the changing climate of software design. More managed code, less trust of developers. More bloat, lies, and less productivity.. I hear M$ constantly advertise that .NET is soo much better and productive, but I have *never* seen a productive project created with it. I have never downloaded a .NET app that has worked. *ever*And when you look at the landscape of projects being developed.. The number of startup projects has really vanished considering the time of VB4,5,&6.. Sure, there were alot of bad programmers out there, but thats what made it interesting. Seeing thousands (if not millions) of small apps & ideas.. Now everything is "enterprise" this.. and large scale.. that..  So software development as a hobby seems to be stifled. Innovation is totally stifled, and if you don't code the Microsoft way, you eventually won't be coding for Windows..Thats why having a firm understanding of C/C++ will make you unix ready (if you like Mac).. or Linux ready.. just my thoughts..cheers..   ;Quote:Original post by exploreRPGWhat kinds of education for software engineering did you have and what type would you recommend for someone interested in this field?I went to college and majored in Computer Engineering. (Not Computer Science.. CS degrees do *not* give you a firm education in software development.)...just my thoughts..cheers..Make sure you read the last sentence.  Saying a CS degree doesn't give you a firm education isn't correct.  SOME CS degrees might not give you a firm education, but it's silly to just say it like that.The inverse is also true...SOME CompE degrees do not give you a firm education.  It depends on the school.  There are plenty of excellent CS degrees out there, just ake sure you do some homework on the school you choose.  It's funny, this guy seems to be a lower-level programmer (kernel level), and it was my knowledge of low-level programming that I learned in school that got me my 1st job...using my CS degree.   ;Quote:Original post by BeerNuttsIt depends on the school.  There are plenty of excellent CS degrees out there, just ake sure you do some homework on the school you choose.  It's funny, this guy seems to be a lower-level programmer (kernel level), and it was my knowledge of low-level programming that I learned in school that got me my 1st job...using my CS degree.Well, given the fact that CS is supposed to be a theoretical approach on question: "What can be solved computationally", there are quite a few universitites about that just don't care about practical applications.At least around here they keep preaching: "University is interested in why and what instead of how". Even heard some of the staff mumbling about the fact that there are students getting batchellors degree without having ever used an IDE, let alone heard of SVN or even programmed anything besides 2 courses of Java.   ;Quote:Original post by exploreRPGPROS : Job security, salary, reputation.Software industry offers by far the least job security of all. Statistically, over 80% will leave the field permanently after 5 years on the job. The number is getting worse.Salary is high at select few companies. Overall, the competition for those jobs is 1:1000 to 1:1000000. Landing it can bring good salary.Median wage is around $45,000, less so outside of US. Median world wage is under $10,000 (yearly) for Sr. position. These numbers, too, are getting lower.Keep this in mind.Quote:CONS : Big corps like M$ are screwing up PCs as well as software development.Microsoft hasn't been relevant, either as a company or as platform since 2000. PC hasn't been relevant since 2007. Desktop computers will become irrelevant next year.Quote:Pushing application development to the web is really quite silly. (balance is always important.. one size doesn't fit all.)In about 5 years, all software will be on the web, running inside sandboxed browser. Select few companies will control the distribution.Quote:M$ really never listens to what I want.A good test for realities of software engineering is this: pick an OS, application and language you hate most, that makes you pull your hear out. Then imagine having a job using it for 10 years.Quote:Now everything is "enterprise" thisOnly in Microsoft world. They lost every other market, and they are stuck with vendor locked in enterprises. The desktop as defined by Microsoft became irrelevant.Quote:.. and large scale.. that..  So software development as a hobby seems to be stifled. Innovation is totally stifled, and if you don't code the Microsoft way, you eventually won't be coding for Windows..Only as far as Microsoft ecosystem is concerned. All the innovation today is happening on the web and on smart phones. The opportunities there are enormous. A single developer can develop, over a weekend, an application that is instantly available to 500 million users, for no charge, with ability to monetize it. Compared to 10 years ago, when distribution required mailing floppy disks, the change is mind boggling.Quote:What special advice would you give to someone entering this field, mainly to go into graphics engine development.Have plan B. Studying math, physics, even economy is a much better long-term prospect. Software engineering can be learned on the side. It's just a set of project management rules that are trained on the job. Increasingly statistics and data mining are integral parts. Software Engineering is basically a Quality Assurance process that handles defects.But considering catastrophic 10+ year career prospects, Software Engineering simply does not scale - there is nowhere to progress. Either physics or math major are much better choices for graphics-related career.   ;  "Why did you decide to go into the field of computer engineering"Largely, it was a series of mistakes. Long ago, when I was young, my mother told me not to go into computing. She said that computing was too full of 'the sort of men who smoke pipes'.I, being me, didn't listen to her because I wanted to find out how Elite worked. (Or rather I listened and then disregarded).;  LOL..Guys.. I didn't know this was a debate.. He asked, I responded with *my* opinions, thoughts, and life experiences.. It wasn't really meant to draw in criticisms, it was simply giving an "up and comer" a some inside info. More clearly, when I was his age (just starting) the problems that exist now didn't.. Computers were fun! Microsoft was actually *kool*. Now they are "irrelevant" as you say..So the info I provided was to clarify how times have changed.. On the salary and security.. Knowledge is power.. If you are good at solving problems you will succeed in any arena.. Software development has taken a hit, but regardless being a developer is a skill that will always be important. Rumors of web developing wiping core developers away will only come to be if everyone moved back to client based computing.. (Which I hope the world won't do.)On salary.. You have to be very sharp to get into the 6 figure game.. Every company that I have worked for has said I'm the best they have ever seen. And let me even add a little more, I only have my associates degree. (2 years, actually 3).. Nonetheless, when my solutions were compared against the others in my industry I rank equal to or better.. The reason why I have security is because I can easily play it safe an under-bid people with an "ego" and a master's degree.After all.. If smarty-pants wants 150K and I'll do the job for 120K.. The company gets a discount, better quality code, I get the job! - This is simply how business works.. Its not about being the best with an ego, its about *providing the best code to whoever signs the check.*And honestly, once you make more the 70K a year, do you really need to be greedy? lol - In my life's experience, this is simply how I stayed employed through hard times.. discount & improve quality.On the topic of web development, & smart phone crap...I know this is where people *say* the industry will go, but there was a time when everything ran on mainframes and dumb terminals... haha oh it seemed like yesterday. And people were so frustrated that desktop PCs emerged. Basically, If I can make a chunk of money in 5-10 years, I to will follow the rule of leaving the industry. But all of these *control* methods will fall soon enough, and the world will need real PCs, real APPs, and real Developers to program them. Its simply like the Nazi era, of forcing & controlling people..All of these ideas makes it difficult for new programmers, which is why I said *DETERMINATION* is the most important factor. Never let *ANYONE* stop you, if you desire to succeed.alas.. i digress.EDIT:But you also need to innovate.. combine the software development with other area.. robotics, drones, hell iron man armor. understanding core programming allows you to control CPUs & chipsets at the core level, *not* websites and smart phone gadgets.. You can follow the crowd, or innovate..   ;Quote:Original post by exploreRPGWhy did you decide to go into the field of computer engineeringI was always good at math and science. I loved the control that software development provides.What kinds of education for software engineering did you have and what type would you recommend for someone interested in this field?I went to college and majored in Computer Engineering. (Not Computer Science.. CS degrees do *not* give you a firm education in software development.)What are some pros and cons of going into this field?PROS : Job security, salary, reputation. - If you stay away from proprietary design and learn TRUE Kernal/Core development you make six figure salary..*easy*..  The more you develop, the more you get a reputation for good software. people talk..CONS : Big corps like M$ are screwing up PCs as well as software development. The .NET platform shouldn't be used to replace languages like C/C++ (MFC), VB, and other application languages. Pushing application development to the web is really quite silly. (balance is always important.. one size doesn't fit all.)What would you consider your greatest success?Against all odds.. I've made it. I am a sr. software developer a company that is the #1 in the world. (I'm not allowed to say specifics.)I also manage my own software game engine/project. Everything with my career is progressing in a positive direction.What is your typical day of work like?Solving problems.. Creating elegant patches on someone else's buggy code. Every now and then I get to write a complete enhancement.What special advice would you give to someone entering this field, mainly to go into graphics engine development.Never give up. Never be afraid to learn. And leave your ego at the door. One of my greatest assets is that I don't have a "pre-madonna" attitude because I am a knowledgeable C/C++ developer.  There are alot of coders who think they are the "best".. There is no "best." Problems can be solved infinitely different ways, some faster and mre elegant than others; but the end goal is a solution. ;)What kinds of skills are needed for someone to succeed in this field?#1 Determination. Bug hunting and testing is the absolute most important feature for a developer. I've debugged and re-written my game editor/engine about 4 times over a 15year period. tweaking, changing overhauls.. #2 Listening & Communication. You have to listen to what users want, and communicate clearly what you are giving them. (ie Microsoft advertises Windows7 as something the *users* wanted.. but I doubt anyone on this site, wanted a 10Gig install of an OS. Or ridiculously high system requirements..) M$ really never listens to what I want.What are the most challenging aspects of your job?Dealing with the changing climate of software design. More managed code, less trust of developers. More bloat, lies, and less productivity.. I hear M$ constantly advertise that .NET is soo much better and productive, but I have *never* seen a productive project created with it. I have never downloaded a .NET app that has worked. *ever*And when you look at the landscape of projects being developed.. The number of startup projects has really vanished considering the time of VB4,5,&6.. Sure, there were alot of bad programmers out there, but thats what made it interesting. Seeing thousands (if not millions) of small apps & ideas.. Now everything is "enterprise" this.. and large scale.. that..  So software development as a hobby seems to be stifled. Innovation is totally stifled, and if you don't code the Microsoft way, you eventually won't be coding for Windows..Thats why having a firm understanding of C/C++ will make you unix ready (if you like Mac).. or Linux ready.. just my thoughts..cheers..Thank you very much explorerpg, and thanks to everyone else who contributed info to the discussion   