How to make your team miserable

Fascinated by the phenomenon of teams and companies of truly smart and talented people unable to work together, turning almost every day of their work into just another step to inevitable failure, I’ve been collecting tips and recipes for creating miserable teams.

All characters and tips in this post – even those based on real people and events – are entirely fictional, except ones I proudly committed myself on many occasions.

I split those tips into two categories: for leaders of all types and for regular team members.

Management

Read More

Effective learning for software engineers

I’ve been learning since before I can remember: first, learning to read, then, reading to learn.

Ironically, what I never focused on until very recently was learning to learn.

In the world of software engineering, learning effectively is one of the most crucial skills one can possess, yet it’s one of the most underdeveloped ones.

As technologies and frameworks evolve and change, the ability for an effective self-education helps keep many doors open, to diversify and regularly invest in one’s knowledge portfolio.

Effective self-education is marked by learning concepts, ideas, thoughts, and truths effectively.

But what does it really mean to learn a concept effectively?

To me, effective learning is a one-time process of deep understanding and remembering important information and concepts, and then connecting them to existing knowledge.

It’s a deliberate and careful investment of one’s time such that is ideally done once and for all.

The issue with the way the most programmers I know are learning - is that they learn just enough to solve a given problem.

While working well short-term, such a strategy is very time-wasting, unless one is able to reuse the newly acquired skill repeatedly in a short period of time.

But even then, such a skill is often superficial and lacks a deeper understanding required to apply it to related problems.

Reading a technical book cover-to-cover, watching a talk or screencast gives a false impression of understanding and remembering and yields half-assed skills, if at all.

Frustrated with forgetting information and skills I was sure I acquired at the time and reading the same books and tutorials over and over, I decided I wanted to improve the way I learn to be more effective and persistent.

The following strategy is the result of personal experiments with techniques that I learned about from different books and online resources on memory, learning and cognition.

Read More