My younger brother recently left for his sophomore year at MIT. While he was still here, we got together several times and had several lengthy discussions about college life had been for him over the past year. One interesting point he mentioned is how placement works at MIT:
When my brother matriculated at MIT, he had already taken honors multivariable calculus at Stanford (receiving an A). However, MIT refused to accept the Stanford course as credit for it's own (non-honors) multi-variable calculus course [1]. Instead, he would have to take a placement exam along with all of the other freshmen hoping to place out of multi-variable calculus. No problem, I figured. As I saw it, his preparation should have been more than enough.
Well, here's my paraphrase of my brother's story:
Ten minutes before his multivariable calculus exam, I walked to the exam room and noticed a girl sitting outside immersed in her crib sheet. She had meticulously copied all of the formulas that she had learned down on it and was last-minute cramming before the exam. I asked her if I could take a look at her preparation sheet. Upon examining her preparation sheet, I quickly realized that I did not know a single formula on it. Many of the formulas were for double integrals.
Minutes before the exam, I did not actually know how to actually take a double integral.
In the quarter I had spent doing honors multi-variable calculus at Stanford, I had done literally nothing but proofs. While the class had been exceedingly difficult and had required us to prove many non-trivial properties about double integrals, we had never actually taken one. The professor deemed this material as unsuitable for the theoretician to waste his working memory on. He consciously never taught it.
In the next five minutes preceding the exam, my friend Nathan (who had also taken 51H at Stanford) and I learned how to take a double integral. Following that, we both prayed to the god of partial credit and headed into the exam room.
The actual exam contained quite a few double integrals that I was unable to solve. So what I did instead was exactly what I had learned to do in 51H: I proved the theorem that they wanted us to apply. Then (as I'd never learned any of the formulas) I'd just leave the problem there: with a proof in English and no numeric answer.
Given that he never wrote an answer for a good part of the test, you might expect that my brother bombed his exam and had to retake the class. However, he instead passed his math exam with flying colors, receiving one of the highest scores out of his placement group.
In my brother's case, his high-level theoretical understanding helped him to quickly comprehend the low-level applications that he had to solve [2]. There would simply have been no point for him to spend extra time learning how to plug-and-chug numbers into what already knew. Furthermore, I assert that the teaching philosophy of his Math professor is spot on. I've believed for a long time that (if you can do it), it's always better to skip the basics and go headfirst into the advanced stuff. If something is beneath you, don't learn it. If it isn't worth your time, then don't spend your time on it. My philosophy is that you should learn how to tackle the hardest problems that you can. And the contrapositive to that is that you should triage everything else, as much as you can.
I used to live with an entrepreneur who literally never cleaned his room or cooked his own food. What he did do was use TaskRabbit to hire a helper, who kept his room immaculate and would cook him plain chicken and brown rice. Now I'm not a chef, but chicken and brown rice is not the toughest meal to make. I'm sure he does this because he realizes that there is no point in wasting his time doing tedious life maintenance when it would be better spent making business deals, meeting new contacts, or spending time with his girlfriend. And although he is still young, his track record for focusing on these aspects is already quite good. Already, his decision to skip the basics has helped to make him one of the most seriously professional and well-networked people who I know.
Modern education has an obsession with fundamentals. We persist in preaching a canon of knowledge that includes that is almost entirely basic. The general consensus seems to be that a student should first learn the basics, slowly increasing difficulty with higher levels until those too become basic. While this may be true in sports (Lebron James still practices his dribble), it doesn't seem likely to me to be true for most of knowledge [3].
[1] This would have been reasonable to me, had my brother taken the normal multi-variable course as opposed to the honors one. Objectively speaking, I do think that MIT is a more theoretically rigorous school than Stanford. There is a reason why many more Math and Science Olympiad kids go to MIT, and I think this is in part because the undergraduate education is more intellectually invigorating. The students are more nerdy, and the classes are harder (of course, people go to Stanford for other reasons).
[2] I am often skeptical about much of what I hear. However, my own experience with Math leads me to believe that this is not actually as difficult as it sounds. Math is much more so a system of logic than it is a system of numbers. In fact, real mathematicians never use numbers.
[3] The former understanding of knowledge is something like a line. You progress a little and move a bit forward on the line. We like thinking about it this way because one-dimension is easy for us to intuitively understand. However, we already know that our brain - composed of highly-dimensional neural networks - does not fit this pattern at all. If we tried to understand knowledge this way, it'd be something more like evolution: highly punctuated and irregular, with random connections from all over the place, full of equally surprising successes and failures. In this case, everyone's learning pattern would be different, as it should be.
I remember that when I was applying to college all of the essays that I could find online were utter crap. So I went and dug up my own college application essay (circa 2007) to open-source it with the community.
I wasn't one of those cool kids that hacked out their college application in 24 hours. I believe in working hard for the things I want in life, and the essay I've included below is the product of many months of work.
I hope you enjoy it.
Marty
11a: ''A picture is worth a thousand words,'' as the adage goes. (You're limited to one page, however.) Sometimes a photo or picture can capture an object that you treasure, a person you admire or a place that you love; sometimes a photograph is simply your record of an experience or moment in your life. Imagine one photo or picture that you have, or would like to have, and tell us why it is meaningful to you.
A picture that is meaningful to me is that of a man riding his bicycle at the crack of dawn in China. He is sixty years old and carries a massive, overflowing pack on a bicycle that must have been built in the 50 s. As he struggles through thick traffic and acrid smog, he appears to be a beast of burden. I watch his raw sinews strain under the sheer weight of his load. As the bike squeaks, I can imagine both groans of anguish and a silent plea unnoticed by the numerous bystanders. He squints as he pedals into the rising sun, leaving behind a long shadow and an image that I will always remember.
This picture made an impression on me because I too am a cyclist. My humble bicycle is also a two-wheeled vehicle in a world of four-wheeled machines. Even though my bicycle is not as old as the one I saw in China, it is still the oldest at Palo Alto High School. The bicycle s rusting steel frame is scratched and the tape on the handlebars has long since peeled off. Every day it bears the weight of a rider, a textbook-laden backpack, and a trip up Page Mill Road. The bike is silent, but I huff enough for the two of us.
I choose to bike knowing that a car could effortlessly cover the ten miles that I travel each day. Every night after work, I arrive home sweating, exhausted, and with aching quadriceps. I do so because I enjoy the challenge of the strenuous exercise and the simple rewards of a refreshing breeze, a relaxation of mind, and the cleansing effects of an occasional rainy day. I feel proud that every mile I travel is a step toward reducing emissions, and at the top of each hill I feel the satisfaction of freedom and healthy activity.
My encounter with the old man brought my experiences into perspective. Even though the bicycles we ride are similar, we regard biking very differently. Clearly, he would never associate biking with pleasure. Unlike me, he is not pedaling by choice. He is probably not concerned with either the environment or exercise. He pedals simply to survive. If I were in his saddle, I would surely pray for divine intervention in the form of a car.
This moment made me realize how privileged my background is. But more importantly, it made me realize how much our backgrounds shape our perceptions. My view of the bicycle has been shaped largely by my upbringing in America. We associate biking with the heroic champion of cancer research, Lance Armstrong. In a country experiencing increasing concern about gas prices and global warming, we see biking as a responsible alternative to driving. However, the same bicycle that represents a means for combating global warming in America is associated with physical labor in China. In America, people will often sport custom outfits and bike for leisure, while in China people ride bicycles because they have no alternatives. It is astonishing that two people can view a common object, such as a bicycle, in completely different contexts.
I cannot help but wonder: If even our perception of a common bicycle can differ so dramatically, then how differently must we perceive more complex issues? This gives me a greater appreciation of the difficulties that must be overcome in getting people to come together to solve larger problems such as pollution, poverty, energy, and peace. I think we can never get underneath someone else s skin and think like that person. But I do believe that if we broaden our backgrounds, we can come much closer. As I deal with others, I will always keep in mind Anais Nin's observation, We don't see things as they are, we see them as we are.
An old high school friend of mine recently matriculated into the Stanford Phd program for Chemistry. We had a dinner celebration for her and I got to learn about all of the things she's done since I last knew her in high school. To me, the most impressive of all of her feats is the fact that (in addition to Chemistry) she finished a second major in Math. In fact, she told me that she nearly pursued her Phd in Math. This personally impressed me because I used to know her when she was in high school. Back then, she was indistinguishable from an ordinary student math-wise [1].
Ordinarily, when I think about a Math Phd student, I envision someone who's known that they've wanted to do Math essentially their entire life. I think of a person homeschooled, who's skipped on three grades in math, and won multiple math contests in the region. My friend would not have fallen into this category.
However despite lacking an intense Math background my friend had and still has a formidable work ethic. When she was in high school, she went to the library after school every single day, and would stay there working until it closed. On weekends when I'd occasionally go to get leisure reading from the library, I'd see her there working. After she went off the University of Pennslyvania, I was in the dark with her for about three years because she disabled all of her social media (e.g facebook). Given all of this, I'm not at all surprised that she excels as much as she does in Chemistry and Math. When you have a work ethic like that, double majoring into a Phd is really no big deal.
Mathematics resonates strongly with me because that was what I did and was good at in my academic life through high school. However, my story is a bit different from my friend's. Unlike my friend (who immigrated from Korea) I was a prototypical Bay Area Math kid. I practiced supplemental material at home, skipped a grade in math and was an active member of the Math Contest Club through both middle and high school. I did reasonably well in math competitions.
Despite this, I never believed I was very good at Math. Part of this was because I spent my entire math career being overshadowed by my peer mathletes [2]. How could I ever hope to pursue a future in math, when I wasn't even close to a top mathlete in even my friend group? [3]
I gave up on math. Once I got to college, I stopped taking math classes entirely. I even went so far as to petition the Computer Science department to waive my Math requirement (due to the classes at Stanford I had taken while I was still in high school). To this day, my math ability is essentially where it was when I was in high school.
What I learned the hard way is something that I should have learned in Algebra class. Back then, the equation to know was slope y-intercept form, y=mx+b. We had perhaps an entire unit of doing nothing but understanding and graphing this equation. For all of the time I spent doing this, I never realized what this equation really meant.
The simple fact about life is that a little bit of extra slope can make up for a hell of a lot of y-intercept.
[1] I come from the Bay Area and there is a very strong emphasis in Math here. For example, my high school has several tracks for Math, problem-solving classes, and a very active Math Contest Club (a club in which I am proud to have been a part of).
In my friend's case, I remember that the furthest math level that she reached in high school AB Calculus. She neither participated in math contests and did not do math outside of her school work. While I know that she did exceptionally well in her classes, it is with my Bay Area bias that I say she was undistinguished (at the time) in Math.
[2] I remember that while I was a student at Paly we had two kids make it to the MOSP International Olympiad preparatory camp in a single year. Consider that MOSP is for the top 40 mathematicians in all of the United States (It's a boot camp for the International Math Olympiad). I knew the both of them personally and they are exceptionally well rounded individuals. In fact, one of them is one of my best friends.
(I often tell myself that I'm spoiled because I've been able to spend my entire life in the company of such highly intelligent individuals).
[3] It turns out that my close friend group was exceptionally intense - something I had no perspective at all about at the time. Even my close friends who don't do math are intense about what they do. For example, I have a friend in high school who used to be All-American for swimming (which means he was one of the top 50 swimmers in the world). He once casually told me:
If I'm going to do it, I might as well try to best in the world at it.“
It makes me think of Nike. Imagine if Nike's motto were changed from "Just do it” to “Just be best in the world at it”.
A very smart friend of mine has been surfing the job market and was recently offered a position at a start-up. The CEO let him know that he had until the end of the week (three days at that point) to give his decision. By the time I talked to him, he only had a fraction of that time left to decide and was asking for my opinion about whether I thought joining the company would be a good career move. [1]
I told him that while I didn't know much about the company, my gut response would be not to sign with them. I said this because to me, the CEO's behavior reflects a flaw in his personal integrity. In my opinion, any employer unscrupulous enough to pressure a candidate to accept a job offer is going to be less likely to have qualms over:
Forcing that individual into a ridiculous working schedule
Missing payroll (this does happen)
Lying about the company's progress
I come from perhaps an old-fashioned school of thought because I believe that being an employer is not about owning another person. In my opinion, a candidate has the right to work for whoever he/she wants, and should be free to pick the best option available to them [2]. (In this view, it's almost more as if the candidate owns the employer). If as an employer, I am unable to give a candidate a highly competitive offer and growth opportunity, then why the hell am I hiring in the first place?
This CEO's behavior bothers me because I personally want to help every candidate make the best decision for him/herself regardless of whether or not they decide to join our company. For example, one of the candidates we've extended an offer to intends on making her final decision about where to work as late as September. Not an issue here. Another very strong candidate of ours ultimately decided to work at a bigger company, and I encouraged him to do so because I believe that given his circumstances it was the correct play for him.
One of the reasons I started this company was that I wanted to create an environment in which people who can do good work would find worthy of joining [3]. In my mind, you have entirely no hope of doing that without integrity. That's how much of a mistake I feel that the aforementioned CEO is making.
[1] To put things in perspective, he really is a qualified candidate and will be able to get other offers if not for this one. I don't suspect that my advice would be too different though, even if this were likely to be his only offer.
[2] I will say that as much as I think that it's important for an employer to have personal integrity, a candidate should also be held accountable for his/her actions. For example, I would not think much of a candidate who lies or vastly over-exaggerates their resume (it's really not as hard as you might think to find out these things).
[3] Yes, I know that I'm being overly-idealistic about this - as I am about a lot of things in life - but I have to say it anyway because I believe it. I think that perhaps a flaw of Stanford entrepreneurs is that they get overly passionate about changing the world when the world really doesn't want to change, and that is definitely a flaw of mine.
[no real footnote] My personal opinion is that in business (and really for life in general), you're expected to regularly interact with people whom you may not personally like. That said, I would still make a deal with someone whom I did not personally like. However, I would be hard pressed to make a deal with a partner whom I considered to have low integrity. Imagine buying a product from a vendor with no integrity: what's to stop them from just taking your money without delivering the product?
I've been speaking to a number of first-time technical entrepreneurs recently who are starting businesses for the first time. One question I often get is regarding the difficulty involved in writing production code. Given that probably a lot of them (you) have similar experience to what I did, I thought I'd share some reflections I had about the differences between academic work and production coding.
Programming at a startup is, in general, much easier than the work you've already done in school.
I'm assuming a lot of things when I say this. Naturally, I'm assuming that you challenged yourself while you were in school. You took some of the hard classes and didn't just coast through the easy ones [1]. You completed all of your assignments (likely taking multiple late days, but hey, finishing is finishing).
In school you work on problems that get progressively harder. By the time you reach the upper division classes, you are working out non-trivial proofs about algorithms that took you multiple lectures to understand. Even if you're not in a theory track, you'll be expected to grok papers about the newest research in the field. Not to mention, (since you're a CS major) you're probably taking 3-4 of these classes at the same time. [2]
In my opinion, this kind of pencil pushing is way harder than coding! It is very difficult to implement, say, a non-trivial variation on a maximal matching algorithm for bipartite graphs from your brain, with nothing but pencil and paper, on an exam. You don't even know if you can do the problem or not, let alone write anything down on the paper! If you fudge a “clever hack”, that's zero credit. Because it's not clever, it's just plain wrong.
The real world is not quite so unforgiving. For one, you will almost never a problem in software that you can do nothing about. If you're stumped on a tough architecture decision, just look up standard practice on Wikipedia. Phone a friend. Take a walk around the neighborhood and then decide that it's not really a problem that you have to do anything about. It's software so there has to be a way to get it done.
Unlike the code you write in school, everything you write in production has TONS of bugs in it.
When I was in college, we had unit tests given to us for everything we wrote. For CS140 - Operating Systems (by the way, this was perhaps my favorite class at Stanford, every CS major should take it), our team would have been absolutely destroyed if those unit tests did not exist. But because they did, we had a notion of progress. We'd make the tests pass, turn the project in, and call it a night (or early morning). I'd generally know if I did a good job on the programming or not before I had turned in my assignment. Once I'd turned it in, I'd never have to look at it again.
My analogy for unit tests is that they're like monkey cages. Programmers (myself included) are the monkeys. If left to their own devices, they'll chaotically bang on their keyboards, and create a total mess for themselves and all of the other monkeys. Sooner or later it'll be Planet of the Apes. The cages provide structure and prevent the monkeys from making a total mess of things.
In the code I write now, I assume that nothing works unless I've tested it and it works. Even then, it still probably doesn't work, because I probably wrote the test incorrectly. If I find what looks like a JVM error - hold your horses, it's not a JVM error, you screwed up - I'll assume that there's something wrong in my own code. If I didn't think like this I would probably not find any bugs.
You spend almost as much time getting the requirements correct as you spend building the damn thing.
One of my favorite classes (other than Operating Systems) that I took at Stanford was CS155 - Computer and Network Security taught by John Mitchell and Dan Boneh. When I took it, the class had the Operating Systems class (CS140) was a prerequisite. Since I was just a sophomore at the time, I hadn't taken Operating Systems, but after sitting in the first lecture found the class so interesting that I signed up for it anyway. [3]
I strongly remember the second project, because that project just about killed me and my partner. In the project, we were asked to implement traceroute, in C. Implementing traceroute itself is challenging enough for a class of students who haven't taken networking. But we were additionally asked to implement highly non-trivial variants of traceroute. These included firewalking traceroute (if you don't know what that is don't worry, it burns just about as hard as it sounds) and ghost traceroute (this was actually illegal, so we were only allowed to test in a small lab provided to us on campus).
If this weren't hard enough, the documentation left basically the entire assignment ambiguous. To figure out basic information, such as which ICMP headers to send under which circumstances, you'd have to pore through the newsgroup, which contained tons of other confused students and very few actual answers. By the time we had finished the assignment, the newsgroup had something like 3000 posts in it.
My partner (another sophomore) and I read them all. We finished the assignment. Actually, I think we were one of the only teams to finish the assignment because the average score on that assignment was 24/100. By the way, I want to tell you that I attribute our score on that project completely to my partner, who is the best networking engineer that I know. Some people are just that good.
The funny thing about that assignment was that it was actually more spec'd out that anything I have ever written since graduating. Traceroute has an RFC. Also, once the description of the problem had been cemented, we knew exactly what to write. We never had to delete all of our code because the specification changed. No one ever said: “Wait, are you really building traceroute? wtf, actually what I want is a program that draws a bunch of unicorns on the screen!”
[1] You can actually do this now, and it infuriates me! From my point of view as an employer I don't even know if someone really even knows CS, based on the fact that they have a CS degree alone. I'll save the rant for some other day, though.
[2] There's one CS major that know who took 7 classes at the same time. I lived in the same dorm with him and never saw him eat a meal outside of his room (however, he did shower - the whole thing about CS majors never showering is just total BS). Some people are just that good. I mean, it's Stanford, who am I kidding?
[3] The CS program at Stanford doesn't really enforce prerequisites, so you can take whatever you want if you can handle it. When I was an undergrad, I tended to do this a lot when I was first getting into CS. However, I would definitely not recommend it even if you think that you can. The gist of my point is that taking classes early is hard because you won't (in general, myself excepted) have good partners. Also, it means that you'll have to take the lame easy classes later, because they're required anyway. Trust my co-founder, you don't want to be learning about induction in CS103 (Mathematical Foundations of Computing) when you've already done it in CS161 (Design and Analysis of Algorithms).
I had lunch with one of my mentors yesterday. He has a son, who just started the second grade. For a good part of the lunch, we discussed his concern that his son may not be as successful as he is. He told me that he feels clueless about what to do if his son does not end up being naturally talented.
My mentor explained that he never learned that lesson for himself, because for him by some fluke raw talent always ended up being good enough for him. As he told me, he was always naturally the best in everything that he did. He never did extracurricular work, because he was always at the top of his class. He doesn't understand the notion of summer internships because throughout all of grade school, his summers were devoted solely to vacation. Even in college, he spent all of his time playing sports and hardly did any work. His most well-acclaimed paper (that landed him his professorship at Stanford) took him a single all-nighter to compose and was completed the morning of the conference deadline.
His story made me reflect a bit on my own experiences growing up. For me, I can definitely say that raw talent was never quite good enough. I've never been the most talented one in anything I've ever done. Any notable success I have ever had was always due to legwork.
One of my early memories from elementary school was the first time I took a standardized test. As I remember, each category of the test had a percentile rank next to it. In math, I was in the 99th percential. However, in reading comprehension I was in something like the 85th percentile. I don't remember what my rank was exactly, but I do remember that my parents were seething (oh, heeellll noo) when they saw the report card. For the next several years of my life, they would send me to an after school program for three hours a day, where I would do various drills that included reading comprehension and other academic work. It was only after scoring in the 99th percentile for two consecutive years that I was finally allowed to leave the program.
At the end of the sixth grade, my math teacher pulled me aside after class one day to tell me that she was planning to recommend that I skip a grade in math. To do this, I would have a few weeks to prepare for and take a test that covered all of the seventh grade pre-algebra. If I passed, I would advance to the eighth grade algebra level. Oh and by the way, she could only recommend a few kids to do this each year so I had better pass (I really liked my sixth grade teacher, so impressing her was a big deal for me). I don't remember studying for that exam, but I do know that I have a pile somewhere in my garage of several workbooks that I went through during that time period and that I passed by a margin of about two questions.
During junior year of high school, I was cutting a very close shave to getting the A- that I wanted in BC calculus. I had gotten a 51/100 on the last exam, which had dropped my grade in the class to around an 86%. The only exam remaining was the final, which would be after the Christmas holiday. To get the 90% that I wanted for the A-, I would have to score 108% on the final (this was actually possible, since the exams would gave extra credit).
Our family had already planned a two-week vacation for the Christmas holiday to go to New York to visit my uncle and his family. While the rest of the family went touring in New York, I ultimately spent my entire vacation in the New York library, diligently redoing all of my homework for the entire semester. At one point I had actually worked through all of the problems in the textbook, so I picked up a rather beaten Calc book from the library and worked through that one as well. So much for New York. Ultimately, I got every single problem correct on that final - which translated to 110%. My teacher was so impressed that she bumped up my grade to an A [1].
Listening to my mentor talk brought back all of the memories of my life before college and the world of academia that is so foreign to me now [2]. The entire conversation makes me believe that if I ever had to parent a naturally talented kid, I might be just as clueless as he is now. Because for me (through some fluke), unnatural talent always ended up being good enough. I wish my mentor's kid the best of luck if he doesn't score in the 99th percentile on his first standardized examination ;).
[1] I wanted to prove that the final wasn't due to some fluke, so the next semester I got an A+ in her class and consequently won the math department award. She would later recommend me to continue studying math at Stanford, which would be one of the best opportunities I ever had in high school.
[2] Actually, in the startup world I am mildly ashamed about my strong academic record, since it seems that most successful entrepreneurs tend not to be exceptional students (they go against the grain by nature). The grand majority of the work that I do now does not require any sort of academic record. But that's okay. I'm not planning on going back to academia anytime soon :P.
The modern work life balance equation is interesting to me in that people seem to have all of these rules for when they should or shouldn't be working. I have some friends at tech companies who work something like: “long enough to get all three meals in the office, weekends when it's urgent, at least eight hours a weekday, never after 9pm”. der…? what?
To be contrarian, I prefer to distill my work balance into a few rules that are easy enough for my brain to wrap around. This is what I do:
If I'm awake, I should be working.
If I can't focus enough to do my work well, I should take a break.
If I'm too tired to work after taking a break, I should be sleeping.
I once asked one of my most diligent friends in college how he was able to take all of the hardest CS classes, work a part-time job, and do academic research in his spare time.
me: “How do you manage your work/life balance?”
friend: “Well, that's an easy one. Let's postulate that I have no life. Then really, there's nothing to balance, is there?”