Bootcamp Babies Can Make Apps Too
Erin PageWeb Application Developer at Reax
@ErinMPage
Leaving Bootcamp
• MVC
• CRUD
• Small Apps
• Small teams/projects
Employers hire bootcamp grads for their potential
What to Expect When You are Programming
Tools of the Trade
✦ User Stories
✦ Pair Programming
✦ Code Reviews
New Concepts
✦ State Machines
✦ Presentation Layer
✦ Data Modeling
Types of User Stories
• Features
• Improvements
• Bugs
Who Writes User Stories?
• Business Analysts
• Developers
• Designers
• Product Managers
• Whoever finds the bug
Estimation
• Broader == Less Accurate estimates
• Estimation is hard
• Estimation is even harder as a junior engineer
Acceptance Criteria
KanBan Boards
https://trello.com/b/SDiioiGj/bootcamp-babies-job-application-app
Tools of the Trade
• Pivotal Tracker
• Jira
• Team Foundation Server (TFS)
• Trello
When? Why?
• Troubleshooting
• Instructing
• New Features
• White boarding
• Intro to new project
Keys to Success
• Start typing!!
• Communicate a LOT
• Pair with different people
• Healthy Debate
• Take Breaks
What to Avoid
• Observing ONLY
• Assuming silence == understanding
Tools of the Trade
• ScreenHero
• TeamViewer
• Google Hangouts
• Apple Screen Sharing
• AppleTV
Pairing with a Senior Engineer
• Patience
• Be prepared
• Be respectful of time
• Local environment
Who reviews code?
• EVERYONE!
Junior Recaps Concepts
Senior Reviews Junior
Best Practices
• Critique, don’t criticize
• Before implementation
• Teaching moments
• Review often
• Ask questions
Conceptually Going Beyond CRUD
Presentation Layer
Task
• Reduce logic in views
https://github.com/drapergem/draper
Presentation Layer improves the “V” in MVC
• View Partials: Code reuse
• Remove view logic from models
• Remove business logic from views
Remove View Logic from Model
Conditionally Show a Header
Put them together…
Sometimes what we present is JSON, not HTML
API Entity
https://github.com/ruby-grape/grape-entity
Task
• I want applicants to see where they are in the application process
• I want admins to be able to perform some actions based on other actions
Junior Dev Solution
• multiple boolean fields
• long conditionals
State Machine Solution
https://github.com/aasm/aasm
Implement Business LogicAdmin can reject anytime during the process
Can only be hired IF have been interviewed
https://github.com/aasm/aasm
Applicant Views State
Admin Views State
Task
• Geocode the address
Junior Dev Solution
Other concepts
• Ternary Operators
• Inheritance
• Composition
• Asynchronous tasks
• Continuous Integration
• Session variables
• Unit Testing
• Test Driven Development
Summary
• Stimulate or Stagnate
• Always Be Learning
Thank You!@[email protected]