Tuesday, March 14, 2017

Code review: Hackerrank's merge community

March 14, 2017

Hackerrank's Merging Communities

Hackerrank - week of code 30

March 14, 2017

Work on Hackerrank week of code 30. Work on the contest as early as possible. Embrace the difficulty of medium, hard, expert algorithms as possible. Julia may not have chance to come cross anything so challenge in short future, just enjoy the contest to the full extent.


One game, one style. People start to know me. Where I can, where I place. So I tries to make more changes.



Follow up after the contest


March 20, 2017
Julia, if you decided to join the code contest of week of code 30, you should work on each medium algorithm at least 2 hours. Now you ranking is looking so ugly around 7406/ 10,558, because you did not spend time on medium algorithms at all, you should not give up because you have to work on other projects. At least you should show some efforts to score 20 - 30 point above medium algorithms. Otherwise you will never be an outstanding player being able to score more than 100 points. 

March 21, 2017
Julia, contest experience is not easy to go through, but you have to stay in the game. 

You can choose easy way to spend the weekend, but you cannot push yourself to next level that way as a programmer.

Google search keyword: competitive programmer burns out

Do more study on competitive programmer best practice!


Disadvantage discussion on Quora

Industry success related on Quora

How to prepare?  From gold medal winner of ICPC 

"From every 3 problems you solve, one should teach you something new. If not, choose them more carefully. Choose harder problems!

After you finish those 250 problems from SPOJ, you will have an overview of the main topics of competitive programming. By deeply 
understanding the logic behind basic algorithms, high-level algorithms will seem easy to understand. So you can rapidly leverage your knowledge."

Follow a google engineer on quora - Brian Bi 
Brian's Interview talk on quora.  

Cracking the code interview

March 14, 2017

Review previous research on cracking the code interview. And try to make a small improvement.

Cracking the code interview search result through the blog, it is here.

Monday, March 13, 2017

Quick Search - Julia's first answer on code review

March 13, 2017

Julia got a big surprise today, her first day work on code review to answer a question on quick search was selected as the answer today, after more than 3 months, she noticed that she got 25 reputation.

The code review link is here. She has to celebrate a little bit, it was a long time she tried to find some activities to help others while she is struggling to invent herself, keep up with others in this computer science technology world.

Julia searched her blog using quicksort, and then she found somethings to review related to quicksort.

Make it more memorable, Julia uses an image and music to celebrate her good working spirit.


Jessica Simpson - Take my breath away

When  Julia read this news, she was so excited, take my breath away, a little exaggerated, reminded her a song - the old lovely song, feels good to help others and make her own mark. One step a time, ...

Actionable Items


1. Read all algorithms in the blog, the blogger got Google and Linkedin offer. The algorithms may be a good study material for Julia.

2. Review the C# implementation of quicksort, write a new one.


Research at Google

March 13, 2017

Research at Google, 2:36 minutes video. Get to know some sicentists in Google research. Write down the scientists by name, and then look up Google, and make tonight's study more meaningful.

John Platt

Blaise Aguera - principle scientist

4 million view of TED talk - How PhotoSynth can connect the world's images      8 minutes
1 million view of TED talk - How computers are learning to be creative              17 minutes

John Giannano - VP of research

Dan Ramage

Tara Mcintosh

David Weiss

Rahul Skuth

Tania Bedrax

Cornna Cortes - the Head of Google Research, New York.

Emily Pitler - Using Tree Structures for Improved Dependency Parsing Algorithms 47 minutes

Tanis Bedrax-Weiss - How Google Might Top Search Results with Additional Information

Ask a Google Engineer - Challenging Tasks

March 13, 2017

Introduction

Julia chose to study this 4 minutes video. How challenge the task in the google? What if you fail?

Study 

Fail early, fail fast - no stigma 

Some document you improve and learn - failure is a process you learn 

Task is challenging - too many challenging, which one is to choose? As a manager, he will advise what to look for.

Build an application - operate at scale, wrap your head around 

Software - failure, it is ok; it is a way to learn, iterate quickly; do not be afraid to learn again.

Google's culture - fail twice at same things -

2nd round notes taking - March 15 10:00pm 


Learn how to design in scale - pick up vocabulary etc. 

Ask a Google Engineer - Work, Happiness and Hobby at Google

