Monday, February 27, 2017

Practice Makes Perfect

Feb. 27, 2017

Continue to study Google, watch one hour video "Practice Makes Perfect" loaded by Peter Norvig on Apr 20, 2012.

6 minutes talk, Peter Norvig: The 100,000-student classroom

Are programming competition a good use of time?

Feb. 27, 2017


Julia came cross the article after she studied hackerrank university codesprint #2 leaderboard.

Argument No. 1 in the article  

Competitive programming promises even more glory. Win enough contests, and you get an interview at Facebook or Google, where they ask you… you guessed it… more algorithm coding questions!

Argument No. 2 in the article 

By doing programming contests, you gain an intimate understanding of data structures and algorithms and their complexities. While your colleagues vaguely know the difference between a depth-first versus a breadth-first search, you develop a much deeper intuition. You will never forget that one contest where you used DFS instead of BFS, causing your solution to time out.

Fact 1 to share 

Julia won 4 bronze medals in last 12 months, and also played a few other contests as well, here are the details: 

4 bronze medals: 

university codesprint 2  (1247/ 6587) Feb. 2017
Week of Code 27             (1643/ 7476) Dec. 2016
world codesprint 7         (863/ 5649)   Sept. 2016
world codesprint 6        (1168/ 5270)  Aug. 2016


NCR CodeSprint                 (479/ 2617)   Nov. 2016
OpenBracket CodeSprint  (482/ 2448)  Oct. 2016
Stryker CodeSprint             (174/ 1929)   Sept. 2016

Fact 2 to share

Julia worked on the queue and caused a big issue like timeout, she wrote a blog talking about sinking sand - a test case is rock to build on algorithm. She learned the lesson of BFS using queue, over 4 hours work ended up scoring 0.   

Argument by Google director of research - Peter Norvig

Is this a valid argument? Winning at programming competitions is a negative factor for being good on the job.

Argument 3 in the article

Given the amount of time it takes to master competitive programming, one naturally wonders: is this really a good use of time? In a contest, you are ultimately solving problems that other people have solved already, so nothing new is being produced. Although solving a contest problem is satisfying, I find it a lot more rewarding to build projects or apps with my novel ideas.

Competitive programming 

whole weekend one medium algorithm

To play a contest on Hackerrank, Julia calculates some math. She has to dedicate herself whole weekend in order to get a medium algorithm done. She has to entertain herself first, play some music, lookup her ideas by Google, write some simple idea to play against hackerrank test case, until she warms up with the algorithm. Sometimes, it takes 5 - 6 hours until she failed so many times and then she understands the problem - what is the real challenge in the problem statement.

code review catching up more

All those hours and labor build up her character, she never experience this kind of research before. Over 10 hours, she makes something happen, solve a medium algorithm. Sometimes a medium algorithm can take her a few days after the contest. Since Nov. 2016, a few times, she has to continue to catch up more research after the contest, and then work on, get some help and find something more interesting to continue.

Julia learns to work on one algorithm a time, and also has to learn to let it go one a time. She knows that she will forget the algorithm completely, it does not matter how hard she intensively trains herself in the contest/ after the contest, and she needs to relearn it one day. Only thing left is something surprising, her new character still trying to mold, the strong determination to solve the problem. The will, or the intuition to try new ideas, relentlessly. That is something different she could not find in the training of Leetcode algorithms. Julia was surprised that she continuously improves over last few months.

Hackerrank contest  algortihms 

Things Julia should have done are to evaluate those easy, medium algorithms in past 10 contests on Hackerrank; Do those algorithms shape her very well as a sports programmer,  what are atlernatives? Julia does not like the inactive learning, by memorizing, she likes more about competition, with time limitation. 

Google's secret to hire the best

Feb. 27, 2017


Julia continues her study on Google, read an article: Google's secret to hire the best. Last week, Julia did not dedicate the whole weekend to hackerrank week of code contest, instead, she started to work on the study of Google.

To play a contest on Hackerrank, Julia calculates some math. She has to dedicate herself whole weekend in order to get a medium algorithm done. She has to entertain herself first, play some music, lookup her ideas by Google, write some simple idea to play against hackerrank test case, until she warms up with the algorithm. Sometimes, it takes 5 - 6 hours until she failed so many times and then she understands the problem - what is the real challenge in the problem statement.

All those hours and labor build up her character, she never experience this kind of research before. Over 10 hours, she makes something happen, solve a medium algorithm. Sometimes a medium algorithm can take her a few days. Since Nov. 2016, a few times, she has to continue to catch up more research after the contest, and then work on, get some help and find something more interesting to continue.

