become a better engineer through writing

Post on 21-Apr-2017

1.581 Views

Category:

Career

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

@kristinathaikristina.io

Kristina Thai, iOS software engineer

Become a Better EngineerThrough Writing

@kristinathaikristina.io

Hi, I’m Kristina Thai!

📱 🌶⌚

@kristinathaikristina.io

What makes a good engineer?

@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

@kristinathaikristina.io

What does this have to do with writing?

@kristinathaikristina.io

@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

@kristinathaikristina.io

4 writing channels that help engineers

@kristinathaikristina.io

📓 Personal Journal

❓ Question & Answer Forums

📖 Blogging

📝 Technical Tutorials

01Personal Journal✦ private place to record your technical challenges

📓

@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

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

@kristinathaikristina.io

@kristinathaikristina.io

@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

03Blogging✦ public place to record your technical challenges

📖

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

@kristinathaikristina.io

http://nshipster.com/

@kristinathaikristina.io

http://techblog.netflix.com/

@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

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

📝

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

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

@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

@kristinathaikristina.io

❓❓❓

🙎

That’s a lot!

@kristinathaikristina.io

My Journey

@kristinathaikristina.io

@kristinathaikristina.io

Newsletters

@kristinathaikristina.io

As of Oct 4, 2015

Website Stats

@kristinathaikristina.io

Realm Blog Contribution

@kristinathaikristina.io

Invites to Speak

@kristinathaikristina.io

@kristinathaikristina.io

@kristinathaikristina.io

@kristinathaikristina.io

Getting Started

@kristinathaikristina.io

Engineer Checklist

01020304

“Soft” skillsCommunicates well

Passion for learning

Learns from mistakes

Teacher/mentor

010203

Technical SkillsStrong coder

Domain expert

Problem solver

01Personal Journal✦ private place to record your technical challenges

📓

@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

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

@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

03Blogging✦ public place to record your technical challenges

📖

@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

@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

@kristinathaikristina.io

BloggingMotivation

Most people give up too early

@kristinathaikristina.io

BloggingMotivation

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

@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

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

📝

@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

@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

@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

@kristinathaikristina.io

Tips for getting started

🎓

💻

👭

Don’t have to be THE expert

Check out your side projects

Find a blogging buddy

@kristinathaikristina.io

kristina.io/writing

@kristinathaikristina.io

Thanks!me@kristina.io

top related