An 8 Week Coding Curriculum
This article outlines a curriculum that can be used by a senior programmer to mentor and train a learner from scratch. This curriculum is heavily applied with a focus on web development.
As of 2020, I recommend learning React for reasons outlined here. I recommend learning SQL over NoSQL for employability reasons. I recommend following the course from Codecademy. The learner should complete two or three sections in that course per week, and the senior engineer should follow along. Once the learner has completed Codecademy, they should achieve Pluralsight certification, prepare for interviews, and interview when they are ready.
Here is the value that individual training with a senior engineer can bring:
- Content curation. Codecademy is great today, but how did you know that? Because you trust me as an engineer, and I recommended it to you. Likewise, next year I may recommend something else, and likewise when we consider Pluralsight certification compared to alternatives.
- Personalized help while learning. Codecademy is great, but having an expert engineer to help when you run into roadblocks is even better.
- Professional references and interview preparation. References are incredibly valuable for those new to programming as an industry. This is even more effective if the senior engineer can refer the learner into an industry role where the engineer has a personal contact. It's a similar story with interview preparation. There are various online services that may help with interview preparation, but these are general-purpose preparatory services. A senior engineer can additionally provide specific advice regarding the companies they have worked at.
Below is the recommended course. Each numbered item in the list is a week. The senior engineer should expect to spend two hours per week with the student. 30 minutes to an hour and a half will be a regular meeting with the learner, and the remaining time will be answering questions by email and other work which is not scheduled weekly.
- Get a web page published using GitHub pages during the first week.
- The learner sets up accounts with Stack Overflow, GitHub, and Codecademy.
- The learner installs Git, Node, and VS Code.
- The learner creates a GitHub repository, configures it for GitHub Pages, clones Create React App, edits the home screen text in some way, and pushes the code which publishes a page.
- After the session, the learner should start on the Codecademy Web Development path.
- Ideation session for a custom project.
- Begin by discussing the learner's background and career interests.
- Come up with a GitHub Pages web site project which relates to this.
- Execute broad visioning, ideation grouping, idea narrowing, mapping features to pages, page visual design, and writing out user stories. Don't estimate at this time.
- Discuss design and product owner job families. Mention that this is a regular practice for them.
- If you have time, work on the project a bit.
- Custom project working session.
- Check on the learner's Codecademy progress and help where needed.
- Work together on the custom project.
- Custom project working session.
- Same as 3.
- Don't worry about testing yet.
- Ensure the following topics have been covered to some degree by this point:
- TypeScript
- Components
- Services
- State
- HTTP requests, promises, and observables
- Back-end, Front-end, and Infrastructure
- Agile Deep-Dive
- Review design and product owner job families.
- Discuss tester and scrum master job families.
- Review Agile ceremonies, two pizza rule, and SAFe scrum-of-scrums.
- Review JIRA and practice estimation with T-Shirt Sizing, Points, and Hours.
- Testing and Peer Review
- Review Trello, GitHub Projects, and GitHub Issues. Compare with JIRA.
- Branch dev and a feature branch from master. Discuss dev and master.
- Write two unit tests and submit pull requests for them.
- The senior engineer should separately pull requests with a noticeable, minor problem, review with the learner and let them catch it.
- Both PRs should be merged and the learner should see how to get the latest from dev.
- The learner should prepare a resume for review the following week.
- Interview Prep
- Spend up to 15 minutes reviewing anything the learner would like.
- Hold a 30-minute mock interview.
- The senior engineer should assemble a review list for the learner if any topics need to be reviewed.
- The learner should attempt PluralSight certifications this week unless they were already completed.
- The senior engineer should review and recommend revisions to the learner's resume as needed.
- Interview Prep and Working Session
- Repeat 7.1 and 7.2.
- If desired, low-pressure collaboration on the project, otherwise early release.
- If urgent, the learner can begin applying for jobs. It is recommended, however, that the learner spends another 4-6 weeks in self-study. This way they will have at least three months of experience when they begin applying.
- The senior engineer should offer to provide quick check-ins every other week for the next 2 months. These check-ins can be used to assess portfolio and interview readiness and to provide general help for any reason.
- The engineer can provide additional tips to help the learner stand out during the interview process. Four great examples would be:
- Help the learner find a relevant meetup.
- Help the learner sign up for a hackathon.
- Help the learner pick a second project for their portfolio.
- The learner can try to learn redux on their own. This isn't a required skill for react development, but it will help them stand out and it will be good for the learner to try mastering a new skill on their own.