Thursday, November 23, 2017

Binary search is always my favorite

Nov. 23, 2017

Introduction


Binary search algorithm is my most favorite algorithm. I like to write it as a depth first search, recursive solution, and learn to write base case as the first thing in the function.


Code review 


Here is the C# code I wrote tonight. The mock interview started from 10:00 PM.

But the code smells, do not repeat yourself. DRY principle is violated.


The above code could not pass Leetcode 33 online judge, failed test case: [3, 1], 3, since the left half range can only include one node, so the fix is to include = sign in statement line 35.

Instead of "var firstHalfAscending = startValue < middleValue", it should be "var firstHalfAscending = startValue <= middleValue".

Follow up

Nov. 23, 2017

After the mock interview, I thought about my solutions in past practices. I should find a more simple solution.

In mock interview, peer asked me to explain the idea again to divide into two half range, one is in ascending order. I failed to make the idea very clear to a veteran programmer working over 10 years in Microsoft.

In other words, my code smells. Because I used the copy and paste in the mock interview, there are four recursive calls instead of traditional two recursive calls for binary search algorithm.

Based on the mock interview standard answer, it is to find pivot point first, and then apply binary search algorithm. Instead I applied binary search algorithm directly without concerning the pivot value.

Why? How did I make the different choices?

Of course, I spent hours to read all kind of solution on discussion panel of leetcode 33: Search in sorted rotated array before. I knew that there are almost millions of submissions, so many ideas. But bottom of my heart, I like to say that I went through mathematical training of analysis, I like to introduce two lemmas before I write code.

Lemma 1


The sorted array with length bigger than one is rotated to left with unknown n numbers, given the number n, n can be determined in the first half by the following checking:

Based on the fact that the first half range's length is not smaller than one.

How to determine if n can be searched in the first half range?

If the range is in ascending order, in other words, array[start] <= array[middle], and if n is in the range of [array[start], array[middle]], then n will be in the second half. Get rid of second half.

If the first half range is not in ascending order, then at least there are two elements in the first half range. It can be inferred that second half range is [array[middle], array[start] - 1]. The search number n is not in the second half range. Either the search number n is not smaller than array[start] or n is smaller than array[middle].

End of Lemma 1


One good solution with example



The C# code is here:

Here is the example to explain one inclusive range or two exclusive range to search:

More detail, exclude the range [4, 8] which is in ascending order in the above picture, two ranges are checked, one is >= 9 and the another one is < 3.



Nov. 24, 2017

Continue to update the code, use more meaningful variable names. C# Code is here.



How do I get here?


I have to get organized, so I went through blogs and reviewed all past practice on this algorithm, and also checked leetcode 33 submission history. I did not submit anything on Leetcode 33 before Nov. 22, 2017.

Past experience is documented here.

Sept. 16, 2017

The mock interview practice is documented here.


March 23, 2016

The practice is documented here.

Nov. 23, 2017

Leetcode 33, Search in Sorted Rotated array, C# code passes online judge.

Tuesday, November 21, 2017

Leetcode 69. Sqrt(x)

Nov. 21, 2017


Introduction


It is the algorithm to apply binary search and also relate to math round of a number given the error range, the algorithm is similar to easy level algorithm called Leetcode 69, Sqrt(x).


Algorithm review 


Julia spent first 30 minutes to work on the algorithm analysis and wrote code. Afterwards, the peer helped Julia to find bugs to make sure all test cases are passed.

Here is C# code submission with bugs.

Here is C# code submission after discussion of issues causing bugs. The code passes all test cases.


Highlights of discussion


It took almost three hours for Julia to discuss with the peer how to solve the algorithm and data structure problems. The mock interview had some technical issue, so the additional tools are used. One is for vidoe, https://appear.in and the other one is for editing, http://collabedit.com/. The mock interview started from 10:05 PM and ended around 1:15 am next morning.







Monday, November 20, 2017

Code review: Reusable implementation of IComparable

Nov. 20, 2017


Plan to study the code review, the algorithm is called Reusable implementation of IComparable<T>.

3D surface area - week of code 35

