Realizing, Re-learning, Optimizing | life and reflection of an EECS freshman

Well, well, well, it is uni time. Finally, I get to live in PST, not EST anymore, which made orientation week so sleep-deprived. However, the semester flew by so fast like a dream that I barely realize I got spring semester coming up tomorrow. I decided, for the first time, I need to sit down and look back on what really happened last fall.

A normal day on campus (picture shot on my phone)

In a Nutshell

So I started my journey as an engineering student at Berkeley, studying Electrical Engineering and Computer Sciences (EECS).

👨‍💻 Learned functional programming and lisp-like languages in CS61A The Structure and Interpretation of Computer Programs. Built dice games, typing games, plants-vs-zombies alike in OOP, and scheme to Python interpreter.

🤖 Finally really learned Linear Algebra. Using it along with some circuit concepts, EECS16A Designing Information Devices and Systems I taught how to model, design, and build systems such as cameras, touch screens, and GPS.

📚 Read about 20 classical works across Mesopotamian, ancient Greek, Roman, and biblical cultures in Classics R44 Roots of Western Civilization.

👨‍🏫 Joined the education department of Blockchain at Berkeley, became a Teaching Assistant for CS198–078 Blockchain Fundamental DeCal and wrote a textbook about Blockchain for non-technical audiences.

🔬 Undergraduate Research Apprenticeship under the Lawerence Berkeley National Lab and Sutardja Center for Entrepreneurship and Technology, on carbon-nanotube based sensing system for radiation detection.

😮 There are just sooooooooo many tech-related presentations and events on campus. It really blew my mind. My favorite ones include: autonomous driving system by Uber ATG, hardware architecture for ML acceleration by Apple, Andreessen Horowitz portfolio demo day (they also give out boba and popcorn chicken!), dinner with Eventbrite co-founder Kevin Hartz, and listening to talks by legendary Berkeley EECS/CS alum like Steve Wozniak (Apple co-founder) and Marc Tarpenning (Tesla co-founder).

🌉 Went to San Francisco for some really cool conferences and competitions, including San Francisco Blockchain Week, CryptoEconomics Security Conference, IDEO CoLab Makeathon, HAX Fall 2019 SF Demo Day.

🌴 Had lots of California food: In-N-Outs, Blue Bottle, Peet’s, and Boba. (I still miss poutine and Tim Hortons 🍁).

.. and met lots of people through classes, Association of Chinese Entrepreneurs at Berkeley, Regents’ and Chancellor’s Scholars Association, IEEE, Neurotech@Berkeley, and just randomly on campus.

First-semester life by stickers

In the next section, I want to go one layer deeper into how my experience first semester has shaped me, particularly in 3 categories: Realizing, Re-learning, Optimizing.

Realizing

Finding the Why behind the learn

The extent of my linear algebra knowledge was just a 4-day cram of reading the textbook before my high school final, and I forgot everything I learned immediately after. For my electrical engineering course, I thought this is gonna repeat again. However, surprisingly that is not the case. The course is structured in a way that we set to build a useful application, then we look at what information we need, which leads to learning the necessary mathematical tools. This motivation-driven approach really got me to understand the math concepts and tie the concepts to real-world applications. For the first time, I found deriving math equations a joy, with a purpose in mind.

With linear algebra and python notebook, I get to simulate a GPS system using speakers and microphones. The system is able to locate the speaker.

We are all starting equal: Combating stereotypes and toxic culture

Maybe you know from the meme pages, Berkeley EECS has a stereotype of “no shower, no sleep, 4.0 GPA, league all night, getting those FAANG soft-eng internships”. There is also a hierarchy of majors, even just within the study of computer science, where “EECS>CS>DS>Stats”. Although I first found it just as memes, it starts to disturb me more and more, as this sense of “endless peer competition” gets into everyday life. People will compare on virtually everything. “Did you get perfect on the midterm?” “8 hours for you to do the project? That’s so long! I did in class.” “Anyone decently smart does not need to go to discussions.”

So I decided to turn away from those noises, let the people who want to compete on arbitrary standards compete with themselves forever. I started to find a group of people who feel the same and have their own goal regardless of what others set. Luckily, there is a lot of them actually at Berkeley and I found myself more comfortable and learn more hanging out with those.

Another thing I suddenly realized, is that your past suddenly does not matter, like where you went to school or what program you are in based on your performance prior to admission. Those who place their judgment on other’s past live only in their past success. I think the ones that are more interesting are people that focus on what everyone is doing now.

