Becoming Professional

What kind of knowledge is required to become a professional C++ programmer? I would quite like to do game programming (and yes I know how hard and unromantic it is). Will companies expect a knowledge of C++ that is extremely thorough, including knowing most or all of the STL and use of every keyword? Will it help at all to have working knowledge or things like SDL, SFML etc?

Thank you very much for any answers. :)
I have encountered a number of professional C++ programmers who know less than is covered by the tutorial on this site.
Being a successful software engineer is more than knowing the syntax and the standard library of a programming language - it's only one of the many tools of the trade. Even just to program in C++, you need to know about various trade-offs and choices made in every line of code, that's where best practices books such as Effective and Exceptional C++ come in.

But besides knowing the language and knowing how to use it, you'd need to know about OOP design (at least being able to read basic UML), about code revision systems (clearcase, subversion, etc), about debugging tools and approaches, about unit testing and functional testing, about documenting everything you do (at last with doxygen).

Of course, if you're only starting out, most companies expect to have to teach you all that anyway, and what they are (or at least should be) looking for in beginners is proven desire and ability to learn and adapt. Ability to think in terms of algorithms and boundary conditions. The so-called "programmer aptitude". The most important question you'll be asked at an interview is "tell us about a recent project you worked on".
A professional is one who shows up to work on-time, keeps their commitments, stays on top of his/her field for their entire career, is enthusiastic about their chosen field, and is brutally honest with their clients and managers. That is what makes a professional. Everything else is the easy stuff of learning languages, software design, libraries, and the problem domain. People learn these things to have a career. It is really important to distinguish between these two. There are a lot of non-professional career programmers.

For your career, you will be expected to know about your problem domain and the tools used within that domain. Find a mentor to help you along, and look at interning at a game development company for the summer.
Thanks for your answers!
and is brutally honest with their clients and managers

Above is not a desirable traits for IT vendors. They want to secure a contract and the last they want is for their own software engineers to be brutally honest with the prospective clients. However those sales personnel miss some critical points, for IT savvy clients, they would very much prefer a brutally honest than some slick talking sales personnel promoting their own products and services.

This also explain why in most sales pitch, software engineers are seldom brought along in case of revealing companies 'weakness'. Most of the time they are brought along at the explicit request from prospective clients.

But it is still the same, before attending the sales pitch with the sales personnel, we software engineers are told what to say and what not to say. So you are caught in-between. Honest will cost you your job. Dishonest will make your conscience prick. I keep quiet and answer in the most neutral way so I guess that can soothe my conscience and yet not be dishonest :P
Very useful !
A professional is one who shows up to work on-time


Although currently true for most cases, I have seen some of the best IT professionals allowed to work from home most of the time - they only attend meetings where the human interaction component is realy required, otherwise this too can be accomplish via teleconferencing.

Other than that, they go into the office to merely touch base and socialise with other stuff (catch up on company culture), but once they have their project directives, they vanish and usually complete tasks way before deadlines. This is possible due to them not wasting time travelling to and from work and not being distracted by general office vibe.

The attitudes around such conduct is that the share holders are far more impressed by what these guys deliver as opposed to how much cups of coffee they managed to down before 10:00 at the office :)
allowed to work from home most of the time - they only attend meetings where the human interaction component is realy required, otherwise this too can be accomplish via teleconferencing.


Other than that, they go into the office to merely touch base and socialise with other stuff (catch up on company culture), but once they have their project directives, they vanish


Sounds like an amazing job!
but once they have their project directives, they vanish and usually complete tasks way before deadlines.

They tend to become contractors, perhaps heavy-weight, sought-after contractors, but not team leaders, architects, CTOs. Both are legitimate professional career directions.

Personally, I feel more inspired to do my best when surrounded by bright and competitive programmers than when left alone.
Sounds like an amazing job!


I agree - but make no mistake - these guys support the company 100% as if they were in the office via braodband network connection and usually are available when the odd crisis hits in the weirdess hours of the night. Also, as mentioned, they always complete projects way before deadlines and actually have to be sometimes told to backoff by management due to other teams / departments not keeping up. In short, the nature of the work permits them to operate like this, and if it makes them much more successfull and profitable to the company, then why not.

I would even say the same of other proffessions - like an accountant - if (s)he can be much more productive by working from his/her home office (with necessary infrusture in place) then why not - IMHO
So a professional knows shortcut,that can help them do the job easy and faster than anyone else non-professional ?
Last edited on
hentaiw wrote:
So a professional knows shortcut,that can help them do the job easy and faster than anyone else non-professional ?


KunjeeB wrote:
This is possible due to them not wasting time travelling to and from work and not being distracted by general office vibe.


To be honest imho being professional is all about work ethic and attitude. Although the above two comments may be true to some degree or other, the main reason is their approach to doing business.

They are not people who are simply "doing a job" and delivering only what they are being paid for. They take pride in delivering high quality work, on time and according to specification. It is not just about the coding but the organised approach to work that makes them efficient, productive and accurate.

For example a professional will not sit idly by twiddling their thumbs waiting for their next assignment. They will spend that time productively, perhaps working out various issues that they can see might crop up in the future or building tools to make their general work faster.

I would say that when you stop worrying about how you're going to write the software and start worrying about how to organise the way you work to produce higher quality software, faster then you are starting to become a professional.

But on top of that I would say that a professional has a certain amount of business skill. That being the ability and confidence in dealing with managers, customers and other professionals. I would say that you are not really a professional until those people view you as one.
So a professional knows shortcut,that can help them do the job easy and faster than anyone else non-professional ?


No! - if the nature of a professionals work allows for him/her to work online from their homes and they are proven to be more productive, then I believe it is best to allow such a professional to work online from home.

The reasons for this higher productivity is requotted by Galik above (Than you Galik).

This is possible due to them not wasting time travelling to and from work and not being distracted by general office vibe.


Obviously as also pointed out by Galik, a professional also needs to be in touch with the bussiness environment and thus such caniditates would ideally be ones who have been at the specific company for some time working regular hours.

If you own your own company then try the following experiment out for yourself: pick a group of professionals that seem well suited for working from home and set them up to do so. Then note the difference in performance from the regular teams as opposed to those working online from home. If the ones working from home prove to be much more productive than the ones working regular office hours, then you will have to ask yourself the following question:

Is it better then to be pragmatic or dogmatic (pragmatic in the sense that you see that you get more productivity from home based teams and proceed as such or dogmatic in the sense that we have been conditioned to believe that work in only constituted the tradional approach.

Topic archived. No new replies allowed.