Blog

My High School Computer Science Experience

A reflection on my high school computer science experience, and how it shaped my skills and interests in programming and software development.

June 20, 2026Drafts

My high school computer science experience wasn't what I expected it to be.

In my freshman year, our classes were similar to those at other schools. We learned basic Python: variables, loops, conditional statements, and simple I/O. I learned how to work with different data types and manipulate them to complete tasks. The term culminated in a final project that used Flask to build a simple web app that interacted with an API. What felt like a simple fetch was surprisingly complicated for me at the time:

def getWord(search):
  key = 'REDACTED_API_KEY'
  data = requests.get(
    f"https://dictionaryapi.com/api/v3/references/sd4/json/{search}?key={key}").json()
  return data

The next year, my APCSP class deviated from the standard College Board curriculum. Our teacher taught JavaScript, HTML, and CSS instead. We started with core web concepts—HTML tags, stylesheets, and how JavaScript interacts with the page. For one project we had to build the same app again, but this time with raw JavaScript, which meant managing DOM elements, event listeners, and direct innerHTML edits. Debugging that was a nightmare.

Later we learned Vue.js and the ideas of pages and components, which made isolating problems and building features much easier. Frameworks made development faster but also let us tackle more complex projects. For example, I built a transit-times app using vue-graphs and the MTA API to display arrival times and route statistics. I was still a beginner—this snippet shows some of the rough edges:

function reload() {
  // idk why i have a reload when u can js ctrl + r
  fetchData(
    "https://api-endpoint.mta.info/Dataservice/mtagtfsfeeds/nyct%2Fgtfs-bdfm",
  );
  doLabels(data);
  key += 1;
  console.log("reloading" + routes.value);
  chartData = {
    labels: ["B", "F", "D", "M"],
    datasets: [
      {
        label: "Number of Routes for the B,F,D,M at any given time",
        backgroundColor: "#f87979",
        data: routes.value,
      },
    ],
  };
  console.log("reloaded"); // console logs in my production
}
 
function rereload() {
  // ?????
  reload();
  setInterval(reload(), 5000);
}

For a sophomore-year final project we used Supabase to build a full-stack app. I worked in a group of three; we divided tasks to create a canvas where users could draw and save their work. We used Supabase to store each user's canvas data, which required implementing authentication. I had to learn how to use Vue stores to manage tokens and user data. The project was a big step up, but it taught me a lot about full-stack development.

In junior year the class felt like a workplace. Projects were run by student project managers and often supported school needs. I was assigned to a multi-year course-selection project: a Vue.js frontend with a Django backend. Over the year I worked on database management scripts, refactoring, and features like a scheduling calendar for guidance counselors. Refactoring taught me how to read and improve code I didn't write; I dove into the Django docs to learn proper patterns and write better code.

During a holiday hackathon we built a small team project: a Pokémon rhythm game that awarded creatures based on player performance. We used the PokéAPI, Firebase for the backend, and Nuxt.js for the frontend. I mostly worked on backend authentication and helped other teammates integrate their features. We hit one hiccup when a teammate used Vue's Options API instead of the Composition API, so I rewrote that section to keep the codebase consistent.

Senior year I took on leadership roles and managed multiple projects. I led the course-selection effort and worked on an RFID card system, plus an AI grading project to help teachers automate grading. I coordinated underclassmen, delegated tasks, and shifted people between projects based on skills. That year we launched the course-selection platform—an important milestone. The RFID system was ready for testing, while the AI grading project encountered feasibility issues, which is part of iterating on new ideas.

As I move on to college to study aerospace, I know these years won't go to waste. I learned hard technical skills, but the most important lessons were the soft skills: teamwork, project management, and leadership. I also learned how to learn independently and adapt to new situations—skills I will carry into college and my future career.