March 13, 2017

Introduction

Julia chose to study this 2:34 minutes video. Have a short focus talk, Julia learns something about Google culture.

Study 

Look for people - if he/ she has a million dollars, no need to work. But he/ she will still like to work here as an engineer.
Improving it - still need to work on more, focus on users.

Passion for the computer science - for fun, a billionaire, will work here.

Hobby, love my job - people you will work with, environment is still dynamic. If you create a product, launch it, you still need to continue to work on it.

Sunday, March 12, 2017

Ask a Google engineer - How Does Google Foster Innovation?

March 12, 2017

Introduction

Julia spent time to work on this less than 2 minutes video.

Study 


20% time - 

innovative time - 

Ask a Google Engineer - The Work-Life Balance at Google

March 12, 2017

Introduction


Julia likes this 5 minutes video very much. She likes to challenge herself everyday, study something new, and then look into more later.

Study 


Hiring people for long term - ongoing learning related to engineering team people
Work 40 hours

Very academic internally inside Google - 80 hours a week, it is not true in Google

Stay at work late - keep doing that, burn yourself out; too long too hard, it does not worth

Creative - not assembly line code, creative endeavor



Ask a Google Engineer - How to Noticed and Get an Interview at Google

March 12, 2017

Introduction


Julia chose to study 4 minute videos about Google and how to be noticed. Julia chose one study topic this Sunday. And she thinks that the topic is decent enough and more rewarding.

Study 


Open source project - free internship for new graduate
focus on things you have done on your resume -
do not lie, or fluff your resume - Google will like to check and find out
Show some one really likes to write software
Going to top-tier school, get good grades, doing something over there
Make your resume stand out - people have done something, resumes are looking the same
Work on something in spare time -
Two qualities - good fit, solid experience


Hackerrank - woman codesprint #3 - Hackathon shirts

March 12, 2017

Problem statement

C# code submission in the contest, score maximum score 40.

She spent a few hours on Hackathon Shirts. She thought about test cases she should choose more carefully. Two algorithms are involved, one is merging interval algorithm, the other is binary search algorithm. Very good workout.

Facts to share


Julia still made a bug in her writing after 4 - 5 times to practice merging intervals as an algorithm. Why? Because she depends on her memory of the algorithm, do not start from the beginning of analysis, what test cases she should cover when she finishes the coding. She missed the previous interval end value, she should check maximum of two values instead.

Julia,
rely on your past practices,
it is not to test how good your memorize the algorithm.
But always,
always start with 
the reasoning
test cases. 


Hackerrank - woman codesprint #3, elevator simulation

March 12, 2017

Problem statement

Contest performance 


Call it a day, 4:25am. Finally, after 4 hours writing code and dubugging, scored 18.00. Pass 7 test cases, fail 10 test cases. 8 runtime error, 2 wrong answers, Julia could not figure out and then she needs to go to sleep.

I never experienced this kind of coding, Elevator simulation, very good workout.

Julia, you should train yourself coding not in the contest. Julia enjoyed the adventure of coding this medium algorithm called elevator simulation. Julia could not believe that people can write the algorithm in less than one hour.

Here is the progress report, for the contest.


Follow up after the contest 


Here is the C# code submission in the contest.

Code Review of the function SimulationElevator


A few places have duplicate code, need to extra a new function for class WaitLine, Passenger, Trip, and then make the function SimulationElevator from 160 lines of code to less than 50 lines of code.

First revision 


April 3 2017
Julia spent over one hour to code review the submission on April 3 2017. The C# code is here. Plan to spend some time to review the design, try to pass all test cases. And then ask a code review on stackexchange.com.


Follow up 


March 14, 2018

I got an email about object-oriented design code review request from the peer in the morning 2:30 AM. so I gave some feedback. My main idea is to get into a community like hackerrank, and also being a hacker, and have some warrior spirit.

Here is my review.


Saturday, March 11, 2017

Hackerrank - Woman Codesprint #3 - Choosing recipes

March 11, 2017

Introduction

Problem statement

Julia spent over 3 hours to work on this medium algorithm, she finally figured out the challenge after 3 hours labor, and then she took this greedy approach only score 29 points out of maximum score 50.

Now it is 5:44pm, March 11, 2017. She has a few choices, continue to work on this algorithm, or move to next medium algorithm, and the last algorithm which is hard one.

