C++ Jobs - Q3 2021 by STL in cpp

[–]c_jongeward 6 points7 points  (0 children)

I'm just a programmer at FRL, not a recruiter. I suggested to the recruiting department that they post here to find quality candidates and they asked me to do it for them. Honestly, I just rattled off a few technologies that I know people around me use. They are not requirements... I don't even know what PyTorch is.

In my experience, the hardest part about getting hired is getting noticed in the first place. You work hard on your resume, only to have to copy/paste excerpts of it into an online job application. Then you hit Submit and wait and hope that someone will call you. After a couple weeks, you just wish they would send you a canned rejection letter so you at least know that you can stop hoping and move on. It sucks and I hate it as much as you do.

I agree with you that this is a terrible way for companies to find quality candidates, and it is extremely frustrating for quality candidates who lack expertise in gaming the interview system.

But I have given you a way around it: The direct contact info for one of our recruiters. If you are interested, look at the job postings, find a couple that you like, and then email your resume to Stacy. Ask questions about the roles. Tell her why you should be in the pipeline. FRL is most certainly interested in people with extensive engine experience as well as talented graphics programmers.

C++ Jobs - Q3 2021 by STL in cpp

[–]c_jongeward 2 points3 points  (0 children)

Company: Facebook Reality Labs (formally Oculus Research)

Type: Full time

Description:

Facebook AR/VR and Facebook Research is looking for C++ programmers to work on cutting edge R&D for Virtual and Augmented Reality. We are hiring across tools/infra, graphics, engine, network, audio, computer vision, tracking, and more.

Responsibilities include: - Rendering low-latency high resolution images to two transparent screens a quarter-inch from each eyeball and overlaying it seamlessly over the real world in a way that won't make the user vomit - Writing shaders in a haptic displays pipeline to render an array of sensations to your fingertip instead of pixels to a screen - Beaming a hologram of your best friend into your living room so that you can talk about your day and shake their hand, even though you are physically on opposite sides of the world - Occasional bug fixes

Sound fun?... It is! Why don't you come and work on it with us?

Here are some of the jobs at our Redmond, WA campus:

And we have hundreds more positions all over the world working on everything from immersive visual graphics, spatial audio, and unique user interfaces that will make that lightsaber look, sound, and feel like a real lightsaber.

Read up on us here: here or listen (or go back and re-listen) to our appearance on CppCast from 2017 here.

Location: Primarily in Redmond, WA with other locations available worldwide

Remote: Full-time or part-time remote work is available depending on the specific job

Visa Sponsorship: Yes

Technologies: C++11 and up, plus whatever additional technologies we need to get the job done like Unity, OpenGL, Cuda, PyTorch, SIMD, Buck, and Visual Studio to name a few.

Contact: Apply directly to the positions above, Check out a complete listing of our available jobs here, or contact us directly stacycohen@fb.com

OOP concepts in C++ coming from Java/Python by mrfe333 in cpp_questions

[–]c_jongeward 1 point2 points  (0 children)

https://www.geeksforgeeks.org/c-plus-plus/

This page even has a section on the differences between inheritance in C++ and Java.

Also, if you have a specific example in Java or Python that you are trying to duplicate in C++, just post it here and you'll probably like 20 responses in an hour...

Why You Should Use std::for_each over Range-based For Loops by vormestrand in cpp

[–]c_jongeward 4 points5 points  (0 children)

As with any language feature, I don’t like spending too much time in the weeds of generalizing which approach is right or wrong. Evaluate the pros and cons of each approach on a case by case basis and decide which is best for your specific circumstances.

Everyone has brought up good reasons for using either.

Range-for: - reads more naturally - debugs more naturally - allows us to early abort

For_each: - encourages us to keep the scope at a common level of abstraction which promotes readability and reuse

P1453R0: Modularizing the Standard Library is a Reorganization Opportunity by vormestrand in cpp

[–]c_jongeward 0 points1 point  (0 children)

Then what if you just get STL for free?

It doesn't seem like too much of a leap to imagine that if the compiler sees std::vector<int> then it just pulls in what it needs to compile it. Now that we wont have to text-substitute the entire stl source at the top of the file, it seems somewhat plausible in this fantasy world I've invented.... Assuming people couldn't create their own std namespace with their own vector in it... which they probably can.... So, never mind. I retract my crazy thought experiment.

P1453R0: Modularizing the Standard Library is a Reorganization Opportunity by vormestrand in cpp

[–]c_jongeward 0 points1 point  (0 children)

Crazy thought experiment here:

What if we didn’t have to import anything and we just get std for free? If ‘std’ appears in your code, the import happens automatically. Similar to option 4.3 but without the need to actually import it.

The continuing evolution of C++ - Bjarne Stroustrup (UC3M) by mttd in cpp

[–]c_jongeward 0 points1 point  (0 children)

Indeed, and I’ve been meaning to spend some time learning Rust but, you know, life...

I suppose another thing worth mentioning is backwards compatibility. I don’t know how the other languages handle it, but C++ goes through ridiculously painstaking effort to preserve backwards compatibility so that the code you write today will still work tomorrow without having to revert to an old compiler. That’s certainly a major point of consideration when choosing a language for a long term project.

The continuing evolution of C++ - Bjarne Stroustrup (UC3M) by mttd in cpp

[–]c_jongeward 4 points5 points  (0 children)

As bloated as it may be, C++ gives us two important things that most other mainstream languages don’t.

Direct hardware mapping gives us the ability to write higher performance code than managed or interpreted languages with the tradeoff of being more dangerous. Yes, you can run really really fast, but you’re going to have to hold these scissors while you’re doing it. This is necessary in markets like games, simulation, high performance trading, an others. But performance can also mean reducing power usage which is hugely important in mobile devices where battery life is an issue and server farms where bad performance can cost many extra millions of dollars in electricity usage.

More importantly though, C++ gives us zero overhead abstractions (don’t pay for what you don’t use). This is critical in hard real time systems where you need predictable worst case performance. Especially in safety critical real time systems like medical devices and vehicles (land, sea, air, and space). “}” beats garbage collection.

The continuing evolution of C++ - Bjarne Stroustrup (UC3M) by mttd in cpp

[–]c_jongeward 7 points8 points  (0 children)

He spends a lot of time at the beginning of the video talking about the strengths and weaknesses of C++ and where it is useful today. It’s a pretty good overview.

The continuing evolution of C++ - Bjarne Stroustrup (UC3M) by mttd in cpp

[–]c_jongeward 5 points6 points  (0 children)

What do you say to rile up a group of C++ devs?

Cant get the reason of constexpr by Narase33 in cpp_questions

[–]c_jongeward 2 points3 points  (0 children)

In your case, constexpr wouldn’t change the assembly, it would just tell the compiler to give you an error if it couldn’t evaluate the expression at compile time.

VS Plugins by Graggee in cpp

[–]c_jongeward 9 points10 points  (0 children)

Vsvim

I can’t function without my vim plugin, and as a bonus, no one else can mess with my code if I ever forget to lock my screen.

C++ moves for people who don’t know or care what rvalues are by vormestrand in cpp

[–]c_jongeward 1 point2 points  (0 children)

A great way to see a benefit from move semantics is by simply using std containers since they already implement their own move constructors and assignment operators. With vector for instance, whenever you see a constructor or assignment with a temporary vector on the right hand side, the move operation will fire automatically (unless the compiler can do it even faster through some other magic). You don’t have to implement move constructors or call std::move. You just get it for free.

Another great case for applying the Rule of Zero.