Sunday, November 5, 2017

Shen Neil - Shanghai Jiaotong university alumni

Nov. 5, 2017

Introduction


It is so interesting to be an alumni of Shanghai Jiaotong University, China. I went back to have a vacation this October, I had to meet classmates of undergraduate 70141 and also graduate class 8902.

My undergraduate class is named as 70141, and my graduate class is names as 8902.  I had chance to meet some of my classmates and I had chance to follow more on wechat about their stories. One of 8902 classmate posted the blog about Shen Neil who is my undergraduate classmate of 70141, of course, he is no longer the first degree of my friend circle. My close friend's circle is engineers and teachers of alumni of 70141 and 8902 classes.

Here is the article written in Chinese for me to study in 20 minutes tonight. Chinese sentences are written like this: Four year Shen Neil makes 2 billion dollars, but he invested 50 billion first, in 11 years make 2600 billion dollars.

" 投资教父"沈南鹏,4年赚到20亿还嫌不过瘾,他一举砸下500亿 , 11年创下2.6万亿奇迹!

Study of Shen Neil 


Shen Neil's wiki page is here. 
Shen Neil's wiki page in Chinese is here. 

His partner of Sequoia: Michael Moritz


52 minutes interview called Sequoia's Neil Shen to Entrepreneurs: "Follow Your Heart", the video link is here published by Stanford Graduate School of Business.

Several arguments to look into from the article:

Arguments:

不过天才就是天才,在十几次面试的过程中,沈南鹏就摸到了门道。

此后不到两个星期,他就把江恩理论、5个波浪循环、MBS、CDO、中国国债、布伦特原油报价等问题搞透了。

Facts:

就在另外两个人绞尽脑汁在纸上比划的时候,沈南鹏不到5分钟已经给出了答案。

原来不太懂中国的商业环境,到了1999年,我已经比较‘土鳖’了

Saturday, November 4, 2017

Leetcode 611: Valid Triangle Number

Nov. 4, 2017

Introduction


It is the medium level algorithm. The algorithm is very challenging to lower the time complexity from O(n3) to O(n2) using two pointer techniques or binary search. The peer gave me the hint to lower the time complexity, and then I started to think about binary search with time complexity O(n2logn), and then the peer gave me hint to continue to optimize the time complexity.

Plan to write C# code and also read discussions for the algorithm in short future.




TED Talks: 'Grit: The power of passion and perseverance'

Nov. 4, 2017

Watch 6 minutes video, a TED talk: Grit: The power of passion and perseverance. The article with video link is here.


Plan and budget

Nov. 4, 2017


Introduction


I like to write something about project management and cost analysis, and share my story about my October vacation.

I came back from the vacation on Oct. 20, 2017, recovered from the jet lag, and started to catch up the projects at  work. And I like to document how I learn to plan and how to budget, and understand how I can make things better.

It is time to talk about money, and I believe that a very smart programmer should have learned so many things through years, and I just make you laugh when I share my learning and how I understand the money talk.

Money talk 


Will come back very soon.



Galaxy S6 - Tips, Tricks & Hidden Features

Nov. 4, 2017


Introduction


It is two months to be a user of Samsung Galaxy S6 mobile phone. I enjoy so many things last two months and really like to write an eulogy for my new companion - a refurbished Samsung S6 phone.

As a mobile phone user, I need to keep learning the mobile apps and keep update specially weekends.


Study of the video 


I always said those sentences in my vacation to my sisters, "I do not need a brand new iPhone or latest version Huawei phone,  or a brand new luxury car to help my confidence. I am a consumer and then I tell you what I like to use, a used one."

My point is that it is not too difficult to purchase a brand new phone, I can spend extra $200 or more to get a brand new Samsung S6 this August. It takes so much time to catch up the advanced features for the phone. As a website developer, I also have to educate myself as a product manager for the website, I need to learn how others are expecting to use the mobile phone first, and then estimate how much computing power I can generate and produce a decent mobile website.

12 minutes video is here called Galaxy S6 - tips, tricks & hidden features.

17 minutes video is here called 10 Hidden Features of the Samsung Galaxy S6 You Don't Know About.

Actionable Items


Follow up
Oct. 13, 2019
I found out that I did not learn the basics of investment. I found out that in 2018 I had over $50,000 Canadian dollars with Scotia bank, I earned less than $10.00 dollar interest in 2018.

I also reviewed my US dollar account with Scotia bank from 2010 to 2017, but I did not have any interest. I found out that I wasted so much opportunity, since I missed 10 year bull market from 2010 to 2018.

Leetcode 41: First missing positive (II)

Nov. 4, 2017

Introduction


It is so pleasant to meet a peer through mock interview, and watch and learn how the peer solves the algorithm with a few of hints, write optimal solution to pass all test cases. Through 40 minutes interview, I also had chance to review the code, shared my experience of coding style, how to apply to the peer's code.

It is so exciting to see how I can learn to share my experience just in-time, and help a young programmer to pay attention to coding style. One thing I liked most in mock interview is to show the peer how to break giant expression, what to iterate in the while loop.

Also the peer chose to use C programming language, so I know that she must be a top-talented person, because those machine learning algorithm matches me to top talent in the world this Saturday morning. Only few of us can choose to use C to do interview these days. Through mock interview, I experienced C programming and do not pay attention too much since I need to refresh my C programming knowledge.

Algorithm Talk 




Leetcode 18: 4 Sum

Nov. 4, 2017

Introduction


It is such a great mock interview this morning starting from 10:00 am. I had to work on the algorithm Leetcode 18: 4 sum in the time limit of 35 minutes. I did a few things to make the mock interview great learning experience. I wrote an algorithm, passed the compiling and then passed all test cases without any bug. The algorithm has optimal time complexity although extra space is needed.

Here are highlights:

 1. I chose the algorithm using time complexity O(n2). Two sum pairs are saved to the dictionary for lookup later on.

 2. Whiteboard testing was very helpful, I chose the easy one [3, 2, 1, 4, 5] and the given 4 sum is 12 = 1 + 2 + 4 + 5. Compared to the test case given in the problem statement, this one is easy to follow.

