Skip to content ↓

Please note:

The MIT Welcome Center and Admissions Office will be closed on Monday, October 12, in observance of Indigenous Peoples Day.

wtf i can code things?? by Suzuko O. '30

it’s crazy that these words on a screen like. do stuff

i am not really a computer person. 

maybe this is a form of teenage rebellion against my dad, who hunches over a computer for a living, but i have never really felt the urge to become a 6 major like a Lot of people at mit. it is just not something that appeals to me. people told me to be a 6-7⁠01 aka majoring in computational biology (ha ha six seven)⁠02 for those not reading this in 2026, this was a really stupid meme because of how flexible the major is (that is to say, how few classes are required) – i thought about it and then decided that i didn’t actually want to take that many cs classes. 

but unfortunately the truth of our modern world is that having some baseline programming skill is useful. this fact is so obvious that it feels kind of ridiculous to have to say, like obviously this is useful? unfortunately, despite rationally understanding this fact, i still have not tried to improve, by coding.

that is, until this week!

my background with coding: a timeline

july 2017: i make an account on scratch,⁠03 fun fact did you know that scratch originated from the mit media lab?? waow like the kids’ coding website, after my dad introduces me to it. i fiddle around with the little blocks and do some silly things for a few years. yeah not sure if this really helped with anything that came after but probably there was some fundamental understanding of sequential occurrences and stuff like that that i got out of this… maybe? 

november 2024: i go through mit opencourseware’s 6.100l materials because i want to say that i can code. 6.100l is a (now deprecated) version of intro to programming in python; it covers a bunch of fundamentals like types, syntax, some basic algorithms, how the language is modular, abstractly how memory works.⁠04 can you tell that i don’t know enough about programming to know what’s basic for a few weeks i basically nolife this course⁠05 also i played like 6 hours of arena kingdoms a day. that was a really silly discord minigame. idk wtf was i doing – i stay up late to watch lectures, i work on a pset during my flight to mit scibowl, i probably ignored some of my schoolwork, etc etc.

december 2024: nothing

january 2025: nothing

february 2025: nothing

march 2025: nothing

april 2025: nothing

may 2025: nothing

june 2025: nothing

july 2025: nothing

august 2025: nothing

september 2025: nothing

october 2025: nothing

november 2025: nothing

december 2025: nothing

january 2026: nothing

february 2026: nothing

march 2026: nothing

april 2026: nothing

may 2026: nothing

june 2026: nothing

july and august 2026: i decide to try to ase⁠06 advanced standing exams - basically lets you skip some classes if you pass the corresponding test; exists because mit doesn’t really accept ap exams out of 6.100A, which means i have to relearn everything that i forgot over the past year and a half. what this boiled down to is i went through the sample exam that they gave us, solving the “write code!” problems and thinking about the multiple choice. i realized that even though i’d forgotten a lot of the syntax, i still remembered a lot of the like thought processes and approaches that are often helpful when programming.⁠07 for example insert print statements everywhere when your crap don’t workg also i did some of “watch people who are better than me code” which was maybe helpful. not sure.

october 2026 (now): i finally do something that’s not “speedrun a class” or “take a test” with coding. whaaaaat

so what am i doing?

this semester i’m taking a class called 12.004, aka intro to the global carbon cycle. it’s in the earth, atmospheric, and planetary sciences department as one of their 4 intro classes. this class is about all the places that carbon is sequestered and how it moves around, especially in the ocean⁠08 one of the instructors is an oceanographer by training which basically means that it is a class that i think is awesome, because i really like the ocean and i want to work on climate and the carbon cycle is AAAAAA so important. 

this class is interesting because it combines typical lecture about like theory (right now a lot of chemistry) with a significant computational portion. to illustrate, this week we’ve been working on a pset that has two parts. part one is the theoretical part: one question asks us to “Determine what fraction of nitrogen (N2) is in the atmosphere vs. the ocean,” while the other has us derive an expression for the dissolved oxygen concentration in a hypothetical raindrop over time. this part was deceptively hard for me, but i went to office hours with the professor and then everything made sense! so yay

part two is the computational part. basically we are writing some code to do some annoying arithmetic for us as we develop “box models”. what do i mean by a box model? well, here’s a drawing from my notes:

simple diagram on paper with "atmo", "ocean, and "land" as three parts of a system. there are arrows showing how water is transferred between them

yeah there are more detailed ones but i realized i didn’t copy them down

but you just abstract different things down to little boxes that interact with each other in simple ways. our first coding project is a two-box model: there is the atmosphere, which has co2, and the ocean, which has dissolved co2, which then reacts with water to form bicarbonate and a proton, and then the bicarb disassociates to form carbonate and another proton. we introduce a bunch of different constraints and eventually end up with a system of 7 equations and 7 unknowns, which we want to solve. 

the coding part of this is really not intense – or perhaps it is more accurate to say that it isn’t really the focus of the problem solving ?? i looked at the pset before we talked about it in class, and i was confused as to how we were supposed to code something that generated a polynomial in H+ concentration. it turns out we just do that part by hand and end up with a cubic in H+ that we can then solve and then replug into everything else. but we do code a simple root-finder! yippee. 

back to what the pset wants me to do! part 1 asked us to complete the work we’d done in class by fully finding dic (which stands for dissolved inorganic carbon – basically co2 + hco3- + (co3)2-) given the partial pressure of co2 in the atmosphere. yeah looking back at my code i am not a huge fan of the way i set this up but it’s probably fine??? this was reasonably straightforward i feel. 

