I know the basics of the language, but I can't write the code myself

Good time of day.
I studied C# up to and including OOP by reading books and watching video courses on YouTube, and at the same time consolidated my knowledge in practice. However, now I have some questions.

Initially, I aspired and am striving to delve into the field of game development, about 5-6 months have passed since the beginning of training, but I got the feeling that I was walking in a circle. I don’t want to switch to Unity, because I think I haven’t fully mastered C# yet, but again, many recommend learning the basics of the language, then moving on to the engine, and already there to learn new things and consolidate in practice.
For example, if I need to implement some mechanics, I do not know how to do it, but when I look at the implementation of this mechanics from other people, I immediately understand how it works, and I feel ashamed, because, having all the necessary knowledge, I could not do it on my own.

Tell me, please, what am I doing wrong and what solution can my problem have? Have you ever come across something like this?

I feel the only reason to tell people to lean C# before starting working with Unity is so that they are in the position to actually understand the tutorials/samples. Since you already understand it I don’t see any reason why you should hold off on continuing your training directly in Unity. Keep in mind C# is a general purpose language and, as such, It offers a lot of functionality you’ll never need. Even a seasoned programmer is bound to stumble into a particular feature they never heard about from time to time (this is specially true because the language itself keeps evolving).

Beside, learning programming can be an extremely dull exercise. It will be much more digestible if you’re actually doing something you’re interested on along the way.

In software development there is no magic bullet. Don’t feel ashamed for struggling to code a specific feature. There will always be times when you get stuck getting something to work the way you want (specially when you start considering edge cases). It can be specially frustrating when you spend days debugging something just to find out it’s some silly mistake (off by one errors, reversed comparisons, test code leftovers interfering…), but I’m afraid no amount of training or experience will spare you that torment. Persevere and you’ll come out on top.

Good luck!

2 Likes

If you’re already comfortable writing C# to a certain degree, then just jump into Unity. You’ll probably learn a lot more C# through Unity than you would just going regular programming courses, to be honest.

I only knew the very basics of programming, and no C# when I started learning Unity. Didn’t stop me from enjoying it!

2 Likes

Also maybe you are stuck in “Tutorials” mode; One idea can be to take a course like this “Master Unity Game Development in 30 Days - 25+ Game Projects”; in Udemy, and after you finish a project, before going to the next video, enhance, add or modify the current one (you can use Saint Google to help on that), the idea is to break the inertia to code yourself. Of course you can also look for projects in YouTube. I prefer Udemy because the projects there are more organized but it’s a personal preference. The idea is that the proyects are small so you can get feedback fast.

Some people recommend that because that’s the best way for them to learn, but everyone has a different way to learn and mine has always been to dive in and start using it. I also found it helped a great deal to try to answer the questions other people posted as it meant I had to learn enough to answer them.

1 Like