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
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 links that have helped me gain exposure to design patterns:
- Design Patterns Video Tutorial
- Design Patterns Tutorial
- Java Design Patterns
- Head First Design Patterns
Here are a few tips that have helped me on my journey
- Remember my purpose and long-term goal(s).
- Forget about my long-term purpose and goal(s). Instead focus on the next step, or even just doing a few seconds of the next step.
- Write, read, and paraphrase my to dos and goals regularly. I currently email myself my goals and to dos every day.
- When I feel overwhelmed thinking that there is too much to learn, that technology moves fast, I remind myself that is a great thing. The opposite is an industry or a job that never changes, which is mind-numbing and boring. Also new technology is constantly being created to solve problems better, faster, more easily (in theory 🙂
- When I watch an educational video and think to myself, “How can she/he possibly know all of this?” I remind myself, “It is great that she/he knows this and is teaching me. I can cut down on the learning curve by learning from this teacher.”
Here’s a great article on how setting goals can actually be counterproductive and demotivating: Forget About Setting Goals. Focus on This Instead.
My personal philosophy is to focus on the process by setting up a system and simply following it. I try to make my system consist of fun and right actions, so that way I can happily achieve towards my goals instead of achieving to be happy. I try to trust the process and see what happens, which lines up nicely with James Clear’s article 🙂
I found this great motivational quote from former NBA Superstar Kobe Bryant:
“That’s what Mamba Mentality is,” Bryant said. “It’s understanding that every day you can work on something, every day you get better, and then you can fast-forward years later and it seems like it was a ‘Voila!’ moment, but you know that patience and perseverance every single day is what got you there.”
Ahmed, what advice do you have for people who want to become great programmers like you?
Don’t try to solve harder problems unless you are really good at solving the easier ones. That means solve a lot of really easy problems (that could be hundreds), that will improve your coding skills, which should be the easiest skill to gain. Then go to little bit harder problems, and so on.
I think life and coding comes oftentimes comes down to my simple formula:
So does this mean that the working developer has gone through more trial and error than the aspiring developer, that the senior developer has gained more experience and learned from them than the junior developer?
Also how much experience can be gained indirectly vs. must be gained directly?
I don’t know the answer to any of these questions so I just focus on 2 things with coding–right action and fun:
- Doing the right actions that bring me closer to my goals, that improve my coding knowledge and skills
- Having fun as much as I can with my coding journey 🙂
I will never “arrive” as a coder, so I can only enjoy programming as much as possible and as often as possible. So far so good 🙂
In no particular order, here is a list of books I want to get through. There is no guarantee that I will get through these, and this list will shrink, expand, and change, but I think this will keep me busy for awhile…
- The Ultimate List of Programming Books : I want to read Code Complete, The Pragmatic Programmer, and The Clean Coder
- Practical Object-Oriented Design in Ruby (POODR)
- System Design Courses at: InterviewBit and Hired in Tech and maybe from this Quora thread