What to focus on

I am currently in my second year of a software engineering degree. I have completed various modules, one on OOP concepts (in java). I will be starting a module that covers HTML/CSS/Javascript this October. I have decided to try and get ahead by going through the FCC track.

My problem is, whenever I learn anything I feel like I am not learning enough(or gaining a deep enough understanding of the presented concepts), so I jump around from resource to resource, book to book until I end up burning out and overwhelming myself and end up feeling depressed because I am not progressing fast enough.

If I’m in one book then hit a topic that I don’t understand and the book doesn’t explain it in a way that makes me fully get it, I then move onto another book, in the hope that I can understand the concept that I was stuck on and return to the original book equipped with this new understanding. The problem is, it becomes an endless chase.

I kind of want to just go through the track and use the Mozilla docs to get an understanding of what functions do what, and then try and complete the projects, but then in my head I feel like maybe I should wait until I have a deeper understanding of how everything fits together, but then if I wait I might end up never getting to that stage. I want to get out of this advanced beginner stage and move forwards, but then I don’t know what the best direction to go is.

I know exactly what you mean. I have found myself in that situation more than once :slight_smile:. Currently my strategy is to understand ‘enough’ because having no clue what you are doing wouldn’t be good either. However I try to avoid diving too deep into different topics.

For example, when I just started getting into web development about 6 months ago, I learned about hashing passwords. I thought it was fascinating and kept digging deeper and eventually spent a full day reading about password encryption. This was interesting but knowing how to hash a password in the language you are working in and why it is important is enough for a beginner. There are just so many important things that are more important to learn in your first year(s) than all the different ways and pro’s and cons of different hashing techniques (which are important too, just less important for beginners).

Software development is full of these pitfalls. My current strategy that I am feeling comfortable with is understanding the basics and the “why’s” but avoiding getting too much in detail. Sometimes this leaves a mixed feeling in my head, whether I should get more into detail or not, but this passes quite quickly when new concepts are encountered. When I notice that certain concepts keep coming back and the feeling remains, then I know I should make some time to get a better grasp on the particular concept.

Yep, it feels kind of like you need to master every topic you come across before progressing, but the problem is the topics are of such a vast amount and each topic goes so deep (leading into other topics) that it feels like an impossible task to master everything. I’m definitely vastly improved to where I was a year ago, but then it doesn’t feel like I have improved enough. I’m still not at a level where I feel ready to take on full projects. I feel like I have come so far that I can’t give up now, but then it feels like where I want to be is still so far.