Julia learns to work on one algorithm a time, and also has to learn to let it go. She knows that she will forget the algorithm completely, it does not matter how hard she intensively trains herself in the contest/ after the contest, and she needs to relearn it one day. Only thing left is something surprising, her new character still trying to molded, the strong determination to solve the problem. The will, or the intuition to try new ideas, relentlessly. That is something different she could not find in the training of Leetcode algorithms, not time pressure of Hackerrank contest, and no ranking or coding sharing procedures.

Julia likes to read, write and also learn, Google's secret to hire the best. Given a math, 1000 people from phone screen, 4 of them are finally hired. If each 1000 people spend 10 hours time to work on research of Google, that is 4000 hours labor. Julia thinks that it is better to invest time on those 99.6%, share what she studies and help others to move forward on this research.


Read the article - Google's secret to hire the best.

Actionable Item

Google search keyword:

Sunday, February 26, 2017

Pluralsight: provable code

Feb. 26, 2017

Provable code

Learn the concept:

Predicate Calculus

Predicates - True or false, Can take variables, Applied over a range, Higher order, First Order

Design by Contract
Cache and Query
Eliminating Preconditions
Postconditions and Invariants
Strict Preconditions

pluralsight: Code Contract

Feb. 26, 2017

Study the course: Code contract.

Take some notes and do some research on the topic.

Read the website: Simple Programmer.

Saturday, February 25, 2017

Elina Svitolina - top 10 debut

Feb. 25, 2017

Julia is a big fan of tennis, and she studied one tennis star a time. So, today she will spend 20 - 30 minutes to learn a new player, she never remembered her name before, called: Elina Svitolina.

Julia will study some statistics of the player, the coach, and the player's practice, the player's interview.

Here are videos she watched.

top 10 debut

WTA Can Challenge

August 7, 2015 14 minutes press conference - WTA - Bank of the West Classic Est. 1971

Julia's note

6:30 / 14:32 - it takes her time to move ranking to top 10. Not just go upward directly. Step by step, not rushing myself.

The top 5 or top 10 has more confidence to play against top 20 or 30, even she loses the first set, she does not show any emotion, wait for the chance to get back.

3 minutes video - know about Elina Svitolina - The move through Mutrid Madrid

Notes she took for the training, competing:

Always give your 100%. No matter how you feel, etc.

Actionable Item:

Spell error of word Madrid, Julia, spend 20 minutes to read the city of Madrid.

Julia's Ph.D. study

Feb. 25, 2017

Julia's Ph.D. study 

First time in long time, Julia was told that she had very good education from the most important person in her career in 2017. She could not believe that she got so good education and richness of experience of industry and academic fields, even though she quit in 2011 without a Ph.D. degree.

So many good experience through her Ph.D. study spanning whole 10 years from 2000 to 2010. She could name 10 of them in a row:

1. Two years intern at Motorola iDen group, city of Plantation, Florida from 2000 to 2002
2. Teaching assistant work on introduction to programming, logic design and micro process lab.
3. Network research
4. Freedom to choose several graduate courses: education leadership, biology statistics, introduction to cryptography
5. Write one book chapter
6. Intern at a startup company called Siva near 1 year and then full time work less than 10 months at Par Tech
7. Start a Chinese living water bible club around 2004
8. Go back to Ph.d. study in 2007
9. Write one book chapter and one conference paper, supported by National science foundation, supervised by Professor Jie Wu.
10. Work on research on anonymity protocol research, advised by professor Hanqi Zhuang, Mihaela Cardei.

Graduate study 

Julia took one graduate course in education department when she worked on computer science Ph.D. in 2005, and also she took "biology statistics" mathematics graduate course by mathematics department professor Lianfen Qian as well, Introduction to Cryptography by mathematics department professor Markus Schmidmeier. She learned so many things through the mathematics courses, the way to prove things, reasoning and hard-working spirit to work on the math problems.

She tried to innovate her Ph.D. study on computer science, and also tried a lot of ideas, for example, she worked as a teaching assistant in information technology department to grade C# programming course a few semesters, teaching assistant of the information department professor Qing Hu. She attended so many talks provided by visitors from the world, and she had chance to learn and be a classmate of so many people in Ph.D. study, more than 5 of them are computer professors right now in United States (Bing Wu, Feng Li, Wei LouQuan Yuan, Shuhui Yang, Xiuqi Li).

Education leadership

Most of her classmates in her education leadership class were the teachers in elementary school or other similar institutions. She enjoyed the structure of class teaching, around 10 of us were sitting inside the classroom, study and communicate through the whiteboard. The course name is "education leadership". One of Julia's concerns is how she can relate education leadership to herself, help herself to locate her next move in her career, go back to China or stay in USA or immigrate to Canada.

