The 2nd Most Important Skill You Need as a Software Developer
Brian Jenney
Software Engineer - I work with career changers who want to switch into tech
(Video at end of article for you developers who want to learn how make better estimates)
Could there be a worse time to learn to code?
I was nearly 30, had been sober for less than 2 months and had a 1 year old and and 8 year old at home.
I worked an office job which I just started and drove for Lyft and Uber on the side.
There was no time. So I made time. In the process of learning how code, I learned the 2nd most important skill as a software developer (right after coding): the art of time management.
Unfortunately, I've seen too many developers make these mistakes:
As software developers we are judged nearly as much on the quality of our code as the time it?takes to get it delivered.
If your beautiful, bug-free code is consistently shipped weeks after the due date, you will likely not have a job.
Here's how I've been able to find time to code, run my side business and do over 400 calls with developers around the world while having a family, working full time and maintaining a daily exercise routine.
Fail to plan, plan to fail.
Ever sit at your computer and think, "Hmmm, what will I do today?"
"I bought that one Udemy course, but then there's LeetCode and my side project I need to finish" ??
Analysis paralysis sets in. You open 23 tabs and go between multiple tasks that never actually get done.
There's a better way.
The night before or in the morning, write down the most important task you should be completing for the day. Spend the very first part of your day tackling that 1 thing before the day gets in the way.
For me, that means as soon as I get up, I go to my computer and work on the most difficult thing for my day.
No meditation.
No cold plunge.
Just targeted work.
Less is more... but you need to do less more... ??
I've taught more people how to code at this point than I can count.
Here's how I know if they're gonna fail or succeed:
Me: "So were you able to get through that assignment?"
领英推荐
Them: "Nah, not really but this Saturday I have the day off so I'm gonna study for 12 hours"
Me: ??
I can't think of 1 time this has worked out for a student I've mentored.
The problem with zero studying during the week and marathon sessions on your day off is that you enter into hamster-wheel style learning mode.
You wonder why you can't retain information despite cramming and it's because you aren't building up that muscle memory.
If you wanted to get in shape would you only run 5 miles on Saturday and eat like a fool the other 6 days?
Personally, I spent about 30 - 60 mins learning to code every day and more time on the weekends when I had time. The key to my progress was consistency. I NEVER spent an entire day learning at that beginning stage.
Everyone is a morning person
Developers are naturally late creatures.
I've never been at a company where developer meetings start at the beginning of the day.
That being said, the best developers I've met tend to make optimal use of the morning. For the majority of us, this is the time of the day where we are least likely to be interrupted. I'm writing this freakin' article in the morning while my kids sleep.
Maybe you truly are not a morning person or have some unique schedule which prevents you from working in the early part of the day.
That's OK.
Everyone has a time of the day where they find themselves in the "zone". I'll be frank - for 99% of us, that is the morning despite what you've been told or the fact you just don't like waking up.
BUT - if you must, then find another time of day that you can optimize for those difficult tasks like side projects or learning a new language and make it consistent.
But... I still have no time
Something might have to give.
You may have a little more time than you think.
Little tweaks can have a large impact.
For you developers who are already hired and suck at estimates...
Check out this video walkthrough of how you can improve your estimation of how long it will take to complete that feature:
Front Stack Developer | Musician | React | Typescript | Javascript | Coding Solutions with Aloha
1 年I setup an ideal week in my google calendars where I can plug in all the things I need to do. This is very for me while I'm also juggling a full time job in an office as well as caregiving and church stuff.
Tech, Crypto Trader, Content Creator, Marketing strategist and KOL. Affiliate Partner @bitgetglobal
1 年Wow I learnt a lot from this ??
Entrepreneur | Founder & CEO | Yoga & Meditation Expert | Stretch Manager | Digital Marketing & Sales Strategist | Certified Full-Stack Developer
1 年Brian Jenney Thank you for the valuable insight. Could not agree with you more on the buffer zone. ????????
Full-stack software engineer with 12 years of professional experience. I build modern web apps using Node.js, React, and TypeScript.
1 年One of the most honest posts I've seen all week. If you suck at estimating time, then try timeboxing. One of the craziest things I discovered was that if I said something would take me an hour, it would take me an hour. If I said the same thing would take 5 minutes, it would only take 5 minutes. When you can understand yourself and your habits and learn to really focus, you will simply become an unstoppable human being.
Technical Support | Software Developer | JavaScript | React | Express | Node
1 年This is a really helpful article, Brian. Thank you. On a related note, when I taught undergraduate students in my previous career, one of the things I observed was that the students who were the most productive tended to have multiple responsibilities they were juggling. The ones who had lots of discretionary time were, ironically, the ones who struggled to get things done. This is an over-generalization, of course. But I think having multiple responsibilities can actually force us to use our time more purposefully. Though it may not always feel like it, it can be a blessing in disguise.