Slide 1

Slide 1 text

Things Maybe You Don't Know as a Newer Developer Dan Lew (Yes, that’s me)

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Getting a Job

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Recommendations Mentor Meaty Meet-y?

Slide 6

Slide 6 text

Learning

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Sources • Google • Documentation • Books & articles • Classes • Talks • Samples • StackOver fl ow • Code exercises • Open source • Other people

Slide 9

Slide 9 text

https://www. fl ickr.com/photos/43810158@N07/8426525097

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Development

Slide 13

Slide 13 text

Software development is a non-linear process

Slide 14

Slide 14 text

Planning Sketch Discuss Prototype https://www. fl ickr.com/photos/54327699@N02/8108596621

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Divide & Conquer • Multiple small tasks > one big task • Easier to develop • Easier to review code • Easier to change direction • Easier to merge code

Slide 17

Slide 17 text

Hiding Work Avoid fi nal hookup https://www. fl ickr.com/photos/43053584@N00/2395215000 Feature fl ags

Slide 18

Slide 18 text

Acronyms • DRY - Don’t Repeat Yourself • YAGNI - You Aren’t Gonna Need It • KISS - Keep It Simple, Stupid

Slide 19

Slide 19 text

KISS Example • More states -> more complex • Examples… • Enums > strings, numbers • Immutability > mutation • Pure functions > side e ff ects

Slide 20

Slide 20 text

Code Review Focus API Bugs Architecture Maintainability Readability Tests Less important More important

Slide 21

Slide 21 text

Code Reviews Embrace Questions Discussions Compliments Avoid Code style Syntax Preferences Nitpicks

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Testing https://commons.wikimedia.org/wiki/File:Laboratory_scientist_conducts_an_experiment_with_a_Rotary_evaporator.jpg

Slide 24

Slide 24 text

Two Testing Styles https://www. fl ickr.com/photos/mike_grauer/16898327310/ Manual https://commons.wikimedia.org/wiki/File:Multiple_Server_.jpg Automated

Slide 25

Slide 25 text

Why automate? Safer Refactoring Fast Repeatable https://www. fl ickr.com/photos/14246866@N05/2207257172

Slide 26

Slide 26 text

Test-driven development Verify un fi nished features Better architecture Faster development https://www. fl ickr.com/photos/katiekrueger/2351656805

Slide 27

Slide 27 text

Testing Thoughts • Be tactical w/ test coverage • Flakey tests are worthless • Add manual testing tools

Slide 28

Slide 28 text

Debugging • Print is okay • Debuggers are better • Debuggers are not (that) scary https://www.wannapik.com/vectors/67772

Slide 29

Slide 29 text

Releasing

Slide 30

Slide 30 text

Hitting deadlines • All estimates suck, so deadlines are often incorrect • Better answers than “work harder”: • Over-estimate • Cut scope • Let deadlines slip

Slide 31

Slide 31 text

Avoid releasing… When fatigued In a rush Before weekends

Slide 32

Slide 32 text