Statistics
10
Views
0
Downloads
0
Donations
Support
Share
Uploader

高宏飞

Shared on 2026-01-09

AuthorJohn Arundel

No description

Tags
No tags
Language: 英文
File Format: PDF
File Size: 5.6 MB
Support Statistics
¥.00 · 0times
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

(This page has no text content)
Contents Praise for ‘Code For Your Life’ 11 Introduction 12 1. Directions 13 A career ending mistake . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 The end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Out of control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Choose your destination . . . . . . . . . . . . . . . . . . . . . . . . . 14 Three kinds of careers . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Seniority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 What does a senior IC do? . . . . . . . . . . . . . . . . . . . . . . . . . 15 What they don’t do . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 How to get there . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Seniority means mastery . . . . . . . . . . . . . . . . . . . . . . . . . 16 Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 What does a manager do? . . . . . . . . . . . . . . . . . . . . . . . . . 17 Being a great manager . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Getting started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Independence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 The pros and cons of independent working . . . . . . . . . . . . . . . . 18 When it’s time to leave . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Testing the waters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Making the choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Figuring out who you are . . . . . . . . . . . . . . . . . . . . . . . . . 20 Making small course corrections . . . . . . . . . . . . . . . . . . . . . 20 It’s about the planning, not the plan . . . . . . . . . . . . . . . . . . . 20 2. Jobs 21 A typology of tech jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Dev versus ops: the caste system . . . . . . . . . . . . . . . . . . . . . 22 “Have you tried turning it off and on again?” . . . . . . . . . . . . . . . 22 What in the world is “DevOps”? . . . . . . . . . . . . . . . . . . . . . . 22 QA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Making yourself an easy hire . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Personal recommendation . . . . . . . . . . . . . . . . . . . . . . . . 23 Making connections . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Networking groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Be interesting, and interested . . . . . . . . . . . . . . . . . . . . . . . 25 2
Becoming a brand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Being a big name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 How to be internet famous . . . . . . . . . . . . . . . . . . . . . . . . 27 You need a website . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 This is your time to suck . . . . . . . . . . . . . . . . . . . . . . . . . 28 Building a portfolio of projects . . . . . . . . . . . . . . . . . . . . . . 29 When to start looking for new jobs . . . . . . . . . . . . . . . . . . . . . . . 29 Keep cashing the checks . . . . . . . . . . . . . . . . . . . . . . . . . 30 Leveraging an offer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Don’t be a dinosaur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Avoiding the expertise trap . . . . . . . . . . . . . . . . . . . . . . . . 32 Where to look for jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Apply to employers, not jobs . . . . . . . . . . . . . . . . . . . . . . . 33 Recruiters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Choosing jobs to apply for . . . . . . . . . . . . . . . . . . . . . . . . 34 Apply to jobs you’re unqualified for . . . . . . . . . . . . . . . . . . . . 34 The experience paradox . . . . . . . . . . . . . . . . . . . . . . . . . 34 Mastering the application . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Knowing the keywords you need . . . . . . . . . . . . . . . . . . . . . 35 Tailoring the application . . . . . . . . . . . . . . . . . . . . . . . . . 36 What not to say . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3. Interviews 38 Preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Plan for the long haul . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Interviews are more demanding than you think . . . . . . . . . . . . . 39 Keep the job listing for reference . . . . . . . . . . . . . . . . . . . . . 39 Strike while the job is hot . . . . . . . . . . . . . . . . . . . . . . . . . 40 The initial phone screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Be on time and ready . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Double‐check your setup . . . . . . . . . . . . . . . . . . . . . . . . . 40 The conversational interview . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Talking about yourself . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Telling your success stories . . . . . . . . . . . . . . . . . . . . . . . . 41 Stick to the point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 The tricky questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 “Why do you want to change jobs?” . . . . . . . . . . . . . . . . . . . . 43 “What’s your greatest weakness?” . . . . . . . . . . . . . . . . . . . . . 43 “What salary are you looking for?” . . . . . . . . . . . . . . . . . . . . 44 Turning the salary question around . . . . . . . . . . . . . . . . . . . . 44 The technical interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Non‐technical interviewers . . . . . . . . . . . . . . . . . . . . . . . . 44 The dreaded whiteboard task . . . . . . . . . . . . . . . . . . . . . . . 45 It’s not about your program . . . . . . . . . . . . . . . . . . . . . . . . 45 Show you know how to collaborate . . . . . . . . . . . . . . . . . . . . 45 3
Learn some CS basics . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 But practice beats theory . . . . . . . . . . . . . . . . . . . . . . . . . 46 The take‐home task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Scope and time management . . . . . . . . . . . . . . . . . . . . . . . 47 It’s about the programming, not the program . . . . . . . . . . . . . . . 47 Documenting your process . . . . . . . . . . . . . . . . . . . . . . . . 48 Aim to impress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 The in‐depth interview(s) . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Be prepared for a multi‐stage interview process . . . . . . . . . . . . . 49 But don’t persist if it doesn’t feel right . . . . . . . . . . . . . . . . . . . 49 It’s about who you are, not what you know . . . . . . . . . . . . . . . . 49 Show that you’re a smart person who gets things done . . . . . . . . . . 50 “Do you have any questions for me?” . . . . . . . . . . . . . . . . . . . 50 Some example questions . . . . . . . . . . . . . . . . . . . . . . . . . 50 After the interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Thank your interviewer . . . . . . . . . . . . . . . . . . . . . . . . . . 51 When you get ghosted . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Surviving a “no” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Getting feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4. Negotiation 53 The offer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 You don’t have to accept right away . . . . . . . . . . . . . . . . . . . . 53 Negotiation is not a dirty word . . . . . . . . . . . . . . . . . . . . . . 54 The negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Knowing the numbers . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Making your counter‐offer . . . . . . . . . . . . . . . . . . . . . . . . 55 What if they won’t negotiate? . . . . . . . . . . . . . . . . . . . . . . . 55 Be prepared to (politely) walk . . . . . . . . . . . . . . . . . . . . . . . 56 Keep negotiating as long as necessary . . . . . . . . . . . . . . . . . . 56 Let them win a little too . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Equity as compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 You’re getting a stake in the company . . . . . . . . . . . . . . . . . . . 57 What are stock options worth? . . . . . . . . . . . . . . . . . . . . . . 57 You may not get to exercise options anyway . . . . . . . . . . . . . . . 57 Valuing options in startups . . . . . . . . . . . . . . . . . . . . . . . . 58 Beyond cash and equity . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Creative negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Can it ever hurt you to negotiate? . . . . . . . . . . . . . . . . . . . . . . . . 59 Only bad employers will view you negatively . . . . . . . . . . . . . . . 59 Negotiation is a key skill for any job . . . . . . . . . . . . . . . . . . . . 59 Negotiating your contract . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Check the fine print . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Get the whole agreement in writing . . . . . . . . . . . . . . . . . . . . 60 You’ll have no power to change the agreement later . . . . . . . . . . . 60 Take your time and don’t give in to pressure . . . . . . . . . . . . . . . 60 4
The anatomy of a contract . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 What doesn’t it say? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Compare with similar contracts . . . . . . . . . . . . . . . . . . . . . . 61 The contract doesn’t matter, until it does . . . . . . . . . . . . . . . . . 61 Moonlighting and spare‐time work . . . . . . . . . . . . . . . . . . . . 62 Intellectual property . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Making the final decision . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Expect pushback, but don’t yield to it . . . . . . . . . . . . . . . . . . . 62 Remember you can still walk away . . . . . . . . . . . . . . . . . . . . 63 Assume this is the best the deal will ever be . . . . . . . . . . . . . . . 63 5. Work 64 Starting out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Can I even do this? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Impostor syndrome . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 You can do this . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Don’t show off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Listen before you speak . . . . . . . . . . . . . . . . . . . . . . . . . . 66 How to make suggestions . . . . . . . . . . . . . . . . . . . . . . . . . 66 Settling in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Coping with “Day 1 Panic” . . . . . . . . . . . . . . . . . . . . . . . . 66 The trial period . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Expect to be slow at first . . . . . . . . . . . . . . . . . . . . . . . . . 67 This is what learning feels like . . . . . . . . . . . . . . . . . . . . . . 68 Being effective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Social capital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Managing your commitments . . . . . . . . . . . . . . . . . . . . . . . 69 Saying “no” is a superpower . . . . . . . . . . . . . . . . . . . . . . . 69 Finding your feet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Don’t rearrange the furniture . . . . . . . . . . . . . . . . . . . . . . . 71 Making the right first impression . . . . . . . . . . . . . . . . . . . . . 71 Collaboration is your biggest challenge . . . . . . . . . . . . . . . . . . 71 People skills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Human relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Overcoming shyness . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Social bonding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Listening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Don’t make it about you . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Being a good co‐worker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Keep your opinions to yourself . . . . . . . . . . . . . . . . . . . . . . 75 Don’t be an advocate . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Exercising empathy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Meetings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Less noise, more signal . . . . . . . . . . . . . . . . . . . . . . . . . . 76 The stakes can be high . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5
No one likes a doom‐monger . . . . . . . . . . . . . . . . . . . . . . . 77 We just want to be visible . . . . . . . . . . . . . . . . . . . . . . . . . 77 Validating and being supportive . . . . . . . . . . . . . . . . . . . . . 78 “Say my name” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Being a good co‐worker is your job now . . . . . . . . . . . . . . . . . . 79 Courtesy is a sign of strength . . . . . . . . . . . . . . . . . . . . . . . 79 6. Time 81 Being a Time Lord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Control your schedule . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Make a plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Make time for what really matters . . . . . . . . . . . . . . . . . . . . 82 Things to do: make a list . . . . . . . . . . . . . . . . . . . . . . . . . 83 Get everything out of your head . . . . . . . . . . . . . . . . . . . . . . 83 Deep work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Schedule deep work deliberately . . . . . . . . . . . . . . . . . . . . . 84 Remove all distractions . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Don’t overdo it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Not all work is deep work . . . . . . . . . . . . . . . . . . . . . . . . . 85 Make yourself uninterruptable . . . . . . . . . . . . . . . . . . . . . . 87 Attention is a muscle: flex it . . . . . . . . . . . . . . . . . . . . . . . 87 Protect your time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Sometimes helping means not helping . . . . . . . . . . . . . . . . . . 88 Skip useless meetings . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Decline most invitations . . . . . . . . . . . . . . . . . . . . . . . . . 89 Saying “no” nicely . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 “Not yet” is almost always fine . . . . . . . . . . . . . . . . . . . . . . 90 Respect other people’s time, too . . . . . . . . . . . . . . . . . . . . . . . . 91 Don’t say “hi”, just ask the question . . . . . . . . . . . . . . . . . . . . 91 Be punctual to be polite . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Don’t renege, renegotiate . . . . . . . . . . . . . . . . . . . . . . . . . 92 7. Mastery 94 Choosing your path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Should you stay or should you go? . . . . . . . . . . . . . . . . . . . . 95 You’ll need to supply your own challenges . . . . . . . . . . . . . . . . 95 Broadening your mind . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Being T‐shaped . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Try as many languages as you can . . . . . . . . . . . . . . . . . . . . 96 Finding your love language . . . . . . . . . . . . . . . . . . . . . . . . 97 Walking the path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Be prepared to train hard . . . . . . . . . . . . . . . . . . . . . . . . . 97 Write every kind of program imaginable . . . . . . . . . . . . . . . . . 98 Learning how to learn . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Work on solo projects . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Where does mastery come from? . . . . . . . . . . . . . . . . . . . . . . . 99 6
Do you need a college degree? . . . . . . . . . . . . . . . . . . . . . . 99 Should you buy software engineering books and courses? . . . . . . . . 100 Save your money for professional coaching . . . . . . . . . . . . . . . . 101 A coach can hugely accelerate your learning . . . . . . . . . . . . . . . 101 Potential mentors are all around you . . . . . . . . . . . . . . . . . . . 102 You can mentor others without being an expert . . . . . . . . . . . . . 103 Pair programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Good pairing is about trust . . . . . . . . . . . . . . . . . . . . . . . . 103 How pairing works in practice . . . . . . . . . . . . . . . . . . . . . . 104 Pairing problems, and how to fix them . . . . . . . . . . . . . . . . . . 104 Pairing distributes knowledge around the team . . . . . . . . . . . . . . 105 Don’t try to pair all the time . . . . . . . . . . . . . . . . . . . . . . . . 106 Code review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 The life and times of a changeset . . . . . . . . . . . . . . . . . . . . . 106 Pair reviewing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 The gentle art of code review comments . . . . . . . . . . . . . . . . . 108 Accentuate the positive . . . . . . . . . . . . . . . . . . . . . . . . . . 109 When your vanity is wounded . . . . . . . . . . . . . . . . . . . . . . 109 “I see what you tried to do here” . . . . . . . . . . . . . . . . . . . . . 110 Stylistic nitpicks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 The end of the rainbow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 8. Seniority 112 Beginnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Juniority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Doing your One Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 When do you become senior? . . . . . . . . . . . . . . . . . . . . . . . 113 Going further: management or staff‐plus engineer? . . . . . . . . . . . 114 Recording, thinking, and planning . . . . . . . . . . . . . . . . . . . . 114 Visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Learning the ropes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Every organisation is also a game . . . . . . . . . . . . . . . . . . . . . 116 Patterns for success… or failure . . . . . . . . . . . . . . . . . . . . . 116 Don’t be an office politician . . . . . . . . . . . . . . . . . . . . . . . . 117 Dirty tricks, and how to avoid them . . . . . . . . . . . . . . . . . . . . 117 Winning by not playing . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Moving on up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Mentoring: frommid‐level to senior . . . . . . . . . . . . . . . . . . . 118 Supporting and encouraging . . . . . . . . . . . . . . . . . . . . . . . 119 Absorb blame, distribute credit . . . . . . . . . . . . . . . . . . . . . . 120 Be a product engineer, not a software engineer . . . . . . . . . . . . . . 120 9. Leadership 122 Tech leading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 What is a tech lead? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 What does a tech lead do? . . . . . . . . . . . . . . . . . . . . . . . . . 123 7
Conflict and consensus . . . . . . . . . . . . . . . . . . . . . . . . . . 123 “Is there anyone who can’t live with that?” . . . . . . . . . . . . . . . . 124 Negotiating from values, not positions . . . . . . . . . . . . . . . . . . 124 Are you a potential manager? . . . . . . . . . . . . . . . . . . . . . . . 124 The staff engineer track . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 What does a staff engineer do? . . . . . . . . . . . . . . . . . . . . . . 125 Your job is not to fix everything . . . . . . . . . . . . . . . . . . . . . . 126 Bridging the gap between engineering and management . . . . . . . . . 126 Staff‐plus‐plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Staying technical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Managing up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 What is a manager’s job? . . . . . . . . . . . . . . . . . . . . . . . . . 128 How to be managed well . . . . . . . . . . . . . . . . . . . . . . . . . 129 The manager README . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Keeping your manager informed . . . . . . . . . . . . . . . . . . . . . 130 Planning promotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Get your manager on your side . . . . . . . . . . . . . . . . . . . . . . 130 Don’t wait for the annual review . . . . . . . . . . . . . . . . . . . . . 131 Advancement doesn’t just happen . . . . . . . . . . . . . . . . . . . . 131 Doing good work isn’t enough . . . . . . . . . . . . . . . . . . . . . . . 132 Quality and visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 What’s the goal? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 10. Money 133 Your financial position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Making a budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Your net worth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Changing the curve . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Money management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Building up an emergency reserve . . . . . . . . . . . . . . . . . . . . 135 Don’t wait for something to turn up . . . . . . . . . . . . . . . . . . . . 136 Systems are fun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Putting your money to work . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Investment plus time equals wealth . . . . . . . . . . . . . . . . . . . . 137 Howmuch cash do you need? . . . . . . . . . . . . . . . . . . . . . . . 137 Real estate: buy, don’t rent . . . . . . . . . . . . . . . . . . . . . . . . 138 The stock market . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Pensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Money buys freedom . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 11. Agency 140 Preparing for the jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Finding your niche . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Resigning in your head . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Consulting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Emotional distancing . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 8
The secret consultant . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Do a stint in consulting . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Don’t solve the problem too quickly . . . . . . . . . . . . . . . . . . . . 143 You can’t “win” this game . . . . . . . . . . . . . . . . . . . . . . . . . 144 Let them solve their own problem . . . . . . . . . . . . . . . . . . . . 144 Time to leave? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Avoiding the comfort trap . . . . . . . . . . . . . . . . . . . . . . . . . 145 Why is everyone around me getting dumber? . . . . . . . . . . . . . . . 145 The good engineers are evaporating . . . . . . . . . . . . . . . . . . . 146 Stranded by the tide . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 The company won’t love you back . . . . . . . . . . . . . . . . . . . . . 147 When it’s time to quit . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Say no to exit interviews . . . . . . . . . . . . . . . . . . . . . . . . . 148 12. Independence 149 Working to live . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Being rich is not the goal . . . . . . . . . . . . . . . . . . . . . . . . . 150 Build a life, not a fortune . . . . . . . . . . . . . . . . . . . . . . . . . 150 Running a business is work . . . . . . . . . . . . . . . . . . . . . . . . 150 Sources of revenue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Selling your time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Making money . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Howmuch should you charge? . . . . . . . . . . . . . . . . . . . . . . 152 Don’t take fixed‐price contracts . . . . . . . . . . . . . . . . . . . . . . 152 Estimates and change budgets . . . . . . . . . . . . . . . . . . . . . . 153 Ratcheting up your rates . . . . . . . . . . . . . . . . . . . . . . . . . 153 Don’t drop your price to get the deal . . . . . . . . . . . . . . . . . . . 154 The vendor‐client relationship . . . . . . . . . . . . . . . . . . . . . . . . . 154 When the client doesn’t pay . . . . . . . . . . . . . . . . . . . . . . . . 154 How to fire a client . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Trust your first impressions . . . . . . . . . . . . . . . . . . . . . . . . 155 How to be a great vendor . . . . . . . . . . . . . . . . . . . . . . . . . 155 “Policy” just means “we don’t want to” . . . . . . . . . . . . . . . . . . 156 Building products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Running out of time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Selling software is hard . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Expect tough competition . . . . . . . . . . . . . . . . . . . . . . . . . 157 Knowledge products . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 You can be your own publisher . . . . . . . . . . . . . . . . . . . . . . 158 Don’t over‐think the marketing . . . . . . . . . . . . . . . . . . . . . . 158 Your true fans are your marketing department . . . . . . . . . . . . . . 159 Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Independence, or co‐founders? Pick one . . . . . . . . . . . . . . . . . 159 Keep ultimate control . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 A business does not need to grow indefinitely . . . . . . . . . . . . . . 160 Hiring: whether, when, and how . . . . . . . . . . . . . . . . . . . . . 161 9
An army of one . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Making it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 What does “making it” mean for you? . . . . . . . . . . . . . . . . . . . 162 Pre‐tirement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 The beginning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 About this book 164 Who wrote this? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Free updates to future editions . . . . . . . . . . . . . . . . . . . . . . . . . 165 Join my Go Club . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 For the Love of Go . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 The Power of Go: Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 The Power of Go: Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Video course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Further reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 Acknowledgements 171 10
Praise for ‘Code For Your Life’ This book contains a lot of very well‐written lessons that I’ve learned on a harder, longer path. I wish I’d had this book twenty years ago. —Ivan Fetch All John’s books are an insta‐buy. —Eldon Alameda John’s books are phenomenal. Highly recommended. —Patrick Picard Full of wise, compassionate, and inspiring life advice for software professionals. —Judith Siegel 11
Introduction This is my attempt to distil the lessons I’ve learned frommany decades in the tech in‐ dustry into a practical, readable how‐to manual. If you’re about to embark on your ca‐ reer, or you’ve only just got started, this book is here to encourage you, to advise you, and to help you avoid some common mistakes and pitfalls. It will help you plan where you’re going, and give you some solid tips on how to get there. But it’s not just for those new to tech. If you’re already well established in your career, but feeling a bit stuck or frustrated about your progress, you’ll find advice here on how to break through to the next stage. Should you move into leadership and management, or stay in a technical role? I’ll help you scope out the options and where they might lead. If you’ve risen as high as you can in your current company, but aren’t sure you’re ready to run your own firm, or what that would look like, this book will help you decide. And if, like me, you’ve already declared independence, I hope you’ll find some valuable tips on running a successful business. Maybe you’ll be looking to hire engineers yourself one day. If so, give me a call: I know some great people. Your career is a journey, and people who don’t know where they’re going tend to end up walking uselessly in circles. Or, even worse, ending up somewhere they didn’t want to be. But choosing the right destination isn’t enough by itself, if you can’t then figure out how to get there from here. So let’s start at the end. 12
1. Directions If you don’t change direction, you may end up where you’re heading. —Saying A career endingmistake This isn’t about the time I inadvertently shut down one of Britain’s nuclear power sta‐ tions, an entirely true story for which the world is nevertheless not yet prepared. Nor is it about the poor junior developer who accidentally destroyed the production database on their first day (they’ll be fine, bless them). Instead, I want to talk about another kind of career ending mistake, one that affects more than just the unlucky few. Indeed, it’s a mistake we’re probably all making right now. And that’s not planning the end of our careers. The end By “the end”, I don’t necessarily mean picking your retirement date. This is really about the aim or goal of your career. Where will you be when you realise that this is where you’ve always wanted to be? If you love what you’re doing now and don’t ever want to change jobs, great: you’ve reached the end of your career, even if it plays out over many decades. If you don’t love 13
it, though, and that’s much more likely, then it’s worth asking what job you would love, and how you’re going to get it. So, where do you want to end up? And is that where you’re currently heading? If not, what should you do about it? Out of control The word “career” means, among other things, “to rush about wildly”, or, of a vehicle, “to move fast and in a way that is out of control”. Isn’t that apt? And doesn’t it describe the career experience of most of us pretty well? The indispensable first step to getting what you want is this: decide what you want. —Saying Most of us, in fact, don’t really know what we want to do with our working lives until we’re more or less doing it. By the time we’ve made our minds up where we want to go, we may already be a long way down the wrong track. It’s not surprising, then, that many of us find ourselves in less than fully satisfying jobs, with doubtful or non‐existent prospects for advancement. In all honesty, if we are happy in our jobs, it’s probably more often a matter of luck than of design. Maybe rather than rushing around wildly, we should give a little thought to what we want to achieve in our careers. Rather than just sit back and hope we get the career we want, maybe we should actively plan and take steps to bring it about. As software engineers, we’re constantly making detailed, elaborate plans for computers to execute; that’s what software is, after all. Isn’t it kind of weird that we rarely give a moment’s thought to the program we want to write for ourselves? Choose your destination The best time to start a pension is always twenty years ago, and career planning is a bit like that, too. By the time you realise you need it, you usually wish you’d started a lot earlier. On the other hand, it would be foolish to let that prevent you from starting at all. Even a late, sketchy, and uncertain plan is way better than no plan. So what would a career plan look like? And when should we start making it? The first phase of your career is probably too early to make serious plans, and any de‐ cisions you make at this stage are rarely critical: there’s plenty of room to experiment and make mistakes. In the final phase, by contrast, you have fewer options, and there’s not much time to pull off a significant change of direction. The autopilot tends to lock in and steer you further down the glide path you’re already on. 14
You should be planning, in other words, to enter the final phase of your career in the right position, at the right level, and at the right time to land where you want to. So where is that, exactly? Three kinds of careers Your career is likely to encompass lots of different things. Over the years, you’ll do all sorts of different jobs at different companies, and the perfect career destination for you may end up being something you can’t even imagine right now. To help us think about it, though, let’s divide the possibilities, very broadly, into three groups: 1. Seniority 2. Management 3. Independence In the rest of this chapter, we’ll take a closer look at each of these destination airports, check out the local weather conditions, and ask what kind of flight plan would get us there. Throughout the rest of the book, we’ll explore the strategy and tactics you’ll need along the way. So, what kind of career do you want to have? Seniority The first kind of career destination we’ll consider is senior individual contributor (IC), which usually means something like “high‐level engineer”. A senior IC doesn’t run their own firm, or work independently. They’re at the top of their game technically, and may be a technical leader for others, but they spend the majority of their time doing the work, not managing other people who do. What does a senior IC do? The exact ranks and job titles for senior engineers vary from one company to the next, and there may be many levels for you to achieve within a given company. But in terms of your eventual career goal, let’s say we’re talking about the top level you can reach while still being primarily an engineer. In a small company, that might simply be something like “senior developer”, or even team leader. In larger companies, the pinnacle of engineering pay and responsibilities might be called something like “principal engineer” or even “distinguished engineer” (sounds good, doesn’t it?). This isn’t an executive position: you won’t have your own washroom, or a seat on the board. On the other hand, you’ll have plenty of money, status, and authority, and unlike your colleagues in management, you won’t spend all day in meetings. You’ll be at the highest level of your profession, and getting well paid to excel at the work you love. 15
Your work is going to fill a large part of your life, and the only way to be truly sat‐ isfied is to do what you believe is great work. And the only way to do great work is to love what you do. —Steve Jobs, Stanford commencement address What they don’t do There are a few limitations, though. You probably won’t get to choose what to work on, and you may not agree with all the decisions of the powers that be. In fact, it’s practic‐ ally certain you won’t. After all, you knowmore about the subject matter than they do. If, in the end, you can’t live with those decisions, you can go work for another company, but of course you’ll find the same dynamic there. A senior IC role appeals to those who want to stay technical and keep their hands on the keyboard, or at least the mouse. You don’t have the time‐consuming, cross‐disciplinary responsibilities of a business owner, or the political challenges of a manager. You get to do all the fun stuff: the building and making. And you can do it until you choose to retire—hopefully in financial comfort. How to get there Find out what the situation is where you work. If senior ICs are a thing in your com‐ pany, talk to them. Ask them for advice. How did they get where they are? What were the steps along the way? And is it what they thought it would be? Talk to your boss. Do they know this is what you want? What are they prepared to do to help you get it? And what will they expect from you in return? Establishing this dia‐ logue is important, but it’s not enough: you need to keep it open throughout your em‐ ployment. Check in with them often on how you’re doing, and what more you can do to help them help you. Don’t wait for annual reviews. A year is too long to wait to find out that you’ve made no progress towards your career goal. Some people blithely assume that if they keep doing what they’re doing for long enough and don’t screw up, they’ll eventually make senior IC. Well, maybe. But a more reliable strategy is to take personal control of your skills devel‐ opment, and start taking it seriously. Seniority meansmastery The most senior engineers in any company are the most accomplished, the most ex‐ perienced, and those who have the most to teach others. If you want to reach this level, you’ll need to become a master of your chosen craft. Don’t wait for the company to train you. They prefer to promote people who don’t need training. Instead, once you’ve found the craft you love, you’ll need to dedicate yourself to mastering it. 16
Start seeing your current work not as a simple exchange of your time for their money, but rather as an opportunity to find out what you’re good at, and to get better at it. A professional coach can help you figure this out, support your learning, and keep your eye on the ball. Manhood is patience. Mastery is nine times patience. —Ursula K. Le Guin, “A Wizard of Earthsea” Management While very senior engineers can be well‐compensated, their roles are usually not the most senior in the company. If you want to rise even higher in pay and responsibility while staying within the firm, you may need to think about leaving your technical work behind and switching to management. Management is perhaps the default destination for many tech careers. Provided you can stay in a company long enough, the natural path to further advancement may be for you to become a manager. If you don’t change direction, in other words, you may end up where you’re heading. But is that where you want to go? What does a manager do? Engineering managers need a solid foundation of technical competence, to be sure, but the work itself is primarily about leading, supervising, hiring, and developing the skills of other technical people. It turns out those are all skills, too, and relatively rare ones. Managing people is hard; much harder than programming. Computers just do what you tell them, whether that’s right or wrong (usually wrong). Anyone can get good at programming, if they’re willing to put in enough time and effort. I’m not sure anyone can get good at managing, and most don’t. Most managers are terrible. That’s quite a sweeping statement, I know. (Prove me wrong, managers, prove me wrong.) But, really, would a car mechanic last long in the job if they couldn’t fit a tyre, or change a spark plug? Would a doctor succeed if they regularly amputated the wrong leg? We would hope not. But many managers are just as incompetent, in their own field, and yet they seem to get away with it. Being a great manager Good managers, then, like good teachers, are rare, but all the more precious for it. If you’ve ever had a really good boss, you’ll remember them all your life, and, if you’re lucky, emulate them. (You’ll remember the really bad ones, too.) And just because man‐ agers don’t cut code or solder chips, it doesn’t mean they don’t have a big influence on the success of projects and companies. 17
Indeed, managers can have an outsize influence on events. I’m sure we can all cite ex‐ amples of promising projects that sank without trace because of a disastrous manager. I’m less sure that there are many examples of inspirational managers rescuing doomed projects from the brink, though it does happen. If you want to become a great manager, which I think is the only kind worth being, start practising now. Learn people skills, communication, collaboration, psychology. Work on understanding the things that make different kinds of people tick. Manage yourself excellently. If you can’t organise yourself, how do you expect to be responsible for a team? Getting started Study your own manager. If they do the job well, figure out why (and talk to them about it). If they’re a shambles, figure out what they’re doing wrong, and decide how you’d do better. A great manager understands what’s happening with each person in their team, and can be there to eliminate problems and roadblocks almost before they happen. Why shouldn’t you start doing this kind of thing right now, rather than waiting to be told? Sometimes the de facto leader of a team is simply the person that everyone turns to when they have a problem they can’t solve on their own. If that’s you, you may already be on the road to becoming a memorable manager—for the right reasons. Independence Being independent means working for yourself, most likely in your own company, and maybe with others working for you, but also maybe not. Just being a one‐person com‐ pany doesn’t necessarily make you truly independent, though. For example, are you a consultant or a contractor? While the client tells a contractor what to do, a consultant tells the client what to do. The difference matters. A consultant is independent; a contractor is not. The pros and cons of independent working Running your own business, or otherwise being an independent worker, is great for those who like it. I do, and I was never really happy working for someone else. I couldn’t wait to strike out on my own. I was probably a pretty mediocre employee for that reason, among others. And there was the little nuclear incident, of course. On the other hand, not everyone wants the hassle of figuring out how to market their business and pitch clients, or the headache of handling accounts and taxes. And not everyone can manage on an irregular, unpredictable income, especially if they have a family to support. You don’t get vacations, insurance, or sick pay. On the plus side, you own a business. 18
When it’s time to leave If you do want to swap your stable job and decent salary for the joys of career independ‐ ence, the transition needs a little careful planning. It would be unwise, for example, to just quit one day in a fit of pique, then start wondering how you’re going to make rent the first few months. Timing is important. DENPOK: Lao Tzu teaches: the best fighter is never angry. More important than the blow is knowing when to strike. Like, perhaps, after we experience the execut‐ ive whitewater rafting trip in Coeur d’Alene. —“Silicon Valley” And to make money on your own, you’ll need to be excellent at what you do. There’s no one else to pick up the slack. In a big company, you can learn on the job. When you run your own company, you’d better already know your trade. Testing the waters If you can make the time, it’s a good idea to dip your toe into independent working by doing a few small, one‐off side gigs. You’ll gain experience and some satisfied clients, making it easier to go fully independent when you want to. And if it turns out that you don’t enjoy the experience of working for yourself, it’s better to find that out before you rage‐quit your job, isn’t it? Of course, we don’t always leave our jobs through choice. Layoffs are a fact of life in a volatile industry. You may not see the rocks coming; companies tend to fail gradually, then suddenly. But an unexpected transition to “funemployment” needn’t be a disaster. If you’ve always dreamed of being independent but somehow never quite worked up the courage to jump ship voluntarily, then being made to walk the plank could be just the spur you need. Making the choice I hope I’ve encouraged you to think about where your career is going, where you want to go, and what you can do to get there. Of course, you may not yet know how you want to spend the bulk of your career. That’s okay, and completely normal. But you can think about it, even if it’s too early to come to any firm decisions. And you’re not limited to just one of these potential destinations: many successful careers combine seniority, management, and independence in some way. For example, you could be a full‐time or part‐time manager, and also run your own business on the side. Or you could achieve independence by being a roving consultant within a large organisation, while still technically being a senior engineer. Or you could combine all three by being the chief executive and the director of engineering in your own firm. There are many possibilities. 19
Figuring out who you are You can inquire of yourself what things you value, and how your working life could con‐ tribute to them. As your experience and knowledge of the world grows, ideas may start to slot into place for you about what you want to do and be. Tell me, what is it you plan to do With your one wild and precious life? —Mary Oliver, “The Summer Day” Your future may not, in fact, lie in the tech industry. That’s all right, too. I have more than one friend who, despite achieving considerable success as an engineer, has de‐ cided that this isn’t really what they want to do in the long term. If you want to quit and be a doctor instead, or a schoolteacher, a spaaaaaace engineer, a woodworker, or simply wander the world like a badass righting wrongs, go to it. Don’t waste any more of your one wild and precious life careering down a blind alley. Making small course corrections Once you do have a sense of where you want to go, it can help guide your choices. Even if you don’t know exactly what your perfect job looks like, you may start to feel that you won’t be truly happy until you’re independent, or a senior IC, or a manager. You can steer away from things that would limit your options in those areas, and instead seek out companies, fields, or sectors where you’ll have the best chance of achieving the ca‐ reer you want. That’s not to say you should have a detailed map of every step that you plan to take (“make junior VP by Q4 2035”). As engineers, we already know that a too‐rigid plan rarely survives contact with reality. Instead, assume life will throw all kinds of crazy and unexpected things at you. Plan to be flexible, and to change your plans. It’s about the planning, not the plan You can’t stop the waves, as the saying goes, but you can learn to surf. Chance favours the prepared mind. Never underestimate the role of serendipity. The perfect opportun‐ ity may show up just when you least expect it, but if you’ve never thought about what you want, how will you recognise it? The time to start planning for the end of your career is now. It’s never too early, and it’s also never too late, provided, of course, that you don’t have your own little incident. Let’s be careful out there. 20