Shared Apprenticeship Skills Checksheet, v1.1
APPRENTICE NAME _________________________
MENTOR NAME _____________________________
APPRENTICE START DATE ___________________
Print out this skills sheet, and use it to guide the general studies of your Vokal apprenticeship. Have your mentor sign off by placing their initials next to each item. Sign-offs can involve pair-programming, verbal Q&A, observation on a project, or any other means.
Make sure to also print out the discipline-appropriate skills checklist:
Bullet points are suggestions of material to cover in a sign-off, along with any relevant reading material or tutorials for particular items. Example assignments are available in the Labs.
All Engineering Apprentices
Both QA and Software engineer apprentices of all disciplines should complete this section:
_____ Agile philosophies and the Vokal Workflow
- Read the estimation guidelines
- Iterations (stories, code review, testing)
- Daily standup
- Development cycles (Plan, Design, Code, Compile, Test)
- Jira story lifecycle
- Scrum section on Vokal Wiki
_____ Google Apps
- Scheduling events with people and rooms
- Google Hangouts instant messaging
- Google Drive (access and share files)
- Gmail
- Vokal Wiki
_____ Git
- Managing remotes
- Dealing with conflicts (diff tools)
- Resetting changes
- Branching
Useful reading:
- Official Git documentation
- Learn Git Branching - this is interactive and REALLY useful for understanding stuff like merging and cherry-picking.
- Pro Git complete book
All Software Engineering Apprentices
All Software engineers must complete this section, regardless of discipline.
_____ HTTP
- Understand HTTP methods
- Understand HTTP headers
- Understand HTTP status codes
- Create a basic HTTP server (language / framework of your choice)
Useful reading:
_____ General Object-Oriented Concepts
- Encapsulation
- Inheritance
- Polymorphism
- Abstraction
- DRY (don’t repeat yourself)
Useful reading:
_____ General Style and Documentation
- Documentation
- Search and use effectively
- Stack Overflow
- Vokal Code Review process
- Review code effectively
- Have your code reviewed
_____ Data serialization
- JSON
- Understand JSON structure
- Parse JSON from a 3rd party server
- XML
- Understand XML structure
- Parse XML from a 3rd party server
- YAML
- Understand YAML structure
- Create a YAML file for your discipline's CI server.
Validators:
- http://jsonlint.com/
- http://jsonformatter.curiousconcept.com/
- http://validator.w3.org/ (XML)
- http://yamllint.com/
_____ Data modeling
- Difference between relational, key-value, and document-based databases
- Modeling in a relational sense (primary keys, foreign keys, normalization)
- Modeling in a document sense (MongoDB)
- Modeling in a key-value sense (Redis/NoSQL)
Useful Reading:
- An Incredibly Brief Introduction To Relational Databases - targeted at Ruby devs, but the diagrams are useful
- Database Normalization - super-old, but still really helpful in grasping the concept.
- MongoDB's take on Document Databases
- The MongoDB Data Model
- WTF is NoSQL?
- Distributed Hash Tables
I hereby certify that the above named apprentice has completed all shared skill requirements for the Vokal Apprenticeship program.