When interviewing people for serious jobs, I like to drill down and O/S level code is good for that. Writing this sort of code develops certain skills that will serve you well,
0) You habitually count from zero, this marks you as superior to merely application layer programmers and if like most developers you end up writing applications then it will make you better at that.
(5) Is possibly the biggest payload for a 15 year old.
You will fuck up. Or let me put it another way, I want you to fuck up so badly you take excessive steps to make sure no one ever finds out. That’s a luxury of being 15 and smart. It won’t last forever, unless you are fucking up you are nowhere near finding your own personal limits and more importantly finding out what you need to learn to push those limits back.
No matter how much you fuck up, you have a bed and food, you don’t have children to feed and clothe and whoever loves you will still love you no matter how many times your thread scheduler gets stuck and refuses to let go.
This is the time to fuck up, just so long as it isn’t dumb shit with chemicals, your brain is your only asset. You can hire muscle.
The best jobs and some of the better universities care more about your quality of thinking rather than what you know, when they interview you. You need to know stuff to get the interview, but to win they like to see a mix of deep thinking and intellectual curiosity.
Good interviewers will want to know what you learned, both from your mistakes and triumphs.
So in the near future the payback is satisfaction on having done something hard.
That’s actually a long term benefit and bigger.
I can teach you C++ or Python, fix the bugs in your CV / Resume, upgrade your interview technique and in years to come tell you which industries and tech stakes are paying well.
What I can’t do for you is give you passion. Doing hard things well because you can.
If you’re smart enough to code an O/S you can get competent in pretty much anything, but you will only be excellent where you have passion for at least some parts of the job.
My last bit of advice is to choose the hard path here.
When you write code for money, the pressure is to get it done quick and with as few bugs as possible. That means cut & paste from Stackoverflow etc which is fine but teaches you nothing.
The biggest hole people who teach themselves fall into is that when you do a project for yourself you gravitate to things you know you can do. But to be a Real Programmer you need to be able to work out how to do the things you don’t know and at least slightly fear. That’s why we need teachers, even for bright people, to force you to do the whole thing that you are studying.