Let us get some progress report here.


Choosing Recipes


Work on the Choosing Recipes algorithm starting from 11:30am - 4:13pm, very close to a workable solution.  It just took more than 3 hours to figure out the ingredient purchase only need counting once.

Once Julia knows the tough part of the algorithm, she took greedy approach and used recursive solution to make a quick points first, she made it 29 points, her algorithm passed first 7 test cases but failed test cases from 8 to 12.

Julia scored 29 points out of maximum score 50, at 5:49pm. There are still 14 hours to go, actually she has 6 hours before 12:00am. She has to make decision to continue on this algorithm, or move to next medium algorithm, last hard algorithm.


C# code review after the contest


Here is the C# code submission in the contest. 

Read the comment above the function of ChoosingRecipesMinimuCostGreedyApproach, "This algorithm is designed to take greedy approach, it will not guarantee the minimum cost for all n dishes". Julia did not aim for perfect solution, dynamic programming solution is still hard for her to figure out in the contest.

Need to look into how to improve reading skills. Julia did not notice the sentence impact on the algorithm correctness, read it slowly, think about how to catch it in first 1 - 2 reading. "she must purchase it at the supermarket; however, once she has an ingredient, she can use it in an infinite number of recipes." Julia did not pay enough attention to this statement and what it means for the correctness of the algorithm. She found out this after 3 hours working, it was too late but she was lucky to know to look for something important in the problem statement. There must be a good way to write down important things, good at coding should also be based on the good reading skills. Julia likes to put this more urgent issue to solve in short term.

Julia took 3 times IELTS tests in 2009 from June to August, but she did not have chance to train herself on reading skills from 2009 to 2017. Julia did some urgent patches to the problem in 2009, and the issue is still floating up after 8 years and catch her attention in more painful way.

Will do some research on ideas how to improve reading, specifically technical reading.

Coding interview problem: Least Disruptive Subrange

March 11, 2017

Introduction


Spent 50 minutes on the video, Least Disruptive Subrange. Very good teaching and demo of using white board debugging. Julia always pushes herself to learn from people with graphics design experience, very good handwriting, layout of whiteboard properly etc. Julia is kind of sporty style - train insane or remain the same, try it very fast, and then comes back to get it more organized.

Julia is getting better day by day, she just wrote a question on Leetcode 125 and then she got response in less than 30 minutes and in 24 hours 1000 views, won a popular question badge, with 50+ reputation on code review site.

Take some notes here.




Train insane or remain the same - focus on training!

Hackerrank - Women's codesprint #3

March 11, 2017

Introduction


Julia learned the importance to go out more often, and she chose to go to the meetup called the tech & startup weekly in downtown, so she spent time from 6:30pm to 8:00pm to meet people. Actually she started to work on the contest around 9:00pm.

But she still made a lot of errors, and took more than 3 hours to code the first medium algorithm.

Here is the progress she made so far, 3/11/2017  12:46AM. She will go to sleep and then after a good night sleep, she will try to work on the other 2 medium algorithm and one hard algorithm.

She finished the first 3 algorithm and solved all of them successfully, score 70.00 so far.

Hackathon Shirts


She spent a few hours on Hackathon Shirts. She thought about test cases she should choose more carefully. Two algorithms are involved, one is merging interval algorithm, the other is binary search algorithm. Very good workout.

Facts to share


Julia still made a bug in her writing after 4 - 5 times to practice merging intervals as an algorithm. Why? Because she depends on her memory of the algorithm, do not start from the beginning of analysis, what test cases she should cover when she finishes the coding. She missed the previous interval end value, she should check maximum of two values instead.

Julia,
rely on your past practices,
it is not to test how good your memorize the algorithm.
But always,
always guard with 
test cases. 

Choosing Recipes


Work on the Choosing Recipes algorithm starting from 11:30am - 4:13pm, very close to a workable solution.  It just took more than 3 hours to figure out the ingredient purchase only need counting once.

Once Julia knows the tough part of the algorithm, she took greedy approach and used recursive solution to make a quick points first, she made it 29 points, her algorithm passed first 7 test cases but failed test cases from 8 to 12.

