Skip to content

Latest commit

 

History

History
186 lines (118 loc) · 8.58 KB

File metadata and controls

186 lines (118 loc) · 8.58 KB

The Plan 🚀

Acceleration

Your first few months are spent learning. You will be given a mentor (yes your very own mentor 💁), you and your mentor will primarily spend time going through a few learning areas which we feel may be of value to you during your time spent with us.

Working on these areas and skills may require you to do a lot of katas which will help you hone your craft. The idea here is daily, simple but increasingly more difficult problems, less so about the actual knowledge and more about the way of thinking around a problem and getting used to your tools.

     Be patient during this time as you the student will soon be a master. 

After working through these areas it will be up to you and your mentor to decide when you are ready to go on your crew rotations.

Crew Rotations

During this phase of your apprenticeship you will have the chance to spend a mininum of 2 months in a team as a fully contributing member 🙌. But don't you worry at this point we will be assigning you a new mentor in your crew. Your Crew mentor will be there to help you get up and running in the team.

Your mentor

Your mentor is there to help you in any area you may feel you need assistance with to hone your craft with us. We have a few getting started tips for your mentor to which they will take you through, but ideally we would encourage you to pull on them when you require specially dedicated time to tackle a specifc problem. They probably will be involved with their teams to so don't go to hard on them 😉.

How am I doing?

You will meet with your mentor once a week to talk through your progress.

You are encouraged to create a list of the goals you have for your apprenticeship on an overall basis, as well as to maintain a weekly list of smaller, specific goals. You should work with your mentor to set these and track your progress against them.

When you switch mentors, you will have a Mentor Hand-off meeting. This is a meeting with both mentors to talk through the previous stage of the apprenticeship and the plan for the stage.

Pairing during the week

You will work independently or collaborate with other apprentices for the acceleration stage for at least 3 days of the week as decided by you and your mentor. The other 2 days we encourage you to get involved with the team your mentor is in and solve those real world problems.

Pairing is the fastest and most effective way to learn, so it should be a priority for you and your mentor. However, do not expect to pair 100% of the time. One particularly effective method of pairing is Ping-Ponging. The idea is for Person 1 to write a test, Person 2 writes the code to make the test pass. Then Person 2 writes the next test and Person 1 writes the code to make the test pass. Rinse, repeat.

Your mentor will take you though all of this.

We also encourage you to pair with other apprentices (designer/developer teams work great) as well as with other employees who are not your mentor. Everyone on the team loves teaching and learning, and they'd love to teach and learn from you. A good way to do it is to announce during standup that you're looking for someone to pair with, and if people have free time (usually only Friday's, since that's when everyone gets a break from product work), they'll tell you.

Self-guided learning

Whenever appropriate or applicable to your work, you should take time to learn. This could be watching videos, reading a book or doing a brown bag. We encourage this! We all learn in different ways and at different speeds so do what works to make you AWESOME 🔥.

Books 📚

Here is a list of a few books that will definitely add some value to your career. Pick one and spend some time reading it, maybe even start a book club 🙋. All these books should be available in the local office library.

  • Apprenticeship Patterns: by Dave Hoover
  • The Passionate Programmer: by Chad Fowler
  • The Software Craftsman: by Sandro Mancuso
  • Clean Code: by Uncle Bob
  • Pragmatic Programmer: by Andy Hunt
  • Test Driven Development: By Example: Kent Beck
  • Refactoring: by Martin Fowler
  • Working Effectively with Legacy Code: by Michael Feathers
  • Extreme Programming Explained: by Kent Beck
  • Coding with the wisdom of the crow: by Mark Pearl
  • Domain Driven Design: by Eric Evans

Workshops

We encourage learning. We have workshops, Communities of Practies and Brown Bags.

Ask your mentor to add you to the Slack channels to be in the know.

Getting the Most Out of Your Apprenticeship

Expectations

Your apprenticeship is an opportunity to grow. The more you put into it, the more you will get out of it.

There is some structure to guide you through the program and people available to help you along the way, but the engine of this experience is your effort. Learning should take up some of your evenings/weekend time.

You should expect this to be a mentally-intense period of your life where you are learning a great deal. Hard work pays off. 🏆

Breakable Toy

A Breakable Toy is a side project you are excited and passionate about.

This project should be an anchor to your learning, allowing you to raise new questions and a place to apply new skills/techniques. To get the most out of it, you should put the code in GitHub and give your mentors and apprentice cohorts access to the project. You should also deploy it to any free platform of asking about the internal options available.

There is no expectation for other apprentices to contribute to your project, but everyone should have access and input is welcome.

A team that has a designer apprentice and a developer apprentice has worked very well for both designer and developer in the past. Don't be afraid to ask if someone wants to work with you!

Feedback

It's not easy, but you should get comfortable asking for and receiving feedback. People are nice and none of it is personal. It's a great way to develop professionally.

Tools

TODO

Laptop setup

Your mentor will help you get your laptop set up.

Logins

We try to use SSO for as much of what we can and your AD account should be all ready for you when you start, so if you have any issues just ask. If ever confused on how to login somewhere, always try your domain account details first.

GitHub

Create a GitHub account and use this as your place to work on all things during this apprenticeship. It will also help you share code with your peers and build your portfolio.

Slack

We use Slack constantly. Slack has many channels, each with a specific purpose:

  • #general: Discuss things that interest everyone. You should be in this room whenever you are working.
  • #learning, #cop-frontend, #cop-tdd, #ask-a-dev: Discussions of code and all things software. When asking a question, pasting your code is encouraged.
  • #random: Funny links and off-topic discussions.
  • Most of the other rooms are specific to teams or a particular topic and are named after what purpose they serve.

Channels - everyone is welcome in every channel.

Ask your mentor to help you get setup with Slack, the url should be yourorginisationname.slack.com

Community

Part of your apprenticeship is learning to be part of a development community. This could be a Meetup Group, company, or open source project team. Hit up your local teammates and see what's good.

At some point you should be sharing your learnings with the wider community.

Meeting People

We are a friendly bunch and we'd like to get to know you better! That being said, it's easy to feel intimidated or uncomfortable in a new environment. Some things you should try:

  • Go on coffee walks: we often have informal "coffee walks" where people go for a walk (coffee optional) and chat about random topics.

  • Go get lunch/coffee/breakfast with anyone in the office.

  • Suggest a social event for your team.

Improve The Apprentice Program

We encourage you to propose changes to the apprentice process, including hiring, onboarding, and anything else that you think could be better. We are all constantly trying to do a better job and we welcome feedback.

As an apprentice, you have much better insight into what could make the process better for you than does someone who's been working here for a while.

Feedback is always, always appreciated on everything. If you have feedback on the overall apprentice program, please discuss the issue with your mentor, or open an issue on this repository.