3. Through whiteboard testing, I found a bug in my design. The array may have duplicate numbers, and then I spent extra 5 minutes to change the design, in line 78, I added two extra elements in the array to save index number of the array.
newList.Add(new int[]{no1, no2, i, j})

4. Through the whiteboard testing, I modified the code to make it more easy to follow. I added var no1, no2, no3, no4, assuming that no1 <= no2 <= no3 <= no4, and the index of four numbers in sorted array is in ascending order.

5. I spent less than 3 minutes to fix all compiling errors.

6. The code runs and pass all test cases without any bug.

Code review


The code I wrote in mock interivew in C# is here to view.

Based on my last practice on Leetcode 18: 4 sum in August 2017, I worked on the feedback. I need to write a run-through code, I have to simplify the solution in order to fit in 30 - 35 minutes.

A few things I did are very helpful to expedite the process this time. The most simple test case is chosen to do whiteboard testing; the whiteboard testing is not a fake one, in the process of testing, I found a bug first, and then came out the fix, and in-between I added a few more variables to make code more easy to follow, avoid bugs.

Feedback from the peer


The peer did not choose to use the video, but her knowledge of algorithm is very helpful. I did have chance to learn the algorithm compared to two pointers techniques.



Friday, November 3, 2017

Leetcode 37: Sudoku solver

Nov. 2, 2017

Introduction


It is the time again to write a Sudoku solver. Here is my C# practice, the peer told me that I do not need to run the code using web browser compiler.

The mock interview was supposed to end in one hour to 11:00 PM, but it actually ended at 11:50 PM. I spent more time to chat with the peer until the session terminated due to timeout.

After that, I started to run the code, first I fixed the grammar error line 62. The Split function of string will have an array of string, not an array of char. The line 62 has compile error. It is the easy and quick fix. But I came cross the index out of range run time error. This one I could not pinpoint the error.

I was troubled and tried to set up test case until 1:00 AM, and then I called it a day. I did not do whiteboard testing, instead I tried to guess what is possible places to go wrong for index-out-of range error. With whiteboard testing, it should be a quick fix. But without it, I wasted almost one hour but I still could not find the issue until 1:00 AM.

Whiteboard testing


The whiteboard testing is to use a test case and go over the code line by line, write down the value for each variable, and run the code virtually with results.

If I do whiteboard testing, I should have found the bug on line 91. Here is line 91 with the bug:

for(int row = startRow; row < row + 3; row++)

actually when I run the whiteboard testing, startRow = 0, then row is from 0 to 2. The statement should be written in the following:

for(int row = startRow; row < startRow + 3; row++)


Nothing beats whiteboard testing 


In terms of bug fixing, nothing beats whiteboard testing. Go over a simple test case, go over each line of code, put the result next to the code.

Actionable Item


C# code is updated and it passes all test cases after mock interview. The C# code is here. 

Review sudoku algorithm on code review website, and I studied the question:

Solving Sudoku using backtracking

Plan to write C# code based on the above code review. I feel that there are a few things I can apply to my mock practice code. 


Plan to write a blog to review algorithm of longest common subsequence written in Chinese. The link is here.

Leetcode 41: First missing positive

Nov. 1, 2017

Plan to look into Leetcode and find the similar algorithm called get smallest nonnegative number.

Get smallest nonnegative number, do not change the array.

My C# practice code is here on Nov. 1, 2017

Also, I spent almost 50 minutes to interview the peer on Nov. 2, 2017 and had some discussion about the algorithm. I like the peer to go over the base cases to show very good reasoning.

[],   0
[0], 1
[1], 0
[0, 2, 3]  1
[3, 0 , 2] 1
[0, 1, 2, 10000]


Leetcode 41: First missing positive 


It is the hard level algorithm. Time complexity is O(n), space is O(1).




Thursday, November 2, 2017

Quora reading time: Drew Eckhardt

Nov. 2, 2017

Plan to read more on quora.com, the user Drew Eckhardt's profile is here.

Wednesday, November 1, 2017

Role model on hackerrank

Nov. 1, 2017

Introduction


It is a small world these days, I know that every 6 people can get you connect to any one in the world assuming that you only reach out the person you know.

Today I went over the leadboard of hackerrank woman codesprint, and then I saw one of players and was so amazed about the player's hard work.

The player completed more than 100 algorithm practice on project Euler less than one month.




Leetcode: binary search tree inorder successor

Nov. 1, 2017

Introduction


It took the peer 60 minutes to write a solution to find binary search tree inorder successor on Oct. 31, 2017.  One time the peer asked me who I am, are you a teacher?  I must be very patient and be very supportive.

In fact, I understood that I failed at least 30% of algorithm in the first round of mock interview starting this March. So it is very easy for me to relate to my performance, I am in trouble, and have some difficult time to solve the algorithm.


Algorithm study


Plan to study the binary search tree inorder successor algorithm. Read as many discussion as possible, here is the Leetcode discussion link.

Common bugs for wrong answer

Oct. 31, 2017

Introduction



It is so time consuming to find the bug in my code, and then after almost over 5 minutes, I decided to use Console.WriteLine to help, because I gave up whiteboard testing. The peer insisted that the test case of platform is working, and then I found out that I should add a statement to break the for loop.


Code review 


Here is my C# code.

I spent over 5 minutes to do whiteboard testing, but I could not find the bug. The line 38 break statement is missing. Need to break the for loop.

Actionable Item


Need to work on whiteboard testing. If the result is wrong, then I need to figure out the reason without using debug statement.

Plan to do some research about wrong answer bugs.

The feedback is that "only test 2-3 times".


Play by play: html, css, and JavaScript with Lea Verou

Oct. 31, 2017

Introduction


It is the time to catch up some learning of JavaScript through pluralsight.com. I chose to study the course today, I spent one hour to go over the course, here is Lea Verou wiki page.

First I spent around 2 hours to study code review of JavaScript, the learning of JavaScript was kind of slow and not efficient, so I decided to choose an advanced course to study through pluralsight.com. I chose the course Play by play: html, css, and JavaScript with Lea Verou.



Course Study


Book To Read

CSS Secrets

