Become a Better Engineer Through Writing
-
Upload
kristina-thai -
Category
Career
-
view
1.580 -
download
4
Transcript of Become a Better Engineer Through Writing
@kristinathaikristina.io
Kristina Thai, iOS software engineer
Become a Better EngineerThrough 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
@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
📓 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
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
@kristinathaikristina.io
@kristinathaikristina.io
@kristinathaikristina.io
@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
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