How to get a job as a C++ developer

How did you get your job as a C++ developer?

I oversaw, and now architect, a project with a heavy chunk of C++ code. We’re hiring right now, but we have the same experience requirements you’re seeing.
Typically, a project chooses a native programming language (C, C++, ObjC, etc.) for a reason. Development is slower, good developers are less common, classes of bugs exist that don’t exist in other languages (naive memory leaks, wrong instruction set extensions, bad linkage, etc.), and you’ve got a fundamentally slower-moving development environment. It simply costs more to develop in C++ than in most other languages.
So you only choose C++ when that cost buys you a net win. Our project provides a framework for in-house supercomputer-accelerated computer vision products. C++ makes sense for our core libraries because we use OpenGL for a lot of image operations, and because the libraries our scientists use are written in C++. It is more work to make those things work smoothly in a different language for our uncommon use cases than it is just to develop high-quality C++.
But most of our user-facing tools are written in Java, and most of our server-side glue is written in Python. Those are modules without any external factors pushing us toward C++, and where we value development agility over the compatibility and performance C++ offers.
Because of this, when I’m hiring somebody, I’m hiring somebody who can use C++ to write OpenGL code, or HPC code, or networking code. C++ is necessary, but not sufficient, to solve the problems we have. We’re more likely to consider somebody with years of writing distributed systems in Java, but who can pass a trivial C++ challenge, than somebody who knows a bunch of fancy C++ tricks but has only written CRUD applications.

How can a newbie C & C++ developer get a job?

You need experience.
However, a 9–5 programming job isn’t the only way of obtaining it. You can and must obtain experience by working by yourself, even if it means you will not be getting paid for it, because eventually, you will.
GitHub is your resume.
Start your own projects from scratch. Try and write tools for yourself, try to create your own mini OS, web-server middleware, etc. You may think this is re-inventing the wheel, but it is also in fact learning how to invent the wheel.
Inspire from the projects on GitHub, look at how people did things, and try to add your input even if you’re basically replicating it. The challenge is not only fun, but educating as well. Then, showcase your work on GitHub.
Read as much as you can.
Find the areas you’re interested in, for example, Enterprise Software, Embed Systems, AI and then catch up to the area. Get to know what sectors that area affects, what are the current needs/problems and try to come up with solutions.
This will enable you to think in a different way and see another part of the picture, you will always be solving problems.
Try to write along the way.
One of the biggest mistakes I’ve made is neglecting my blog, and not making notes of what I’ve learned in the past years.
Writing is a really good exercise of mind and it’ll enable you to intensify and remember what you’ve learned, what problems you’ve had and how you’ve solved them. On the other hand, you’ll be building an archive of information over time, a personal library for yourself, and if you publish your writing, you will help the rest of the world.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值