There is really no point comparing against others or sticker-tag oneself

Professor Ranade gave me this advice at the start of this semester during her cookie roundtable. “Don’t sticker tag yourself” At Berkeley, you feel this urge that everyone is trying to achieve everything possible and putting things on their resume, like doing “consulting” in those “prestigious clubs” or doing part-time internships. I realized doing those for the sake of doing them is kind of pointless. I admit that during club application season, I applied to a ton with strong FOMO and in the end realized the ones that I really wanted to do initially are the ones that are worth doing, and the many that everyone calls “must-do” simply does not interest me.

Be honest with yourself

In high school, I frankly did not have much homework. That flipped 180 degrees at Berkeley. The electrical engineering homework or the classics reading will take me hours to all write out the steps or get the gist. It is so tempting to use Wolfram Alpha or read the SparkNotes. Gradually I realized there is no short cut to anything; to understand the concepts, you need to put in the work to write it out step by step and read it line by line.

Stacks of books I read for my classics course (except for the bottom two)

Try something drastically different

This is the first time I took a classics course and it quickly becomes my favorite course of all times, despite its heavy workload. From Epicureanism to comparing neo-platonism to the New Testament, it requires a drastically different mindset from my engineering coursework. It really challenges how I look at the world, thinking about life and death, greatness and progress, love and violence, civilization vs wild, and many more; unexpectedly, interesting questions spark from time to time in the intersecting classics and engineering/the tech industry today.

So much more to learn, in EECS and beyond EECS

I think this one is a good way to end this section. Although I came to Berkeley with mostly the purpose to study EECS, I realized there is just so much to explore even in the discipline itself and way more outside this field. Now I really hope to use the flexibility of my degree to explore a combination of fields inside EECS as well a bit everywhere in the humanities and social sciences.

Re-learning

Unlearn Computer Science

A typical CS 61A question. What does this return?

I thought I will be fine for CS61A, turns out I was completely wrong. Without VS code and the fancy debugging tools, I can barely visualize the flow of the program, especially with the kind of question you see here. Even worse, I have to write it on paper with a pencil and draw box and pointers. I was completely lost for some time of the course. But at a sudden point, I found myself need to disregard all my prior CS knowledge that I built unsystematically from hackathons and side projects. It was indeed painful but after sometime denying my assumptions one by one, I was able to construct what is going under the hood of program construct to construct. It is one thing to know how to build something, it is another to comprehend what it is actually going on under the hood. This process of “unlearning and relearning” was indeed painful, but now I finally have the necessary understanding. Thanks to all the convoluted and complicated questions like the one shown here, I was able to solidify those understandings.

Question what we take for granted

This is really from my classics course. Going back to the roots of the Western world’s value through these fundamental works centuries early, really help me question the common value that we take for granted today. Is tyrant necessarily bad? Why is monotheism dominating? What is the difference between so-called civilization and cultural assimilation? All those questions once had various or strong challenges, yet they won’t surface unless you dig deeper.

Screw the Jargons

One thing I remember the most from my electrical engineering class was my professor repeatedly saying the terms are just jargon. Indeed there are way too many, especially in linear algebra. I am thankful for my professor to take us into the fundamental mechanism of the concepts itself rather than referring too many fancy namings. With that in mind, nowadays when I see a buzzword, I try to really see what the core thing is about.

Learn to teach, teach to learn

What else has more jargon than blockchain and ML nowadays? Yet to really understand them, you have to dive down into the technical. That is why I joined the Blockchain club and teach the decal on this topic. This is also a drastically different topic than what I mostly used to do (hardware). I thought to myself, what is a better way to learn this such complicated technology than teaching others? To go down in the technical accurately yet not scaring people off was kinda hard. I have to understand it first, and then I need to make sure I can communicate it so that others can understand it. Through weekly discussions during the course, the students really challenged me on that and that process alone is almost like re-learning the topic with more questions and perspectives.

Last lecture of the Blockchain Fundamentals DeCal (fewer people than usual because of the final week)

Optimizing

“The irony of EE 127 is that most EECS majors can’t even *optimize* their own lives — Overheard at UC Berkeley Facebook page

It is kind of true, trying to optimize my life with lots of moving pieces was a challenge that I had to overcome. It is almost like running a multi-threaded processor that I have to allocate resources to the right thing all the time.

You have limited energy, you cannot do everything

