Key Performance Indicators

Our mission requires providing programs, materials and support that contribute to a set of attributes and key performance metrics |

🔍Belief that software engineering and the tech industry is an achievable and desirable career that is worth pursuing - Most students in high school and college have a very limited understanding of software engineering and the surrounding landscape. Provide each student a clear understanding of why a career in software is a achievable and desirable goal for them specifically as an individual. More importantly provide them the support, network and mentors required to help them along that path.

🔍Confidence in taking specific actionable steps towards that career path - Provide students specific materials and steps towards building out a resume, how to apply to roles and get great internships and roles, and understanding which roles and areas they want to explore and develop. This includes offering virtual career fairs and other opportunities to get their foot in the door at tech companies.

Network and relationships. Taking steps to strengthen their network and have touchpoints with other students on this path and software engineers in the industry

Internship search. A clear understanding of and support for running a robust internship search and employing necessary strategies that help them get access to phone screens

Interview readiness. The necessary preparation, techniques, and confidence to pass technical interviews at various difficulty levels once they receive interviews.

🔍Technical Mastery - Provide students the training for technical mastery that enables us to accurately evaluate student skill levels and personalize their growth plans.

🔍Skilled in technical problem solving and interviewing - Provide students a clear path to mastering the foundations of software engineering including algorithms, complexity analysis, design, debugging, and technical communication. This is also about making sure students feel well-prepared to succeed in technical interviews at tech companies world-wide including Silicon Valley.

🔍Building products in real-world tech stacks - Provide students the skills and specific experience they need to build useful products, and play key roles on the job at tech companies after they accept a job. This also includes empowering students to start their own companies and design their own products.

🔍Developing leadership qualities, and develop mastery through service - Provide students a clear understanding of how to develop effective leadership skills, clear presentation and communication, and learn to attain mastery through the teaching and mentorship of others.

Domain-specific confidence. Practical knowledge and experience in at least one tech stack in order to be prepared and confident in their internships

Belief that software engineering and the tech industry is an achievable and desirable career that is worth pursuing

A student's path starts with them choosing a goal, and working towards that goal even when things are tough. This starts with cultivating a student's understanding and motivation to pursue a career in the tech industry. This also includes providing them a network of professional mentors and peers that provide a support system as they work towards their goals.

Our programs provide this aspect with the following:

  • Materials providing an overview of what it's like as a software engineer

  • Professional mentors helping out with labs and answering questions

  • Industry Q&A panels around specific subjects so students get questions answered

You can see just a small part of the materials available to students around this in our software engineering - common questions answered guide.

Confidence in taking specific actionable steps towards that career path

The next step in a student's path is understanding how to actually get started developing the skills and confidence needed to become a software engineer. A big part of this is understanding the different roles available and starting early finding their first internship.

Our programs provide this aspect with the following:

  • Resume review assistance where we help students create or improve their resumes with materials and 1:1 sessions. Check out one of our guides here.

  • Providing specific instructions on how to begin their internship search by finding and applying to companies. Check out one internship search guide here.

  • Providing a map to various roles in the tech industry, to help students understand what types of roles and skills they want to explore and develop. You can see our software engineering role map for more details.

  • Providing access to our special CodePath virtual career fairs where students are directly introduced to companies hiring interns and college grads for 1:1 meetings via Zoom.

Technical Mastery

This student technical mastery framework enables us to accurately evaluate student skill levels and personalize their growth plans. There are six key areas to software fundamentals:

  • Algorithms - Deciding and defining algorithms

  • Design - Object-oriented and system design

  • Coding - Implementing algorithms into running code

  • Analysis - Time/space complexity analysis, trade-off analysis

  • Debugging/Verification - Diagnosing edge cases, test cases

  • Technical communication - Writing and speaking about code and projects

Each of these areas is applied in various ways throughout all aspects of software engineering including:

  • Technical interviewing at companies before getting an offer

  • Developing a new application in a variety of technical areas

  • Catching and solving issues that inevitably arise during development

  • Communicating your work to your peers and manager

  • Creating re-usable libraries that other engineers can apply

We work to reinforce, develop, and measure different aspects of these six areas throughout all of our various course offerings, with these being especially emphasized in our three-part software fundamentals series.

Skilled in technical problem solving and interviewing

After you apply to enough companies, and get opportunities to interview, students need to make sure they are prepared for the rigorous technical interviews associated with top tech companies including data structures, algorithms, problem solving and behavioral interview segments. We provide a three-part series to provide students confidence and readiness for even the toughest interviews.

Our three-part software fundamentals series provide this aspect with the following:

  1. SE101: Introduction to Software Fundamentals (Syllabus)

    • Audience: Freshman/Sophomore CS & STEM w/ basic programming experience

    • Goal: Practical techniques for designing and implementing basic algorithms (UMPIRE)

  2. SE102: Intermediate Software Fundamentals (Syllabus)

    • Audience: Sophomore/Junior CS w/ data structures and algorithms experience

    • Goal: Improve student proficiency and confidence in algorithmic techniques and analysis

    • Topics: Intermediate algorithms including sorting, combinations, trees, complexity analysis

  3. SE103: Advanced Software Fundamentals (Syllabus)

    • Audience: Junior/Senior CS w/ data structures and algorithms experience

    • Goal: Empower students with the confidence and knowledge to excel at top tech companies

    • Topics: Advanced algorithms including graphs, backtracking, greedy, dynamic

In these courses, you are introduced to the following:

  • The UMPIRE method which is a comprehensive framework for solving technical problems every step of the way from designing the algorithm, to checking the test cases.

  • A framework for complexity analysis that allows students to make trade-offs between time and complexity

  • A structured approach to "talking out loud while they solve problems" which is a crucial component to successful interviewing by practicing a high number of problems with other students and mentors over 12-weeks

  • Deep explorations of fundamentals and techniques encountered in technical interviews or while developing algorithms. Check this guide for a sample of topics.

Check out our passing the technical interview guide for a high-level of the things covered across our rigorous three-part series.

Building products in real-world tech stacks

Software fundamentals and technical interviewing readiness are important but more important is enabling students with the skills and confidence to be a high-performing software engineer contributing meaningfully to real-world projects after they join a company.

Our programs provide this aspect with intense hands-on, project-based special topics courses that include many practical technical stacks, currently:

In the mobile courses, you are introduced to practical elements of real-world development including:

  • Hands-on development of functional apps from scratch

  • Product scoping and design

  • Sprint planning with teams

  • Git version control

  • Deploying or publishing apps

Developing leadership qualities, and develop mastery through service

A critical part of a student's journey is developing their own confidence in being a leader, having a clear voice, and learning to develop themselves through the teaching and mentorship of others. We wanted to make sure students are building the habits of effective leaders, and this can only be done by providing students a structured pathway for providing service to others.

Our scaled programs are largely powered and run by student leaders that step up to help support the programs on their own campuses. Students collaborate with us as partners in many different ways:

  • Helping us improve and maintain curriculum for each course

  • Iterate on the way our programs are run on campuses

  • Help other student's solve problems through technical support channels

  • Top students return as alumni and take on roles as TechFellows that kick-off sessions presenting to peer participants at their respective campuses

  • TechFellow Gurus are students that help coordinate with other TechFellows across multiple campuses

Through their time working with CodePath, students are provided opportunities to find their voice, and practice leadership through service as a natural extension of participating in the programs.

Last updated