Innovation is hard, Julia worked on her computer science Ph.D. program, and then she tried so many things but she had a lot of success and a lot of failures.

To be continued 

After 10 years ph.d. study, Julia started a new career in Canada, Vancouver city. She is kind of going back to old route, lack of innovation and motivation to push forward from 2010 to 2015. But Julia learned something through the involvement of the community, tech community and other activities, she sets a goal to attend the hackerrank programming contest and continuously improve the performance starting from April 2016, and also document great things daily in her life through up-and-downs.

Julia likes to set some goals to learn courses on about C# programming courses.

Learn from WTA association and tennis professional players

My most favorite teaching of leadership is this one, NO FEAR, feel at home, Kristina Mladenovic. Through hundreds of hours training and matches, tennis professional shows us how good they are to be inspiration of hard work and no fear spirit.

Linkedin public profile:
Coding Blogs:
Code review:
Google Scholar:

Coding practice is like sports - I don't feel fear when I am on court. That's where I feel at home.

Laszlo Bock on Google's Approach to HR

Feb. 25, 2017


Thinking about real world, Google tries so many ways to innovate, the human resource management is really great idea to brand the company and help the company go succeed. Julia listened the video this Saturday morning 4 or 5 times while she did house cleaning over 1 hour period, clean bathroom, living floor, and oven and sink etc.

The talk is called Google's approach to HR, 9 minutes.

Human resource study 

Will come back to write down the idea adopted by Google.

perks, like massage programs, dogs, dry cleaning etc. - create community,
informal place to have a meeting, come together
drive innovation - listen conversation among those places
efficiency - gas change etc. onsite

focus on data, experiment and users

Engage the employees - Top 4 places to work
freedom and transparent to the information

3 models - ? HR hiring and team build
traditional one - outstanding benefit plan
not HR consultancy, but other things

put the following two skills together:
Great problem solving skills
Deep business sense

statistics and Ph.D. etc.

Advanced degree of people with analytical skills - raise the bar of ...

Long term people challenge?
big company, how to motivate people to volunteer ideas, less conscientious
keep the connections close and tight

Economy slowdown - how to handle from HR?
Salary increase, bonus
particular careful - when people leave Google, the severance benefits

retention study - annual employee survey
upward management feedback as well
annual survey - 96% ?

executive team goal - real, tangible and follows-up.
say somethings, it matters - positive.

middle managers skills?
credit ability -
ability to articulate situation

Cost of switching jobs is low compared to the past - tap in the talent, open offices in the world
mobility is the central
create an environment
people will go away to express themselves


vocabulary: perks - benefit
severance pay - spelling check, google it and spell correct
first time to use list box option - heading, minor heading, subheading provided by blogger

Recursive function code review

Feb. 25, 2017

Julia reviewed 2 years ago in 2015, how she wrote a recursive function in less than 15 minutes, in the important meeting. She was never a manager before, image that she met 2 years ago herself, and read the code, how she thought about the learning style. So many issues in her writing, she found out by herself that there are 5 problems at least, but there are more. Here is ternary tree preorder traversal, middle, left and right in that order, and here is the blog she wrote.

Code review

It is important to take courses about C#, and take down some notes, and learn one thing a time. 

Here is C# version Julia wrote on Feb. 25, 2017. 

Here is the C# code review on

Thursday, February 23, 2017

code review - Hackerrank stone division

Feb 23, 2017


Julia always chooses a topic to study, today her topic is about Google recruiting.

She came cross the article on Hackernews about Google interview, and she likes to put some number together to help her analyze the situation: (hypothetical skills)

Recruiter goes over millions resume, and start from 2000 people, try to fill 3 positions:

1: 2000 for 3 positions 

resume screen - 100,000 resume -> 2000 resume
phone screen   - 2000 people, each 30 minutes 
code screen     - ?
phone screen   - ?
in-person interview - 1 in 10 or 1 in 20 from that point

and then read the comment from an ex-googler 1825 days ago, probably in 2011: 

With all that said, I haven't found any degree (at least from any school I've interviewed applicants for) to be a reliable signal for programming. Even if they went to a really good school, there's a good chance that they spent all their time learning network protocols and low-level mechanisms, and will happily write up a sliding-window implementation for me, but will stare at me blankly when I ask for a simple recursive algorithm. It's just tough to find people that spent time studying and practicing general-purpose computer science.