Nov. 1, 2017
Continue to watch the video, HTML Game View
Accessibility and Styling.



2017 year end JavaScript code review

Oct. 31, 2017

Introduction 


It is the time to review what I have completed in 2017. I like to go over JavaScript and see if I can boost my JavaScript skills in the last two months of year. I chose to study 2 hours code review conducted by BlindMan67.

Code review 



Sunday, October 29, 2017

Leetcode 238: Product of Array Except Self

Oct. 29, 2017


Introduction


It is over 30 minutes to write the algorithm based on the idea using dynamic programming. By going through the whiteboard testing, it took me two steps to come out the code passing all testing cases. First I wrote code to make sure that the value was correct, and then I change the code based on TED principle.

Code study


C# code is here.

I wrote two blogs about the algorithm, the first one is written in March 21, 2016. . The second one is here written in July 24, 2015.




Women's codeSprint 4: Afraid of the dark - after the contest

Oct. 29, 2017

Introduction


It is time to study the algorithm after the contest. I like to study the editorial note for the algorithm - afraid of the dark. It is an algorithm using BFS, DFS, union-find, greedy algorithm. Time complexity can be O(n).

I felt that I have to start all over again, I could not perform the contest in less than 10 hours, I have to dedicate long hours in order to perform in the contest. How can I dedicate so many hours for a contest? How can I motivate myself to stay focus on problem solving?

The problem I have is that I solve more complicated problem than I should. Based on past experience on contest, the solution should be very simple and no complicated code for the contest, specially for medium level algorithm.


Actionable Item


It is a good idea to take 30 minutes at least every day to go over all the algorithms in Women codesprint #4, spend time to write code for each algorithm.

Plan to write C# code for the algorithm.




Woman codesprint 4: Extra Sweet - after contest

Oct. 29, 2017


Introduction


It is time to look into the answer of extra sweet. I started to review editorial notes, look into the leaderboard, and also study test cases. I found the code to study, here is the Java code.

Code study 


As a programmer, it is very important to be able to understand the algorithm in small detail. For some reason, I miss the important clue to solve the problem.

I spent time to look into the code and then finally I understood the idea by studying one of Java submission. Here is the Java code.

Starting from 7:10 am, now it is 8:20 pm, I never had such great time to study those code submissions and concentrated the problem solving.

Here is the design to study through the above Java code:


In the contest, I tried to set up the double linked list, and I like to set up 0's next points to 6, and 6's previous link to 0. Compared to the study code, no array is need. Just set up a map to add 1 as key, 6 as value, and then 5 as key and 0 as its value.

Saturday, October 28, 2017

Women's codesprint 4: Afraid of the Dark

Oct. 28, 2017

Introduction


Now it is 11:19 PM, only 10 hours left for the contest. I only score 19 points, I need to start to work on second medium algorithm called Afraid of the Dark.

It is too late to write code for the algorithm. Now it is 1:51 am. I reviewed the graph algorithm through my coding blog, one popular algorithm is called union find algorithm.

It is not difficult to figure out the solution. We can form the disjoint sets, and then each node belongs to one of set. For set with even number of off light bulbs, the number of visited node is the size of disjoint set. For set with odd number of off light bulbs, each room with off light bulb will have a minimum distance to the leaf node.

Algorithm coding


Plan to write code after the contest.


Actionable Item


It is time for me to review my practice. I felt less engaged to the hackerrank contest, I prefer to read some material on quora.com, but I will be better off to write code and try to push myself to solve algorithm problems.

I do not need to consume so many question/ answers on quora.com. Please limit time to read on quora.com as well.



Women's CodeSprint 4: Extra Sweet

Oct. 28, 2017

Introduction


It is time to work on the algorithm called "Extra Sweet". I tried to enjoy the problem solving but after a few hours I only scored 4 out of 30 points on this medium algorithm.

Progress report 


Now it is 11:11 PM, Oct. 28, 2017. I need to move on next medium algorithm.


Follow up 


Oct. 29, 2017  8:26 PM
After the contest, I did study editorial notes, and also go over some code submissions.

Here is the code I wrote in the contest, I tried to set up linked list to double link two nodes.

Nov. 1, 2017
It is hard to figure out what was wrong with my research in the contest. I did try to figure out the issue, I made 4 submissions.

Extra sweet

First submission - the issue found and then I started to work on, mix the setup of linkedlist with the calculation of extra sweet.

Second submission - set node's left neighbor to the first node with value 0.

Third submission - set line 89 - point to the next point to the dummy node nodes[n] with index value 0.



Quora study: Dmitriv Genzel

Oct. 28, 2017

Introduction


It is the interesting place to see people write so careful and with so much detail on quora.com. Usually I like to read on linkedin.com, but now it seems to me that quora.com is better place to read.

Dimitriv Genzel is the machine learning team lead of quora.com. I like to study one of his post recently. The link is here. His profile is here.


Read one more answer from quora product manager, here is the link.

Read one answer about using competitive questions to prepare for facebook interview, the link is here.


China open quarterfinal Dimitrov

Oct. 28, 2018


Introduction


I spent over a few hours to watch live China open quarter final Dimitrov against Spanish player. It is the first day of my vacation in China, October 6. I could not believe that the experience was such great one, I like to write down some notes and continue to do some research about the player.


The coach team was sit next to me in less than 2 meters, I kept hearing the coaches were calling, "Find ways", "Are you sure". This was the first time I observed how coaches involved the match actively.

I knew the coach crew by watching one of practice video of Dimitrov before. Here is the link called Pushing the limits with dimitrov part one, 5 minutes video. Here is the link of part II, 2 minutes video.


Air canada shanghai to vancouver flight

Oct. 28, 2017

Introduction


It is such a pleasant flight that I like to write a short eulogy for the trip. I traveled with Air Canada Oct. 20 from Shanghai to Vancouver.




Find the smallest substring that contains some given subset of characters

Oct. 28, 2017

Introduction


It is a long journey for me to come out the solution to pass all test cases. I did at least 4 or 5 time last 6 months to work on the algorithm called "Find the smallest substring that contains some given subset of characters". I posted the question on code review, link is here in Sept. 2017.

