Hello, gents!
I just wanted to thank everyone for their help, and report that I have by now a B.Sc. in Computer Science (did my thesis project in Unity) and am working as a Junior Enterprise Software Developer working with C++.
My academic career has been a series of pretty close shaves with complete failure, but I'm now on a very good trajectory. I probably would have failed for want of a nail, but you all gave me lots of nails when I started out, so what success I have now is thanks to you all in some sense.
So, several hundreds of thousands of lines of code, multiple hobby projects (nothing publishable though) and several professional projects (one in Unity, even), many books read and discussions had, multiple programming languages learned (but C# still preferred), I have today written my worst class declaration ever, and I wanted to share it with you:
public class Mesh<MeshType, VertexType, EdgeType, TriangleType> : AbstractMesh where MeshType : Mesh<MeshType, VertexType, EdgeType, TriangleType>, new() where VertexType : Vertex<MeshType, VertexType, EdgeType, TriangleType>, new() where EdgeType : Edge<MeshType, VertexType, EdgeType, TriangleType>, new() where TriangleType : Triangle<MeshType, VertexType, EdgeType, TriangleType>, new() {
So as a PSA to everyone else who wants to go into software development or hobby programming: Never be afraid to ask dumb questions of transatlantic strangers on pseudonymous internet boards, never give up on a career you chose if it lines up with your personal interests, and also never hesitate to write the stupidest-looking code you've ever seen if it gets the job done.
And sorry for the necroposting. Lock this thread if it seems appropriate.