I really love computer science, coding and mostly all the amazing things you can do with this knowledge, i feel i finally landed in my world.
I’m doing a Javascript course now and while it is really engaging to learn about how a language like that works and how to build with it, i’m getting quite tired and frustrated…
Now, i’d say i am quite meticulous when studying and i use some studying techniques to really integrate what i’m learning, but that means that 1h or even less lesson can take me all the time i have to study in a day to be understood, noted down and then repeated over the following days…
There are a lot of quite complicated concepts to understand and memorize, and, as i’m also working, sometimes it gets quite tiring.
I feel like there’s this huge amount of never ending work and concepts before i can actually start do something cool with the knowledge i have, and i really want to start doing something cool.
I re-started to study after many years so i’d say it’s also because of that if i’m not really used to it and i can’t process much informations at the time.
How can you get better into gaining knowledge? how can you prevent getting fatigued?
I would say to give yourself the opportunity to have some fun with it. Maybe that could take the form of trying to apply what you know into some fun little project. Think about whatever you just studied and try to imagine what you could do with that knowledge. Don’t worry about constantly making progress. You will learn a lot just from picking a little project and trying to solve all the little problems you run into.
I agree. When I learned programming over a decade ago, I didn’t follow a course and I’m not sure courses were particularly widespread. Looking back, what I made was terrible quality but it got better with time. At first I’d even copy entire sections of code into place unsure of what it really does and eventually I would make it work. It sounds like OP is much further along than that. Just make something, it’s the best part!
Agreed.
If you’re doing this for fun, then don’t ruin it for yourself. Doing a course should enable you to do stuff you haven’t been able to do before. Just pick a project and do it. And then maybe you’ll use some of the things you’ve learned, maybe you won’t. You’ll never use all the things you learn, and there is always more to learn.
I’ve been a principal engineer for a long time, and I still learn new stuff every single day. There is no end. Which is pretty amazing if you ask me. You can always learn more stuff, but you shouldn’t feel obligated.
If you start a project, you’ll apply some of that knowledge, and it’ll stick much more.
I’m a 55 year old senior developer. I’ve been coding since I was 12 (yeah, RPG II in punch cards and COBOL stored in 8" floppies), and I have a TERIBLE memory.
Don’t bother memorizing and knowing every language feature and detail. Just get a general awareness of what it can do. Then when you need to accomplish something, it’s good enough that for the first times you do it you go “hey, I recall there’s a way of doing it” or at least (often happens to me) “hmm, this sounds useful enough that this language must have a built-in way of doing it”. Then you google or ask some AI, and you’ll get pointed to the general direction most of the times.
Then if you use it often enough, you’ll remember it. (and in my case, if I don’t use it for 3 months, I completely forget about it, and even get surprised when I see how I did it in my own old code).
In the old days, you could indeed know every feature and library (if any existed at all) of a language. Heck, I knew almost all hex op codes for the Z80 assembly by heart (still recall more of those than I recall my relatives names). Nowadays it is impossible to memorize everything.
In JS realm, if you look at the amount of components you have available in most frameworks, for example in UI5, or existing node modules for your node.js project, even trying to “memorize” them all is a waste of time. In cases like this, you just need to assume there’s a component or module that does what you need, then be good at finding, choosing, and understanding how to use one.
Not to mention the reduntant stuff they throw in “modern” languages, like javascript’s forEach. Some languages have 10 ways of doing the same thing, each one 0.1% more efficient for each particular case, but may catastrophically fail in some other specific case. Screw it. Learn the one that works well for every case and stick with it - you’re not coding ultra performance critical stuff in js anyway.
Programming today is usually more an integration of functioning pieces than building from scratch (assuming that if you’re talking about JavaScript, we’re not talking about creating microcode for bare silicon).
Worry about building an efficient and robust logic in your head. Then the programming language is just a tool, way less important than the logic you came up with.
The best way to learn is by doing. Nobody knows all the answers. And doing courses/learning for the sake of learning only gets you to the surface.
I’ve been a software engineer for 15+ years at this point and I still end up googling/stack overflowing issues that I’ve encountered. Not suggesting I’m copy-pasting code, but more of a “oh, I can do that!” type of thing.
So start making something that interests you (with the full expectation that you won’t make money/benefit anyone). You hit a roadblock? Great! Time to learn how to fix that problem. Repeat. You hit a point where your code is spaghetti? Learn how to avoid that—look up design patterns. Etc etc.
I think you’ve answered your own question - be less meticulous. Oh, and memorise less.
A good programmer knows where their knowledge boundaries are. For example, if you’re working in JavaScript, you probably don’t need to know bit-shifting.
A good programmer doesn’t know every feature; they know where to go to find that information. They know how to read the manual of an unfamiliar feature.
The most important thing you can do is do practical work. Build a website. Try new things. Look up how to implement something and then do it yourself. Find a project that interests you - like building your own website - that’ll stave off the fatigue.
You don’t need to memorise how to implement a linked-list - you need experience in building.
Good luck.
Here’s the thing:
Fatigue is normal, but will get worse over time if you don’t address it.
First, recognize that you might be putting too much on yourself. If you studied / programmed 10 minutes a day, every day, you would achieve more than someone who studied 2 hard hours every weekend. So consider whether you’d be fine doing a half an hour or less on some days if you don’t have the energy.
Also as others have pointed out, memorizing everything isn’t that useful, practicing is. Build something fun!