There is just too much going on campus: tech talk, research synopsis, recruiting, workshops, club socials, free food… Hungry for opportunities as someone new to the Bay Area, I tried to go to everything I can possibly fit in my schedule, partially driven by FOMA. After several weeks, I found that completely unsustainable and realized I get much more value if I go prepared and stay for the whole thing rather than switching around events. Since then, I have set limits of time for each type of event every week, focusing on the ones that interest me the most.

Saying no

There are a million good things to do out there, but you just simply can’t do all. I had to make some really hard decisions this past semester to reject some opportunities that I want to pursue, knowing that I would not have the time capacity now to give it my best. It was especially hard because, for the first time, you are solely responsible for your own action (just like college decision!), there is no authority over you to direct you. I am grateful for all my friends who I consulted with before making the final call, and for people offering those opportunities that I turn down to be so understandable of my decision.

Actively changing your UX

I saw this tweet once and I thought this is super relevant to where I was in the middle of the semester, always seem to be busy yet getting nothing done. I decided to design the UX around my life to gear towards a less distracting and more efficient one. Here are some measures I took that helped.

  • Set aside time to relax. I dedicate 1.5 hours each week to take a restorative yoga class so I can stop thinking and just purely relax for a while.
  • Put my phone across the room from my bed. This way I don’t end up scrolling for an hour before I sleep or after I wake up, and forces me to wake up by standing up to turn off the alarm clock.
  • Greyscale my phone to eliminate distraction from visuals and decrease the urge to view content. Drag social media apps into folders so I won’t click them when I start my phone.
  • Use Facebook Lite instead of regular Facebook. It is slower and has less feature so I tend to spend less time on it without missing important updates.
  • Focus on one thing at a time. If it is under 5 minutes, get it done right now. (I am still improving on that)
  • Turn off all app and group chat notifications unless necessary to respond real-time
  • Zero my email inbox and categorize all read emails, unsubscribed all ads-based emails
  • Reflect on what I have done yesterday, what I need to do, what I learned every morning right after wake up. Recommend Five Minute Journal.
  • .. still experimenting with many things

Purposeful and unpurposeful

You might be asking “Simon, why you try to optimize everything to the maximum? Why do you need a purpose for everything?” You are right, sometimes I just need to unplan and encounter things randomly. In the end, I don’t know what I don’t know, and from times to times, some interesting thoughts happen when encountering something unprepared. I try to leave some space in my schedule in search of those moments, but they mostly happen spontaneously in this highly unstructured campus where every minute there are tons of things happening.

What’s next?

Much sooner than I realized, the spring semester starts tomorrow. I am pretty excited about some of the courses:

  • Data structure (CS61B) to build strength in software engineering (can’t wait to go back to Java). Also finally brushing up my VS Code skill.
  • Keep learning how to design circuits and modeling systems using linear algebra (EECS16B)
  • The Pursuit of Meaningful Work (UGBA 157) on why we work and what kind of work is worth doing
  • Understanding some central Nietzschean concepts through film excepts, “Nietzsche at the Movies” (GERMAN 24)
  • Learning how to “ Playing Well With Others” (BioE 24) and teamwork through playing role-playing games like Dungeons & Dragons. Can you believe this is a course under Bioengineering?

Of course, I will also continue my involvement with research and teaching. In particular, I will be teaching the Blockchain Development Decal (CS 198–077), covering a wide range of topics from Etheruem-based Decentralized Applications (DApps) to introduction to advanced protocols (cosmos, zk-SNARK, etc). If you are interested, check it out below.

I guess you will have to wait another half a year to read about how I grew next semester. Come back to this blog in the summer!

Sunset of Berkeley, San Francisco Skyline, Golden Gate Bridge, shot on my phone at Berkeley SkyDeck

Conclusion

Berkeley is a hyperactive yet highly unstructured environment. Navigating and choosing among opportunities could be imitating, especially for a freshman like me, yet the flexibility gives you the chance to grow in the way you want and walk the path you want/create. So far, I find Berkeley a place where I can realize the hidden principles, relearn my cognition of the world, and optimize my workflow to maximize my potential. It has been an eventful start for me and I can’t wait to see what’s next.

If you have any advice or comment on literally anything, please feel free to shoot me a message on the contact form of https://simonguo.tech /or @simonguozirui on Twitter.

Accelerating Deep Tech | Robotics, Blockchain, Neurotech | EECS @UCBerkeley | Teaching @CalBlockchain, Director @BB_Xcelerator | prev @hax_co, @SOSV, @Interaxon