An googler's comment on onsite interview more than 5 years ago, Julia is the first time to get the idea:
"So what you are saying is that for me to not have made it through I must have equally messed all my interviews or at least a majority of them. I surely didn't feel like that after the interview, but who knows, since I still don't have a way to know if that is the case. Then this really sucks."
Just a comment from another Google engineer who does interviews (and didn't do yours, since I haven't done any for a couple months now): your own feeling at the end of an interview may not at all reflect your actual performance in the interview, because you have no visibility into what questions weren't asked.
I like to interview candidates by asking them to solve a simple programming problem and then modifying the specification little by little, having them adjust their solution to implement new functionality. There are about 8 steps in my question, and frequently I'm gauging the quality of the candidate by how long it takes him to get through the first N stages; we fix bugs in earlier stages before moving on to the next stage. To calibrate myself, I've tried this question on several of my coworkers, and they were universally able to get about halfway through the question with bug-free code in about 10 minutes. Only one required prompting on my part to fix a bug. Most every candidate I've interviewed has taken 20-30 minutes to get to the same halfway point; by that time I've only got 15-25 minutes left in my interview, and the candidate seems so far like a "no hire", so I move to a different question to find out if the candidate has other strengths to counterbalance his weakness at solving this (simple) coding problem.
From the candidate's perspective, he only sees me ask a series of programming questions which he answers satisfactorily with a little prompting from me. If he answers another question or two satisfactorily, he may think he's done well, but he doesn't know that I wanted to delve more deeply into every question I asked him, and just didn't have time because the pace of his solutions was too slow.
I wish I could give this feedback to the people I've interviewed, but sadly, I can't.

So, Julia searched her blog using keyword: recursive function, and then she read the first blog through the search results, and the blog is about the fact that she failed to deliver recursive function design, code in Nov 24, 2016, after so many years Ph.D. study and 7 years full time work in the city of Vancouver, and then she did some research to catch up. 

More detail, she worked on stone division more than a few hours in the contest - hackerrank woman codesprint, a medium level algorithm, maximum score 50, Julia overcooked the solution, had weak muscle on recursive thinking, and out-of-her-control, scored 0. The algorithm is called stone division.  

Here are five blogs about stone divisions, documented her experience in the hackerrank woman codesprint, series from 1 to 5, failed to score any thing from a medium level algorithm, maximum score 50, over a few hours (5 hours?) in the contest in Nov. 24, 2016, and then she took action to do some research on recursive function, and then she found code review on As a matter of fact, she got used to isolate herself so long, and in order to improve hackerrank contest performance, she seeks the change. From a lone coder, work ass off, she barely stays afloat (not in financially), so she decided to find her new schools one by one, the 3 months old new school is called, she found the site just after the Nov. 2016 woman codesprint contest. 

So, she spent one hour to review the algorithm, wrote a more readable C# version this time, with 3 months experience with the code review school, with top-rated teachers from JavaScript, C#, algorithm help her to code review her code line by line, debate on basics - hash function, coding style, API design, and numerous rich experience. 

Code reivew

C# code for stone division is ready to be posted to for a review. And code review link is here

Wednesday, February 22, 2017

Blitzscaling 08: Eric Schmidt on Structuring Teams and Scaling Google

Feb. 22, 2017

Watch the video, 1 hour 22minutes.

Ask five-year question
14 years Java
-> Novell
-> Understand the cash, revenue, from Novell

150 people when Schmidt joined Google
-> same professor 18 years difference - two founders hired the CEO
-> 18 months plan, no deliverable, like a graduate school
-> raw talent matters ?
-> Talk about playboy interviews
-> professional vs. founders
-> 100 > 60 plus thousand
-> 3 of you read every resume
-> cautionary tale: no product should ship before it matures
barely work,
debate, operation and
performance of firefox -> invent Chrome -> 10 more people
Bought Android -> 1.4 billion operating system
Big management of lesson - Eric is wrong all the time (?)
compound value of decision

Sell the dream ? (20:00 - 25:00)
hire incredible intelligent people - debate
hire people who can get job done -
lesser universities/ not your friend/
controversial -
glue people -
Let us all reviewing all hiring, smell like glue people
Huge argument - we never fire anyone, hiring is crucial
normal people who have done something special
hire generic people, CFO who goes to bankrupt
Review all packets - how to score the people 1-5 bias - average weight - future performance
unconscious bias - understand bias
interview 16 time, this gentleman, cannot interview people more than 8 times -> 5 or 4 times
simple techniques -> analytical bias

Be a disruptive and be a good way
Chrome - 20 people 40:00
120 engineer works for one manager - run that in 2 years
CEO is to manage the chaos.

Not to do and move fast? No.
Keep Google innovative - don't be evil and 20% time