parts 2, 3, and 4 asked me to generate some plots using matplotlib. this was the part that really shocked me – i had actually never used matplotlib ever and had some sort of innate fear of it.⁠09 i would much rather use google sheets, or desmos, or just draw it by hand so it was pretty crazy when (after learning the syntax for how to plot a simple two-axis plot) my code just worked first try it and generated a REAL GRAPH. i was like wtf i texted both my friend scarlet and my little brother to be like holy crap i feel so powerful. this is also what pushed me to write this post!

matplotlib generated plot showing how dic changes with pco2 in the atmosphere

wow look at that plot! ignore the units 

part 5 was basically the same thing as part 1; just solve a slightly different cubic that is given to us and then plug and solve into the rest of the other equations. we also had to go back and make sure that this works by checking with our answers from part 1. 

part 6… part 6 stumped me for a while. it is a much different form of question than the other 5 parts: where the other 5 asked to plot or to implement a general solver, part 6 asked us to use the tools we previously came up with and make some assumptions in order to estimate the pco2 of a parcel of water gradually moving northward over the course of a month. what this ends up being like is asking us to make a very simple differential equation numerical solver; i lowkey don’t know if i could have come up with the actual differential equation⁠10 which seems bad, like why am i taking 18.03 then in closed form but i feel like i did good enough.

basically my workflow for solving this problem was

  1. stare at the question
  2. be confused
  3. stare harder
  4. try to think 
  5. give up 
  6. find a chalkboard
  7. draw on the chalkboard

drawing on chalkboards is really fun. i think this might be a big reason why people decide to do math, just because drawing on chalkboards makes you feel intellectual. but chalkboard was good for writing down ideas!

chalkboard with lots of thinking written out about how to solve the problem. words "PLEASE WORK" in all caps.

if anyone is working on this very pset rn don’t look at my work it is like a lot wrong

the chalkboarding took place from like 9:30 to 10:30pm in a random classroom in building 66; then i went back to tetazoo and watched people play tomodachi life while i typed stuff up. while typing it up i realized that my first initial model made no sense – the answer i got was like lower than it started, when i felt like it should probably be higher. i went to my room because i was very sleepy; i then realized that the reason why my model didn’t make sense is that i didn’t realize that my code also calculated the value of a coefficient that i needed but didn’t know i had. then i went to sleep because it was like 2am

a wedding is taking place in tetazoo tomodachi life

i got to watch a wedding while i worked on my pset! so wholesome

after i woke up i fixed my code and made some new assumptions, and i think it went well. my actual solution turned out much simpler than what i was initially cooking up; it did kind of feel like i wasted a lot of time thinking, but whatever! it’s fine. i turned in the pset a whole twelve hours before it was due (could have been better but this last problem was hard) and then stopped thinking about it. my final submitted pdf ended up being 8 pages and my code ended up being 223 lines long

thoughts on coding

i definitely am not the cleanest coder. for example, i think i am missing some modularity, because i have two basically identical functions that just find roots of slightly different functions, but the way i have them set up there’s something internal that’s different, so i just have two copies. with a bit of extra time i could probably make a general root-finder, but this is like not the point of this part of the class i think. 

i also think i am not particularly efficient? like not like my code is inefficient, I AM inefficient as i write my code. 

on the other hand i completely understand the satisfaction of having your code work. i kind of felt this while i was reviewing for the ase – it’s really satisfying to see the thing you typed up actually successfully do what it’s supposed to. but also i feel like i am just really not a good programmer and i don’t know if i want to put in the work to become a good programmer⁠11 especially at this point in time… i know some people say that it is meaningless to learn how to code when LLMs are so good at it, but i feel like this is kinda cringe. let it be known that no LLMs were used in the course of this assignment (except for as a last resort when i was crashing out trying to find values of henry’s coefficient for co2 before realizing it is literally in the code)

i did really enjoy this assignment tho! our final project in this class is like this but more detailed and also self-developed – i am excited for it :) 

  1. aka majoring in computational biology⁠ back to text ↑
  2. for those not reading this in 2026, this was a really stupid meme⁠ back to text ↑
  3. fun fact did you know that scratch originated from the mit media lab?? waow⁠ back to text ↑
  4. can you tell that i don’t know enough about programming to know what’s basic⁠ back to text ↑
  5. also i played like 6 hours of arena kingdoms a day. that was a really silly discord minigame. idk wtf was i doing⁠ back to text ↑
  6. advanced standing exams - basically lets you skip some classes if you pass the corresponding test; exists because mit doesn’t really accept ap exams⁠ back to text ↑
  7. for example insert print statements everywhere when your crap don’t workg⁠ back to text ↑
  8. one of the instructors is an oceanographer by training⁠ back to text ↑
  9. i would much rather use google sheets, or desmos, or just draw it by hand⁠ back to text ↑
  10. which seems bad, like why am i taking 18.03 then⁠ back to text ↑
  11. especially at this point in time… i know some people say that it is meaningless to learn how to code when LLMs are so good at it, but i feel like this is kinda cringe. let it be known that no LLMs were used in the course of this assignment (except for as a last resort when i was crashing out trying to find values of henry’s coefficient for co2 before realizing it is literally in the code)⁠ back to text ↑