Liwei Wu...

always curious about the world around me

Life Blog

to write some random thoughts in life either in English or Chinese



One article I found interesting

Posted on Oct 05, 2017

Article talks about some facts on PhD program. I thoght it would be interesting to people to who want to pursue PhD in the future. I found what he said in the end to be quite interesting:

"The students who excel at playing the “Ph.D. game” are those who are able to figure out how to pursue research that they personally find interesting but that can also appeal to their advisors, grant agencies, and paper reviewers. I hesitate to give a single blanket definition of “success” for a Ph.D. student, but if I had to give one, I would define success as being able to pursue your own research interests as much as possible while still being able to convince the three to five professors on your thesis committee to let you graduate."



Number of Questions on Leetcode growing exponentially....

Posted on Sept 18, 2017

In 2014, there are only around 150 questions...now there are over 600, almost 700 questions.. I remember when I started in 2015, it is around 300. Oh, I miss the old times...



Between Uncle Sam's birthday and My birthday

Posted on July 5, 2017

I never realized that my birthday is so close to Uncle Sam's, well, probably because for past few years, I was never around at this time of the year in America.



Another lesson learnt

Posted on Jun 28, 2017

When you change variable names or doing optimization of codes, please do it one by one and make sure all the units pass before commiting the change. You will never what mistake you will make, even when you simply add one line to hundreds of lines of codes or change some variable name.



One lesson learnt

Posted on Jun 26, 2017

Between delivering results fast or writing qualify codes, which one should you choose?

My understand is that first write code that works and get the initial results / get the job required by the boss done before spending tons of time optimizing codes. It is hard to use the optimal algorithm, carefully comment everything and make codes of good quality and fast. Of course, if you can do both at the same time, why not? The reality is that although I only wrote ~200 lines codes, it still could contain a lot of sutble bugs or corner cases hard to think of. If you spend days debugging and re-implementing working codes (which could be slow or use a lof of memory) in the smartest way, then you will suffer from the issues of not delivering fast. It will be not good to you if you have nothing to show your work to your boss. It is much better to show results first and then optimize the codes later, which you should do ASAP otherwise you will pay "interests" from the technical debts.

One can check the following questions:
Is taking your time writing quality code better than fast and clumsy code to get the product out the door?
What is the difference between writing code to solve a problem vs. writing production quality code to solve a problem?
Should startups write good quality code from the start or just worry about delivering the product as fast as possible?

Rules for writing quality code:

Write quality code follow below rules : 
Rule 1: Follow the Style Guide
Rule 2: Create Descriptive Names
Rule 3: Comment and Document
Rule 4: Don't Repeat Yourself
Rule 5: Check for Errors and Respond to Them
Rule 6: Split Your Code into Short, Focused Units
Rule 7: Use Framework APIs and Third-Party Libraries
Rule 8: Don't Overdesign
Rule 9: Be Consistent
Rule 10: Avoid Security Pitfalls
Rule 11: Use Efficient Data Structures and Algorithms
Rule 12: Include Unit Tests
Rule 13: Keep Your Code Portable
Rule 14: Make Your Code Buildable
Rule 15: Put Everything Under Version Control.

Difference between Data Engineer, Data Scientist and Machine Learning Engineer

Posted on Jun 24, 2017

The following is taken from Quora

Data engineers are hard core engineers who know the internals of database softwares. He compiles and installs database systems, writes complex queries, scales it to multiple machines, ensures backups and puts disaster recovery systems in place. He usually has a deep knowledge and expertise in one or more different database softwares (SQL / NoSQL).

The primary tasks of a data analyst are compilation and analysis of numerical information. They usually have a computer science and business degree. They get analytical insights out of all the data which an organization can have (Database softwares or just excel sheets) which makes sense for the organization and compile them into decent reports so that other non technical folks can understand and decide their course of action.

A "Data Scientist" usually has many overlapping skills - Database Engineering, handling BigData systems like Hadoop OR Netezza, knowledge of Python/R and knowledge of statistics / data mining.



Someone's answer on Quora

Posted on Jun 22, 2017

See here: link. What I like most is that:


"It is impossible to be a good programmer unless you are very passionate about the craft. You have to take great joy in seeing your concepts and inventions come to life.

Most people don’t have the patience. They want results now now now. Code requires patience and passion.

Learning to code well takes years. Maybe even decades.

If someone is truly patient and passionate, they can become a world class programmer with just a few hundred bucks worth of books, and a cheap laptop.

Hell, they might not even need the books, if they have a stable Internet connection.

But most people try to do it for the money. All these people fail and go do something easier.

When you are happy eating, sleeping, and breathing the process of learning to program, you have a chance at becoming a good programmer.

And the money is a nice side effect.

The really good, the really expensive, programmers don’t do it for the money.

They do it because they don’t have a choice.

They do it for the joy in it."



I cannot agree more. What I feel internship so great is that you get paid to learn different cool, new things that you didn't learn before. Well, in that sense, it is similar to doing a PhD. LOL.



First Day of intern

Posted on Jun 20, 2017

Second day of life as an intern: finally I gained access to server and a lot of other things (printers, VPN and so on) and I learnt one lesson: keep track of plans for each day (writing down in word doc is a good idea), otherwise it is easy to get lost when you have too many tasks and too many links to read and study.



First Day of intern

Posted on Jun 19, 2017

I started my first day as an intern. It is a complete different experience from doing a PhD. It is very tiring although I haven't really done anything except gaining access and finding a laptop and work station. One lesson learnt: wear more to work. It will be cold in the office despite it is over 100 outside. The other lesson learnt: 不要害羞呀(拜托),多独立一些,争取做好工作和生活的平衡.



First Day at San Ramon Valley

Posted on Jun 18, 2017

Tomorrow will be my first to work ever (as an intern). I am quite excited/nervous. I don't quite know what to expect but I guess I will simply try my best. Moving from Davis to San Ramon is tiring. But the photos I took are so beautiful that it is totally worth it. The little girl at my host family asked her mom if I am a photographer. I was thinking at my heart: while I am not quite there yet, I will try to capture the beauty of life other people don't see. Finding beauty around myself is also one of my life goals. Sometimes I find the math so beautiful that I want to tell everyone in the world my thoughts. Most of things in life are connected. If one understands one aspect of life, one starts to see everyhing else also makes sense. Just like both research and photography, one find beatuy that others are too used to and simply blind to. Researcher points out the beatuy by publishing papers and photographer points out the beauty by shooting and posting photos.









Template design by Andreas Viklund