become a better engineer through writing

53
@kristinathai kristina.io Kristina Thai, iOS software engineer Become a Better Engineer Through Writing

Upload: kristina-thai

Post on 21-Apr-2017

1.581 views

Category:

Career


4 download

TRANSCRIPT

Page 1: Become a Better Engineer Through Writing

@kristinathaikristina.io

Kristina Thai, iOS software engineer

Become a Better EngineerThrough Writing

Page 2: Become a Better Engineer Through Writing

@kristinathaikristina.io

Hi, I’m Kristina Thai!

📱 🌶⌚

Page 3: Become a Better Engineer Through Writing

@kristinathaikristina.io

What makes a good engineer?

Page 4: Become a Better Engineer Through Writing

@kristinathaikristina.io

Engineer Checklist*

01020304

“Soft” skillsCommunicates well

Passion for learning

Learns from mistakes

Teacher/mentor

* not a comprehensive list

010203

Technical SkillsStrong coder

Domain expert

Problem solver

Page 5: Become a Better Engineer Through Writing

@kristinathaikristina.io

What does this have to do with writing?

Page 6: Become a Better Engineer Through Writing

@kristinathaikristina.io

Page 7: Become a Better Engineer Through Writing

@kristinathaikristina.io

Code and essays have a lot more in common.

The product is a sequence of logical statements, bundled into modular units – whether it be functions or paragraphs.

Like good prose, good code is concise.

Bad code wastes CPU cycles; bad essays waste brain cycles.

 

http://www.shubhro.com/2014/12/27/software-engineers-should-write/

-Shubhro Saha

Page 8: Become a Better Engineer Through Writing

@kristinathaikristina.io

4 writing channels that help engineers

Page 9: Become a Better Engineer Through Writing

@kristinathaikristina.io

📓 Personal Journal

❓ Question & Answer Forums

📖 Blogging

📝 Technical Tutorials

Page 10: Become a Better Engineer Through Writing

01Personal Journal✦ private place to record your technical challenges

📓

Page 11: Become a Better Engineer Through Writing

@kristinathaikristina.io

Personal Journal📓 Benefits ✦ Reflection time ✦ For your eyes only ✦ Easy to get started

Challenges ✦ Hard to keep up ✦ Doesn’t benefit anyone else ✦ No one to correct you if you’re wrong

Engineer Checklist

Coding skills

Domain expert

Problem solver

Communicates well

Learn from mistakes

Page 12: Become a Better Engineer Through Writing

02Developer Q&A Forums✦ places to get help with your technical problems ✦ knowledgable experts answer questions

Page 13: Become a Better Engineer Through Writing

@kristinathaikristina.io

Page 14: Become a Better Engineer Through Writing

@kristinathaikristina.io

Page 15: Become a Better Engineer Through Writing

@kristinathaikristina.io

Developer Q&A Forums Benefits ✦ Learn what others are struggling with ✦ Easy to pick up whenever you want ✦ Bite-sized chunks ✦ Builds reputation

Challenges ✦ Negative comments ✦ Overt hostility

Engineer Checklist Coding skills Domain expert Problem solver Communicates well Teacher/mentor

Page 16: Become a Better Engineer Through Writing

03Blogging✦ public place to record your technical challenges

📖

Page 17: Become a Better Engineer Through Writing

@kristinathaikristina.iohttp://swift.ayaka.me/

Page 18: Become a Better Engineer Through Writing

@kristinathaikristina.io

http://nshipster.com/

Page 19: Become a Better Engineer Through Writing

@kristinathaikristina.io

http://techblog.netflix.com/

Page 20: Become a Better Engineer Through Writing

@kristinathaikristina.io

Blogging Benefits ✦ Public exposure ✦ Build reputation ✦ Reflection time

Challenges ✦ Lots of time &

commitment ✦ Keeping your blog fresh & unique

📖 Engineer Checklist

Coding skills

Domain expert

Problem solver

Communicates well

Passion for learning

Learn from mistakes

Teacher/mentor

Page 21: Become a Better Engineer Through Writing

04Technical Tutorials✦ step-by-step technical walkthroughs that teach others how to do something ✦ usually has a working demo project

📝

Page 22: Become a Better Engineer Through Writing

@kristinathaikristina.iohttps://www.natashatherobot.com

Page 23: Become a Better Engineer Through Writing

@kristinathaikristina.iohttps://www.raywenderlich.com/

Page 24: Become a Better Engineer Through Writing

@kristinathaikristina.io

Technical Tutorials Benefits ✦ Best to build reputation ✦ Reinforces learning ✦ Build full projects

Challenges ✦ Even MORE time

& commitment ✦ Find unique & undiscovered solutions

📝 Engineer Checklist Coding skills Domain expert Problem solver Communicates well Passion for learning Learn from mistakesTeacher/mentor

Page 25: Become a Better Engineer Through Writing