Nov. 20, 2017

Introduction


It is the first medium level algorithm in the week of code 35. The end time was 11 PM pacific time, I could not make it. Around 11:10 pm, only 10 minutes later, I submitted the code with a bug fix to pass a few test case. I enjoyed the problem solving, and will look into how to find the simple approach, less time consuming.

Code submission after the contest


Here is the C# code submitted after the contest, just 10 minutes after the deadline. Julia spent over  2 hours to work on the algorithm. The code passed 11 test cases, failed 14 test case, score 7.8 out of 19.


Triple recursion - week of code 35

Nov. 20, 2017

Triple recursion is the second easy algorithm in week of code 35. It only took Julia less than one hour to solve the problem.

Here is the C# code.


Sunday, November 19, 2017

Lucky purchase - week of code 35

Nov. 19, 2017

Introduction


It is the first easy algorithm in week of code 35. The problem statement is here.

The code submitted in the contest is here.

A bug 


I spent over one hour to work on the algorithm, my first two submissions could not solve test case 4 and 5. And then I went over problem statement again and again, read aloud one word a time in the problem statement and then had an idea to fix the bug issue.

If the char is not digit, then it should be ok. Only the digit char should be 4 or 7.


Sponsor application project (III)

Nov. 19, 2017

Introduction


It is the first time I like to document how I think my sponsor application project, and apply bible teaching to my daily problem solving activities. This Sunday I spent over 3 hours in Willingdon church, and I like to do some research, and see how bible will teach me this Sunday, how can I apply the learning to my current problem solving.

Bible teaching in Sunday service 


The preach is about Peter I.

Followed up in Chinese tea time


Relate to Christian how to handle the difficult time.

To my surprise, in Chinese tea time, I was told to relate to the case of murder case back to 1991, more than 26 years ago. I spent hours to study and review the case as a Christian believer, and understood the life purpose.

Sometimes in the church of Willingdon church, I enjoy the time to listen English preach, and then I spend some time to learn the preach again using Chinese. Through comparison, I surprise that I miss a big portion of preach since language barriers.




Saturday, November 18, 2017

Week of code 35

Nov. 18, 2017

Plan to play week of code 35 starting this Saturday. I am getting excited on the contest.

Nov. 19, 2017

6:53 PM
I only have 4 hours available for the contest, I started to work on the contest this 4 PM today. Yesterday I only spend one hour to read the advanced level algorithm.

Motivation


To work on crafting skills, I learn to work on contest at least a few hours each time. Today I will have at least 4 hours to work on coding, one of biggest achievement is to find my weakness through coding.

Statistics 


Time to work on contest from 4:00 pm - 11:00 pm. 7 hours is not enough for Julia to complete first three algorithms, she did not even have time to read hard level algorithm problem statement.

First easy algorithm, Lucky purchase, 4:25 PM - 5:37 PM, with a bug, and then spent extra 20 minutes to fix the bug.

Second easy algorithm, Triple recursion, 7:34 PM - 8:03 PM. The algorithm passed all test cases.

Third algorithm, medium level one, 3D Surface Area, 9:33 PM - 11:07 PM. I could not finish code before 11 PM. The contest ended at 11:00 PM.


Comparable Interface lecture notes

Nov. 18, 2017

Introduction


I have chance to go over the lecture notes called Comparable Interface, and I like to share my review of lecture notes, how good it is for me to learn things after over 10 hours practice on Comparable Interface. The lecture note is here.

The course outline is here.

Course study

Plan to read the course lecture notes and write down some note here later on.



Code review: Dynamically sorting with IComparer

Nov. 18, 2017

Introduction


One of challenges is to ask a good question on code review. As an experienced code reviewer, I certainly understand that Order Strings should be a good candidate for my next question I try to find last few days. Even though I spent over 10 hours to practice Order strings algorithm and got a lot of training, but I still knew that I need to be mentored. One thing is to look into previous code review on IComparer.

Code review study


Dynamically sorting with IComparer


What is Int32 in C#?

Nov. 18, 2017

Introduction


