The Outstanding Developer

Sebastien Castiel

Introduction

A while ago I started reading nonfiction books, mostly about self-improvement. And I read a lot of them. Some talked about productivity, others were about finance, entrepreneurship, creativity, communication… And each time I finished a book, I thought about how I could apply what I found in my day to day life.

I adopted new habits, made some adjustments to the way I worked, always to find a new way to improve productivity, learn new things, be a better colleague, or a better team leader. Sometimes the changes I made didn’t produce the expected result, but most of the time they did.

Now I can say that these books (and a lot of articles or blog posts) helped me to improve as a developer. Not that I was a bad developer (at least I hope not), but in a developer job I strongly think that you hit a plateau if you’re not careful to improve regularly, and not only technically.

Of course, keeping up to date in your technical fields is more than recommended: what you know today about your favorite language or framework may be obsolete in a couple of years. But there is some space for improvement in soft skills too: become more productive, learn new things more easily, or communicate in a more efficient way.

These soft skills are what I wanted to talk about when I decided to write this book. I took the challenge not only to put on paper what I learned, but also to dig deeper, exploring what other books and articles could bring, what research studies concluded, and how I could make the link with our developer job.

Who is this book for?

Although this book is written for developers, you might find interesting content if you work in IT in general: if you’re a QA analyst, a UX designer, a project manager, etc.

The advice you’ll find will apply whether you work for a big company, for a start-up, or if you’re self-employed, and whether you’re a senior developer or you just graduated.

Finally, I suppose in this book that you work as a developer, but everything can apply if programming is not your professional activity: if you’re contributing to open-source projects, if you program as a hobby, etc.

What this book is not

This book is focused on improving your soft skills in your developer job. Some other aspects of improvement could have fulfilled other books written by someone better at it than me. Therefore, this book is not:

A guide on how to code better: a lot of books exist on that subject, most of them depending on the language you use, or at least the “type” of development you do: web, software, games, embedded… Here you won’t find any technical advice, nor any line of code.

A career guide: advising on someone’s career is a full-time job, requiring a lot of expertise. Although you may find here some clues about my career and the way I decided to evolve as a developer, this shouldn’t be considered as advice for your career. However, I’m confident that with the advice found in this book, it’s going to be easier for you to reach your career goals.

A guide on how to create your start-up: creating a business as a developer (a start-up or a freelance activity) is a very exciting goal, but it’s not the only one. And since it hasn’t been mine, and still isn’t at least for the near future, I wouldn’t be a good person to tell you how to do it. But again, the advice found here can make things easier for you if you pursue this goal.

What to expect from this book?

In this book, I try to give an overview of the challenges that developers are facing today. I identified four big axes to group these challenges: productivity, learning, creativity, and communication. For each of these axes, we’ll explore what problems they relate to in our developer job and try to find advice on how to overcome these problems. Sometimes there won’t be any actual problem; just a space to become even better.

As much as possible, all the content of this book is based on two things: what I found in the literature (books, research articles, blog posts, etc.), and personal experiences (mine or not). Linking these is the most interesting, since most of the time what you find in books or articles is not specific to a developer job.

A note about this preliminary version:

You are currently reading a non-final and incomplete version of the book. I’m releasing each chapter as soon as it is finished, to get feedback as quickly as possible. So please keep in mind that some content may change in the final version, or even in the next preliminary version.

Especially, this introduction is very temporary, and will probably be completely rewritten for the final version.

If you have any feedback about the book, I’d be more than happy to hear about it. Send me an e-mail at sebastien@castiel.me.

I wish you a pleasant read,

—Sebastien

Chapter 1 — Productivity

Thinking about how to improve at a developer job, it’s very likely you think instantly about improving your productivity. It may even be true for most of the jobs.

Let’s say you’re good at coding (and I’ll assume you are in the rest of this book). If you happen to just code for five minutes a day, or if you write a great piece of code that will never go to production for any reason, you may not feel very productive, therefore there might be space for improvement.

Before exploring how to be more productive, I suggest we first ask ourselves what we hear when talking about productivity. It may be obvious, it’s a very common word. Yet in the specific context of a developer job, you may get different answers depending on who you ask.

Defining and measuring productivity

Imagine yourself in the following situation: you are in an office, in the IT department of a company, or a start-up. It’s the middle of the morning, everybody seems to be working, it’s quiet and you can just hear some people talking about last weekend at the coffee machine behind you.

In front of you, two people are working at their desk. You guess by looking at their screen that both of them are developers. Let’s call them Alice and Bob.

A third developer comes to ask a question to Bob. Still typing code on his keyboard, Bob tells him that he’s very sorry, but he has an urgent task to finish before the end of the day, and since he has his afternoon full of scheduled meetings, he needs to advance as much as possible in the morning.

The developer then comes to Alice, who takes off her earphones and stops typing. She tells him that she’s in a middle of an intense problem-solving session and prefers staying focused for now, but if it can wait twenty minutes, she’ll just grab a cup of coffee then she’ll be glad to come to him afterward.

With so little information, if you were asked which one of Alice or Bob is more productive, what would you answer?

Did you like this preview? Discover more about productivity in the second part of this chapter by purchasing the book!