How did you end up growing managers?
business analytical skills -
you should hire divas - drive culture of excellence

the attitude: "Just start it and make it work out "

Excellent talk - finished 85 minutes one time.

Eric Schmidt & Laszlo Bock talk at re:Work

Feb. 22, 2017

Watch the video 28 minutes, and take down some notes.

Establish trust and ...
Use humor ...
appeal to high power vs customer is a judge

Laszlo Bock - a pioneer to decide with data
here are the facts

incentive and intent -

Read the article about re:work book.

Hackerrank - week of code 29

Feb. 22, 2017

Plan to work on week of code 29 later in the week. Do not miss the opportunity to win a bronze medal.

Julia only worked on the first two easy algorithms, she tried to work on medium algorithm in last 4 hours, but she could not perform since she was too tired after 6 hours workout in the day time.

Day of programmer C# code is here.
Big Sorting C# code is here.

Lesson learned:

Julia, please work on the medium algorithm as early as possible. Work hard! It is not easy to score any point on medium algorithm, Julia has to reserve at least 10 hours in order to score any point on a medium algorithm. She tried to work on two medium algorithm in last 4 hours in the contest, but she could not perform any of them.

The day will come, Julia only needs a few hours to figure out one medium algorithm.

A programmer writes her first blog about driving safely

Feb. 22, 2017


Julia learned a lesson a long time ago. First year she moved to Vancouver from south Florida in 2010, and then she made wrong U turns in the city of Vancouver. And then she learned her first lesson. And then, second year, she got a moving violation ticket. As a scholar, she knew that she has to study BC driver license book page by page, word by word. She spent one month to study the book, and she just loved to read the book again and again.

And after 6 years, Julia experienced her first car accident in Vancouver, she tried to yield a bus when driving to work, and then, she heard something in the back.

Long story short, it is time for her to find some material to study, and learn how to be a defensive driver, get some statistics update, acquire some new skills.

Remember a bible verse shared from FAU professor, a Chinese living water bible club in 2007, 10 years ago, Psalm 121: 6, the sun will not harm you by day, nor the moon by night

Accident location: Rupert street near worthington drive, 9:20am, Feb. 22, 2017, city of Vancouver. 


Will continue later.
The idea is to read driver license book again, understand all rules, terminology, and situation analysis, reasoning. Write down some notes here.

Tuesday, February 21, 2017

Becoming a Googler...and Other Opportunities

Feb. 21, 2017

30 minutes video, Laszlo Bock has a conversation with thomas L. Friedman

Take down some notes:

First round, 31 minutes:

You can learn vs you know what you are doing

What google looks for:

1. Learning ability

2. Emergency leadership
team 4 - 6 people, step in/ step out

3. Culture fit - just like us, people are comfortable with ambiguity.
humanity, conscientious

3. Expertise, good engineer, great at it.

5 - 10 times, comes out something new - Look at the problem again and again.

14% percent no college degree - How google selected them?

Online training, self-taught. Pick up a lot of places, how to assess these?

Look at deep, net hire each year 5000 - 8000, 2 million application.

Every day MIT people size of people applies every day, 11,500 students.

Recruiter, screen, assessment - phone screen - engineer, technical coding ability
Come to campus after phone screen
Ask transcript - 15 years out of school - people 1/3, people lies. Small recruiting is making sense.

Performance - 300 independent variables, like school, first two years, velocity - how quickly you get promoted.

Grades are only for first 2 years after the school.
Grades - curve in different colleges.

Recruiter - big mistake in writing job resume/ answer: poorly write what they accomplished.
Give people understand - grow x by doing y based on z

How to avoid big mistakes in the interview? Do not wear suits.
Do not wear suit. Curious, demonstrate interest.

Talk about a candidate, she asked if it is not for interview - authentic interest.

1. Great question, why took hard course and got low grade instead of getting easy course?

Julia should learn how to answer question like this, ask herself: why taking hardest contest on hackerrank, what you learn? your performance can go so low compared to others?

People shy away from pain.
Learn analytical skills - could not get A.
More objective skills ...

The things you learned through those tough classes - grades are tough, professors are not friendly, very valuable in your life.

First you learn analytical skills, very valuable. Most of people do not understand compound interest, pay off high interest rate or student loan.

Second you learn resilience of ..... (17:38/31:23), repeat twice last 5 minutes.

Minority hiring?

2. Cost of education
- advise for parents of young people, college choice.
1. Look for signals, brands recognize, every one else? Write a big check to get the education.
Related understandable - skills are transferable to any environment
fundamental - think of cost

14% vs 86% for big employer - 1/3 goes to college.
Short term is better to assess the people, screening