Learning by myself is such a great journey, I had a best world interview in the world this October to be tested how good I understand the object-oriented programming. I know that I am kind of weak, I have no clue to figure out my weakness from senior level programmer in well-founded biggest company. I try to dodge questions but I know one day I have to catch up.

I need to read Int32 C# source code. How do I find time to read the code and get the idea? I was so busy with my full time work and learning by myself. So many things to do, how do I have a clue to study this and break through the foundation of learning object-oriented programming.

Order Strings


I played the contest and wrote a partial sorting algorithm called Order Strings. Followed up hours of study code submission, over 10 C# submission with full score, I reviewed the code and wrote Order String Series blogs about the practice. But I still felt that I need some more coaching. 

Code review study

I found the best code review about IComparer. Because this statement is telling the fact, but I never know that.






Sort algorithm on Leetcode

Nov. 18, 2017

Introduction


Sorting is most basic algorithm in computer science. Here is the list of sorting algorithm on Leetcode and I like to review them.

On Nov. 15, 2017 10:00 pm, I practiced sort algorithm and my peer is a Chinese with over 10 years programming experience in USA. The peer gave me the excellent code review and made some great comments.

Let us first take a look at the overall evaluation. C# code is here.

So and So


It is my evaluation of coding on a sort algorithm. Things you should work on: No clear thought, messy coding. Here are the code review I got:


Transition from bottom up to top down


I went through bottom up approach to write a functionality of findMaxIndex by the help of whiteboard test with a simple test case: [1, 5, 4, 3, 2], I explained to the peer that I like to find index of max value of the array 5 first, and then second step is to move 5's position to the first element in the array, and then move first position to the last position of the array using flip API twice.

The peer complained that what is line 38 and line 39, it can be written as swap(arr, maxIndex + 1, subArrayLength). If you have time, then you can write the function, ask the peer if you should write the function or not, basically two flip calls. 

Same story applies to line 24 to line 36.

The small research I have to do is to figure out if top-down approach is really great and I should learn. When I do not have clear solution for the algorithm, I often choose the bottom-up approach, use a simple test case to do whiteboard testing, write a working solution first. And then add on the solution. But I should not stop, need to add review, use top-down approach to extract functions, make meaningful names.

CountFound variable is not meaningful, it is better to use subarrayLength.

Argument today


You can not hide what you do at work, if you code messy at work then you will show up messy in mock interview.


Friday, November 17, 2017

Linkedin 950 connections study

Nov. 17, 2017

Introduction


One of my most favorite activities is to review my connections on linkedin at the end of 2017. Over one hour, I went over connections by shared connections and tried to collect some statistics, and see how my friends make their career movement, how they advance their career.

I started to see how many of them moves to Amazon, and then went over others and found out what kind of jobs they change.

Now it is 11:48 PM, I started from 10:00 PM. I started to 10:00 PM since I believed that I booked the mock interview, and then I toured LinkedIn and just got lost in those connections.

What to study 


I have over 900 connections, first I went over my messages history last 12 months and found out over 90 mock interviewers's update. So surprisingly, a few of them got jobs in Facebook (2), Amazon (4+), and Microsoft (2+). I checked their job history and understood how they are selected. Some of them have solid work experience through last job, over 4 years, well-established companies.

The list of companies I looked up are Microsoft, Google, Apple, LinkedIn, Amazon, HP, ITW, Oracle, Sony, Intel, Motorola, Florida Atlantic University, etc. I added some friends through mock interview, and started to learn how new generation of people work compared to my old friends, from Intel, Intuit, Cisco, Qualcom, etc.






Wednesday, November 15, 2017

Binary tree root to leaf path minimum path value with the path

Nov. 15, 2017

I like to document my mock interview practice on this algorithm. The topic is about analysis of the algorithm, how to reason to find possible bugs?

Here is C# practice code.  I added line 27 to line 32 to fix the bug since the peer told me that the edge case with no children. The advice from the peer is "After writing the code need to analyze more before running it". 


Story of analysis


I need to explain how the depth first search works since peer asked if I should add an argument of function to pass the existing value. I did explain the algorithm in the mock interview, but the peer felt that he did not know C# very well and got confused. 