Julia scored 29 points out of maximum score 50, at 5:49pm. There are still 14 hours to go, actually she has 6 hours before 12:00am. She has to make decision to continue on this algorithm, or move to next medium algorithm, last hard algorithm.

Canada Leaderboard 


Julia, you are ranking top 3 in Canada right now. March 11, 2017 6:12PM Pacific Time. Work hard!



Tennis pro player - Svetlana Kuznetsova 


Study one tennis pro a time -

Svetlana Kuznetsova

Pain does not kill me, I kill the pain. The tattoo came out before her knee surgery in 2012


Thursday, March 9, 2017

Code review: Leetcode 125 Valid Palindrome

March 9, 2017

Introduction


Julia wrote two blogs about her practice of Leetcode 125: Valid Palindrome.

Search the blog using Leetcode 125, first two blogs shows her over 10 time practice. So, she likes to review and write a C# version, and then post a question on codereview.stackexchange.com

Code review

1. C# code to ask for review. Code reviews are excellent. Please take a look at the first review and second review.

Julia won her first badge - popular question, her question has more than 1000 view in less than 24 hours, and thanks for the moderator - 200_success.

Learning coding is so much fun to work with code review, Julia got her best advice and best teaching from her own experience of learning, she got code review from the moderator - 200_success.

Julia also learned some great tips to write a for loop, and her new school starts from here - one review a time.

Wednesday, March 8, 2017

Code review: short palindrome (dynamic programming)

March 8, 2017

Review the algorithm short palindrome in world codesprint #5, and write a C# solution using dynamic programming. Post a question for code review.

Previous blog about short palindrome algorithm.

Actionable Items


Read code monk tutorials.

Graph algorithms - minimum spanning tree

Tuesday, March 7, 2017

Leetcode 340:

Leetcode 340 - favorite solution:

Coding interview problem: Permutation Generator

March 6, 2017

Study the video - 31,210 views.

Actionable items:

Study leetcode algorithm one by one, so much fun to go over the solution. Julia noticed that she feels strong confidence in algorithm problem solving.

Go over Leetcode 31, 124, 166, 207, 210, 284, 340, 360, 406.

Leetcode 31

Leetcode 124

Leetcode 166

Leetcode 207

Leetcode 210

Leetcode 284

Leetcode 340 - favorite solution:

Leetcode 360

Leetcode 406




Monday, March 6, 2017

Jackson Gabbard - Intro to Behavioural Interviews

March 6, 2017

Introduction

Very good coaching about behaviour interview. I just could not believe that I just came cross the video today and learned a few things through the video. Julia will take some notes, and look into his argument/ advice/ analysis.

Study 


Intro to behavioural interviews


Notes

1. culture

2. behavior interview

Do not wrap your weakness with some sugar coated ?

Satisfied - Not good - Good answer - Do not bullshit the question

Talk me one of your flaws:
Strength wrapped up - so hard work - concrete example to work too hard and hurt team etc.

Biggest success in previous work - what did not go well?
Be self-critical
Chance to catch him/ her out - throw the teammates under the bus

Be genuine -

The part about the sum your history 


understand your work history -

Stay at the same company 6 or 7 year, the smart interviewer will try to figure out that "is this person growing or top-out?"

CV contains factual things you have done

specific contributions you make - technical something
project tech lead, algorithm put-together
How good technical depth?
Get some signal - does that add up?

the part about why "we" are bad 


It is you to get a job, not get a job for your team.

Reveal you as a person - interview a person with a manager of 20 people and spent 90% of time to coding - not make sense

the part about money - behavior interview 


the part about communication ability 

assess your communication ability 


communication -

The part about collaboration 


Is this person all right? Is this person a successful collaborator?

Is this person hard to hire?

Talk about the time you and your team disagree something.

Healthy collaborator will move on, or it is critical thing and work on more. Build hatred towards team, their opinion ...


The part of passion ( in depth)

world record of something - you must have a great passion about something.

signal people may look for - make it success for the company



Advices 


Be genuine - strongest advice 

Think critically about your own career, your intention to work for the company, self-awareness, why you want to be in this company? 

Own your strength and weakness - what you earn, what you fail, share them with interviewer. It will increase your chance to have the job. Fail public and successfully. 

The part to ask about tough questions 

Write your questions down. 







Sunday, March 5, 2017

The Google Boys - History Majors

March 5, 2017

