My hope is to contribute to the FOSS ecosystem as a developerThis is too vague to be worthwhile as a course of action.
write a utility for managing multiple ttys with simultaneously different DEs and WMs on a linux system
This is a concrete goal.
I currently am hoping to learn c and to use it to
This is an excuse for not executing on the concrete goal.
Start writing the tool in Javascript, C#, Python, Racket whatever is easiest to execute in...and they are each and all hard because programming is hard.
Because starting to write code is how you learn to write code.
And the simplest way to contribute to a FOSS project is to write some code yourself and make it FOSS.
Good luck.