I like to write my story to show how I analyze the algorithm after the mock interview, try to make the explanation to a very good one. 

Let us go over  a tree with the following nodes:

      0
  /   |   \
 4   3   6
 /
3

The depth first search algorithm can be solved this way. The root node with value 0 has a tree, to find its minimum path to the leaf node, first if the root node is null, then value is 0; if the root node is not null, and if the root node has no children, it is a base case, the minimum path is the value of root. Otherwise, go over each children of root node with value 0, and go to each child in the array [node 4, node 3, node 6], and ask each node to get its minimum value for the path, denoted as Mi, and just add root node value 0 to Math.Min(Mi, i from 0 to 2).


Miss a base case


From the above paragraph, I highlighted the base case I missed in mock interview using brown color, and the peer had to tell me that there will be a problem if there is no children. In other words, in the tree showing in the above diagram, if the root node with value 0 has no children, it is a base case, the minimum path is the value of root.


Order string (VII)

Nov. 15, 2017

I like to write a blog about this C# practice, using Linq IList.Sort method. The link is here.

Order string (VI)

Nov. 15, 2017


Algorithm Study and Code Review


Here is the code related to the algorithm. I like to write a blog on the code. The main idea is to use primitive type string, just add index to the first element of string array, avoid a struct or a class definition. Kind of tricky. 


Follow up study 

Nov. 16, 2017

It is always a good idea to search code review to read IComparable<T> code review. I sepnt over 20 minutes to read the algorithm: Dynamically sorting with IComparer. And one of statement in the code review reads like the following:

This
public int CompareTo(ProductSortAttribute other)
{
    if (this.Index == other.Index)
    {
         return 0;
    }

    if (this.Index > other.Index)
    {
         return 1;
    }

    return -1;
}
can be shortened to
public int CompareTo(ProductSortAttribute other) {
    return this.Index.CompareTo(other.Index);
}
Since Int32 also implements Comparable<T>.

What is Int32?



Here are a list of things Julia starts to her independent study:
1. What is Int32? A structure
2. What interfaces does Int32 implements? IComparable<T>, IFormattable, IConvertible.
3. Where is the source code of Int32 in mscorlib? Link is here.

Comparable <T>  study



Sometimes, it is so easy to find an excellent lecture notes, and then I can follow quickly how to write basic comparer. Here is the one.

Order strings (V)

Nov. 4, 2017

Introduction

It is fun to continue to work on C# practice on this algorithm called order strings.

I reviewed the code and made some change, C# code is here for me to review later.

Tuesday, November 14, 2017

Order string (IV)

Nov. 14, 2017


Introduction


It is my favorite C# code to study, through the code, I can tell that the player has more C# coding experience compared to me, and also the trick used to do numeric comparison to make code so simple and only take one line of code, referring to line 44.

I just could not believe that the experience the player has and it makes coding so enjoyable experience, like a competing sports.

I could not express more enjoyment to read other people's code. When I read those excellent engineering idea, creative idea to solve the problem, I cannot believe that it makes coding such a challenging sports and I am just glad to be a follower.

Code study


I reviewed the code and rewrite the code, here is the code. I have to push myself to get LINQ to my daily coding practice, so I am ready one day to write a web application with much better code using LINQ.


Relax your mind 


I like to use this video to relate to read an excellent engineering idea to deal with solving problem.


Order string (III)

Nov. 14, 2017


Introduction


It is the best time to learn C# programming using one of medium algorithm in the Morgan Stanley codesprint. The design of algorithm includes using BigInteger class and also LINQ OrderBy and OrderByDescending.


Code study

I reviewed the code first, and then I rewrite the code. C# code is here.

Order strings (II)

Nov. 14, 2017

Introduction


It is time for me to learn how to write a C# program and also review other's code. The second study code is written using SortedDictionary. DescendingComparer class and DescendingComparerI class are defined.


Code design talk 


Here is the C# code after I review the code.


Order strings (I)

Nov. 14, 2017

Introduction