46 minutes of video - The Google boys - history majors.

Two founders grew up academic family, the money making is not highest priority, learning, knowledge, teaching are most things instead.

Some statistics:
34000 times googlebot hits news website such as NSBC(?)



Sergin Brin & Larry Page: Inside the Google Brother's Master Mission

March 5, 2017

Study 28 minutes video, take some notes.

Google ad words - purchase ad words key ?
Index billions of url, explode -

Hire CEO - 12 - 14 interviews, business leader, with engineering background, 2001 - hire CEO - parental supervision
middle of 50, diplomatic

Expand Google news, google map, google earth

Google email - privacy - ads related to the email - concern about Gmail, privacy and trust

Purchase of youtube, Android etc.

Android system in 2007 - Apple did not like it.

Microsoft started to build bing.com starting from 2009.





Code review: Lucky number 8

March 5, 2016

Problem statement

Introduction


Julia had a few submissions in the contest, she tried 12 submissions. Scores is an interesting array like this, [0, 2, 1.8, 3.6, 10.8]. The final version in the contest, a C# practice in the contest, scored 10.8 out of maximum score 19.80 30.

Lucky number 8 is the medium level algorithm in the week of code #28, Julia took the recursive function as an approach, in order to score more points, she wrote more than 450 lines of code.

Julia did not have too many choices in the contest, the dynamic programming approach is too difficult for her to figure out. Actually she was math major graduate, and then she just enjoyed the workout on this analysis. She was writing a "book" (a joke to verbose coding), actually computer science on hackerrank contest taught her a lesson - to be thrift on time to write code, if she can be ...

Julia spent some time to review hackerrank contest performance  and then looked into the issues of week of code #28, she took a look at the algorithm submissions, she was so surprised, my God, it is such a great workout on recursive function. This is like sports - but it is a time-consuming marathon. This is her first time to write a recursive function and spent more than a few hours, and experienced a little success. Cheers! Julia, good job, even it is 10.8, 30% of maximum score 30. Julia likes to call this algorithm with this submission with a beautiful name by Vancouver islands: Tufino, a vacation place she should take instead of going back to China, a popular summer place to visit whales from touring boats.

Today, Julia likes to show herself how to score maximum score. Learn a dynamic programming after she learned the lesson through the contest.

The most important is to work on the example 968 and figure out how to solve the problem to get the answer 3.

Lesson learned


450 lines of code using recursive function cannot beat 20 50 lines of code using dynamic programming. But Julia also learned the lesson through practice, not at work. That is the importance of practice!

Facts:

In order to score more points in the contest, Julia continuously wrote more code until 450 lines. She had determination to make more points, she showed her passion to solve the problem.

Actionable Items


1. Read editorial notes:

In this problem, you are given a sequence of digits of length . You have to find the number of non-contiguous subsequences, such that the number formed by their concatenation is divisible by .
Observe a bit,
The number is formed by concatenating the non-contiguous subsequences, which implies that the number itself is a subsequence and vice-versa.
So the problem boils down to counting the ways you can make a subsequence divisible by . This can be done by Dynamic Programming.
At any position of the sequence, you need to consider two cases:
  1. Concatenate the digit at the position with your current subsequence and move to next position.
  2. Leave the digit and move to next position.
The idea can be coded with statesCurrent position and Remainder of the subsequence modulo 8.


2. Check all Google's employees' submission on this algorithm:
Study Java code first, write C# solution with comments.

Work on frequency table to help understanding the algorithm:



Read the above table, we can tell that numbers: 96, 8, 968 are 3 numbers to be divisible by 8, and we found the answer. Is that easy to follow this frequency table?

C# code for Code review is here. Extract a function, make other changes, this version of C# code is better for review, here.

3. Google keyword search:

states? Current position and Remainder of the subsequence module 8

4. Dynamic programming vs recursive function - check stackoverflow.com


Code review


Plan to make the code more meaningful, and then post a question on codereview.stackexchange.com.




YouTube Co-Founder Interview With Chad Hurley

March 5, 2017

20 minutes video:

YouTube Co-Founder Interview With Chad Hurley

CBC news interview



How to: Work at Google - Example Coding/ Engineering Interview

March 5, 2017

Two sum - two pointers solution - how the good communication should be? Julia loves the algorithm challenge and really like to learn how to work with unseen algorithm properly.

