Interviewing for junior programming positions

I’m writing this to summarize my tips on how to get a job as a newcomer to the industry, hopefully to help you, the reader, to get your first job. Firstly, the application process. Applicants should not self-select out of a job application. This means you should only look at whether you’d like to do the job, and not at whether you think you’re qualified for it. This is the recruiters’ job to find out, after all and thinking about it statistically, you have 0% chance of getting the job if you don’t apply. The same is true of applying … Continue reading Interviewing for junior programming positions

Lists of types in C++

Template metaprogramming is a lot of fun, though without moderation it results in bloated compilation times, unreadable code and nightmarish error messages. In this post we will disregard caution, temperance, and most other virtues and reimplement some Haskell in C++ templates simply because it can be done and I prefer sin to boredom. First, I must explain some metaprogramming shenanigans we’ll be exploiting throughout this endeavour. The basic building block of our code will be the metafunction. In short, a metafunction is a templated type returning a type or value at compile time. The reason behind their name is that … Continue reading Lists of types in C++

Renderdoc is not a performance profiler

The timing metrics it displays are about how long the replay of the command took, nothing more. This differs significantly from the actual time commands take to execute, to the point where the metrics are useless for performance profiling. Renderdoc is an incredibly useful tool to debug what an application might be doing wrong, but please don’t use it as a profiler, you will not have a good time. Here’s baldurk saying Renderdoc is not a profiler Continue reading Renderdoc is not a performance profiler

C++ Reflection TS: A First Look

Recently, Matus Chochlik implemented the “C++ Extensions for Reflection N4856″ technical specification (or TS) in a fork of clang, which we can toy around with here. Naturally I was intrigued, but the cppreference page seemed very barebones. Hence, after spending a bit of time with the TS, I wanted to explain what it’s all about, and how to Actually Do Things™ with it. In this post, I’ll explain the basic ideas of the specification, how to write a simple generic “enum to string” function and go into a bit more detail with a proof-of-concept serialization function. Note that in all … Continue reading C++ Reflection TS: A First Look