Overview
Last updated
Last updated
Table of Contents:
Over the course of nine weeks (spanning from June 9, 2025through August 8, 2024), our Fellows will grow as autodidacts while expanding their technical portfolio through extensive self-study, blog writing, interview prep, ****and an independent project.
Much like an internship, Capstone will begin with a 4-week “Onboarding” phase, the main objective of which is learning and building quickly. Our fellows will have the chance to choose a new language and framework to learn on their own and will build skills of independence, autodidactism, and task management.
This Onboarding phase will prepare our fellows to build something useful in the 5-week “Project Build” phase. Our fellows will continue to develop their skills in system design, project management, and software engineering to build a truly impressive piece of software to add to their portfolio.
Capstone will culminate with an in-person Engineering Fair where they will get the chance to show off their projects and experience during Capstone to their fellow classmates, friends, family, and industry professionals.
Throughout Capstone, fellows will:
Practice autodidactism through independent research and the maintenance of a learning journal.
Develop technical communication through blog writing, behavioral interview preparation, and presentations on their Capstone experience.
Build projects that connect their passions to technology and that will serve as meaningful artifacts in their portfolio.
Practice skills and create artifacts to prepare them for technical and behavioral interviews.
Participate in job-seeking cycles.
Take intellectual risks by diving into new territory
Feel as though they are on the job.
Arriving on time every morning to be prepared for the first meeting of the day
Develop and practice their “professional persona”.
Email/Slack requests for help/collaboration. Shifting gears from writing in a more personal, less formal tone to writing more “professionally”
In order for fellows to land jobs, they need to transform from students to impressive software engineering candidates. The only way to do that is for our fellows to become masters of their domain.
Mastery in software engineering means supreme confidence in one’s ability to build software using a given tech stack and to discuss technical concepts, decisions, and tradeoffs relating to their work.
During Capstone, Marcy will offer two “tracks” to achieve domain mastery:
Core Mastery: Fellows will return to the most challenging parts of the core curriculum with the goal of mastering the PERN stack by completing all technical assignments, projects, and assessments.
During the onboarding phase, fellows will demonstrate their understanding of key technical concepts, decisions, and tradeoffs relating to the PERN stack.
During the project-build phase of Capstone, fellows will build a full-stack application using the PERN stack while incorporating one new framework, library, or API.
Independent Research: Fellows who already feel proficient with the core curriculum will extend their skillset by learning a new programming language and a framework, library, or tool using that language.
During the Onboarding phase, fellows will demonstrate their ability to learn new technologies and quickly implement their learnings.
During the Project Build phase, fellows will build an impressive application that demonstrates their learnings in the technology area of choice while incorporating one new framework, library, or API.
Python → Flask/Django (Learn a versatile backend language + framework)
Python is a massively popular programing language that can be used for pretty much anything from web development, to data analysis, to automation, to artificial intelligence. Flask and Django are the most popular web development frameworks for Python (think Express for Python).
Recommended if you are interested in full stack development (with a slightly more backend focus) and want to expand the breadth of your knowledge of, as well as compare and contrast, full stack technologies.
Java → Spring (Learn an "Enterprise" backend language + framework)
Java is right behind JavaScript and Python in terms of popularity and it is used for a variety of applications. Spring is the most popular framework for building Web APIs.
Recommended if you are interested potentially in Android mobile development or “Enterprise”-level development.
C# → ASP .NET (Learn an "Enterprise" backend language + framework)
Java is right behind JavaScript and Python in terms of popularity and it is used for a variety of applications. Spring is the most popular framework for building Web APIs.
Recommended if you are interested potentially in Android mobile development or “Enterprise”-level development.
TypeScript → Next.js (Go deeper into JavaScript web development)
Next.js + Typescript provides a more professional JavaScript full stack experience with type safety and performance optimizations
Recommended if you want to dive deeper into modern full stack Web Development
TypeScript → React Native (Learn mobile with JavaScript)
React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities.
Recommended if you are interested in making mobile applications or applications that go beyond the browser.
Choose your own adventure!
Recommended only for fellows who have regularly demonstrated success in the fellowship and have a track record of autonomy, self-efficacy, and accountability.
Throughout Capstone, fellows will be required to complete the following deliverables.
Daily / Weekly Deliverables
Daily Learning Log/Journal: Fellows will maintain a learning log or journal throughout the duration of Capstone. They can record their progress, challenges faced, key takeaways, and new concepts learned. Encourage them to reflect on their learning experiences and identify areas for improvement
Regular entries: Fellows should maintain a log or journal documenting their learning progress throughout the capstone project.
Reflection and analysis: Encourage them to reflect on challenges faced, concepts learned, and their growth as a learner.
Specific examples: Include specific examples or code snippets that demonstrate their understanding and application of new concepts.
Personal insights: Encourage fellows to share personal insights, connections made, and future areas of exploration.
Learning Resources: document tutorials, documentation, articles, etc… that you have utilized to learn the topics.
Behavioral Interview & Technical Communication Recordings: Fellows will record themselves answering behavioral technical interview questions.
Preparation and Practice: During their weekly behavioral interview sessions, fellows will have a chance to learn concrete skills related to technical communication in behavioral interviews and practice those skills with each other.
Recordings: Most (if not all) of the seminars will require fellows to record themselves giving an answer to a behavioral technical interview question. These recordings will be anywhere from 1-5 minutes long.
Feedback: Fellows will have multiple opportunities to receive feedback on their recordings to encourage growth and improvement.
Onboarding Deliverables:
** Onboarding Learning Plan:** Submit a learning plan outlining a new technology or topic you wish to explore during the Onboarding phase of Capstone that will set you up for success for the Project Build phase of Capstone.
The learning plan should include:
Project Overview: A 1-3 sentence overview of the project you hope to build with the new technology, who the user is, and why they would use it.
Clear Motivation: Why do you want to research this topic? What personal or user pain point does it address? How does it reflect your goals as a developer?
Tech Stack: What languages, frameworks, and tools/libraries you plan on using to build the project. Include plans for frontend, backend (if applicable), database (if applicable), and APIs (e.g. OAuth, Google Maps, etc…)
Learning plan: Outline a structured plan detailing how you intend to explore and learn about the chosen topic or technology over the next 4 weeks. Identify documentation, online courses, YT videos, textbooks, tutorials, and articles you intend to use.
Success Criteria: What would make this learning plan a success? How will you know it’s complete? How will you demonstrate you have properly learned your chosen tech stack
Easy LeetCode Problem In New Language: Submit a screenshot of the completion of an Easy- or Medium-level LeetCode problem in your chosen Capstone language
Onboarding Blog: Fellows will write a blog post reflecting on their learnings during the first phase of Capstone. They will then publish that blog post on Medium!
Technical Details: **Fellows should explain the 3-5 most fundamental aspects of a programming language or framework. Explanations should include definitions, analogies, and examples. Core Mastery fellows should write their blog on React.
Comparison: **Fellows should compare and contrast the chosen language/framework with alternatives and how a developer may choose which language/framework is right for them to learn.
Tone and Personality: Fellows should show their writing personality by writing these blogs. Write as if your audience is a student who is just beginning their learning journey, and you want to share your experience and wisdom.
Professionalism: Fellows will publish their blogs on Medium and publish them to their LinkedIn
Onboarding Teaching Demo Application: Fellows will create a simple application to teach others the basics of the tech stack they are learning. Share projects in a science fair-like demo during the final weekly “Geek Out” of Onboarding. This project will serve as the foundation for their final Capstone project.
Key Features: Consider the most essential features of the chosen language/framework and ensure that your application highlights these features. Make sure to use documentation to follow best practices.
Proof-of-Concept: The application does NOT need to be fully featured. The purpose of this application is to demonstrate that you understand and can implement the key features of the language/framework. It can serve as a proof-of-concept for the most basic features of your intended final Capstone project but it only needs to lay the foundation.
Simplicity: The application should be simple enough that you can explain it clearly to a new programmer and have an interesting conversation about how to extend the application with more advanced programmers. You should know every nook and cranny of the application’s architecture.
Demo: During the final week of the Onboarding phase, you will get to share with your classmates what you’ve learnings over the last four weeks in an in-house engineering fair. This will be a great opportunity to get a taste of what the final engineering fair will look and feel like!
Project Build Deliverables:
Project Planning Documents: Fellows will create a product spec sheet, as well as wireframes and an ERD if applicable, outlining the technical details of their application. Due at the end of the first week of Phase II.
Product Spec Sheet: Includes an overview of the product (the what, who, and why), key user stories, and technical requirements for implementing each user story.
ERD: Demonstrates the structure of the data of your application (if applicable).
Mockup/Wireframe: Provides a visual overview of the user interface (if applicable).
Capstone Project & Presentation: Fellows will design and implement a small project that showcases the capabilities and potential of the technology they focused on during the onboarding phase.
Framework / Library Deep Dive: Fellows will continue to research their chosen research topic, diving deeply into a specific framework/library that implements that topic.
Project Build: They will design and implement a small project that showcases the capabilities and potential of the chosen technology or concept.
Something New: Fellows will continue to demonstrate their ability to learn and build by incorporating one new library, framework, API, or database into their proejct.
Documentation: The project should include documentation and a demonstration highlighting the unique features and benefits of the application, clear instructions on how to install and use the repository, and guidance on how to navigate the codebase.
Project Presentation: During the final week of Capstone, project teams must be prepared to present their projects in a science-fair style event.
Onboarding Learning Journal
Onboarding Learning Plan:
Onboarding Teaching App
Onboarding Blog
Languages:
https://medium.com/@magdalenamgero/typescript-101-an-overview-e97ab6403e66
https://medium.com/@gabevaughninn/golang-for-javascript-developers-cf82a7a46838 (part 1)
https://blog.stackademic.com/golang-for-javascript-developers-pointers-structs-interfaces-96b03239f1f3 (part 2)
https://dev.to/kachiic/learn-python-as-a-javascript-developer-422j
Frameworks
https://medium.com/@moraneus/python-flask-a-comprehensive-guide-from-basic-to-advanced-fbc6ec9aa5f7 (15 minute read)
https://medium.com/@mutahirmanzoor1/getting-started-with-spring-boot-a-beginners-guide-9dcd38c2cd8c (4 minute read)
Product Spec Sheet
Capstone Presentations
Fellows participating in the Independent Research Track may choose from one of the pre-approved tech stacks below (chosen based on the )