Could this hurt one's chances?

Started by
5 comments, last by Qoy 22 years, 8 months ago
OK.. I've been posting here for a while and I've seen plenty of language wars. I hesitated about posting this.. so let me get this out of the way: This is not a comparison post. I know the benefits and drawbacks of C vs C++ and I don't want any information about that. Ok, that said.. I'm at a stage now where I'm going to start working on some (hopefully really good) demos and general effects and stuff that I will show to prospective employers should I decide to go for a game programming job in about one year's time. I'm going to do 3D stuff for this. I've been working, recently, on a framework for demo effects and such using OpenGL. I've been writing it in pure C, no C++ code whatsoever, but I'm still using object oriented techniques. I do know C++, just as well as I know pure C, and perhaps better, but that's why I decided to do this in C, to get the experience of *not* using any C++ extensions. If this is going to be the framework I use to do my effects that may be shown to prospective employers, then the code has to be good, as well as the output, of course. I know that traditionally a lot of developers (especially console) use pure C. But I'm starting to see C++ coming up a lot more, even in console projects. So basically, this is a question from anyone with professional experience, or a lot of experience, or anyone who thinks they can help: Would it be more beneficial to have a lot of C++ code to show as opposed to C, or does it really matter? I don't think it *should* matter, a programmer is a programmer no matter what language is used (almost ). But do you guys think it does? Granted, I have other code, heavily using C++, and mixing the two to show, but this is probably going to be an important part of it, and if I need to start the framework over in C++ then I want to do it sooner rather than later. Thanks! Edited by - Qoy on August 4, 2001 5:25:39 AM
Advertisement
I think that you should use whatever makes your program work in the most efficient way. If you think that your code and your programming ease will benefit from C++''s Object Oriented approach then of course use it... don''t let anyone tell you not to.

I have seen a lot of games use OOP programming (by taking a long look at their source code) but the OOP code was used in small parts of the game. I think in my opinion it''s best to code mainly using C code. If you need the OOP part for whatever then code it. There is no right and wrong in programming except you must make sure that your code can be understood easily and is not difficult to debug should you decide to use OOP techniques.

I don''t think it matters if you use it in your demos for which you may want to show your perspective employees because it may show that you can adopt a wide range of coding skills. But when you do start working in a game programming company like we all hope oneday, you will obviously have to adhere to their programming rules about how to name variables, the use of globals, how to name functions and the case of using C++ or not using C++. Some game companies don''t use OOP because they believe it''s not conducive to game programming but others do, so it''s a matter of the company''s programing manners.

Code in the way that you find efficient, easy and offers the best solutions now. When you start work, then you will know what your colleagues expect of your coding skills.



Hope I helped a bit.


Dark Star
UK
---------------------------------------------You Only Live Once - Don't be afriad to take chances.
Of course, it could hurt your chances, if you take it along to a place that works exclusively in C++. And taking a C++ program to a company that only used C might not go down immensely well either. Just because they''re professionals, doesn''t mean they''re above language wars and prejudices. And they might prefer to take someone on who writes code similar to their own, so they know you''ll fit in more easily.

The only way you can guarantee to impress is by having a varied selection, using different programming concepts/languages/APIs, showing that you are versatile and up to any task...
It shouldn''t hurt your chances either way. If you''re good with C or C++ and have a demonstration of either, that''ll at least get your foot in the door. If you''re good with both, all the better. Generally, it won''t matter which one you use, as long as it compiles, does what is expected, and is readable.

The only times your employer will probably care is if they have to spend extra money so that you can work in a different language, or if you try to pull something really offbeat (like mixing C/C++ with Ruby).

-pwd
We recently went through a pretty expansive search to find team members (at least it felt expansive to me--I do NOT enjoy spending 10 hours a week looking through resumes and giving interviews). I can tell you that, even though the job requires 80% C++, maybe 20% C, I would have taken a person who showed solid C coding skills easily. If a person is a good C coder, odds are that person would be able to learn C++ as well.

If the person said they were unwilling to learn C++, then they''d get the boot. Most people wouldn''t say such a thing at an interview, though. =)

PS: To DarkStar, "efficiency" is somewhat of a loaded word (as is "OO"--not quite sure which concepts the original poster assumes are "object oriented techniques" because that means so many different things to differnet pepole). If by efficiency you mean execution speed and/or executable size, then that is not always--or even usually--the primary concern in many applications. Safety, extensibility, testability are 3 things that come to mind as being crucial to my field of software (which is not game software).
Showing that you can program using both can only help you. I wouldn't try to duplicate OO techniques in C, that's a waste of time. If you want to do OOP, use an OOPL.

Forgive my presumptuousness, but you're probably not doing OO in C either, you're probably doing modular programming, which is a necessary but not sufficient quality of OOP. To do OOP in C you need some method of virtual functions, such as a pile of function pointers (a manual implementation of vtables), a method of structure aggregation to simulate inheritance, and serious due-diligence to meet encapsulation requirements. In short, a module is not an object, and it’s a pain-in-the-ass to make it one. (And to use it once it is.) Without those things, it's kinda hard to implement a number of OO design patterns, which mean you're really not using OO techniques in C. As always, it can be done, but the question to ask is not how, but why?

If you’re programming in C for a console or other limited embedded system, it’s often because C++ compilers simply do not exist for the system, and even if they did the system would choke on the overhead. So manually implementing OO techniques in C is really a waste of time. I’ve read a number of post-mortems about groups that tried to use OO on slow embedded systems, and the first thing they always cut is the vtables – the rest of the article from there in not about OO programming, but modular programming which is the only sane method of large-scale development in C.


Magmai Kai Holmlor
- Not For Rent


Edited by - Magmai Kai Holmlor on August 5, 2001 6:20:50 PM
- The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted.-- Tajima & Matsubara
Qoy:

If you''re giving yourself a year and you really wanna blow their mind, don''t just make it a demo, make it something that you can talk intelligently about...DO BOTH and then maybe even a hybrid.

"The C++ allowed more modularity at a slight performance decrease. This decrease was made up for 10x over by how easy it was for me to change..."

"While the C is faster..."

"I decided to write this piece in C but stuck with C++ on this piece so that I could leverage the benefits..."

And if you''re a glutton for punishment:

in C with OpenGL
in C++ with OpenGL
in C with DirectX
in C++ with DirectX

The bottom line is they''re looking for experience and that "hunger" that shows them you know what you''re talking about and can get the job done.

I''d have you over for dinner if you came to an interview with a demo portfolio like that.

Then again, I''m a cannibal. :D

This topic is closed to new replies.

Advertisement