24 minutes video - watch a few times and learn something.

24 minutes - Example coding interview

Good things to practice: See 24 minutes, how many things he can do, and also not rushing any time.

1. Clarification questions

2. Edge cases

3. Talk Think out loud - thought through everything before he writes anything. You may be challenged by interviewer, and then ...

4. Test your solutions - test it in real time, think about edge cases; really nice see he is thinking about edge cases.


Saturday, March 4, 2017

Programming Interviews Exposed - 3rd edition

March 4, 2017

Introduction

Julia decides to read the book "Programming Interviews Exposed" 3rd edition first time. There are around 300 pages, and she likes to get it start on March 4, 2017, 9:34pm.

Every hour she should learn something from the book. Write down some notes and help herself. She likes to explore new ideas to read a book.

Julia is still trying to do something new every day. She knows that it is hard to reinvent herself, therefore, she likes to learn by doing things, like playing hackerrank contests in the weekend, and post questions on codereview.stackexchange.com, and also try to write some code in the weekend, specially those medium level algorithms on Hackerrank, and then she can continuously work on, enjoy learning and challenge her research ability.


Study plan 



Youtube CEO - Susan wojcicki

March 4, 2017

Watch 23 minutes video:

Google Launched In Her Garage / Interview With YouTube CEO - Susan Wojcicki

Focus, prioritize, how to take care of 5 children and also work as CEO?

Growing ideas quickly.

Sundar Pichai's Top 10 Rules For success

March 4, 2017

Sundar Pichai's Top 10 Rules for success

1. Think about what's next
2. Empower people
3. Ideas matter
4. Take risks
5. Be an optimist
6. Solve problems
7. Follow your dreams
8. Have a good morning routine
9. Do what you love
10. Push yourself

45 minutes interview.



Google interview coaching (II)

March 4, 2017

Watch the video again.
Hangouton Air: Candidate Coaching Session: Tech Interviewing

The previous blog Julia wrote down some notes, here is the blog.

How Google works

March 4, 2017

One hour video of "How Google Works"


Take down some notes:

- sharing stories about hiring "smart creatives," banning "knaves," avoiding evil, and fostering a culture of innovation.

Hippo - highest paid people opinion, manage people 12, not good, the manager will be a hippo! 7 is maximum.

Hire what kind of people (19:53/ 1:13:41)? Eric said, people love what they do. Intense (?) people, 9:00am - 5:00pm that is for government job.

Fight for divas (24:26/ 1:13:41)? Most successful team are small, 3 or 4 people. Small control, allow knaves to small team, steal other people work, do not do the work, exile the nave. Nave density, no one wants to work here. Help divas, brilliant person, difficult to work with, in small environment fight for divas. Those people drive culture forward, that is not good enough. Ultimately people become famous in the industry. Like Steve Jobs.


The article - take some notes


Detail see the article about Divas. (Google search: )

Cosgrove asked them to elaborate on the idea: "exile the knaves, but fight for the divas."
Rosenberg said maintaining Google's collaborative culture requires weeding out and getting rid of the knaves: Employees who lack integrity, who are jealous of their peers, take credit for others' work, and think only of themselves. "Nice humble engineers have a way of becoming insufferable when they think they are the sole inventors of the world's next big thing," they write in their book. "This is quite dangerous, as ego creates blind spots... Nip crazy in the bud."
Divas, on the other hand, display "high exceptionalism," Rosenberg said. If the divas are brilliant and doing a good job, they should be valued and allowed to do their jobs. "As long as ... the divas' achievements outweigh the collateral damage caused by their diva ways, you should fight for them."
"They will pay off your investment by doing interesting things," they write. "...Remember that Steve Jobs was one of the greatest business divas the world has ever known!"