It is the time for me to study code submission using C#. This is the first C# code submission I studied, delegate is the keyword used in code, and also string.TrimStart.

Here is the C# code after I reviewed the code.


Code design talk 


The structure is used and called OrderString.

structure  OrderString
{
    public int      Index;
    public string Lexicographic;
}



Monday, November 13, 2017

Pluralsight.com - becoming an outlier

Nov. 13, 2017

Introduction


It is such a great privilege that I got subscription of pluralsight.com monthly. It is time for me to review how many hours I spend on pluralsight.com last 12 months.

I like to revisit the course called becoming an outlier: reprogramming the developer mind by cory house.

Course study


Plan to take some notes and do some research from lecture notes.






Do it yourself - Auto maintenance work

Nov. 13, 2017

Introduction


Once a while, I find myself in the trouble to keep up with knowledge of automobile, so I have to learn a few things through youtube.com. For example, how to install a car battery? I did once recently. This past October, how to put a backup tire, that was my favorite research through youtube.com, I got a flat tire and then I like to do some research how to fix the issue by myself.

My research is so shallow this October, I watched 2 or 3 videos to put a backup tire, and then I tried to do it myself, I could not take off lock nut off no matter how hard I tried. So I went back to watch videos, until a few hours later, one of videos shows that it is to use your feet to leverage the power. I used the tip and solved the problem puzzled me more than 2 hours.

Learning is fun


I sent my car to Canadian tire auto repair last Monday for 4 pm appointment, and I was told that the tire cannot be repaired, so two new tires will cost more than $300 dollars. I politely declined the advice, and waited last Saturday and then drove to O Tire, and I got the tire repaired. There are two nails in the tire, the cost of repair is $60 dollars, with life time warranty.

I spent 10 minutes to touch all tires's tooth in O Tire store and try to understand the technology of tire.

My low beam light


One of my weakness is to be patient and be able to solve real problem in my daily life, walk away with things like wechat talks, reading or sharing. I need to take care of a lot of things, like maintaining good friendship with Christian friends, sometimes it means a long lunch together with group of people.

I checked tonight that two of low beam light bulbs stop working. I found that low beam light has some issue, but until today in the dark outside of the home, I did make sure that light bulbs do not work.


To be outlier



It is time to review the course I learn from pluralsight.com called "Become an Outlier: Reprogramming the Developer Mind", I did in July 28, 2017. I plan to revisit the course again and try to apply the learning to my daily life.



Sunday, November 12, 2017

count pairs

Nov. 12, 2017

Plan to study the hard level algorithm called count pairs, the problem statement is here.

Moving Elevator

Nov. 12, 2017

Plan to study 30 minutes a time on this hard level algorithm called Moving Elevator. The problem statement is here.

Check the leaderboard and also find a googler with code submission, the linkin profile is here.




How to convert finite automata to regular expressions?

Nov. 12, 2017

Plan to study the stackoverflow question How to convert finite automata to regular expressions?


Stock porfolio - Morgan Stanley campus codeathon 2017

Nov. 12, 2017

Introduction


It is such a great contest for me to play last weekend. I was pushing myself to get back to play coding contest and then train myself to work on hard level algorithm. The first two medium level algorithms in the contest are so helpful for me to catch up learning on C# programming and also warm up the statistics. As a software programmer, I learn that the contest does not require me to write very complicate code, I need to stay cool and also think about the foundation of statistics sometimes, need to refresh my knowledge and quickly look up.

Algorithm study 


Plan to work on the hard level algorithm called stock portfolio, Morgan Stanley campus codeathon 2017.

The problem statement is here.

It is also a hard level algorithm, my favorite algorithm to learn and apply some dynamic programming techniques.


Miss my mother and she will be remembered

Nov. 12, 2017

Introduction


It is the the first Sunday I will live without a mom in the world. She passed away on Nov. 11, 2017 at the age of 86.

My mom was such a great person who had lived her life to the full. I have so much good memory to spend time with her. Specially after I went to college, she still corrected me when I made mistakes, and she answered my phone calls when I felt lonely a lot of years, and we lived together back in Florida together back 4 months in 2000 and 5 months in 2001.

