Algopower vs. Knowledge
I have the impression that solving problems like the ones in 'Coding Challenges' is highly beneficial because it trains your algorithm muscle. Disadvantage: It likely takes me eternally to figure out a few lines of code. So by doing these work outs, I may train my brain, but I lose time that I could've otherwise used to study more about languages, frameworks, general CS or whatever, or to just write a lot of (simpler) practical code. Since a day's time is limited... how do you strike the balance between these two?
Sometimes I feel the same. But I think it depends on which challenge you choose. For example I solved two challenges from michal (travelling in sololearn, tarns). For me they were really tough. I didn't learn something new about java but I learned more about debugging (testing), problem solving, frustration, math and the role of a shower to get good ideas. ;) And sometimes such challenges helps you to get a solution for other problems. When I solve a problem, it increases my motivation. So after the motto "I could solve this problem, so I can also learn this topic." And if I get stuck, I solve challenges to distract myself.
I have spent days and nights on that Mars Rover contest and then I didn't win, and then I told myself: don't take these too serious 🤷♂️ The complex number one training OOP is good though. I have attempted that with several languages.
I have experienced that too: The 'Adjacent Clones' gave me the idea how to tackle my 'Go Board'. Sometimes, though, I'm just struggling to set up a loop properly. Yeah, it's sort of frustrating. 😤 I'd be okay with it if I improve doing it, but sometimes it's hard to foresee how much you will profit; and if after hours you have done nothing more than setting up a loop... well... Maybe there's value in facing the own degree of sucking. 🤣
I do main learning / coding based on my own plan / schedule. At rest, I peek into other's code for some side learning.
Gordon, don't you ever do one of these interestingly annoying assignments where you try to find a way to print out a row of seemingly random numbers only using a for loop or stuff like that and when you look at your watch the day has turned into night? This is what I'm talking about. You have written ten lines of code that do the job in a short and pretty way but it took you eternally.
So your personal way of handling it is estimating first how much your skill would profit from doing an assignment?
Monical, are you just assuming that if it takes long to get an algorithm right, there must have been a lack of former planning? Because that's not what I am experiencing. First of all, plans can turn out to be wrong and need to be changed. Even if not - plans can be good, and on paper it all turns out right, but it still doesn't run and you end up searching eternally for what's wrong. Never happened to you?
Monical HonFu Although I also think that a good plan can save time, there are still many hurdles left. * wrong plan, properly implemented * correct plan, but misunderstood * correct plan but no idea how it will be implemented * right plan, wrong implementation Or it's one of the days where you write i++ instead of i-- into the for loop (because you want to start at the back of the array) and take forever to find the error. ;)
are you using psudocode and flowcharts before attempting the challenges, or do you go in all guns blazing. a the ability to use such tools could be the difference between you completing the challenge in 20mins vs 3hours.
HonFu its no assumption, it is a fact. especially if it is a problem youre unfamiliar with. however if youre already familiar with such tools, then my only suggestion is to keep practicing such challenges until they become second nature. sometimes after spending an eternity on a problem on code wars, i learn more from the solutions others have done which consequently affects my own coding practictice.