Today I had chance to interview a peer using the algorithm, I only can hear the voice no video, but I understood how tough the algorithm can be, specially for the first time player. The peer does not work on the algorithm before, and I worked with him near 50 minutes on the algorithm. First 20 - 30 minutes to work on the algorithm itself, I had chance to follow what he approached the problem. Next 20 minutes I asked him to write code so I can evaluate his coding skills and coding style.

The mock interview is such a nice place to meet people and figure out together how to improve technical skills. The conversation is interesting and also very gentle on the topics. I have to let the peer approaches the problem first, and then give some hint, and see how discussion can continue.

The peer is very diplomatic so I know that he must be an important role in his job. First he chose to use JavaScript to code the program, so I complimented him about he must know node.js framework.
Then I noticed that he wrote down some notes to show his logic thinking, it is very clear; he asked my feedback so I know that he is also very good listener.

Mock interview 


I found out that I always get best peer in the world, so I have to keep up with the peer about technical skills, help them to understand their strength and weakness. It is so interesting to have a mock interview.

The test cases discussed in mock interview are the following:
1. yxxz -> "yxxz"
1. xxyz ->"xxyz"-> "xyz"
2. slide window, two pointer technique
left pointer and right pointer
3. Move right pointer first, and then find a substring; and then move left pointer to make the substring smaller if possible.

For analysis, if the peer can come out the test case like the following: For example, for search string ['a','b','c'], source string "aefbcgaxy", the shortest string is "bcga", the peer has excellent analysis of algorithm, assuming that the peer does not work on the algorithm before. 


Julia's practice 



It is also a great idea to review my practices:
April 2015, blog is here.
April, 2017, it is documented here.
June 29, 2017, mock practice C# code is here.
Sept., 2017, it is documented here.
Code review is here.

Oct. 31, 2017
It took me three years to fully understand the algorithm and how to work out a perfect solution. This experience taught me how to treat others, more patient please. And this is the really great algorithm to evaluate the candidate the algorithm analysis and technical strength.

Friday, October 27, 2017

Code review "LINQ and string.Split do it yourself practice" (II)

Oct. 27, 2017


Introduction


It is the first time I understand that the technical strength can only be trained by dedicated practice. Today I had chance to walk through those five lines of C# code, and explained to the peer how to apply those things in C++ code.

Will come back to document more about the experience as an interviewer. My last blog about the code review is here less than one month ago.


Algorithm talk 


The peer likes to write C++ but the complexity of code is beyond his expectation. 30 minutes is too short to come out the workable solution.

Here is the C# code written by code review on stackexchange.com:


Each step in the above C# code can be a small function written in C++ if the peer does not know the regular expression, or similar LINQ method. 3 or 4 years job experience does not help to train yourself to be a good C++ programmer. You need to train carefully.


Actionable Item



Plan to do some research about post vacation syndrome. I need to get out of relationships from the family back in China, less frequent using wechat to communicate family in China anymore, and get back to my normal work day in the city of Vancouver. One thing I choose to do after I overcome jet lag is to practice mock interview every day 10:00 PM. Need to meet new people and learn more about the industry and people.

Give myself a pat on my shoulder. Show my report of first mock interview after a month break.

Thursday, October 26, 2017

Whiteboard testing is the savior

Oct. 26, 2017

Introduction


It is the best decision to practice mock interview starting from today. As usual, I choose to practice 10:00 PM since it is too late to work and usually I am so tired, usually I have difficult time to think clearly after long day, I like to drill myself to simulate tough situation at work. My last practice is Sept. 27, 2017. Since I took a vacation from Oct. 5 to Oct. 20, I did not practice mock interview at all.

Today I spent first 15 minutes to write code, and then I relied on my techniques using Terse, Express the intent, Do one thing (TED) principle, and then I made the change to look ahead to determine if it is ready to compare (line 33: readyToCompare), I passed all test cases in the 35th minute.

In summary, the algorithm I had to write is a linear scan algorithm, instead of looking ahead to determine if it is the last row in the current time stamp, first 25 minutes I worked on the idea to look backward to compare to previous time. Once I play with whiteboard testing, I figure out the solution 100% correctly.


Code review



C# code is here. Plan to highlight a few changes I made.

Line 29 - comment out line 29, the peer reminded me no need to use startNewTime, previousTimeStamp

Line 40 - max = sum;  // the peer reminded me that sum is the new max value.


Actionable Item


Usually linear scan algorithm I should aim at 10 minutes to perform.

What are top 10 lessons to write a coding blog?

 Oct. 26, 2017

What are the top 10 lessons to write a coding blog?


I like to introduce myself first. I started to write a coding blog from January 2015 just after I failed an algorithm interview in the city of Vancouver, Canada.  As usual, I felt disappointed to myself, but this time I decided to write down my journey. I set up a goal too high for me to reach it. If I cannot be a top player, maybe I should at least try to be the coach for top players one day. Write down my struggle and failure, make it valuable to others.  

As a first time blogger, a coding blog blogger, the first 6 months to 12 months, I was afraid to write down my thoughts as well, and I do not have a lot of ideas to write. But I start to learn how to organize a blog, how to design a blog, how to write in 5 minutes and have a good blog to entertain myself every time I feel down. After 24 months, I have written more than 1000 blogs.

There are millions programmer jobs these days. But do you find that it is hard for you and me to get a desirable job and advance your career successfully? Is it difficult to find a popular name to relate to good and real story about hard work as a software programmer.

In terms of coding blog, do we have a good brand household brand everyone can relate to? Just be brave, dare to be number one, you should start to write your own coding blog starting today. You may be the one who inspire million programmers.

How about a two year old coding blog called Julia coding blog? That is my coding blog: http://juliachencoding.blogspot.ca/.


Top 10 lessons for a coding blog