Push them to take math, physics class

Cultivate people long term - build a relationship first
Related to resume screening as well - certain type

83 years old - look at age, gender, ......
conscience bias - a lot of work to be done

Second round, 30 minutes

How Google Thinks About Hiring, Management and Culture

Feb. 21, 2017


Thanks for a comment from linkedin on Feb. 21, 2017:
Ben Lai
Read about how Google started out in Laszlo Bock's wonderful book on their unique culture, "Work Rules". In particular, if you are super patient in hiring only the best, then you will keep the bar very high and not settle. Take away as much bias as possible. Get many points of view. Use the same interview questions for all candidates. Be as transparent as you dare. Don't let individual managers make hiring decisions. Those are lessons from that book.

Book: work rules - insights from inside Google that will transform how you live and lead, 2015

Study of video:
21 minutes video, take down some notes:
First round, 21 minutes:
1. How manager plays role? What kind of trials failed, 500 engineer reports to 1 manager.
2. Hiring committee, maintain the bar vs hiring manager decision.
3. Deliberate concentrated practice, work on very small thing a time.
4. Book - fairness about compensation, 10 thousand to 2 million in stock option, wide distribution
Distributed - pay transparent, no one is happy.
Procedural adjustment - validate, test and make sure outcome is fair
Market value - adjust to keep them

Second round, 21 minutes:
1. Evaluate the hiring manager's power, take it away.
Bias -> 10 second rules -> trained psychologist vs college sophomore - > 20 minutes -> 10 minutes -> 10 second rules, confidence, agreeable, conscientious

2. Separate committee - hiring committee makes decision -> evidence, hiring objectively
Structure questions - screen problem solving ...

3. Don't make decision on one person's opinion

4. Get work done.
Manager may control everything vs peer review, take away as much power from the manager.
One time 500 engineers reports to one person.

5. Training people - tiger practices golf in the rain, came back in 3:00 am morning. Good chance to practice, deliberate concentrated training.

Learn best to work on a small thing.

6. GE -> Google, 6000 employee -> 55,000 employees.
Interview process takes a long time. Focus on people and culture.

Small signal you send out is very important. Healthy paranoid to lose the culture.

7. HR - Do not worry about hiring HR until you have 50 people or more.
How to manage and lead so many people?

8. Pay unfairly - power of laws distribution - business, law, and sports
Performance - athletes
Average people know the performance is observable, measurable.
Best people are way way better than average people.

10 times more for average person - 10 thousand vs 1 million
Be able to justify in your team. Transparent - no one is happy.
Procedural adjustment - validate, measure and test.

Based on job, not prior pay. No gender difference.

People will get it in the market.

3rd round:
Talk about deliberate concentrated practice:
Give two things, first one (?), one is feedback
Small things adds up to large thing <- argument? 

Every single year, compensation, 20% 30% more or 10 times more, exponential. 

How Laszlo Bock answered question very well? 

Avoid halo effect, hire same type people - 

Follow up 

Sept. 14, 2019
I did not feel so good since I had two onsites in 2019. I had one from Amazon Vancouver on August 15, 2019, Facebook on August 20, 2019. One onsite from Fortinet in June, 2019, one phone screen from Docusign on Sept. 12, 2019.

I like to learn how to understand myself as a candidate. - master Visual Studio 2012

Feb. 21, 2017

Plan to take the course: Master Visual Studio 2012. - Provable Code

Feb. 21, 2017

Provable Code - Michael Perry, 5 hour 51m, plan to take the course.

Pluralsight: Code Contracts

Feb. 21, 2017

Plan to take the course - code contracts, John Sonmez, 1 hour 51 minutes.

Julia, please write something about the course. You should learn most from the teaching.

Monday, February 20, 2017

Pluralsight: Defensive coding in C#

Feb. 20, 2107


It is a new year and Julia likes to build a good habit to follow, learn one course a time. She noticed that she spent a lot of hours to solve a problem in the contest, but she does not have time to watch courses. She needs to work on defensive coding in C# first, write down some notes.

Course Study

Hackerrank university code sprint #2 - Bronze medal

Feb. 20, 2017

Julia was so happy to know that she got a bronze medal for her most favorite codesprint - university codesprint. She scored 50, spent more than 15 hours, compared to highest rank scoring 100%, score 430, in less than 3 hours, she has a long way to go. But she knew that how hard she has to work on, to make that extra 30 points, her last university codesprint was 20 points, because she spent over 10 hours to work on hard algorithm array construction, ended up scoring 0 on the algorithm.

The university codesprint is by far most challenge codesprint one.