@kristinathaikristina.io

❓❓❓

🙎

That’s a lot!

Page 26: Become a Better Engineer Through Writing

@kristinathaikristina.io

My Journey

Page 27: Become a Better Engineer Through Writing

@kristinathaikristina.io

Page 28: Become a Better Engineer Through Writing

@kristinathaikristina.io

Newsletters

Page 29: Become a Better Engineer Through Writing

@kristinathaikristina.io

As of Oct 4, 2015

Website Stats

Page 30: Become a Better Engineer Through Writing

@kristinathaikristina.io

Realm Blog Contribution

Page 31: Become a Better Engineer Through Writing

@kristinathaikristina.io

Invites to Speak

Page 32: Become a Better Engineer Through Writing

@kristinathaikristina.io

Page 33: Become a Better Engineer Through Writing

@kristinathaikristina.io

Page 34: Become a Better Engineer Through Writing

@kristinathaikristina.io

Page 35: Become a Better Engineer Through Writing

@kristinathaikristina.io

Getting Started

Page 36: Become a Better Engineer Through Writing

@kristinathaikristina.io

Engineer Checklist

01020304

“Soft” skillsCommunicates well

Passion for learning

Learns from mistakes

Teacher/mentor

010203

Technical SkillsStrong coder

Domain expert

Problem solver

Page 37: Become a Better Engineer Through Writing

01Personal Journal✦ private place to record your technical challenges

📓

Page 38: Become a Better Engineer Through Writing

@kristinathaikristina.io

Personal JournalEasiest way - create a private online one ✦ Creating a private Tumblr ✦ Adjust privacy settings on wordpress.com

Offline Journals/Other writing platforms ✦ Day One app ✦ Evernote ✦ Atom/Sublime Text

Page 39: Become a Better Engineer Through Writing

02Developer Q&A Forums✦ places to get help with your technical problems ✦ knowledgable experts answer questions

Page 40: Become a Better Engineer Through Writing

@kristinathaikristina.io

Developer Q&A ForumsNumber 1 thing to keep in mind - community rules and communication styles on these forums

Getting started with Stack Overflow Getting started on Quora

Page 41: Become a Better Engineer Through Writing

03Blogging✦ public place to record your technical challenges

📖

Page 42: Become a Better Engineer Through Writing

@kristinathaikristina.io

BloggingBlogging platforms - hosted Getting started with Medium Github pages + Jekyll Ghost.org

Blogging platforms - self-hosted WordPress.org SyntaxHighlighter plugin Wordfence Security plugin

Page 43: Become a Better Engineer Through Writing

@kristinathaikristina.io

BloggingBlogging process 1. Decide on a topic 2. Lay the foundation/describe the context 3. Highlight various approaches 4. End with most optimal solution ✦ Or a question if you haven’t figured it out yourself

Page 44: Become a Better Engineer Through Writing

@kristinathaikristina.io

BloggingMotivation

Most people give up too early

Page 45: Become a Better Engineer Through Writing

@kristinathaikristina.io

BloggingMotivation

The insanely slow road to building a blog (and why most people give it up)

Page 46: Become a Better Engineer Through Writing

@kristinathaikristina.io

BloggingMotivation ✦ How do I keep up with it all: blogging, online life & more ✦ 5 ways to keep your blog content fresh ✦ How do I start a blog and keep it up? - Quora ✦ You should write blogs ✦ Software engineers should write

Page 47: Become a Better Engineer Through Writing

04Technical Tutorials✦ step-by-step technical walkthroughs that teach others how to do something ✦ usually has a working demo project

📝

Page 48: Become a Better Engineer Through Writing

@kristinathaikristina.io

Technical Tutorials Tutorial creation process 1. Decide on a topic ✦ Doesn’t have to be all encompassing ✦ Determine your audience ✦ Latest questions on Stack Overflow

2. Create working project/write working code samples

Page 49: Become a Better Engineer Through Writing

@kristinathaikristina.io

Technical Tutorials Tutorial creation process 3. Create step-by-step tutorial based on project/code samples ✦ Resource: how to write a programming tutorial ✦ My first tutorial ✦ Screenshots & copy and paste code snippets ✦ Starter code project

Page 50: Become a Better Engineer Through Writing

@kristinathaikristina.io

Technical Tutorials Tutorial creation process 4. Upload sample project to GitHub 5. Upload tutorial to website 6. Advertise on Twitter/other social media ✦ #iOSdev #swiftlang #watchOS ✦ Newsletter accounts & influential people ✦ Post to answer a Stack Overflow question

Page 51: Become a Better Engineer Through Writing

@kristinathaikristina.io

Tips for getting started

🎓

💻

👭

Don’t have to be THE expert

Check out your side projects

Find a blogging buddy

Page 52: Become a Better Engineer Through Writing

@kristinathaikristina.io

kristina.io/writing