On hiring: (copy from the article)
Google, a $50 billion company with more than 50,000 employees around the world, is legendary for its unconventional hiring process. For every opening, Google receives at least 1,000 applications. "The good news is that we have computers to do the initial vetting," Schmidt said. "You can figure out if someone's going to be a good fit in five interviews."
Google looks for people with technology capacity, business acumen and curiosity. "You can't teach passion, but you can teach just about everything else," Rosenberg said.  "Without passion and curiosity, they're not going to have the passion to attack big challenges."
Schmidt said he uses "the LAX test" (picking that airport for maximum discomfort, he explains): "You're stuck at the LAX airport" with the candidate. "After six hours, are you still interested in talking to them? Passion or not, that's a very tough test."
"Don't be evil":
Their 2004 initial public offering letter included the unusual motto "Don't be evil." Schmidt said the phrase sets a high standard and acts as an internal control to make sure that they believe in what they're doing.
He recalled one meeting where the company was considering a new and potentially lucrative way of mixing ads and news, when one engineer pounded on the table and said, "We can't do that, it would be evil." The room got quiet, and the proposed advertising change was reconsidered and rejected.
Although Google has been criticized for it, the company is well known for being open and transparent in its communications. "Most companies are not nearly as open with emails, intranet and sharing information with employees," 



Google's Laszlo Bock: 10 rules for managers

March 4, 2017

5 minutes video in the title of "Google's Laszlo Bock: 10 Rules for Managers (Oct. 22, 2015) | Charlie Rose".

Take some notes:

60 to 60,000 keep hiring people better than you. 

Manage the performance

Do hiring wise, non-bias

Identify bottom 5% of performance. Tell them, if your performance is not so good, you will be told. 1/3 get better to do the job after switching the jobs internally. 

Too many superstars? People can work together, intellectually humble. 

Pay unfairly - Human performance normal distribution, but in sports, superstars, 

Two ways to do the business - try people bad or treat people right

Let people know how...

It takes practice to get stuff right. 


Code review: summing pieces

March 4, 2017

Plan to continue to work on Hackerrank algorithm: summing pieces algorithm after 6 months. Last practice, Julia did work on the algorithm and scored 19 out of maximum score 40. Try to work on the algorithm again and post a question on codereview website.




Top code tutorial study

March 4, 2017

Spend time to read the answer on quora provided by an intern at Google.

Read those tips:

How to find the solution?

Google - ideas for tomorrow

March 4, 2017

Introduction


Julia started to work on coding blog, worked on her English writing and also worked on coding challenges less than 2 years ago.  One thing Julia learned today is to go over her old practice, and then chose those algorithms she already spent long hours, over 8 hours, Gridland Metro, and review the algorithm. Take one algorithm a time, find the algorithm she spent long hours. There are hundreds of Leetcode algorithms she has not worked on, it will take years for her to go over once. She is evaluating ideas how to prepare 2 weeks for Leetcode contest.

One thing Julia has to learn is to write down notes, and work on ideas on the video: Ideas for Tomorrow: Eric Schmidt and Jonathan Rosenberg - Discussion. Julia listened 39 minutes videos twice when she worked on code review for her two algorithms

Video Study 

Friday, March 3, 2017

Code Review: Gridland Metro

March 3, 2017

Problem statement

Spent more than 2 hours to rewrite the last submission in the contest, and reviewed the blog with the document of long hours work in the contest.

Here is the C# code Julia wrote after six month again. Here is the code review on stackexchange.com.

March 8, 2017

Julia got the review. Excellent experience.

Code review: KinghtL on a chessboard

March 3, 2017

Problem statement

Need to study how to put math symbol into the problem statement:

Study the webpage - what HTML tags are allowed.

Won a fanatic badge - visit the codereview.stackexchange.com in last 100 days. Official statement:
Visit the site each day for 100 consecutive days. (Days are counted in UTC.).

Code review is here

March 8, 2017

Julia got excellent review with 5 advices in March 7, 2017, she will put together the C# code and post here as well. 


C# code updated version based on the recode review is here.

JS1 showed me how to do flood-fill algorithm. Also read this tutorial.

Thursday, March 2, 2017

Quora posts

March 2, 2017

Read the quora posts of Stanford computer science Ph.D.


Google: Average person can make it?

March 2, 2017

Julia choose a topic to study:

Read the article how big the odds to become a Googler, and a Quora post, and one more article.

Read the discussions on quora:

One answer provided by a Ph.D., Miguel Andres.
Read Moishe Lettvin's quora answers here.

32 answers how to prepare on quora.

Actionable Items:


Do more research on this topic.

Read top coder tutorials.

Read Google interview article written in 2015.

Google hiring 2015

Google wiki

How Google Keeps the Best and Brightest employees - Bloomberg

