Definition of Liberal Arts: Liberal Arts is intended to provide chiefly general knowledge and to develop general intellectual capacities (such as reason and judgment) as opposed to professional or vocational skills.
I grew up in China and Canada, for both countries, there is a tendency to divide faculties into the Faculty of Arts and Faculty of Science. Having worked at Presence, our pioneering AR tech startup, for a year, I realized that liberal arts education is underestimated in the Tech industry. In extreme cases, some engineers even think they should only focus on hard skills like coding, liberal arts is either unrelated or impractical. This blog explains why liberal arts is important to engineers.
Limitation of Engineering Education
In my studying and working experience in the Tech industry, I found there are three major problems that people rarely discuss:
1. Fixed Reward Mechanism
In education, tech interviews, and working as software engineer, the standards for evaluating and rewarding are fixed. Engineers are obsessed with clean code, less memory and computation usage, and test coverage... These standards are questionable, for instance, Dan Abramov once blogged about how obsession with clean code is troublesome. These reward mechanisms might train better engineers but less well-rounded creators in my opinion:
- If my answers on the exam are elegant, I can ace the course.
- If I write a perfect algorithm that solves the Hackerrank problem faster than everyone else, in both Time and Space, then I will get a job offer.
- If we build a better API product than Stripe, people should ditch Stripe and just use ours.
2. Narrow Field of View
Engineers rarely talk to the customer, they simply write code (Well, great companies like Tableau bring their engineers to Las Vegas every year to meet customers at conferences, but in most Tech companies, engineers are only responsible to implement the features defined by their product manager and designers). Once getting used to this bottom-up working model, engineers become backstage runners. However, many influencers such as Paul Graham and Clayton Christensen highlighted the importance of understanding customers in their writing, here is a good quote from Paul in his "Do things don't scale":
A lot of startup founders are trained as engineers, and customer service is not part of the training of engineers. You're supposed to build things that are robust and elegant, not be slavishly attentive to individual users like some kind of salesperson... They'd rather sit at home writing code than go out and talk to a bunch of strangers and probably be rejected by most of them. -- Paul Graham
3. Limitation of Experiments
Science is based on experiments, but in a lot of liberal arts subjects, “experiments” rarely produce unequivocal answers: Design, Calligraphy, Music, etc. For people who study Music, for instance, it is intuitive that a particular compositional genre — be it romanticism, atonality, or jazz — will attract some while repulsing others.
Universal Understanding
The liberal arts were the continuation of Ancient Greek methods of enquiry that began with a "desire for a universal understanding." [1]
I am a strong believer in "Orthogonal Learning", an approach to gathering inputs as much diversity as possible in a learning process. In Computer Science, there is Problem Reduction, which is transforming one problem into another problem. There are many examples of studies in other industries that have helped to explain and solve computer problems:
- For people familiar with Unity or video game development, the quaternion is a common technique for object rotation used in character movement. I was not aware of this terminology but it is no stranger to folks who studied Physics or Aerospace engineering.
Quaternion (Physics and Aerospace) | Leg rotation (Unity) |
---|---|
![]() | ![]() |
- Donald Knuth used a lot of real-life problems to describe algorithms problems in his book "The Art of Computer Programming", the example of using train track design to explain dequeue data structure is fascinating:
Track Design (Civil Engineering) | Dequeue (Computer Data Structure) |
---|---|
![]() | ![]() |
- And as a music minor student, composing with chord progression is simply building up a finite state automata:
Chord Progress (Music) | Finite-State Automata (Computer Science) |
---|---|
![]() |