She did look up ranking in Canada, and tried to learn through leaderboard, she ranks at 38, and also she found a good article to read from Bai Li, ranking , score 179.80, 245/6591.

Read his blog about competition programming to talk about rankings.

Study other players, and try to figure out how they got so advanced skills in competitive programming. 

Bai Li - HackerRank
How to succeed in your intern?
Erick Lin - How does an undergraduate do?

Hieu Le

Corey Chen

Marek Cygan
Abu Naser Bikas

competitive programming blog

Sunday, February 19, 2017

Lakshmi Mittal's Top 10 Rules For success

Feb. 19, 2017

Read chinese article about Lakshmi Mittal first. And watch the video of Top 10 rules for success.

1. Knowledge is the key

2. Take bold decisions

3. Be responsible

4. Don't set high goals

5. Seize the opportunities

6. Prove your critics wrong

7. Don't lose focus

8. Get experience

9. Lead by example

10. Do things differently

Azim Premji's Top 10 ruls for success

Feb. 19, 2017

Read the chinese article about Azim Premji. Watch the video and take down notes about top 10 ruls for success.

1. Find your purpose

2. Fail as fast as you can

3. Cherish your strengths

4. Be persisten

5. Get ideas from customers

6. Earn your rewards

7. Deal with disagreements

8. Disrupt your industry

9. Practice
Integrity is practice. Innovation is practice. Keep them simple as possible.

10. Start small

Michelle Obama's Top 10 Rules For Success

Feb. 19, 2017

Julia spent hours to listen the talk 21 minutes a time, again and again. She likes the first rule, keep moving forward.

Here is the video link.

10 rules

1. Keep moving forward
Some of them are homeless. Live month by month, day and day, meal by meal. You should not be ashamed your struggle.

When I worked as dean of college, kids with rich family some of them got their first poor grade. Falling short, life will put a lot of obstacles in your life. You experience loss and many more, you already develop resilience, keep moving forward.

2. Be authentic

3. Work hard

4. Don't be afraid to fail
We all here, some of people helped us.

5. Choose your own path

6. Earn success
How hard you work is more than what you make.

7. Take your role seriously

8. Enjoy the balance

9. Do what is hard

10. Have fun

Hackerrank Game of Two Stacks - in the contest

Feb. 19, 2017


This is by far most challenge problem Julia has in last week, and she likes the difficult level of university codesprint. She understood that she should have more reasoning what she can do, after she made an effort to gain 10 points of maximum 30 points. 30% success rate tells that most of people did not push their analytical ability to the most, Julia could not believe that she can find optimal solution, but playing game is like a real life experience, define the rules, how to play against the rules to your best benefit. Play safe to get some points first, since Julia spent hours to debug the code for extreme test cases, then Julia ran short of time to think about the optimal solution.

In terms of growth mindset, how to grow from a 30% performance on first medium level today, in 3 months or 6 months, become a 60% or 100% performance on a first medium level? Recently, Julia did some study on this through sport performance coaching.

In the contest

Her C# submission only made 30% of maximum score, but she spent hours to make it best, learned the importance to avoid complicate code.

Feb. 20, 2017
Search Canada ranking board on university codesprint #2, go over one by one in Canada, Julia ranks at 38.
Find Bai Li, ranking , score 179.80, 245/6591
Read his blog about competition programming to talk about rankings. The link is here for the talk about competitive programming.

Hackerrank the story of tree - in contest

Feb. 19, 2017

Julia spent over a few hours to work on the algorithm - the story of tree, she really learned an important lesson about understanding a graph. She had fun to play with code, after a few hours, she scored points of 6, and then she continued to work on, scored up to 12 of maximum 50.

It is a struggle to push herself to think about the timeout issue, where to find the breakthrough to solve the timeout? Julia knew that the algorithm with a medium level should not be complicate, she enjoyed her struggle through early in the morning.

The algorithm is the second medium level one in university codesprint #2 on hackerrank. The contest is Julia's most favorite one, she still remembered the lesson she learned last year. It is hard and she remembered the pain as a programmer but she did better this time.

In the contest

Here is the C# code she submitted, the last submission over 10 of them in the contest. She continued to work on issues, through a few hours work after she scored points 6, she learned the important lesson how to make code simple, more simple, therefore, she can try some new idea.

What she missed is the time complexity of algorithm.

Julia got familiar with graph implementation, she knew that graph can be in any form, maybe, she does not have time to define node, edges, all she has time to make a list of hashtables. But it is a graph she likes to write for herself.

Saturday, February 18, 2017

Hackerrank university code sprint - in the contest

Feb. 18, 2017

