Soft Skills
The software developer's life manual
John Z. Sonmez
M A N N I N G
SHELTER ISLAND
For online information and ordering of this and other Manning books, please visit
www.manning.com. The publisher offers discounts on this book when ordered in
quantity. For more information, please contact:
Special Sales Department
Manning Publications Co.
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
Email: orders@manning.com
©2015 by Manning Publications Co. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted,
in any form or by means electronic, mechanical, photocopying, or otherwise, without
prior written permission of the publisher.
Many of the designations used by manufacturers and sellers to distinguish their products
are claimed as trademarks. Where those designations appear in the book, and Manning
Publications was aware of a trademark claim, the designations have been printed in initial
caps or all caps.
Recognizing the importance of preserving what has been written, it is Manning’s policy to
have the books we publish printed on acid-free paper, and we exert our best efforts to that
end. Recognizing also our responsibility to conserve the resources of our planet, Manning
books are printed on paper that is at least 15 percent recycled and processed without
elemental chlorine.
Manning Publications Co.
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
Development editor: Cynthia Kane
Copyeditor: Jodie Allen
Proofreader: Melody Dolab
Illustrator: Višeslav Radovic'
Typesetter: Marija Tudor
Cover designer: Leslie Haimes
ISBN: 9781617292392
Printed in the United States of America
1 2 3 4 5 6 7 8 9 10 – EBM – 19 18 17 16 15 14
To all developers who strive for continuous
self-improvement…
Who are not satisfied with good enough
Who always seek every opportunity to expand their horizons
and explore the unknown
Whose thirst for knowledge is never fully quenched
Who believe that software development means more than just writing code
Who know that failure is not the end, but merely a step in the journey
Who struggle at times, and sometimes fall, but always get back up again
Who have the will and determination to seek the harder path in life
And, most importantly, who are willing to help others along the way
Brief contents
1 Why this book is unlike any book you’ve ever read 1
SECTION 1 CAREER
7
13
18
Climbing the corporate ladder 49
Thinking about the future: What are your goals?
People skills: You need them more than you think
2 Getting started with a “BANG!”: Don’t do what everyone else does 9
3
4
5 Hacking the interview 23
6 Employment options: Enumerate your choices 29
7 What kind of software developer are you? 36
8 Not all companies are equal 43
9
10 Being a professional 55
11
12
13
14 Do you want to start a startup? 83
15 Working remotely survival strategies 89
16 Fake it till you make it 94
17
18 Don’t get religious about technology
Freedom: How to quit your job 61
Freelancing: Going out on your own 69
Creating your first product
Resumes are BORING—Let’s fix that 98
103
77
SECTION 2 MARKETING YOURSELF
107
Creating a wildly successful blog 121
Your primary goal: Add value to others 130
19 Marketing basics for code monkeys 109
20 Building a brand that gets you noticed 115
21
22
23 #UsingSocialNetworks 134
24 Speaking, presenting, and training: Speak geek
25 Writing books and articles that attract a following 146
26 Don’t be afraid to look like an idiot
140
151
SECTION 3 LEARNING 157
Learning how to learn: How to teach yourself
27
28 My 10-step process 163
29 Steps 1–6: Do these once
159
167
v
vi
Brief contents
176
30 Steps 7–10: Repeat these
Looking for mentors: Finding your Yoda 182
31
Taking on an apprentice: Being Yoda 187
32
33
Teaching: Learn you want? Teach you must.
34 Do you need a degree or can you “wing it?”
35
Finding gaps in your knowledge 201
191
196
SECTION 4 PRODUCTIVITY 207
36 It all starts with focus 209
37 My personal productivity plan 214
38 Pomodoro Technique 221
39 My quota system: How I get way more done than I should 228
40 Holding yourself accountable 233
41 Multitasking dos and don’ts 238
42 Burnout: I’ve got the cure! 243
43 How you’re wasting your time 249
44
45 Developing habits: Brushing your code 260
46 Breaking things down: How to eat an elephant 266
47
48 Any action is better than no action 277
The value of hard work and why you keep avoiding it 272
The importance of having a routine 255
SECTION 5 FINANCIAL 283
49 What are you going to do with your paycheck? 285
50 How to negotiate your salary 292
51 Options: Where all the fun is 301
52 Bits and bytes of real estate investing 309
53 Do you really understand your retirement plan? 317
54
55 Bonus: How I retired at 33 332
The danger of debt: SSDs are expensive 326
SECTION 6 FITNESS 347
56 Why you need to hack your health 349
57 Setting your fitness criteria 354
58 Thermodynamics, calories, and you 359
59 Motivation: Getting your butt out of the chair 364
60 How to gain muscle: Nerds can have bulging biceps 369
61 How to get hash-table abs 377
62 Starting RunningProgram.exe 381
63 Standing desks and other hacks 385
Tech gear for fitness: Geeking out 390
64
SECTION 7 SPIRIT 395
65 How the mind influences the body 397
66 Having the right mental attitude: Rebooting 402
67 Building a positive self-image: Programming your brain 408
68 Love and relationships: Computers can’t hold your hand 414
69 My personal success book list 419
70 Facing failure head-on 424
71
Parting words 430
Contents
Foreword xxi
Foreword xxiii
Preface xxvi
Acknowledgments xxviii
About This Book xxxi
About the Author xxxiv
1 Why this book is unlike any book you’ve ever read 1
SECTION 1 CAREER
7
2 Getting started with a “BANG!”: Don’t do what everyone
else does 9
Having a business mindset 9
How to think like a business 10
3 Thinking about the future: What are your goals?
13
How to set goals 14
Tracking your goals 16
4 People skills: You need them more than you think
18
Leave me alone, I just want to write code! 18
Learning how to deal with people 19
19 ❍ Never criticize 20
Everyone wants to feel important
Think about what the other person wants 20 ❍ Avoiding
arguments 21
vii