Become a Better Engineer Through Writing

1,388 views

Published on

Tips on how you can use various forms of writing to advance your engineering skills. This talk content is primarily targeted towards iOS developers, but can be used for any software engineering medium.

Published in: Career
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,388
On SlideShare
0
From Embeds
0
Number of Embeds
1,063
Actions
Shares
0
Downloads
9
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Become a Better Engineer Through Writing

  1. 1. @kristinathaikristina.io Kristina Thai, iOS software engineer Become a Better Engineer
 Through Writing
  2. 2. @kristinathaikristina.io Hi, I’m Kristina Thai ! 📱 🌶⌚
  3. 3. @kristinathaikristina.io What makes a good engineer?
  4. 4. @kristinathaikristina.io Engineer Checklist* 01 02 03 04 “Soft” skills Communicates well Passion for learning Learns from mistakes Teacher/mentor * not a comprehensive list 01 02 03 Technical Skills Strong coder Domain expert Problem solver
  5. 5. @kristinathaikristina.io What does this have to do with writing?
  6. 6. @kristinathaikristina.io
  7. 7. @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
  8. 8. @kristinathaikristina.io 4 writing channels that help engineers
  9. 9. @kristinathaikristina.io 📓 Personal Journal ❓ Question & Answer Forums 📖 Blogging 📝 Technical Tutorials
  10. 10. 01 Personal Journal ✦ private place to record your technical challenges 📓
  11. 11. @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
  12. 12. 02 Developer Q&A Forums ✦ places to get help with your technical problems ✦ knowledgable experts answer questions ❓
  13. 13. @kristinathaikristina.io
  14. 14. @kristinathaikristina.io
  15. 15. @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 skillsDomain expertProblem solverCommunicates wellTeacher/mentor
  16. 16. 03 Blogging ✦ public place to record your technical challenges 📖
  17. 17. @kristinathaikristina.io http://swift.ayaka.me/
  18. 18. @kristinathaikristina.io http://nshipster.com/
  19. 19. @kristinathaikristina.io http://techblog.netflix.com/
  20. 20. @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
  21. 21. 04 Technical Tutorials ✦ step-by-step technical walkthroughs that teach others 
 how to do something ✦ usually has a working demo project 📝
  22. 22. @kristinathaikristina.io https://www.natashatherobot.com
  23. 23. @kristinathaikristina.io https://www.raywenderlich.com/
  24. 24. @kristinathaikristina.io Technical Tutorials Benefits ✦ Best to build reputation ✦ Reinforces learning ✦ Build full projects Challenges ✦ Even MORE time 
 & commitment ✦ Find unique & undiscovered
 solutions 📝 Engineer Check Coding skills Domain expert Problem solver Communicates well Passion for learning Learn from mistakes
Teacher/mentor
  25. 25. @kristinathaikristina.io ❓❓❓ 🙎 That’s a lot!
  26. 26. @kristinathaikristina.io My Journey
  27. 27. @kristinathaikristina.io
  28. 28. @kristinathaikristina.io Newsletters
  29. 29. @kristinathaikristina.io As of Oct 4, 2015 Website Stats
  30. 30. @kristinathaikristina.io Realm Blog Contribution
  31. 31. @kristinathaikristina.io Invites to Speak
  32. 32. @kristinathaikristina.io
  33. 33. @kristinathaikristina.io
  34. 34. @kristinathaikristina.io
  35. 35. @kristinathaikristina.io Getting Started
  36. 36. @kristinathaikristina.io Engineer Checklist 01 02 03 04 “Soft” skills Communicates well Passion for learning Learns from mistakes Teacher/mentor 01 02 03 Technical Skills Strong coder Domain expert Problem solver
  37. 37. 01 Personal Journal ✦ private place to record your technical challenges 📓
  38. 38. @kristinathaikristina.io Personal Journal Easiest 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
  39. 39. 02 Developer Q&A Forums ✦ places to get help with your technical problems ✦ knowledgable experts answer questions ❓
  40. 40. @kristinathaikristina.io Developer Q&A Forums Number 1 thing to keep in mind - community rules and communication styles on these forums Getting started with Stack Overflow Getting started on Quora
  41. 41. 03 Blogging ✦ public place to record your technical challenges 📖
  42. 42. @kristinathaikristina.io Blogging Blogging platforms - hosted Getting started with Medium Github pages + Jekyll Ghost.org Blogging platforms - self-hosted WordPress.org SyntaxHighlighter plugin Wordfence Security plugin
  43. 43. @kristinathaikristina.io Blogging Blogging 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
  44. 44. @kristinathaikristina.io Blogging Motivation Most people give up too early
  45. 45. @kristinathaikristina.io Blogging Motivation The insanely slow road to building a blog (and why most people give it up)
  46. 46. @kristinathaikristina.io Blogging Motivation ✦ 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
  47. 47. 04 Technical Tutorials ✦ step-by-step technical walkthroughs that teach others 
 how to do something ✦ usually has a working demo project 📝
  48. 48. @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
  49. 49. @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
  50. 50. @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
  51. 51. @kristinathaikristina.io Tips for getting started 🎓 💻 👭 Don’t have to be THE expert Check out your side projects Find a blogging buddy
  52. 52. @kristinathaikristina.io kristina.io/writing
  53. 53. @kristinathaikristina.io Thanks! me@kristina.io

×