Julia spent the whole day starting from 10:00 am to work on Hackerrank university code sprint, here is the summary so far 8:34pm, compared to best performer in the world.

She likes to look at the chart, and tell herself that every algorithm someone works hard and can perform in less than 30 minutes. In other words, do not write too much code, avoid complicated code.

3:58am, Feb. 19, 2016

Falling sleep, last minute to try to get more points on the algorithm - The story of a tree.

Let us review the progress so far.

Comparison shows that the google employee completed the algorithm "The Story of a Tree" 20 minutes, starting from 655:29 to 675:22. And it took him 9 minutes to work on "Game of Two Stacks".

Try to avoid complicated code. Last 10 minutes to go over the algorithm again.

Thursday, February 16, 2017

Leetcode 317: Shortest distance from all buildings (Part 4)

Feb. 16, 2017


Julia was trying to find a good one to ask code review on, and the she noticed that her blog is coming to a landmark 100,000 views. So, she likes to celebrate her hard work, she saw one of visitor was from search result using keyword: Leetcode 317 in last 7 days. So, the user of the blog solved her problem - find a nice algorithm to review. She worked on the algorithm before, she did twice. 

Her first practice is more than 12 months, she reviewed the blog in January 2016In May 11, 2016, she practised again the algorithm. Her practice code is here. Through her practice, she likes to track her progress. She likes to say just so so, coding is like tennis sport, she has to learn from best - Roger Federer.


Julia likes to rewrite the C# code based on last practice in January, 2016. And here are the highlights of change.

To challenge herself, she designed several classes to track intermediate result, for example, empty land and building distance, building key and empty land position should also be recorded, so she can test the API first.

Because there is no concern about timeout or space limitation, Julia likes to design a few APIs, and also learn how to write code to follow S.O.L.I.D. principles.

In C# code, function WalkFromBuildingBFS is set as public API, and also a test case is added. Make sure that BFS search algorithm is working fine.

Here is the C# practice ready for review. Here is the code review link

Read some posts about SOLID principles on first.

Feb. 17, 2017 10:15pm 
Read the post about SOLID principles, the link is here.

Feb. 18, 2017 11:05am 
1. Update the question of Leetcode 317 to make it more instructional - the breadth first search, including some research I did on community challenge. 

2. Study the community challenge question code review, Rainfall challenge.
     Study Java code implementation first, and then write a C# one to ask for review.

Feb. 20, 2017
Read leetcode solution discussion, one of discussion is to expedite the search, great idea I read first time:
I also tested the other three C++ solutions posted so far, they took 340-1812 ms. I think mine is faster because I don't use a fresh "visited" for each BFS. Instead, I walk only onto the cells that were reachable from all previous buildings. From the first building I only walk onto cells where grid is 0, and make them -1. From the second building I only walk onto cells where grid is -1, and I make them -2. And so on.

Winning ugly - Brad Gilbert

Feb. 16, 2017

Watch the video twice, one hour video.

Winning ugly, talks at Google.

Another 30 minutes chat, nice interview to watch.

Coaching videos:
Tennis baseline strategy with coach Brad Gilbert.

Wednesday, February 15, 2017

Pluralsight: object-oriented programming

Feb. 15, 2017

Julia subscribed pluralsight courses over 24 months. She did spend a lot of time to learn a few courses the first few months. And then, she stopped to watch any course, focused on the other priorities.

Now, she likes to spend 30 minutes a time in the evening on

Compared to read on wechat every day, she should work on more every day instead.


Write down some notes, and build a good habit to study some course. It is different learning style to watch courses. 

Learning path:  pluralsight courses 
Defensive coding in C#
Clean code: writing code for humans
C# interface
Dependency Injection On-Ramp
SOLID principles of object-oriented design
Design patterns On-Ramp
Design Patterns

Actionable Items:

Conduct some analysis last 24 months study on, and write down something to improve.

Monday, February 13, 2017

Sunday, February 12, 2017

How to spot A-player?

Feb. 12, 2017

Do some study on the topic, how to spot A-player?

Another article also is related to the topic very well, using structure interview.

This one talks more in detail, 7 questions:
  1. Have they been promoted at least once in a previous role?
  2. Have they had to lead a big project in a previous role? How did they handle it?
  3. Is this the same role as a previous job or is it somewhat/completely different?
  4. Can they speak about your company and tell you what they like and what they might change?
  5. Are they confident without being cocky?
  6. Are they committed to continual learning? Can they prove it?
  7. How would you rate the quality and quantity of questions they ask YOU during the interview?A-players care about the team they'll be on, their manager and where you want to take your company moving forward.