Story
Before joining the University of Washington Tacoma, I spend most of my time being a mechanical engineer. I majored in aerospace engineering at college, worked for a general aviation company in Beijing for three years, and then came to the US to do research on fluid dynamics at the Washington State University Vancouver and Brown University. At Brown University, I was a doctoral candidate working with an experimentalist professor. I soon realized that I am not a good fit for the group since I am good at numerical simulations (which involve a lot of Python/MATLAB coding to solve PDEs) instead of experiments. Unfortunately, I failed to find a professor at Brown who’s doing simulation research and has extra funding to accommodate another doctoral student. At that moment, I ask myself “if you enjoy coding, why not switch to the computer science?”. Thanks to the encouragement of my friends and parents, I am now going to have a Master’s degree in Computer Science soon and will join Google this summer.
In my two-year’s computer science journey, I learned a lot from courses, homework, projects, internships, job-searching, and the people around me. The following three points are some critical lessons I learned in my journey.
- Self-learning
Different from traditional science and engineering, I learned most of the practical skills in computer science by teaching myself. There are no courses for Java/Python programming, no one tells you how to set up a virtual machine, a testing environment, or how to build this personal portfolio website. Professors or your internship mentors just assume you should have known this knowledge or at least you can easily access online tutorials. It is tough at the beginning due to the lack of fundamental knowledge. However, after one term, I found I have been used to and even started to enjoy this style because the computer science community is very sharing-oriented, and online tutorials (such as StackOverflow and GeeksforGeeks) are much more efficient than a book. But that doesn’t mean asking questions should be discouraged. Instead, I wish I could ask more questions at the very beginning when I even didn’t know how to ask a proper question because it could save me a lot of time. The best way of self-learning is always a combination of research and asking. Try your best to find the solution and then consult with other people.
- Self-marketing
Searching for a job is a continuous part of my computer science journey. A two-year Master’s program doesn’t leave you any time to take a break. In order to find an internship, I start to build personal projects in the summer before I join UW. I definitely learned a lot from these projects, but learning new skills is only part of the objective. The most important thing is to market yourself by demonstrating these projects. I deployed all the projects on the AWS/GCP and created TinyURLs for easy access. I created my personal portfolio website, reorganized my LinkedIn homepage, and made a nice-looking Latex formatted resume. Besides, I always wrote a cordial cover letter with a job application to stress that my experience has a good match for the role I applied for. I also extensively connected with people on LinkedIn and other social networks to request a referral. With all this self-marketing, I successfully got three internship experiences and these experiences further enhanced my self-marking and help me find my dream job.
- AI everywhere
Artificial intelligence (AI) has been a hot word for a while, but I didn’t really understand it until the last term at the UW when I took the course TCSS 535: AI and Knowledge Acquisition. AI is intelligence demonstrated by machines, as opposed to the natural intelligence displayed by animals including humans. AI research has been defined as the field of study of intelligent agents, which refers to any system that perceives its environment and takes actions that maximize its chance of achieving its goals. In this course, I learned uninformed, informed, adversary, and constraint satisfactory search as well as the hidden Markov model. More importantly, by discussing the AI application in class and listening to the podcast, I realized that AI is almost everywhere. It can be applied to human pose estimation, quantitative trading, personalized banking, virtual nursing assistant, and personalized patient care.
