Answering for the industry (not 'software industry' but real industries - heavy, financial, telecom, energy, etc)
am I allowed to use my own development tools, or will I be forced to use some over-bloated ide without useful home row keyboard shortcuts and nasty point and click interfaces instead? Will I be able to use make/gdb/emacs, or will I have to use eclipse? |
As for editors, on every C++ job I've had so far, I've used vi. Some people use emacs (including the guy sitting next to me right now). I think Eclipse is approved for use in my company, but I don't know of anyone using it. Among many thousands of developers we have, someone must be.
As for toolchain, it depends on the target platform. My jobs have all been multiplatform, so when developing on linux, I use g++/gdb/valgrind. When on aix, for example, it's xlc/dbx/purify. Whatever gets the job done.
the emphasis in industry seems to be on simply pumping out as much software as humanly possible, as quickly as possible. It doesn't matter what the quality of the product is, as long as it runs. Is this true? |
Sounds like a Dilbert plot. I haven't seen that in real life. Maybe that's what all those offshore sweatshops did when outsourcing was new and wild?
I mean, there must be some companies that place greater emphasis on fixing bugs before the software is published to avoid issues later, right? |
All companies are compelled to fix bugs before production, since it costs so much less, although they do it to widely varying degrees. Some companies have formal code reviews, where each line you write is discussed at a conference table by half a dozen people, whole departments devoted to unit testing, regression testing, acceptance testing, etc. Some just review by email pass-around or (what I prefer) with one of those collaborative tools. Pretty much everyone who isn't a startup has a QA department of some kind, especially in the industrial C++ world, where the price of an error may be billions of dollars or even human lives.
Always ask about code reviews, QA process, about unit, regression, and acceptance testing, and about your responsibilities in that regard, as a developer, at an interview when you're looking for jobs. (in case you don't know, you're supposed to ask questions at interviews)
C++ doesn't seem to measure up to C in the eyes of some famous seasoned programmers like Torvalds and Stallman. Why is this? Is C++ really sloppier or more complex than C? |
It'd say it's a lot cleaner and a lot more disciplined than C, which works against Stallman's bazaar development mentality. It is also a lot more complex, that's true. Torvalds just likes being an ass (he also hates C when it isn't being the dumb 'portable assembler' his kernel expects)
I know that C++ is said to be a super set of C but I also heard that that's not exactly true. Could somebody elaborate on this? |
It's not true. They are different languages that share common ancestry but they have been evolving in different directions (despite all the effort that's made to keep their evolution in sync). C++ was designed so that old (very old, now) C code can be compiled in with minimal modifications, which was its key to acceptance back then. It doesn't make it C++ code.
Is there still a place for C in industry beyond legacy systems |
Other than in OS development, I've only used C for legacy stuff. But I am sure microcontroller programmers will chime in, too.
If I'd rather learn about low level things, should I learn C over C++? |
Wait for your assembly language course. Get access to several platforms and learn their assemblers along the one you're learning. Sparc/Itanium's sliding register windows are fun.