These are my favorite learning resources, I recommend to beginner and experienced programmers alike.
Full stack developer, Java expert, Bash and Git ninja
These are my favorite learning resources, I recommend to beginner and experienced programmers alike.
A little known gem is Codility's Lessons section. I suggest to start from the beginning, and follow through until the end. If you're impatient, I highlighted some of my favorite lessons. Read the PDFs first, and then solve the exercise for practice.
Lesson 3: Time Complexity -- every programmer should be comfortable to calculate the time and space complexity of algorithms
Lesson 5: Prefix Sums -- a simple and clever technique that often comes handy in online puzzles
Lesson 8: Leader -- how to find the "leader" element in an array, with incrementally clever implementations
Lesson 11: Sieve of Eratosthenes -- want to find prime numbers fast? There are many algorithms to speed it up, here's an easy one to get you started
Lesson 17: Dynamic programming -- given coins types X, Y, Z, what's the minimum coins you need to pay the amount of N? An efficient and elegant solution is possible using dynamic programming
Code Review is another member of the Stack Exchange sites, such as Stack Overflow. On Code Review, a valid question must contain fully working code, and posters must be open to improvement ideas regarding any and all aspects of the posted code. It's a great opportunity to get your code peer reviewed, and to receive valuable feedback from other programmers in order to improve your programming skills, develop good practices and get rid of bad habits.