5 Replies - 1286 Views - Last Post: 16 June 2014 - 02:17 PM
C++ Career path advice
Posted 15 June 2014 - 02:23 PM
I'm afraid I've unintentionally written a huge amount of background info to this question, so I've put a ***** at the point lower down where I actually get round to asking my question. Please feel free to skip to the ***** point if you want to avoid all the words:
I was hoping I might be able to find some advice on developing my C++ skills. If I've posted this in the wrong place, my apologies- I'm new here !
I'm currently a mid-level C# developer, but I've come to realise that C# might not be the language for me. I've fallen into C# because it was the first job I was able to get on graduating about three years ago.
The problem is I don't enjoy making websites, and particularly can't stand the kind of work involved in front-end development (CMSs, CSS, fiddling with browser compability etc). I've been in the .net world for long enough to get the impression that most C# jobs seem to be about websites- building glorified sales brochures for companies that don't interest me, on behalf of marketing agencies who take no pride in their software and whose sole aim is to make money by making unrealistic promises and cutting as many corners as possible.
I'm not so naive as to believe that money isn't the primary motivation behind most industry software development, and that Iím missing out on some dream job somewhere, but the way I see it there do exist companies who produce software that interests me, and take pride in their products.
I'm a genuine nerd at heart - I'm into everything programming but particularly like nothing better than designing and building complex backend and/or low(ish) level systems that solve big problems, or integrate with physical hardware.
It seems to me that if I want to work with the sort of systems I find fascinating (Simulation, AI, Video processing, Big Data, Robotics, Embedded software to name a few), I'm going to have to make the switch to C++.
This isn't a problem, as an enthusiast I'm familiar with C++ and had I been able to find work a few years ago would have chosen to start with it. Iíve dabbled with DirectX and written a few projects, but nothing on a commercial level. My intention is to study key C++ technologies in my own time, build some of my own projects and learn until I'm ready to start applying for C++ jobs (probably taking an initial pay cut), and move up from there.
The question I've actually come here to ask is this :
I want to know how different the C++ world is. What sort of technologies a C++ developer needs, and the best order in which to study them, as well as any recommended resources for studying. I'd also like to know what sort or work is available to C++ developers, and how the things the possible C++ career paths differ.
I donít have a lot of spare time, but I really want to pour it into C++ study and making the career switch. However I want to make sure I'm on the right track, and can use my time wisely.
Thanks a lot in advance for any information and advice anyone may be able to offer.
Finally, and I REALLY don't mean to offend here, but I'd greatly appreciate advice from more than one person if possible.
Replies To: C++ Career path advice
Re: C++ Career path advice
Posted 15 June 2014 - 02:58 PM
Not hardly. For the last 10 years my C# programs were for the amusement park industry taking photos and selling them to the customers. Now I write software for radio stations around the world, again all on C# using WPF. *Can* C# be used for websites? Sure. Is there a lot of direction in websites, webservices and software as a service? Sure. But C# is a solid mainstay of the desktop software industry; has been for years; will be for years.
I came from C++ as well. Frankly I hated it. I couldn't get past thinking
I get the impression that you took some like of requirements and tried to learn it THEN find a job, rather than deciding what area of development you wanted to be in THEN learning what you needed for that. If you want to make software for... Controlling automated machinery on an assembly line because you love the interaction with big gear then you don't need HTML. If you are all about writing software that interacts with a website so your Insurance Adjuster clients and work from the iPads, then you do need web background. So focus first on what you want to do, then on what you need for that.
Re: C++ Career path advice
Posted 15 June 2014 - 03:21 PM
Itís good to hear that there are C# career options outside of website development, although when I consider the industry areas I am particularly interested in (robotics, graphics etc.) they largely seem to be based on fast, lower level stuff.
Youíre partly right in that I didn't really choose what I studied based on what I wanted to do Ė I found it extremely difficult to find work when I graduated and took the first dev job that would have me, at the company where I already worked as an IT tech Ė they happened to use C#, and the technologies I subsequently learned were related to web development. The company I work for now is even more website-based, and itís far from what interests me.
I agree I do like the way C# handles tasks like memory management that feel as though they should be handles by the system, and I've often considered getting into WPF, but it still seems that if I were to find my Ďdreamí job and go from there it would be in C++.
I should be being more specific about the direction I want to go- youíre right that would help me a lot Ė but as Iím likely to apply for the first job I see that looks like I have a chance at getting (as long as Iím ready and it interests me) I'm really after information on the kind of things a Junior C++ dev should have under their belt.
Thanks for your reply
Re: C++ Career path advice
Posted 15 June 2014 - 03:35 PM
That's still like asking "What skills should a cook have?" or "What skills should a driver have?" They are both broad areas with specialties. The skills a limo driver needs are different from a personal security driver or a semi truck driver. A cook could be anything from a pastry chef to a steak house grill cook to a vegan specialist.
I'm quite certain a C++ developer that makes firmware for embedded automotive systems would have a different perspective than a C++ developer that makes control libraries other developers purchase.
You said you really care about robotics. Cool. Then contact a robotics company (or five) and ask them what the requirements list is for getting a job there. Kuka robotics even runs their own "Kuka University" specially to train students in what they need to enter the robotics development market.
Re: C++ Career path advice
Posted 16 June 2014 - 02:17 PM
The problem is I don't enjoy making websites, and particularly can't stand the kind of work involved in front-end development (CMSs, CSS, fiddling with browser compatibility etc). I've been in the .net world for long enough to get the impression that most C# jobs seem to be about websites-
That has not been my experience what so ever. I flip between VB.NET and C# on a day to day basis.. some with websites, sure, but the bulk of my work is back end processing, moving, email parsing, database combing, etc. I am not sure what path you took to think C# is only websites, but peak over the hedge row and you'll see it is not.
Three years in and you are now having a career disillusionment breakdown? Interesting.
First you need an understanding of C++. Grab a few books, flip through their indexes, make sure they cover a pretty wide array of topics, and grab one with a decent review from a decent amount of time ago. Read it, do the examples, and learn. Then delve into your niche areas.
Honestly - software dev techniques are pretty similar on a 30k feet level.. and if you have been out and about in the field for three years you should be pretty hip on what is going on and not starting off with the greenest of horns. Abstractly that's what the degree was supposed to impart. The theory of computer science, and the theoretical application of a language, are very similar across the board.. it's just the syntax is a pain, but not that bad.
I would eyeball your job boards for your local areas.. and then eyeball more world wide boards and see who is offering what in c++. Your question is off base and way vague.