Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Things Maybe You Don't Know as a Newer Developer

Things Maybe You Don't Know as a Newer Developer

Recording: https://www.youtube.com/watch?v=i4egHyIV_vE

Talk given at Minnebar 17.

I’ve been working as a software developer for over 15 years, and I’m hoping to compile a useful list of general software development advice I wish someone had taught me from the start.

Daniel Lew

April 22, 2023
Tweet

More Decks by Daniel Lew

Other Decks in Programming

Transcript

  1. Sources • Google • Documentation • Books & articles •

    Classes • Talks • Samples • StackOver fl ow • Code exercises • Open source • Other people
  2. The XY Problem How do I get the last
 three

    characters
 of a fi lename? Did you mean, how 
 do you get 
 a fi le extension? https://commons.wikimedia.org/wiki/File:Two_young_people_demonstrating_a_lively_conversation.jpg
  3. Take your time • Don’t just copy + paste from

    StackOver fl ow • Understanding > working • Solution might suck • Easier to modify code later • Build your knowledge base
  4. Design • Rarely one correct design • Save time by

    avoiding perfectionism • Prefer two-way doors https://commons.wikimedia.org/wiki/File:Set_of_Crash_Bar_Doors.jpg
  5. Divide & Conquer • Multiple small tasks > one big

    task • Easier to develop • Easier to review code • Easier to change direction • Easier to merge code
  6. Acronyms • DRY - Don’t Repeat Yourself • YAGNI -

    You Aren’t Gonna Need It • KISS - Keep It Simple, Stupid
  7. KISS Example • More states -> more complex • Examples…

    • Enums > strings, numbers • Immutability > mutation • Pure functions > side e ff ects
  8. Being a good teammate Get stu ff done Don’t be

    a jerk Help others https://commons.wikimedia.org/wiki/File:Long_spoons_modern.jpg
  9. Test-driven development Verify un fi nished features Better architecture Faster

    development https://www. fl ickr.com/photos/katiekrueger/2351656805
  10. Testing Thoughts • Be tactical w/ test coverage • Flakey

    tests are worthless • Add manual testing tools
  11. Debugging • Print is okay • Debuggers are better •

    Debuggers are not (that) scary https://www.wannapik.com/vectors/67772
  12. Hitting deadlines • All estimates suck, so deadlines are often

    incorrect • Better answers than “work harder”: • Over-estimate • Cut scope • Let deadlines slip