Hey,
My name is Alexander and I’ve been using Unity in my spare time for a few years. I’ve created a few assets (some still waiting to be published) and these were all programming-related. Before January 2017, I had never taken any programming courses in real life. I did follow an online introduction course to Java (on Udemy), I downloaded the c# yellow book and read a few chapters, but I became bored (with bored I mean more like 'wanting do actually do something instead of reading a book) very quickly so I never really got past the first few chapters. Because of that, I only learned the basic things like variables, loops, classes, etc., and it never really got serious. After I became bored, I discovered Unity and I started playing around, I did the ‘roll a ball’ tutorial, learned how to manipulate the transform of an object, create objects, etc.
After that I started working on a project for an asset and I learned more in depth about specific things that I needed for that project (coroutines, ray casting, making your own functions instead of only Start() and Update(),…). I finished this project and started another one, where I learned about editor scripting, GUI scripting, editor windows, etc., and that’s where I’m at now. The problem is, that now I feel like I’m stuck, in terms of my programming abilities. For example this is the process I go through:
1) I want to create a certain feature for my asset
2) I write down the logic of the code that I’ll need to create in order to create that feature
3) ???
I strongly feel like I’m missing some of the fundamental things that another person would learn by enrolling in a programming class. I have a good sense of how I should achieve something by code (that is, the structure/the logic behind it) and I have no problem with using the API, but I feel like I don’t have enough knowledge about programming.
I took a class this semester where we learned about programming, and it certainly thought me some of the discipline I should know about if I want to become a programmer. We learned about how to create an algorithm in a constructive and professional way, iteration vs. recursion, time complexity,… And I feel like I really need those things in order to progress in Unity.
My actual question for you is, what should I do in order to progress further? We don’t have programming next semester and I want to learn more. Is it a good idea to just follow all the Unity scripting tutorials? Should I first read a whole book about C# and leave Unity out of it for now and learn about pure programming? The core of this question is, what order should I learn in?
1) Learn C# programming then apply it to Unity
2) Learn C# programming by following Unity tutorials
3) Work on a project and when I’m stuck on a certain aspect, figure out what I need to learn in order to progress and look information up about that
I appreciate all the input I can get.
Alex
