I started learning from these awesome resources. They were free because of my local library 🙂
With Lynda (now called LinkedIn Learning) I only took one course on Object Oriented Design and it was very clear and concise.
I am impressed with Team Tree House because it is interactive like Codecademy and in depth as well. They also teach how to use documentation and have small projects along the way.
Check out your local library and see if you can get these resources for free 🙂
Here is a great post on meditation to improve as a coder: Meditation will make you a better programmer: Here’s how.
I especially second the recommendation to use the free Insight Timer App.
App Academy’s Ruby on Rails and React Boot Camp is now free! Here is a news article and here is the link to the free boot camp
I recently watched Mission: Impossible – Fallout.
I benefited from watching this movie because Tom Cruise’s character Ethan Hunt would say in impossible situations, “I’ll figure it out!”
When asked what he would do next, Hunt would respond, “I’ll figure it out!”
I have embraced this attitude, which is basically the problem solving mentality. This attitude has helped me have more fun, be more confident, and gain greater competence and skills.
How will I improve even more? I’ll figure it out 🙂
Focus and Deep Work : This great article summarizes Cal Newport’s Deep Work lessons as well as teaches how to apply the Pomodoro Technique to level up one’s skills
Here is a great article that reminds me to make sure my short term actions align with my long term goals: Setting Priorities
Here are the steps I have been using to learn new algorithms, which is basically the same strategy as this.
- Pick a problem that shows up frequently in interviews from LeetCode
- Attempt to solve it
- After being stuck for too long, learn the ideal solution by doing the following steps
- Watch videos, i.e. Tushar Roy, Geeks for Geeks
- Read solutions from LeetCode especially the highest voted solutions
- Pick a solution and type it out. Add comments, change the variable names to names that are meaningful to me
- Attempt to solve this problem every day. What this really means is type out the solution every day until I either have it memorized and/or understand it so well that I don’t need to have it memorized, or some combination. Typing the code out every day is great because I am gaining exposure to the code feeling (typing), seeing, and hearing. I think this multi-sensory exposure also gets the information to my subconscious mind so it can spot patterns.
Doing this is key for certain common algorithms such as level-order traversal, iterative in pre and post order binary tree traversals, and also for understanding how to use recursion with base cases and recursive cases.
Here are some resources on Object Oriented Design:
In the past I have tried many ways of keeping track of my goals including writing them down daily, using a mind map, Post It Notes, even trying out index cards and recording them and listening to them while exercising.
I don’t think there is a best system because I think the ideal goal system for each person will have to be built via try, fail, learn, and improve. Also what works today might not be optimal in the future.
My current system is to every day email myself my goals and to dos. To make them stick and to gain more commitment I paraphrase every goal and I also add due dates. I also add easy to dos to feel good and to take steps towards my goals.
I think the paraphrasing is beneficial to me because if I just read the goals I don’t really have to think about them, but if I try to force myself to write them by hand every day that would be too much work and I would quit after a few days. I feel like paraphrasing is a nice balance between commitment, work, and usefulness 🙂
Here are a few communication tips that have benefited me:
- Ask 1. Who is my audience/listener? 2. What do I want him/her to think and/or feel? Based on these answers tailor my message/website/software etc.
- Be very meticulous about the requirements and goals of the software of system. This means asking many questions about the use cases or work flow.
- Use pen and paper to think, plan, brainstorm. Think on paper. Using just a pen and paper and jotting down 2-5 ideas can help me organize and plan better. The extreme version is something like the 20 Idea Method