1.       Coding blog can be very short. Do one thing a time. Work on one algorithm a time. I used to write a blog to review over thirty computer algorithms, it is hard to organize so many algorithms in one blog. 
2.       Write down your coding practice. Stay focus on coding practice. Write down how you feel, do not make it like a textbook, or journal paper, or a conference paper. Include some statistics to help track progress later on.
3.       Be creative. It is your time, you are the author. Think more about serving yourself very well. How can you learn from a coding blog?  You are teaching data structure and algorithm for the future yourself.      
7.       Have some humor. Every time I like to write down something, I notice that I need to practice coding first, or play a contest on HackerRank, or set up a mock interview. No matter how busy I am, I have to find time to write code. Sometimes, it is embarrassing because the ranking of contest, the poor performance I have on the last contest.

8.       Set up a high goal is always a good practice. Learn to be a coach. 
I do have a nephew who just graduated from computer science bachelor degree one year ago. I like to coach him one day to be a top programmer. I need to prepare early, I am more motivated to work for my coding blog.  


  . Discipline yourself. I often try to choose a topic for my blog to make it more outstanding. Once a while, I will choose a bible verse as my blog title. I like to write something with facts, arguments, and also something inspiration. Avoid risky topic to bring controversy.
5.       Make it casual. I also wrote some blogs about tennis sports, top 10 success rules, and other research I do daily.

6.       Read a lot of your own blogs, and rewrite. I got complaints from my friends about grammar errors etc., instead I learn to write and use a new word in each blog, improve and expand my vocabulary.

More about coding blog



Let me explain how I manage my coding blog as a designer, product manager, a thinker and also a code writer and a Hackerrank contest player.  

Coding blog is more controllable 


1     Write a lot, produce a lot of content. I pursuit a lot of goals but failed to achieve, things are not under my control. But a coding blog published using Google blogger, it is very easy to start and manage these days.  

Blog is my product, and I am the product manager of my blog, also I need to do marketing and invest a lot of time to the coding blog product.

Sports training


2     The past 24 months, I played a lot of tennis sports. I train myself to follow professional tennis player, and use the sports to train myself. I like to train myself in a few areas, sports techniques, new school of entertainment, mental toughness, and how coach educate young players, drills of sports, tournaments, rankings. I need a place for me as a sports fan to document the journey as well, share my stories.

     Long term work 


3      Learn how to get more organized and stay connected to my past work experience. I like to write down my thoughts so that I can analyze my thought process later, sometimes an advanced algorithm and data structure takes months and years to master, like union find, regular expression algorithm, dynamic programming.

     Easy to access


4      It is easy for me to write a blog compared to get connected to a person through meetup or other activities.  Also I like to demonstrate how good a person can be to work on a project. How hard it is to work on a goal, like solving an algorithm problem, how many submissions to succeed to solve a problem on Hackerrank.

    Writing Principles



5     I do not have a mentor to help me to write blogs. I need to find out the principles to help me to write, and also help me to think clearly and logically.

    Bad habits 


6     I have a lot of bad habits to get rid of, like impulse shopping, peer pressure, unhealthy diet, and lack of sports training, competitive sports training. One solution is to build a new good habit, write a good coding blog every day.

7     I worked on my computer science Ph.D. program from 2001 to 2011, but those 10 years I did not build a good habit to write programs for data structure and algorithms daily, research daily. Coding blog will force me to stay on the track to work on my crafting skills, a good thinker of algorithm and data structure.

    Community 


8     I like to figure out how I can get more involved in the community I live, I like to be an educator, engineer, counsellor. Coding blog is not a bad choice.

    Less Democratic


9     I read a lot of blogs, and I know that blogging is cheap and efficient way to publish. Although it is not so popular, it is safe and sandbox to get more experience without worrying about down votes.

What are top 10 questions to ask yourself as a software programmer?

Oct. 26, 2017

Plan to write a blog and answer the question on quora.com. The question is "What are top 10 questions to ask yourself as a software programmer?". The link is here.


Oct. 27, 2017

It is the fact that I stay at current job over 7 years. Last 3 years, I work day and night, and try to work on data structure and algorithm, work on solving leetcode algorithms. I finally can say that I can write much more efficient code, wish that I can write a better product for the business.

I ask myself a lot of questions. Let me put down a list first and then sort out by the categories.

New roles 

Can I be a good project manager?
Can I be a product manager to manage myself?

When I document my experience through coding blog, do I demonnstrate good skills as a product manager or project manager?


Hackerrank contests


Do I have more time to play hackerrank contests and win more medals?
Do I regain the passion to play hackerrank contest after I won my first gold medal?
Do I still work hard to study lead board of hackerrank contest and then try to figure out something new to learn?

Do I have freedom to rewrite the whole website using some fancy technology I learn recently?

How long should I choose to work on programming job?
When do I notice that I need constantly review what I have done and then code review, rewrite the code?

Simplify the engineering 



How is the review of cache design in the website?

should I continue to do some research on website cache design issue?


Training 


What percentage is to train myself coding?
When to train myself?
What to train myself?

How to bring people to my working relationships? How to form a circle?


Goals


What is my 6 month goal?
What is my 12 month goal?
How many hours to spend on pluralsight.com to learn some new tecnologies?

What are top 10 surprise to write a coding blog?

Oct. 26, 2017

Plan to write a blog and answer the question I ask on quora.com. Here is the question link.

Oct. 27, 2017

Top 10 surprise:


Most my favorite algorithm is Leetcode 10, regular expression.
Most my favorite time is to practice mock interview
Most my tough time is to try to break into an advanced algorithm on hackerrank contest


I like to write other topics as well. One day I noticed that I wrote down the topic called face paralysis.

Wednesday, October 25, 2017

Code review follow up

Oct. 25, 2017



Introduction


It is a good habit to read code review again and see how many things I should work on to improve my csharp code skills. Today I spent 20 minutes to review the algorithm and wrote the csharp code based on code review.


Follow up


Originally I asked the question on code review community 27 days ago, the experience is documented here called

Thanksgiving campaign No. 1


Oct. 25, 2017

Code review C# code is here. I will look into those changes later. 



Actionable Items


I like to figure out how to market the question on quora.com, therefore, I may have to ask a question and then try to target those undergraduate students who are working on C# course or object-oriented programming. 




Sorting an Array of Values Based on an Array of Keys

Oct. 25, 2017

Introduction



One apple a day, keep doctor away. One program a day, also keep programmer awake. Today a small program keeps me awake to look into a few things, ...

