Update: Now on GitLab.
It's been a few years I had been meaning to learn modern OpenGL, so when Vulkan came out this February, I decided I'd just go and learn that instead. Boy, not knowing modern OpenGL did not help! Powering through despite much personal duties, I've written these tutorials along the way that I'd like to share with you:
https://github.com/ShabbyX/vktut
In these tutorials, I first explore the basics of Vulkan, such as enumerating your GPU cards, find out the features your drivers have, and setting up Vulkan to use the cards. Due to the shear amount of work and knowledge required to render to screen, I experiment with compute shaders first. This keeps the complexity low, while allowing us to do some parallel work and evaluate Vulkan w.r.t multi-threading. Afterwards, I talk about extensions and layers in Vulkan, which are very nice. The next tutorials set up a window for rendering and show how to allocate resources. After eight painstaking tutorials, a triangle is drawn!
What I learned about Vulkan in this time is that it's just pure awesome. You have so much power over every aspect of rendering, your skills are the only limitation! Vulkan may seem complex at first, and it sure is verbose, but at its heart it's very simple. It's all about declaring what you are going to do, and then doing it. The Vulkan specification is also a very nicely written document that is quite easy to read.
If you are interested in learning about Vulkan with some real code you can play with, feel free to rummage through my tutorials. Naturally, they are written under Linux and target Linux.
I'm a big fan of Python, but if I am doing something serious with Vulkan, maybe C is still the way to go with it being low level.
you can check this too
Most recently, I added one where I fake a presentation engine (as if done in the driver) that renders to terminal with ncurses. With very minimal changes to the application, I get a Vulkan-rendered triangle on the terminal!