December 20, 2017

Soft Skills: The Software Developer's Life Manual

Diagrams for Software Engineering

So you want to become a better software developer. Or maybe you want to plan your next career move. Or, perhaps you're looking for some productivity tricks that actually work. Maybe you're even looking for some advice on dealing with professional failures or even fitness tips.

You've come to the right place, if that place is John Sonmez's 2015 book Soft Skills: The Software Developer's Life Manual. This book has a bounty of information that will help you optimize your performance at work as a software developer (or any working professional) — and also as a person.

You can imagine, then, that picking just one or two topics from this book to discuss was a difficult task, but we've done it. And today, we'll cover two topics that Sonmez covers better than anyone else:

  • Learning new topics as quickly as possible, and
  • Being productive

For both, Sonmez takes a deep dive into making accessible the techniques and tools that make high-caliber learning and productivity possible. Although his focus is software developers, we guarantee that anyone can learn a thing or two from what we'll go over today.

Learning at the Speed of Light

For software developers, learning is incredibly important. The field is changing all the time, and if you don't stay up-to-date on what's happening, you'll be left behind. But, unlike fields such as medicine that have structures in place to force you to continue learning — lest you lose your license — in software, if you don't kick your butt into gear, nobody will.

That, says Sonmez, means that learning how to teach yourself is critical. And you need to learn how to do it well. Sonmez says, “When I tried to learn everything up front [i.e. from a book], I was just wasting my time. [...] I needed to learn and look for the best resources I could find to get exactly the information I needed.”

That's why he came up with his 10-step system to learn anything, fast. “Is this some magical system?” He asks, “No. It's just a practical way to learn quickly by reducing the volume of content to only what's important, and to really make that content stick by forcing you to learn through the self-discovery of play.”

Sonmez splits the 10-step system into two parts: 1-6, which you do once, and 7-10, which you repeat as necessary. Let's start at the beginning:

Soft Skills: The Software Developer's Life Manual

 

Steps 1-3: Define your goals

The first part of the 10-step process is looking at the scope of the topic and narrowing it down to what you have to learn. Sonmez recommends completing step one by quickly skimming blog posts, book indexes, and articles on your topic to get an idea of the breadth of the field.

For step two, narrow down what you want to learn first. This, he says, directly ties to timeframe, and should reflect the amount of hours you will be able to put in. A more narrow approach will help your productivity and focus.

For step three, make a definition of success for yourself. You want this definition to be both specific and narrow, reflecting the work you did in step two. A bad goal might be “I can learn the basics of C#.” But a good version of that would be “I can build a small application in C# that makes use of all the major language features.” Notice how the second is much more specific, and reflects what you probably want to learn (major language features).

After you've completed steps 1-3, it's time to take that goal setting and find some resources to back it up.

Steps 4-6: Gather Intel

Much like step one, step four is about getting as broad a reach as you can on your chosen topic, but this time for resources. Websites, blogs, experts (or friends), books, articles, videos, podcasts, source projects, open documentation — anything that seems relevant, collect it. Just start a list and throw in as many links and book titles as your heart desires, the pruning comes later.

In step five you create your learning plan so you don't get lost in the huge amount of information you gathered on your topic. Sonmez suggests thinking about your learning plan like you would outlining a book. What do readers need in the introduction? What can they understand in chapter one, and what will they need several chapters to tackle? Planning this way makes learning in sequence a no-brainer because you've done all the organizational work.

In step six,take the resources you gathered in step four and the plan you made in step five and combine them. Weed out any redundant resources, and check the quality of them as well. Amazon reviews, asking friends, or double checking publications are great strategies. When you're done, you should be left with just enough resources to cover all of your learning plan steps.

10-Step Learning Process

Steps 7-10: Get learning

Remember that steps 7-10 are steps that you should repeat until you reached the goal you defined in step three. They're designed to get your brain working and help you absorb the material as fast as possible through experience.

Step seven is simply learning enough to get started. “Have you ever bought a new video game and taken a quick look at the manual before you popped the cartridge in your video game system and started playing?” asks Sonmez. This what you should be doing here. And once you've got the lay of the land, start step eight by playing around. Experiment with anything you picked up in step seven and get creative, noticing when and why things are working.

Step nine takes you back to all the resources you gathered and then pruned down. Start going through the first few steps of your learning plan and ask questions to get yourself digging into the material. Try to set a small goal to complete a mini-project once you've gone through some of your syllabus.

Step ten is the way that you lock in all of your new knowledge: teaching. This could be writing a blog post, making a YouTube video, talking to a willing friend, answering questions in an online forum or even creating a presentation. Creating graphics, pamphlets, and posts will help ensure that you've thoroughly grasped your subject matter.

... And Do It All again

Once you've bitten off and chewed a section of the topic you're interested in, go back to step one to expand your expertise, or dive into a totally new topic. Whatever you're doing, says Sonmez, it's just important that you find a way to tap into your own curiosity and keep learning.

Putting Productivity to the Test

We also want to briefly touch on some of what Sonmez says about productivity. Why? Because the “productivity hacks” out there span the internet range from ineffective to insane, but Sonmez adeptly details the basics of being productive.

Putting productivity to the test

 

According to him, “there's no big secret to productivity [...] it all starts with focus.” He continues, “Focus is the opposite of distraction.” But, as we all know, distractions are harder to eliminate than we'd like them to be. So Sonmez splits the basics of productivity into key components, three of the most vital being:

  • The first 10 minutes are the most important. Before you begin a task, do everything you can to avoid interruption (like silencing your phone) and then “use your willpower to remain glued to the task at hand” for the first 10 minutes of your work. Once you get through those, you'll have built up momentum and started to get into your flow
  • Set short- and long-term plans. For Sonmez, whether the projects are personal or professional, the key to success is having that long term goal and breaking it down into smaller checkpoints. You can do this with a tool, like Airtable or Evernote, and goals can be anything from writing a book to completing a project to taking a vacation. Sit down at the beginning of every week and lay out tasks to reach your short-term goals, which will add up to your long-term goals.
  • Batch task, don't multitask. Instead of bouncing from task to task, set aside time to do the things that regularly come up in batches, like emails or meetings. If you know you're going to check your email three times a day, and deal with all responses then, you can exit your email and stop checking it when you code. Meetings should be scheduled back to back when possible. Then, you'll get real, uninterrupted time and focus to work on your projects.

Be Methodical

We've only covered a handful of what is in Sonmez's top-rated book here today. But if there'a big takeaway from what we've covered and the book as a whole, it's that taking the time to be methodical will pay off, even when speed is your priority, like we saw in his thoughts on learning.

Whether you're trying to reboot from burnout, start a running regime, network, or climb the corporate ladder, Soft Skills can teach you something. It's easy to read, easy to follow, and easy to get your hands on — it's widely available online, with rave reviews.