I like to share my practice using C# 2000 things, item 136: Sorting an Array of Values Based on an Array of Keys.

Here is the C# code.

Read the code and enjoy the workout.


Sorting an array using an independent Comparer method

Oct. 25, 2017

Introduction


One apple a day, keep doctor away. One program a day, also keep programmer awake. Today a small program keeps me awake to look into a few things, IComparer vs IComparable. 

I like to share my practice using C# 2000 things, item 137: Sorting an array using an independent Comparer method.

Here is the C# code.

Read the code and enjoy the workout.

Implementing IComparable to Allow Sorting a Custom Type

Oct. 25, 2017

Introduction


One apple a day, keep doctor away. One program a day, also keep programmer awake. Today a small program keeps me awake to look into a few things, IComparer vs IComparable, throw new ArgumentExcecption on line 44. 

I like to share my practice using C# 2000 things, item 135: Implement IComparable to allow sorting a custom type.

Here is the C# code.


Tuesday, October 24, 2017

Hackerrank: Women's CodeSprint 4

Oct. 24, 2017

Introduction


It is the time to play another codesprint this Friday. I thought about yesterday and decided to join until this Thursday, because I need to discipline myself to work on the contest. It is not an easy task because of the busy schedule.

Here is my last two contests on Hackerrank.


I documented the university codesprint 3 contest here. I just could not believe that after the contest, I wrote the blog to celebrate my piece of puzzle to solve NIM game. It is just another contest, and not so good performance. Surprisingly, I got some feedback through a phone call, unbelievable story in the city of Vancouver. 


CodeSprint strategies 


I spent extra 20 minutes to look up bible verse for my contest. Here is bible version Proverb 13:4 for my woman codesprint 4.

Statistics


The blog was written from 6:00 am to 6:20 am, Oct. 24, 2017. I just came back from China and went back to work starting from Oct. 23, 2017. I need to get rid of jet lag, I came back on Oct. 20, and this is the fourth morning with jet lag, I went to bed around 8:00 PM, and woke up around 3:00 AM, and then read wechat to 5:00 am, and got up at 5:30 am.  



Leetcode: binary tree upside down (II)

Oct. 24, 2017

Introduction


It only takes around 20 minutes to read a recursive solution on the panel of Leetcode discussion. I read the solution this morning around 3:00 am. Now it is 5:43 am, I got up and started to work on my computer and blog this algorithm.

Code study 


It is better for me to choose one of discussion, and check in the code, and then plan to write C# solution later. 

Here is the discussion link.

Analysis 


Most important is to read yfcheng's analysis. Plan to spend 20 minutes to read and also review the drawings. And then I will write down my own words, and make a drawing as well.

Java code 



Recursive solution in Java code:

Iterative solution in Java code:


Actionable Item


I finished the blog at 6:00 AM, only 15 minutes. Will come back to work on the algorithm based on the discussion. 

Monday, October 23, 2017

What one tip changed your writing forever?

Oct. 23, 2017

Introduction

It is now 7:48 am, I finished my morning work from 5:00 am to 7:50 am, last 5 minutes I wrote an answer on quora. Here is the link: What one tip changed your writing forever?

Finally I need to take some time off and prepare for my breakfast and lunch and go to work.


IIS administration

Oct. 23, 2017

Introduction


It is time for me to get back to work on Internet Information Server (IIS) administration after the vacation. I delayed the project because of my China vacation.

Plan to watch a few of Microsoft IIS administration videos first.


Outco research

Oct. 23, 2017

Introduction


It is Monday morning, 6:14 am. I plan to spend next 30 minutes to do research about outco through yelp. The link is here.

Word of mouth marketing is the best one and I could not pass this one. I got an invitation for a mock interview practice "upside down binary tree" last Saturday, and then at the end of practice the peer shared her experience with outco career counseling.


The research


Plan to read all recommendations on yelp.com first.

Read this answer on quora.com, the link is here.

Actionable Item


Think about providing career counseling service as well. Need to figure out who is the competitor, and most valuable content in the teaching material.

Good morning Vancouver!

Oct. 23, 2017

Introduction


It is the first day to go back to work for MP Lighting after 2 weeks vacation. I got up around 4:30 am, and then I have chance to work on some preparation before I leave the home.

Now it is 5:06 am. Although the jet lag is hard to play with, I feel that it will be a wonderful day.




Yichun university study

Oct. 23, 2017

Introduction


I like to do some research on Yichun university, and see if I should put something into my daily routine.

I had chance to meet my high school classmate during October vacation back to China. My classmate started to work for the university starting from 2016. He got a EE ph.d. degree from USA and then he plans to work for the university for a few years. I did have chance to talk to my other classmates who are professors in the university working there over 20 years as well.



Sunday, October 22, 2017

Leetcode: binary tree upside down

Oct. 22, 2017

Introduction


It is so nice to get a friend's help to offer me to mock interview the algorithm "binary tree upside down". I spent around 100 minutes to work on this algorithm.

Here is the C# code I wrote in the mock interview on Oct. 21, 2017 from 8:00 pm - 9: 53 pm.


Follow up 


Plan to read the leetcode discussion on the algorithm, the link is here.




Yichun to Shanghai train trip

Oct. 22, 2017

Introduction


It is less than 5 hours trip from Yichun to Shanghai. I gave myself an assignment while I experienced the travel by taking the high speed train with over 200KM/ hour. The assignment is to evaluate an algorithm lecture note: 2.2 MergeSort by Robert Sedgewick | Kevin Wayne, 5 hours is long enough for me to work on something involving some reading and also not so stressful.

Of course, I like to write a blog to document my review and then help myself to master the algorithm and also it is fun to challenge the best lecture note in the world.

Ticket Study


One thing I noticed on the ticket is the advertisement information. How good it is for the business to thrive in current date. The advertisement is specific for me or for all the customers, interesting to read.

Before the travel back to China, I spent over one hour to study on youtube.com how to travel safely with tips, how to pack clothes and how to organize the trips.

Also based on my last year experience, I sponsored one of sisters to travel to Beijing and toured the city with me. Bible verse I used to guide me for the planning is Ecclesiasters 4:10 For if either of them falls, the one will lift up his companion. but woe to the one who falls when there is not another to lift him up.