Smart people are everywhere, and we have to find them. Not just those graduated from ivy school




Leetcode 162: Find Peak Element

Problem Statement

Study the blog.




Leetcode 279: Perfect Squares

Problem statement

Study the solution.


Leetcode 386: Lexicographical Numbers

Problem statement

Study the solution and discussion written by Marcelo.


Leetcode 41: First Missing Positive

Problem statement






Leetcode 506: Relative Ranks

March 2, 2017

problem statement

Relative Ranks: an NLogN solution

Leetcode 53: Maximum Subarray

Problem statement


Leetcode: Maximum Subarray


Leetcode 526: Beautiful Arrangement

March 2, 2017

Problem Statement

Study the blog: Classic recursive backtracking problem and solution




Wednesday, March 1, 2017

Interview cake - a new school?

March 1, 2017

Interview cake - 42 questions


Hackerrank contests - performance review (II)

March 1, 2017


Richness of learning experience


Julia also learned to take those contests seriously, because only if she put all the efforts she can, then she may see some growth over the time. 

First contest she did by her habit, not seeking excellence. And then she noticed that she will have problems to stay that way. 

Week of Code 29               4395/ 9216     Feb. 2017 *
World CodeSprint 9         2164/ 7284     January 2017**
Week of Code 28               2915/ 10421   January 2017***

ACM ICPC Practice Contest 2016   787/ 925            November 2016 ****
Women's CodeSprint 2                     505/ 1882          November 2016 +

University CodeSprint             2081/ 5552     November 2016 ++
WalmartLabs CodeSprint        3226/ 4392     Oct. 2016 +++
World CodeSprint #4               2271/ 5258    June, 2016 ++++
101 Hack Feb 2016                  481/ 723        Feb. 2016  -
Week of Code - 19                    2693/ 3204   Feb. 2016 --


Analysis



Week of Code 29               4395/ 9216     Feb. 2017 *



*( Julia did not work on until last 2 days, and the Sunday she went to church and played tennis, went outdoor from 11:00am - 6:00pm) 



World CodeSprint 9         2164/ 7284     January 2017**



** if Julia started to work on the problem early, same score people had bronze medal. 


Week of Code 28               2915/ 10421   January 2017***



*** very close to top 25%, need to look into the issues 

ACM ICPC Practice Contest 2016   787/ 925            November 2016 ****

**** the algorithms are more difficult to solve, the time is short than other contest.  Julia spent 3 hours in 
the contest.


Women's CodeSprint 2                     505/ 1882          November 2016 +



+ Julia stumbled on a simple recursive algorithm, maximum score 50, she ended up score 0. 
She posted the question on algorithm "stone division" with her C# solution after the contest on codereview.stackexchange.com. 


University CodeSprint             2081/ 5552     November 2016 ++



++ Julia never had chance to work a hard algorithm over 10 hours, so she gambled her luck and 
tried to do some research and problem solving on maximum score 80 - hard algorithm, she ended 
up score 0. 

She learned the lesson of Hackerrank, hackerrank holds high standard on hard algorithm. 


WalmartLabs CodeSprint        3226/ 4392     Oct. 2016 +++



+++ Need to look into the issues, concerns, will come back to add more notes here. 
Julia spent over 10 hours on a 24 hours contest, one hard algorithm called "Interesting Fibonacci Sum", maximum score 100. She tried to submit more than 18 times, but she ended up scored 0 on the algorithm. She did not read medium algorithms problems very carefully, no time to work on. 

After the contest, Julia studied those players good at the hard algorithm, wrote a blog as well. 


World CodeSprint #4               2271/ 5258    June, 2016 ++++



++++ Julia did not know that she can manage to win a bronze medal, at that time, she did not know bronze medal - top 25%. 

She also wrote a lovely blog to document her interest and curiousity. So amazing, like bible verse, Mark 4:8, Still other seed fell on good soil. It came up, grew and produced a crop, some multiplying thirty, some sixty, some a hundred times. 

All she has to do is to give herself time to develop skills, play more contests in the future. She documented her 12 hours labor and score 0 on AorB algorithm. Celebrate the hard work! Post AorB to code review. 

Her blog shares her journey from 40 to 100, won her first bronze medal in her third contests in the row.

More detail see Jianmin Chen hackerrank profile