Skip to content

Latest commit

 

History

History
103 lines (70 loc) · 10 KB

student-impact.md

File metadata and controls

103 lines (70 loc) · 10 KB

Student Impact Objectives

Our mission requires providing programs, materials and support around five key aspects of confidence for students:

  1. Confidence and 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.
  2. 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.
  3. Confidence 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.
  4. Confidence in 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.
  5. Confidence in developing leadership qualities, and developing 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.

Below we expand on how each of these are provided to students through our work with CodePath.org.

1. Confidence on why they should pursue software engineering

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.

2. Confidence in understanding their specific path into the industry

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.

3. Confidence 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.

4. Confidence in 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

Future Plans

In the future, we can also offer additional special topics including:

  • Front-end Web Development - Development of client web applications, utilizing Javascript
  • Back-end Web Development - Development of back-end web applications, APIs, databases
  • Blockchain Dapp Development - Developing smart contracts and front-end applications that allow users to interact with a blockchain
  • Data Science - Data processing or visualization, charts, tables, analytics
  • Machine Learning - Field of artificial intelligence that uses statistical techniques to give computer systems the ability to "learn" from data

5. Confidence in their own leadership skills and a service-oriented mindset

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.