Here is the ticket snapshot:

I am learning design principles and art of design, so it is one of my hobby to evaluate how the ticket is organized with so many information. I like to check the layout, and the fonts and then other things later. 


Algorithm lecture note review


It was so much fun to go over lecture notes while I was travelling on the train. But now it is Oct. 22, 2017, 11:44 PM, I need to write down some review notes to help me to master the algorithm.


Page 1 lecture note review


Page 1, five topics for merge sort, can I name all five topics:

1. mergesort
2. bottom-up mergesort
3. sorting complexity
4. comparators
5. stability

Review note: Google "bottom-up mergesort" and see if there is anything interesting on the topic.

Watch 3 minutes video here. Lecture video 23 minutes is here. Stackoverflow question is here. Quora answer is here.

Vocabulary to master:

1. Proposition
2. Proof sketch
3. Recurrence

Saturday, October 21, 2017

Subway to Shanghai pudong airport

Oct. 21, 2017


Introduction


It is a good idea to document things I did in the city of Shanghai, I have to take time to allow myself experience various public transit. One thing I did is to take public transit to Shanghai PuDong airport costing $8 Chinese Yuan compared to take a taxi over $200. From my hotel in west area of city to east side of city, it takes more 20 KM and over 100 minutes to take the subway.

User experience 


A few years ago, my college classmate of Shanghai Jiaotong university class 70141 shared the tip to me. It is better to travel to China in October, usually the summer is the time for parents to take their kids to travel to China for summer break. My classmate is a Ph.D. of university of California, and a principal scientist of broadcom. I took her advice and started to travel every year October starting from 2015. 

I downloaded a map from baidu.com map to show how to transfer from subway line 9 to line 2 and then continue to transfer two times to Pudong airport.

Here is the offline route for the travel. I like to highlight a few things very good for first time user to use this guide, and see how good the design is.




Actionable Item


Evaluate how good badiu.com make a map and direction. Highlight three things I like and the information are helpful for me to travel.

Plan to show the selfie I took when taking the subway. It was so comfortable and I was so relax.






Instagram - new playground for the weekend

Oct. 21, 2017

Introduction


It is the long recovery process to go over the jet lag. I had tough time to adjust the time and then I played so many videos this morning from 3:00 am to 7:00 am, one of my favorites is to go over tennis WTA/ ATP player instagram account.

It is hard for me to work with privacy of friends, family and relatives. The vacation I took from Oct. 5 to Oct. 20, I met so many people and those people help me to shape my view of Beijing, Yichun, Shanghai, and help me to relax and enjoy the vacation. I may break some privacy and post the photos I do not have permissions to share.

I will try and see who are those people to read Instagram and what to post in order to show my appreciation to those hard working people I met, and the country I love and great experience I had.


My playground 



Plan to go over those Instagram account  I follows, 99% are WTA/ ATP players. I will study how they share and write for their post first, and then accordingly, I will write 20 - 30 posts for my vacation from Oct. 5 - Oct. 20, 2017.

My instagram is here.


Friday, October 20, 2017

Leetcode: Edit Distance - 30 minutes talk

Oct. 20, 2017

Introduction


It is very interesting to spend time with my relative, a 22 year old in the city of Yichun. He is a computer science graduate from top universities in 2016, and he plans to take graduate admission test for a computer science master degree at the end of 2017.

30 minutes talk 


I am very open to the new idea. What I have to do is to continue to support my nephew for Canada sponsor application and then also help him to build a career in computer science field. 

It is very good for my nephew to get some skills to help his parents to manage a restaurant. I also prefer to encourage him to get more education instead of working in industry to work for some one else. 

I did spent 30 minutes to test his coding skills, and practiced my lecturing skills during my vacation, this is the second chat. He was getting better, I still had no idea how he learns and what is his learning style.  

Here are my notes I wrote on a piece of paper about the algorithm. The algorithm is documented in detail here. 



Highlights of talk 


I spent a few minutes to explain the possible deletion distance between two words "heat" and "hit". The minimum deletion distance is 3, including deletion of two chars ('e' and 'a') in the word "heat" and one deletion of chars ('i') in the word "hit".

The naive deletion distance 5 can be implemented by deletion of 3 chars in "heat" from second char to last char, and deletion of chars in "hit" from second char to last char.

I used two words "abc" and "defg" and explained the deletion distance of two words. The possible choice to delete a char each time is 2, and there are 7 choices, so it is 27.


Actionable Item



Teaching was fun even though my nephew is a rookie in algorithm and data structure, he did not ask any question and surfed wechat while I was talking. He told me to continue and I was not sure if he understood the algorithm or not.






Research about Yichun city

Oct. 20, 2017

Introduction


It is very interesting to spend time to do research on my home town, the city of Yichun during my vacation from Oct. 5 to Oct. 20, 2017. I just like to document my learning here and see if I can make some progress later on.

I have four siblings living there, 3 sisters and one brother. One of my elder sisters is a physician working for a hospital called The Third People's Hospital of Yichun, she also teaches in the university of Yichun part time, and last few years she is also a partner for a retirement living facility in the neighborhood cities and a provider of medical advise. My young sister is the lecturer of biochemistry over 20 years in the university of Yichun; My young brother and sister-in-law invested some money, and decided to take over a small business and manage to make it profitable last 24 months, a small restaurant called 宜春陆记馄饨店 starting from 2 years ago, manage to hire a few employees last 12 months.


Vacation Experinence 


One favorite thing I did in vacation is to visit the restaurant and asked help for my daily activities. For example, I do not have china phone number, so I have to ask my sister-in-law to get me a rental car using 滴滴快车. Also I learn how people work hard in restaurant and experience so many things including talking to customers, ordering food, and catering friends in the restaurant.




China Open 2017 Quarter Final - Jelena Ostapenko

Oct. 20, 2017

Introduction


I went back to China and spent whole day on Oct. 6 to watch China open, one match I watched is for Jelena Ostapenko to play against Sorana Cirstea, a Romania ranking 37.

