 6 Simple but Powerful Habits for Effective Developers I'm on my bed, seems right. What a year it has been! As I reflect on all that I learned in programming in 2019, there's a few really exciting standouts that I want to share with you. Today we're going to talk about 6 Simple but Powerful Habits for Effective Developers. By adjusting our thinking as we go into next year, we can kind of set up our own action automation. You might be surprised how much the incremental value really adds up. Let's get going. 1. Utilize your brain's neural network to learn. Don't let not knowing how prevents you from getting additional clarity on the subject. Do not allow your career and decision to be born out of the fact that you're not sure how this is all going to play out. Programmers get paralyzed by not knowing absolutely everything guilty is charged. So we stop. The human brain is amazing though if we consider how we can work with it. Consistent repetition will make most tasks seem almost effortless. Kind of like when you are driving home seemingly on autopilot, it's because you've done it again and again. The way you get clarity on a subject is similar to the way that you navigate through fog. You get 10 feet or 3 meters of clarity in the road in front and then you get 10 more as you move forward. The path is only revealed to you in short pieces by remaining curious and kind of allowing that to motivate you to continue. Look at the short term rewards of taking action every 10 feet or 3 meters. Just make a habit of learning small, something new about your craft at set intervals like every day, week, month, etc. Automate your advancement in small pieces to avoid feeling really overwhelmed by the stuff you would have to learn in order to know everything. Before you know it, as long as you kind of automate that process, you'll be called upon as an expert of sorts by the people around you that don't understand anything about this. This happens because the neural pathway for the subject that you have learned has been created and now it allows you to access that problem-solving in a much more efficient way. You are quite literally learning how to learn smarter and work with your brain more efficiently. Two, start your workday with code. When you wake up fresh in the morning, your mind has had time overnight to ponder any problems that you were trying to solve the day before. So try to capitalize on that really fresh perspective by working your code immediately when you sit down at your workday, even for 20 minutes. Give yourself a time limit like I do an hour to explore your code and then switch over to finally opening up your email for the day or attending a meeting. Do this every day and it will become a really effective habit. By starting your day with code, you prevent your really fresh mind from being distracted by all the other demands that are non-technical and will allow you to ride that wave of fresh cognitive focus and energy. Seriously, this code first email after approach completely changed the game for my programming and problem-solving skills. It gave me a reason to actually look forward to coming to work in the morning and it sets the tone for your day as a developer. It's a very powerful way to deflect the drudgery of meetings, direct messages and emails that tend to pull us away far too often. So let morning code time become a ritual to start your day off immersed in your craft and purpose, software engineering. Three, comment code for your future self. I was once told a long time ago that good clean code doesn't need comments. That may be true to a point. However, it is also true that the architectural approach that you take with code will change over time as you learn. I guarantee you will not be able to recall why you wrote the code you did if you have to revisit it a few years from now, or in my case, even a few months ago. You are actively improving yourself as a developer. Therefore, even if you work solo on a project and not with a team, communication is still vital, even if it's for yourself. You don't have to go crazy into detail, but creating a comment that explains why things are happening at each major block of functionality is going to be very valuable to you in the future. As a bonus, if you ever open source your code or have to hand it off to another developer, you already have clear intent expressed in your project. Reading someone else's code becomes much easier if there are comments there for them. Even if you don't code with others, try adding this step. Future you will thank you later. Trust me on this. Four, time manage your work with intervals. I used to be the kind of developer that would obsess and focus for hours on end, mostly because I am very driven in my craft and excited to build what I'm doing. There is nothing inherently wrong with that sentiment, but considering optimizing the way your brain handles data is really helpful. According to Wikipedia, the Pomodoro technique is a time management method developed by Francesco Cirolio in the late 1980s. The technique utilizes a timer broken down into intervals, traditionally 25 minutes in length and separated by short breaks. Put more simply, this approach lets you set an amount of time to work. Yes, there are apps for this, but any simple timer will do. And then take a break for a set amount of time. 25 minutes may not be enough time for you to gain momentum or establish a coding rhythm, so play around with the length and see what suits you best. Using the Pomodoro technique accomplishes a couple of things. For one, it introduces a break from your focused work and allows the problem you are solving to go on a background thread in your mind. Often revealing a solution to a problem you are trying to solve once you return to that work. Remember, bombarding your brain with a constant stream of input can really dull your ability to code as well as you can. So taking scheduled breaks is incredibly important. This technique also allows you to time box your work, prioritizing the most important things to accomplish them early on in the process in the working interval. Five, share what you've learned often to reinforce your knowledge. Whether it's in person with coworkers, online forums, or at a community event, please communicate what you've been learning externally and do it often. While it's beneficial for others to hear what you've done, the primary reason you should be doing this is ironically for yourself and for self-improvement. When we have to organize something we have learned into a communicated medium such as a blog or a video or something in person, it really requires us to dig into the subject matter and flesh out the possible questions other people will have ahead of time. This allows you to really get to know your subject matter and work with it more thoroughly. A good rule of thumb to live by is to ask yourself if you can explain this to different levels of people with different skill sets. If you can't effectively communicate your topic, consider how well you truly understand it yourself. Now, not everyone is a natural-born teacher, but the good news is it is something that you can learn. This is a skill that is highly valued, especially for career advancement today. My suggestion is to find local meetups, conferences, or simply start a blog and communicate the kinds of problems that you have been dealing with as a programmer. You can also dip your toe into teaching by answering some questions on local forums or Stack Overflow. Keep an attitude of patience when somebody doesn't quite get what you are saying. It's probably the way you are explaining it. So treat those kinds of moments as an excellent opportunity to improve your communication style and teaching skills. I promise this one is a game changer. It was, for me, sharing knowledge will absolutely level you up as a developer in a big, big way. Six, sleep. Really, sleep. To sleep. I learned this one the hard way, trust me. I experienced a lot of burnout coding until three in the morning on a regular basis. When I say regular, I mean at least once or twice a week. The toll it took on me was physical, emotional, and most of all, mental. It really prevented me from truly solving problems as quickly as I needed to and in the right way. Remember that the value a programmer provides comes completely from our brain. So it's important to optimize it and take care of it properly. Creating a boundary for working hours is very crucial. Once I started prioritizing my sleep, my code became much better and I stopped making stupid mistakes that were brought on from chronic exhaustion. In short, if you're tired, go to sleep. I promise it will help reset your brain and make you an even more powerful engineer. I hope you found some of the suggestions helpful. When you consider your New Year's resolutions as a software engineer, come back to this video and consider the suggestions we've got. What powerful habits do you have? Make sure that you comment below. Let us know the kinds of tips that you have found along the way to help your fellow developers really celebrate the new year with effectiveness.