What a year it has been! As I reflect on all I have learned in programming in 2019, there are a few exciting standouts that I wanted to share with you. By adjusting our thinking we can adopt better habits, therefore kind of setting up our own “action automation”. When you consider your New Year’s Resolutions as a software engineer, try a few of these suggestions out below. You might be surprised how much the incremental value adds up by doing these small things consistently.
1. Utilize Your Brain’s Neural Network to Learn
Don’t let “not knowing how” prevent you from spending time getting additional clarity. Do not allow your career indecision to be born out of the fact that you are not sure how this is all going to play out. Programmers get paralyzed by not knowing absolutely everything (which is inherently unknowable) about a topic, so they stop. The human brain is amazing if we discover how to work with it. Consistent repetition will make most tasks become almost effortless - like how, over time, you begin to drive home seemingly on autopilot.
The way you get clarity about a subject of study is similar to the way you navigate through the fog. You get ten feet (or 3 meters) of clarity about the road in front, and you get ten more feet when you move forward. The path is only revealed to you in short pieces by remaining curious and allowing that to motivate you to continue. Look at the short term rewards of taking action every “ten feet” in order to make a habit of just learning a small, new thing about your craft at set intervals (every day, week, month, etc).
Automate your advancement in small pieces to avoid feeling overwhelmed by all the stuff you would have to learn to know “everything”. Before you know it, you’ll be called upon as an “expert” by people who need someone who has active knowledge and passion on that subject. This happens because the neural pathway for that subject has been created, and now allows you access to problem-solving in a much more efficient way. You are quite literally learning how to learn smarter and work with your brain.
2. Start Your Workday with Code
When you wake up fresh in the morning, your mind has had time overnight to ponder any problems you were trying to solve yesterday. Try to capitalize on that fresh perspective by working with your code immediately when you sit down to start your workday - even if it is just for 20 minutes. Give yourself a time limit (I find that 1 hour works best for me) to explore your code, and THEN switch over to finally opening up your email for the first time, 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 fresh mind from being distracted with all of the other demands that are non-technical and will allow you to ride that wave of cognitive focus and energy. Seriously, this code-first-email-after approach changed the game for my programming problem-solving skills and gave me a reason to actually look forward to mornings at work. Setting the tone for your day as a developer is a really powerful way to deflect the drudgery of meetings, DMs and emails that tend to pull us away far too often. Let morning code time become a ritual for you to start your day off immersed in your purpose - software engineering!
3. Comment Code for Your Future Self
I was once told that good, clean code doesn’t need comments. That may be true to a point. However, it is also true that the architectural approach you take with code will change over time. 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 (in my case, even a few months from now) if you are actively improving yourself as a developer. Therefore, even if you work solo on a project and not with a team where communication is vital, consider using comments in your code. You don’t have to go crazy into detail, but something that explains what should be happening at each block of functionality will be valuable.
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 with comments. Even if you don’t code with others, try adding this step. Future you will thank you later, trust me on this.
4. Time Manage Your Work with Intervals
I used to be the kind of dev that would obsess and focus for hours on end - mostly because I am driven in my craft and excited to build! There is nothing inherently wrong with that sentiment, but consider optimizing the way your brain handles data input. According to Wikipedia:
The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. The technique uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks.
Put simply, this approach suggests you set an amount of time to work (there are apps for this, yes, but any simple timer will do) and then you take a break for a set amount of time. Rinse and repeat for your coding workday. 25 minutes may not be enough time for you to gain momentum or establish a coding rhythm, so play around with the length to find what suits you best.
Using the Pomodoro Technique accomplishes a couple of things. For one, introducing a break from your focused work allows the problem you are solving to go on a background thread in your mind - often revealing the solution to a problem you were trying to solve once you return to work. Bombarding your brain with a constant stream of input can dull your ability to code as you go on, so taking scheduled breaks are important. This technique also allows you to time box your work, prioritizing the most important things to accomplish early in the working interval.
5. Share What You’ve Learned Often to Reinforce Your Knowledge
Whether it’s in person with coworkers, online forums, or at a community event - communicate what you’ve been learning externally, and do it often. While it is beneficial for others to hear what you have done, the primary reason you should be sharing your knowledge is to step up your self-improvement. When we have to organize something we have learned into a communicable medium like a blog post or a presentation, it requires us to really dig into the why and how - fleshing out the possible questions ahead of time. This allows you to really get to know your subject matter and strengthens your abilities to work with it. A good rule of thumb to live by is to ask yourself if you can explain it in different ways to different levels of people. If you can’t effectively communicate the topic, consider how well you truly understand it yourself. Not everyone is a natural-born teacher, but the good news is you can learn how to do it. This is a skill that is highly valued, especially for career advancement today.
Find local meetups, conferences, or simply start a blog to communicate the kinds of problems you have been solving. You can also dip your toe in teaching by answering questions on local forums or Stack Overflow. Keep an attitude of patience when someone doesn’t quite get what you are saying - it is probably the way you are explaining it. Treat that moment as an excellent opportunity to improve your communication and teaching skills! I promise this one is a game-changer. Sharing knowledge can level you up as a developer in a big way.
Yes, I said sleep. I learned this one the hard way and experienced a lot of burnout by coding until 3 am on a regular basis. The toll it took on me was physical, mental, and emotional. Remember the value a programmer provides comes completely from our brain, so it’s important to optimize and take care of it properly. Creating a boundary for working hours is crucial for your intellectual health. Once I started prioritizing sleep my code began to improve and I stopped making stupid mistakes brought on by chronic exhaustion. In short, if you are tired - go to sleep. I promise it will help reset your brain and make you an even more effective engineer.
What Powerful Habits Do You Have
I hope you have found some of these suggestions helpful. Comment below with any habits you use that help organize and propel you forward in software engineering
Learn More Development Tips from Okta
If you’d like to discover more tips from us, we’ve also published a number of posts that might interest you:
- Pro Tips for Developer Relations
- Pro Tips for Developer Relations, Part 2
- 5 Essential Tips for Building Developer Libraries
- 7 Ways an OAuth Token is like a Hotel Key Card