My favorite memory is the picture I took in the match. The coach of Ostapenko talked to Ostapenko in the short break of the match.




Quick catch up


Now it is the first day back to Vancouver after the vacation, it is 7:45 PM Oct. 20, 2017. I quickly looked up Ostapenko's coach and catch up more about the coach.

Here is one minute coaching video to show how the coach talked to Ostapenko. I like the coaching style.

One minute video is here called Ostapenko and Anabel Medina Garrigues. 

Here is the highlight of match - a quaterfinal match in China, I saw myself in the video to watch the game, video 4:18 - 4:20/ 5:06.

Jelena Ostapenko vs Sorana Cirstea Highlights China Open 2017



Actionable Items


I set a new wall paper for my cellular phone starting this Oct. 6, 2017. The picture of China open and the player Ostapenko. Actually it is the picture above I took to show the coach talking to Ostapenko in China Open. It just reminds me everyday no matter how good you are, you are always better to have a coach and get some insights.

Julia, it is better to write down 1 minute coaching from the above video:

Ostapenko and Anabel Medina Garrigues


"The problem is that you are not serving good, 35%; You are making a lot of unforced errors, so we have to, we have to miss (?) less, try to serve better.  0:20/ 0:55, you can play, of course, 6 to 1, do not say that. Do not say that. 0:24/ 0:55 When you are running, try to close the court. Do not open to her. 0:32/ 0:55 What I am doing here, you call me.  Try to complain or try to win the match. Because of that, you call me. Keep fighting, keep fighting. She is no. 6 in the world. She is not giving you the match. She will fight, you fight soon (?). And try to learn, this is good for you. "


Tuesday, October 3, 2017

Unsleep night in the city of Vancouver

Oct. 3, 2017

Introduction

I will take a flight Oct. 4 2017, in order to get rid of jet lag, I am planning sleep a few hours and then enjoy the adventure to surf the internet.

My best companion is 40 minutes video of Maria Sharapova, now it 8:27 PM. I just started second round to watch the interview, and then prepare to pack for my trip to China. The video is called Maria Sharapova on the Keys to Building Grit and Discipline.

Now it is 9:12 Pm, I am going over another 50 minutes interview with Lewis Howes, Unstoppable in Tennis. I am still packing and trying to figure out something good check list to show I am getting organized and more creative this time. The video link is here.

I have a food campaign to bring North America snacks to China, and let my relatives taste the food culture. All the snacks I bought are from Costco.


Count Down For a vacation

Oct. 3, 2017

Introduction


I like to write a short blog about how important the vacation is good for a programmer. The talk can be considered in more than 3 ways, experience the traffic tools in modern societies; second it is to catch up mobile phone app trend; third is to get to learn how to communicate face-to-face with relatives, friends, families, art or science.


Facts about living in Vancouver


I do not take any travel using airplane since last October China trip. So my experience of international travel will be fascinated. Using Canada airline and get connected to people through the travel. I am not the lady you neighbor open a bible and read very carefully, but I met one last year travel, and I also met a young lady Ph.D. just finished post doctor study in Calgary and went back to China, she explained to me how a Ph.D. these days completes 3 -5 post doctor research before she lands a permanent teaching job. Sounds fancy? Continue.

Beijing is most developed city in China, so on the plane I definitely met some parents who are helping their kids to get education in the city of Vancouver. A little bit chat about education and family etc. It seems that I am ready for vacation.


Is it a clone?


The programmer is good at copy and paste, is this a clone of vacation. Last year I went to China, took air Canada airline, watched China Open, I do exactly same thing. I like to say that the idea is the same, but I added a few modifications.

To be continued!



Sunday, October 1, 2017

University code sprint #3 - Bob's Game

Oct. 1, 2017

Introduction


It is the busy day, a Sunday. I got a flat tire yesterday, I felt lucky to get flat tire when I walked out my home around 6 PM and I saw the flat tire. The worst thing is that I get a flat tire when I am driving on the road, or I walk to the car after one day work. I should work on the tire to get it replaced since more than 3 weeks ago a young man stopped at traffic night inside the car told me that I have a tire almost flat and I need to take care of it.

I joined CAA last night and had to work on fixing the tire.

The contest I played yesterday I did not score anything, I started around 2:00 PM, and then I tried to prepare China trip next Wednesday, and then I went over the documents I had. In the evening I worked on the third medium algorithm but I spent around 2 hours, but I did not make it. It is a medium algorithm with maximum score 50. I did work on a test case: ["...",".K.","..K"], I found out that I need to handle intermediate position of K each step.

Here is the C# code I submitted a few times and only passed test case 1.



Love the failure



I always know that I am not very competitive programmer, I have to work on medium algorithm very carefully. Otherwise, I may spend time but score 0.

I plan to work on those algorithm in university codesprint #3 after the contest one by one. I like to show that I am working hard and also learning things. Plan to ask questions on code review website as well.

Piece of puzzle to learn NIM game


It is like playing chess to figure out NIM game, I put down some drawing to work on the algorithm. I figured out I failed the test case, and then I like to show my drawings. I am the engineer who was trying to figure out NIM game by myself, around 8:00 PM - 10:00 PM Sept. 30, 2017 Saturday night.

Mark the night as a hardworking Vancouver programmer Julia Chen chose to work on, let us call it NIM game night. Here is the drawing to figure out a test case for the game:



Saturday, September 30, 2017

University codesprint #3: The Snake vs the Wind

Sept. 30, 2017

Introduction

It is 2:40 PM. I plan to spend 20 minutes to read the algorithm problem statement.

Algorithm practice 



University codesprint 3: Erupting Volcanoes

Sept. 30, 2017

Introduction


It is 2:31 PM. I plan to work on the university codesprint next 10 hours. The erupting volcanoes is the algorithm to calculate the maximum value in the range of rectangle.


Anastasija Sevastova - tennis professional player

Sept. 30, 2017

Introduction



It is challenge to do some research about the player, I knew her since she beat Sharapova in fourth of U.S. Open 2017 fourth round. Today China open Sharapova revenged and beat her to play first round against her.

Study hard


The player information can be found here, and the author is tennis writer, I started to follow Steve Tignor on twitter.