For those attentive readers, my main goal is to become a better person.
While I did take numerous computer science courses in college, we mostly worked in languages like C and Java.
The languages I encountered during college are definitely suitable for creating amazing technologies, but the projects we worked on were not very interesting to me.
Most of the assignments consisted of console applications and simple scripts for learning the basic constructs of the language. While I recognize the importance of having a good foundation, I believe that you can learn the basic concepts while also having fun.
As the old saying goes: practice, practice, pratice.
In my opinion, that saying is almost is almost true. I believe deliberate practice is the key to improving.
And before you ask: no, I am not being compensated for any recommendations.
At the time of writing this post, I am only part way through the courses that I am going to recommend but I can already see their benefits in my thinking!
The course on Udemy is paid but you can often find a coupon to reduce the price to around $10. This course is a great introduction (or refresher) on algorithms and data structures that will help improve the way you think about everyday problems.
Yes, this is the same course I recommended in a previous post. Even though I prefer learning through projects, I have to hand it to Stephen for making this course engaging and enjoyable.
I make an attempt at trying to write a bit of code every single day. Frequently interacting with programming problems helps me feel like I am making progress. I would like to think that I am gradually becoming better.
I found a programming challenge site a while back called codewars and I have been hooked ever since.
I have not used any other challenge-based sites so I cannot comment on how this compares to others. However, one aspect I truly appreciate about codewars is the ability to view other people's solutions after completing a problem.
This feature allows me to see more, and often better, solutions to the problem. As a result, I often learn new ways of solving questions that I would not have thought of myself. The power of combined knowledge!