I will go to Willingdon church this morning, and I like to pray and wish everything is great with all I have.

God blesses us, have a wonderful Sunday.

Nov. 25, 2000
Julia with her mom qingfu liu in Orlando, Florida, Seaworld theme park. At that time, my mom turned 70 years old. I was in my early age to experience the life in USA.



January 26, 2012

Julia and her mom spent time at the beach of the city of Shenzhen.




Julia walked on beach with her mom in 2012. The video link is here on facebook.


2014 Chinese spring festival

Julia interviewed her mom how to celebrate China new year. Here is the link on youtube.com.

Julia took care of mom while she played tennis and had some conversation with her mom. Here is the link on youtube.com.


Oct. 13, 2017, 3 PM, first time in my life, I washed my mom's feet with the help of 3 other sisters.


Bible teaching is very good about washing each other's feet. I shared my learning with my sisters, and they all liked the idea and helped me to wash my mom's feet first time.

Quora study: Shriram Krishnamurthi

Nov. 12, 2017

Plan to study a computer professor and how he thinks in terms of education, computer science, quora platform, and other things.

The quora profile is here.


Saturday, November 11, 2017

Order strings

Nov. 11, 2017


Introduction


It is the first medium algorithm in Morgan Stanley Campus Codeathon 2017. I spent a few hours to work on the code. Now it is 11:54 PM. I am trying to get more points. What should I do to get more points?

The problem statement is here.


I am very patient to read problem statement again and again, try to find the clue what is missing in my problem solving. Look at those test cases:


Follow up after the contest

Nov. 12, 2017 9:43 pm
Julia tried a few submissions. Here are the link to her C# submissions.

First submission, only score 8 out of 40. Here is the C# code of first submission.
Second submission, only score 5 out of 40. Here is the C# code of second submission. Change numeric type from int to long, score from 8 lower to 5.33
Third submission, numeric type, consider the length of string 50, check one char a time. Score goes up from 8 to 23 out of 40. 
Fourth submission, C# code is here. 

Plan to study all C# submissions.


The great game of Galia

Nov. 11, 2017

Introduction


It is the first medium algorithm of Morgan Stanley Campus Codeathon 2017. Now it is 7:38 PM, Saturday evening. I like to spend some time to work on the first medium algorithm.

I like to make this algorithm as simple as possible. Let the fun begin.

Now it is Nov. 12, 2017. It is 12:22 Am. I fully understand the problem statement, and also I like to code something for my contest.

Since the contest will end in Sunday morning 10:00 am, I am better to go to sleep and get up early at 6:00 AM to work on the contest. Now it is 12:47 AM, better to sleep on this algorithm.

Next step 


I woke up 6:30 AM, but I enjoyed the long stay on the bed with music and wechat reading. Now it is 9:32 AM. The contest will end in an hour. I need to work on something.

Read quickly on the algorithm leaf node count on binary search tree. The link is here.

These are steps:
1. Find all sequences
2. Construct binary search tree
3. Count leaf node
4. Add to the sum
5. Evaluate the algorithm time complexity and space complexity
6. Try to optimize

There is timeout issue. So I have to use dynamic programming, using combinatorics, and build a recurrence formula. So the code should be very easy.

Now it is 9:56 AM, the contest is extended to 10:30 AM.

I like to show my worksheet, and it is my way to push myself to work hard on algorithm, no matter how hard it is.






Friday, November 10, 2017

Eight years is like a blink of eye

Nov. 10, 2017

Introduction


It is like the blink of eye that I have spent almost 8 years in the city of Vancouver starting from April 18, 2010. I still remembered the conversation, plans my friend prepared for the 14 days road trip from April 1 from Florida to Vancouver, in the year of 2010.

I like to celebrate my hard working eight years!

Plan to write an answer on quora.com how I planned the trip with a friend over 14 days.


Thursday, November 9, 2017

What is the third algorithm to ask code review?

Nov. 9, 2017

Introduction



It was 11:10 pm, and I spent over 30 minutes to go over the algorithm I practiced, and try to find a good one to ask code review.

Now it is 11:45 pm. The one I am reading now is leetcode 212 using trie data structure, the blog is here.

I came back from a break this September and asked two algorithms based on my mock interview practice. Today I like to find the third algorithm to ask code review.


Algorithm review

Trie 


It is also good warm up to review my favorite practice and share with the community.

Plan to study the algorithms of Trie from code review website, Trie implementation for left to right wildcard search, and another one: Trie (tree form) in Java

4 Sum



It is Harvest Time! (1 Corinthians 3: 5 - 9) (I)

Nov. 9, 2017

Introduction


It is time to review what I have completed on mock interview, I have completed almost 4 rounds of mock interview. I like to review what I learn, and show some analysis what I did good or wrong.

Let me first to give a topic for my blog, I google using keyword it is harvest time. Here is the preach I like to go over and see if I can write similar blog to document my learning. Here is the preach link, It is Harvest Time! (1 Corinthians 3: 5 - 9).

It is Harvest Time!


There are four stages to get to the harvest, prepare the soil first, sow the seed, cultivate the soil and reap the harvest.

I spend 10 - 20 minutes to go over those 28 interviews, and I read the comments for each interview. And I just enjoy the work I have completed. No matter I stumble on the algorithm or fail to help the peer, I go through the learning process.

My best teacher to help me write this series is this Moody bible institute professor, who writes very well on this article. Pastor Keith Krell is here.

Performance


This is the first time I finished over 28 mock interviews, and I remembered the worst performance to solve a Sudoku algorithm, I got rate 1 out of 7 for coding on April 11. After six month, I posted the question on code review on the algorithm on Nov. 6, 2017, here is the link called "Sudoku solver with clear structure". 


Reference


1. First round mock interviews, 27 interviews.

 





C# Array class document reading

Nov. 9, 2017

Introduction


It is best investment of time to read C# Array class documentation. What I do is to print out a copy and hold the copy to read again and again, ask questions, take notes, and write down what I learn.

Here is C# Array class, I do not have chance to go over the object-oriented design course, but I like to ask myself to memorize all APIs, and also be able to clear all the terms shown in the document.

As a programmer, I like to write code quickly using existing API of Array class, and be able to understand those interfaces as well. I find out that I am interested in the discussion on stackoverflow on those C# interface, and I try to figure out what the difference is.

Read like bible 


I like to read C# Array class like bible. I will mark those words showing in the document, and then I will use those words when I need to write blogs about the algorithm.

C# Array abstract class source code scout

Nov. 9, 2017

Introduction


It is the first time I read C# class Array's source code through Microsoft website. I spent a few hours t o read over 3000 lines of code. I call it scout since I have written a few blogs about C# Array but it is the first time I have chance to read C# code.

Take notes, please!


It is so interesting for me to read C# Array class, so I have to be able to understand why it implements five interfaces and it is an abstract class. I am very curious about how the code is structured in one class over 3000 lines of code.

Read C# Array source code here. I found the link in the first few paragraphs of Array document.

Read C# SorterObjectArray - mscor.lib, the link is here.

Plan to write down some notes to help myself to continue to get educated on C# Array, and understand the design of .NET framework. 


Leetcode 151: reverse words in a string

Nov. 9, 2017

Introduction


It is in-place to make the algorithm a classical algorithm for any language. I have practiced over a few times last 6 month, and on Nov. 8 10 PM I had chance to write the algorithm in 30 minutes, and the code passed all test cases.

Usually first few time I have to figure out the issues I have and then found ways to solve the algorithm. Last night practice is no longer challenge for me anymore, I noticed that and started to look into Leetcode 151 discussion panel after mock interview.

Algorithm study


Here is the C# practice.


Quora read: Thanh Trung Nguyen

Nov. 9, 2017

Plan to read Thanh Trung Nguyen, the profile is here.

Wednesday, November 8, 2017

Quora read: Lalit Kundu

Nov. 8, 2017

Plan to read the answers from Lalit Kundu, here is the quora's profile.

My favorite question is about implementation skills. The answer is here.