Oct. 30, 2016
Plan to read the book - Programming Challenges - The programming Contest Training Manual
By Steven S. Skiena
Miguel A. Revilla
http://www.programming-challenges.com/pg.php?page=index
Read first 2 hours, write down some notes to encourage good behavior - Algorithm book reading is a great way to relax, help to write great code and speed up everything - coding/ design/ maintenance.
http://www3.cs.stonybrook.edu/~skiena/
From January 2015, she started to practice leetcode questions; she trains herself to stay focus, develops "muscle" memory when she practices those questions one by one. 2015年初, Julia开始参与做Leetcode, 开通自己第一个博客. 刷Leet code的题目, 她看了很多的代码, 每个人那学一点, 也开通Github, 发表自己的代码, 尝试写自己的一些体会. She learns from her favorite sports – tennis, 10,000 serves practice builds up good memory for a great serve. Just keep going. Hard work beats talent when talent fails to work hard.
Sunday, October 30, 2016
Book Reading: The Algorithm Design Manual
Oct. 30, 2016
1. Warm up the talk:
It is a mix of feelings when Julia spent last Saturday to work on HackerRank walmartLabs codesprint. She bet on the hard algorithm and tried to try her luck, she ended up over 10+ hours scoring 0 on the algorithm. She experienced bad behavior to write a bad function when she was tired; and then, she disciplined herself to write a good function. She tried to reduce second loop to n/2000 (line 139), n/100 to guess the timeout (3 seconds) range - O(n) or O(nlogn). Tried to exhaust all the tricks to work better with unknown test cases on HackerRank.com.
She felt some disappointment after the contest, because of bad performance, her gambling behavior - bet on the hard algorithm. She turned the experience to very positive one - did some research what to work on next.
The algorithm design manual
http://www.algorist.com/
Please write down the time spent on the book.
2. Side track to the good/ bad function illustration:
A bad function:
https://www.hackerrank.com/contests/walmart-codesprint-algo/challenges/fibonacci-sum-1/submissions/code/7561665
Here is the gist.
189 -233 failed 3 sample test cases
at least 3 things are not good:
code smells? different abstraction level mixes in one function.
A good function:
17th submission: pass sample test cases - 3 test cases
https://gist.github.com/jianminchen/4245cb1d9c4a7c625ffe1d96f7e88bb5
function line 190 -217 fiboSmart2
3. Back to book reading:
Study Notes:
http://www3.cs.stonybrook.edu/~algorith/
http://www.algorist.com/
Page 14 - 1/ Introduction to Algorithm Design
Hunting for counter-examples techniques:
Think small
Think exhaustively
Hunt for the weakness
Go for a tie
Seek extremes
Page 15 - mathematical induction vs programming technique of recursion
A saying "a computer scientist is a mathematician who only knows how to prove things by induction."
Algorithms are recursive or incremental
Insertion sort explanation using induction proof - go over the page again.
Chapter 2 - Algorithm Analysis
2.3 Growth Rates and Dominance Relations
Julia works on hackerRank contest - 3 seconds - time limit
Need to find a public link about Growth rates of common functions measured in nanoseconds
Similar to page 38:
2.3.1 Dominance relations: (Page 39, 51/739)
Constant functions
Logarithmic functions
Linear functions
Superlinear functions
Quadratic functions
Cubic functions
Exponential functions
Factorial functions
Chapter 10
How to design algorithm?
Do I really understand the problem? (page 357 - 358)
Julia's notes for iteration through quickly:
Q1: input
Q2: output
Q3: small example to solve by hand first
Q4: optimal solution/ settle for close to optimal solution?
Q5: ask about a scalability question? 10 item, 1000 items, 1 million items?
Q6: ask about time spent, 1 second, 1 minute, 1 hour
Q7: Time to invest in implementation ( 1 day or more freedom )
Q8: problem classification: numerical/ graph algorithm/ geometric/ string/ set
Extended study "Growth rates of common functions measured in nanoseconds" through Google search:
Google search:
keyword:
Growth rates of common functions measured in nanoseconds
Growth rate - which one has best presentation?
This is the best one! (Spent 10 minutes to read, and then, memorize something on the presentation)
https://www.cs.princeton.edu/courses/archive/spr10/cos226/lectures/02-14Analysis-2x2.pdf
It is so much fun to read the blog again. Google search result is kind of random. I clicked the link and lead to the blog.
What I did is to make the blog better, created a gist for one of the submission mentioned in the blog, and then add the link.
1. Warm up the talk:
It is a mix of feelings when Julia spent last Saturday to work on HackerRank walmartLabs codesprint. She bet on the hard algorithm and tried to try her luck, she ended up over 10+ hours scoring 0 on the algorithm. She experienced bad behavior to write a bad function when she was tired; and then, she disciplined herself to write a good function. She tried to reduce second loop to n/2000 (line 139), n/100 to guess the timeout (3 seconds) range - O(n) or O(nlogn). Tried to exhaust all the tricks to work better with unknown test cases on HackerRank.com.
She felt some disappointment after the contest, because of bad performance, her gambling behavior - bet on the hard algorithm. She turned the experience to very positive one - did some research what to work on next.
The algorithm design manual
http://www.algorist.com/
Please write down the time spent on the book.
2. Side track to the good/ bad function illustration:
A bad function:
https://www.hackerrank.com/contests/walmart-codesprint-algo/challenges/fibonacci-sum-1/submissions/code/7561665
Here is the gist.
189 -233 failed 3 sample test cases
at least 3 things are not good:
code smells? different abstraction level mixes in one function.
A good function:
17th submission: pass sample test cases - 3 test cases
https://gist.github.com/jianminchen/4245cb1d9c4a7c625ffe1d96f7e88bb5
function line 190 -217 fiboSmart2
3. Back to book reading:
Study Notes:
http://www3.cs.stonybrook.edu/~algorith/
http://www.algorist.com/
Page 14 - 1/ Introduction to Algorithm Design
Hunting for counter-examples techniques:
Think small
Think exhaustively
Hunt for the weakness
Go for a tie
Seek extremes
Page 15 - mathematical induction vs programming technique of recursion
A saying "a computer scientist is a mathematician who only knows how to prove things by induction."
Algorithms are recursive or incremental
Insertion sort explanation using induction proof - go over the page again.
Chapter 2 - Algorithm Analysis
2.3 Growth Rates and Dominance Relations
Julia works on hackerRank contest - 3 seconds - time limit
Need to find a public link about Growth rates of common functions measured in nanoseconds
Similar to page 38:
2.3.1 Dominance relations: (Page 39, 51/739)
Constant functions
Logarithmic functions
Linear functions
Superlinear functions
Quadratic functions
Cubic functions
Exponential functions
Factorial functions
How to design algorithm?
Do I really understand the problem? (page 357 - 358)
Julia's notes for iteration through quickly:
Q1: input
Q2: output
Q3: small example to solve by hand first
Q4: optimal solution/ settle for close to optimal solution?
Q5: ask about a scalability question? 10 item, 1000 items, 1 million items?
Q6: ask about time spent, 1 second, 1 minute, 1 hour
Q7: Time to invest in implementation ( 1 day or more freedom )
Q8: problem classification: numerical/ graph algorithm/ geometric/ string/ set
Extended study "Growth rates of common functions measured in nanoseconds" through Google search:
Google search:
keyword:
Growth rates of common functions measured in nanoseconds
Growth rate - which one has best presentation?
This is the best one! (Spent 10 minutes to read, and then, memorize something on the presentation)
https://www.cs.princeton.edu/courses/archive/spr10/cos226/lectures/02-14Analysis-2x2.pdf
Follow up
March 9, 2018It is so much fun to read the blog again. Google search result is kind of random. I clicked the link and lead to the blog.
What I did is to make the blog better, created a gist for one of the submission mentioned in the blog, and then add the link.
HackerRank - WarmartLabs Codesprint (Algorithms) - Interesting Fibonacci Sum (II)
Oct. 30, 2016
Work on segment tree idea to solve timeout issue. After the contest, Julia has more time to relax, and try different ideas to solve this hard algorithm on HackerRank.
Previous blog
Will come back to write C# code to try segment tree idea.
Read editorial notes.
Ashar Faudi - study a player - Topcoder SRM problem writer
Need to spend time to figure out this linear recurrence for programming contest .
https://www.linkedin.com/in/fushar
Study C# submissions:
1. C# submission
2. C# submission
Think about the strategies of HackerRank contests - should work on medium algorithm instead of hard one. Math part is not easy to figure out in less than 24 hours.
Spent 2+ hours to go over the submissions on this hard algorithm, get the data - who are those talents? What they are sharing? A special group with strong math or research abilities?
1. Competitive programmer talking about achievements.
2. People good at math - problem solving on the algorithm - a few of them are competitive programmers.
3. programming contest
4. Math Ph.D. graduate (better programmer compared to Julia)
https://www.hackerrank.com/hoek3000
5. Figure out something new in computer science master graduate study:
Work on segment tree idea to solve timeout issue. After the contest, Julia has more time to relax, and try different ideas to solve this hard algorithm on HackerRank.
Previous blog
Will come back to write C# code to try segment tree idea.
Read editorial notes.
Ashar Faudi - study a player - Topcoder SRM problem writer
Need to spend time to figure out this linear recurrence for programming contest .
https://www.linkedin.com/in/fushar
Study C# submissions:
1. C# submission
2. C# submission
Think about the strategies of HackerRank contests - should work on medium algorithm instead of hard one. Math part is not easy to figure out in less than 24 hours.
Spent 2+ hours to go over the submissions on this hard algorithm, get the data - who are those talents? What they are sharing? A special group with strong math or research abilities?
1. Competitive programmer talking about achievements.
2. People good at math - problem solving on the algorithm - a few of them are competitive programmers.
3. programming contest
4. Math Ph.D. graduate (better programmer compared to Julia)
https://www.hackerrank.com/hoek3000
5. Figure out something new in computer science master graduate study:
Advice for beginners
Oct. 30, 2016
Plan to work on this blog 2+ hours.
http://lbv-pc.blogspot.ca/p/advice-for-beginners.html
Recommended by the web page:
https://github.com/pin3da/Programming-contest
Book: The Algorithm Design Manual
http://www.algorist.com/
Plan to work on this blog 2+ hours.
http://lbv-pc.blogspot.ca/p/advice-for-beginners.html
Recommended by the web page:
https://github.com/pin3da/Programming-contest
Book: The Algorithm Design Manual
http://www.algorist.com/
HackerRank - WarmartLabs Codesprint (Algorithms) - Interesting Fibonacci Sum
Oct. 30, 2016
Julia changed the practice to attend the contest, she chose to take some risk; aim most difficult algorithm, last of 6 algorithm - Hard level. Total score is 100, she knew about Fibonacci algorithm very well, dynamic programming, memorization, bottom up; she also spent over 2 hours to read the problem statement, try to work on the mathematics part of the algorithm.
Until 4:00am, she gave up. She thought about last hour, if she can make this algorithm work, then, she can score 120, rank will be 120/ 2600; She could get into top 10%.
Problem Statement
Worked on the algorithm from 11:am - 4:00am, near 15 hours, score 0 out of 100.
Submission 17 times. First work on memory issue, remove out-of-memory issue; and then, worked on timeout issue, could not get rid of range sum query O(n2) issue, n is O(n5).
1. First submission:
Fibonacci sum - first submission - line 183 - line 196 function fibo - array declaration on line 187 - 109 * 4 bytes = 4000MB.
If there is no memory limit, timeout issue, the algorithm will work. Cannot scale, timeout 2 issues.
2. 8th submission, out-of-memory, should be less than 512MB; but it is over 4GB for an array
3. 9th submission
4. 10th submission
5. 17th submission
Until last hour of 15 hours, Julia read discussion. "Segment Tree" may be the idea to avoid O(n2), range sum query classical problem.
Julia likes to celebrate her 15 hour effort to work on a hard algorithm problem on HackerRank; focus on the hard algorithm, therefore, she can figure out later what she should put her training next.
Instead of working on medium/ advanced level algorithm, Julia likes to solve first hard algorithm first. This is the first time she did in 24 hours contest, push herself to the limit, try to solve one hard algorithm. She does not have time to read 3 medium algorithms problem statement in the codesprint.
3 kinds of people, do not know what is happening, one is to make thing happen. Julia chose the last one. One day, She can solve hard problem on HackerRank contest. Make things happen. Fail fast, fail quick. Just do it.
I solved the algorithm called climbing stairs
Julia, remember the phrase: The hard makes it great! Enjoy the journey.
Introduction
Julia changed the practice to attend the contest, she chose to take some risk; aim most difficult algorithm, last of 6 algorithm - Hard level. Total score is 100, she knew about Fibonacci algorithm very well, dynamic programming, memorization, bottom up; she also spent over 2 hours to read the problem statement, try to work on the mathematics part of the algorithm.
Until 4:00am, she gave up. She thought about last hour, if she can make this algorithm work, then, she can score 120, rank will be 120/ 2600; She could get into top 10%.
Problem Statement
Summary of practices
Worked on the algorithm from 11:am - 4:00am, near 15 hours, score 0 out of 100.
Submission 17 times. First work on memory issue, remove out-of-memory issue; and then, worked on timeout issue, could not get rid of range sum query O(n2) issue, n is O(n5).
1. First submission:
Fibonacci sum - first submission - line 183 - line 196 function fibo - array declaration on line 187 - 109 * 4 bytes = 4000MB.
If there is no memory limit, timeout issue, the algorithm will work. Cannot scale, timeout 2 issues.
2. 8th submission, out-of-memory, should be less than 512MB; but it is over 4GB for an array
3. 9th submission
4. 10th submission
5. 17th submission
Until last hour of 15 hours, Julia read discussion. "Segment Tree" may be the idea to avoid O(n2), range sum query classical problem.
Encouraging notes for Julia
Julia likes to celebrate her 15 hour effort to work on a hard algorithm problem on HackerRank; focus on the hard algorithm, therefore, she can figure out later what she should put her training next.
Instead of working on medium/ advanced level algorithm, Julia likes to solve first hard algorithm first. This is the first time she did in 24 hours contest, push herself to the limit, try to solve one hard algorithm. She does not have time to read 3 medium algorithms problem statement in the codesprint.
3 kinds of people, do not know what is happening, one is to make thing happen. Julia chose the last one. One day, She can solve hard problem on HackerRank contest. Make things happen. Fail fast, fail quick. Just do it.
Previous blogs about Fibonacci algorithm
I solved the algorithm called climbing stairs
Julia, remember the phrase: The hard makes it great! Enjoy the journey.
It's the spirit that makes every #player outstanding.#TennisQuotes #Motivational pic.twitter.com/CvI2pqeSdF— Tennis Coaching™️ (@tennisdothow) September 21, 2016
Tuesday, October 25, 2016
LinkedIn - the Week of Learning
Oct. 25, 2016
Plan to take some courses from Oct. 25 - Oct. 30, 2016.
https://www.linkedin.com/learning/me/skills
wechat public account:
1. http://chuansong.me/account/daiziguizhongren/old
2. What google looks for?
http://chuansong.me/n/1718041
Plan to take some courses from Oct. 25 - Oct. 30, 2016.
https://www.linkedin.com/learning/me/skills
wechat public account:
1. http://chuansong.me/account/daiziguizhongren/old
2. What google looks for?
http://chuansong.me/n/1718041
Udacity - mobile web development
Oct. 25, 2016
Plan to take the course: Mobile web development on Udacity.
This will be the first course Julia takes on Udacity.
1. 10/25/2016 2 hours to watch the video
Study notes:
1. local storage vs session storage vs cookies
https://www.quora.com/What-is-the-difference-between-sessionstorage-localstorage-and-Cookies
2. Viewport - content - device-width, width, vmax, vmin, vh, vm,
articles:
https://webdesign.tutsplus.com/articles/7-css-units-you-might-not-know-about--cms-22573
http://caniuse.com/#feat=viewport-units
Editorial Notes:
How Julia found out the course to learn on Oct. 25, 2016?
1. Julia got the email from SegmentFault:
https://segmentfault.com/p/1210000007241346?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly
She chose to read the article: how to get Google offer?
2. The experience of a Googler:
http://www.zhihu.com/question/24099873
And then, she read all the answers, and then, chose one of answers:
3.
https://www.google.com/about/careers/students/guide-to-technical-development.html
Chose one of courses she is most interested:
4. Udacity -> mobile web development
https://www.udacity.com/
Reading material:
1. http://www.w3schools.com/css/css_rwd_images.asp
2. W3.CSS tutorial
http://www.w3schools.com/w3css/default.asp
Nov. 1, 2016
Case study about Udacity nanodegree program:
1. http://blog.udacity.com/2015/03/student-spotlight-lei-zhu-aspiring-full-stack-developer.html?_ga=1.184431014.185090454.1477442789
2. http://blog.udacity.com/2015/06/how-udacity-student-kelly-landed-an-engineering-job-at-google.html?_ga=1.184015270.185090454.1477442789
Plan to take the course: Mobile web development on Udacity.
This will be the first course Julia takes on Udacity.
1. 10/25/2016 2 hours to watch the video
Study notes:
1. local storage vs session storage vs cookies
https://www.quora.com/What-is-the-difference-between-sessionstorage-localstorage-and-Cookies
2. Viewport - content - device-width, width, vmax, vmin, vh, vm,
articles:
https://webdesign.tutsplus.com/articles/7-css-units-you-might-not-know-about--cms-22573
http://caniuse.com/#feat=viewport-units
Editorial Notes:
How Julia found out the course to learn on Oct. 25, 2016?
1. Julia got the email from SegmentFault:
https://segmentfault.com/p/1210000007241346?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly
She chose to read the article: how to get Google offer?
2. The experience of a Googler:
http://www.zhihu.com/question/24099873
And then, she read all the answers, and then, chose one of answers:
3.
https://www.google.com/about/careers/students/guide-to-technical-development.html
Chose one of courses she is most interested:
4. Udacity -> mobile web development
https://www.udacity.com/
Reading material:
1. http://www.w3schools.com/css/css_rwd_images.asp
2. W3.CSS tutorial
http://www.w3schools.com/w3css/default.asp
Nov. 1, 2016
Case study about Udacity nanodegree program:
1. http://blog.udacity.com/2015/03/student-spotlight-lei-zhu-aspiring-full-stack-developer.html?_ga=1.184431014.185090454.1477442789
2. http://blog.udacity.com/2015/06/how-udacity-student-kelly-landed-an-engineering-job-at-google.html?_ga=1.184015270.185090454.1477442789
Students - Guide to technical Development
Oct. 25, 2016
Students - Guide to Technical Development
Plan to work on this website at least 2 hours.
https://www.google.com/about/careers/students/guide-to-technical-development.html
Students - Guide to Technical Development
Plan to work on this website at least 2 hours.
https://www.google.com/about/careers/students/guide-to-technical-development.html
Sunday, October 23, 2016
Mock interview experience summary in 2016
Oct. 23, 2016
From January to April 2016, Julia had 8 times experience to do mock interview, as an interviewer/ interviewee. Then, she stopped and moved on, she prefers to work on algorithm practice.
Just after 6 months, she noticed that one of peers in the interviewer/ interviewee started to work for Apple, one of them started to work for VMWare; In other words, she has experience of interviewing senior people for Apple and VMWare now. One of them worked for Microsoft/ booking.com before, she had super performance and then Julia watched how she performed through the coding interview. Overall, the experience was so great at this moment. But, Julia has to work on the advice seriously since those interviewers are really talented people.
Here are the blogs she documented her experience. So, she started to review the experience and see if she should continue to do some mock interviews, reexamine what she did.
First one
Second one
Third one
Fourth one
blog reading:
1. How to get google offer? An article on segmentFault.
2. The experience of a Googler
3. Google guide for technical development for students
4. Udacity -> mobile web development
https://www.udacity.com/
Summary of mock interviews
From January to April 2016, Julia had 8 times experience to do mock interview, as an interviewer/ interviewee. Then, she stopped and moved on, she prefers to work on algorithm practice.
Just after 6 months, she noticed that one of peers in the interviewer/ interviewee started to work for Apple, one of them started to work for VMWare; In other words, she has experience of interviewing senior people for Apple and VMWare now. One of them worked for Microsoft/ booking.com before, she had super performance and then Julia watched how she performed through the coding interview. Overall, the experience was so great at this moment. But, Julia has to work on the advice seriously since those interviewers are really talented people.
Mock interviews blogs
Here are the blogs she documented her experience. So, she started to review the experience and see if she should continue to do some mock interviews, reexamine what she did.
First one
Second one
Third one
Fourth one
blog reading:
1. How to get google offer? An article on segmentFault.
2. The experience of a Googler
3. Google guide for technical development for students
4. Udacity -> mobile web development
https://www.udacity.com/
Google talk: the effective engineer
Oct. 23, 2016
Sunday night research:
Google talk:
http://www.theeffectiveengineer.com/blog/effective-engineer-talk-at-google
Book:
https://www.amazon.ca/Effective-Engineer-Engineering-Disproportionate-Meaningful/dp/0996128107/ref=sr_1_1?s=books&ie=UTF8&qid=1477279080&sr=1-1&keywords=the+effective+engineer
website:
http://www.theeffectiveengineer.com/blog/effective-engineer-talk-at-google
Blogs:
https://github.com/jianminchen/techlead
Sunday night research:
Google talk:
http://www.theeffectiveengineer.com/blog/effective-engineer-talk-at-google
Book:
https://www.amazon.ca/Effective-Engineer-Engineering-Disproportionate-Meaningful/dp/0996128107/ref=sr_1_1?s=books&ie=UTF8&qid=1477279080&sr=1-1&keywords=the+effective+engineer
website:
http://www.theeffectiveengineer.com/blog/effective-engineer-talk-at-google
Blogs:
https://github.com/jianminchen/techlead
Learn Amazon culture through a guru's blog
Oct. 23, 2016
Spent more than 2 hours on this Sunday morning to read the blog of ex-amazon manager, and most of big impressions is to learn Amazon culture through those blogs:
1. Engineering culture:
http://coolshell.cn/articles/17497.html
(Notes about Amazon engineering culture:
1. After serious defects, write Correction of Errors document, ask 5 whys.
2. Annual survey: very detail.
)
Edmond Lau
http://www.slideshare.net/edmondlau/what-makes-a-great-engineering-culture
http://www.theeffectiveengineer.com/
Quora:
https://www.quora.com/What-makes-a-good-engineering-culture
2.
http://coolshell.cn/articles/9156.html
3. 程序算法与人生选择
http://coolshell.cn/articles/8790.html
4. 从Code Review 谈如何做技术
http://coolshell.cn/articles/11432.html
Also, Julia was encouraged by the author's code, detail see the blog:
http://juliachencoding.blogspot.ca/2016/08/leetcode-125-valid-palindrome-summary.html
from 10th practice: extract one more function after reviewing the code of the author.
Spent more than 2 hours on this Sunday morning to read the blog of ex-amazon manager, and most of big impressions is to learn Amazon culture through those blogs:
1. Engineering culture:
http://coolshell.cn/articles/17497.html
(Notes about Amazon engineering culture:
1. After serious defects, write Correction of Errors document, ask 5 whys.
2. Annual survey: very detail.
)
Edmond Lau
http://www.slideshare.net/edmondlau/what-makes-a-great-engineering-culture
http://www.theeffectiveengineer.com/
Quora:
https://www.quora.com/What-makes-a-good-engineering-culture
2.
http://coolshell.cn/articles/9156.html
3. 程序算法与人生选择
http://coolshell.cn/articles/8790.html
4. 从Code Review 谈如何做技术
http://coolshell.cn/articles/11432.html
Also, Julia was encouraged by the author's code, detail see the blog:
http://juliachencoding.blogspot.ca/2016/08/leetcode-125-valid-palindrome-summary.html
from 10th practice: extract one more function after reviewing the code of the author.
Friday, October 21, 2016
The large-scale distributed denial of service attack (DDoS) - DDoS attack
Oct. 21, 2016
First thing in the morning at work, around 10:30am, check MP website news page, Julia noticed that social link twitter showing text content instead of icon, then, she found out twitter.com was down.
And then, she looked up internet and read the article:
10:30am
http://www.usatoday.com/story/tech/2016/10/21/cyber-attack-takes-down-east-coast-netflix-spotify-twitter/92507806/
http://www.wsj.com/articles/denial-of-service-web-attack-affects-amazon-twitter-others-1477056080
Follow up after the work, 9:00pm
http://www.usatoday.com/story/tech/2016/10/21/cyber-attack-takes-down-east-coast-netflix-spotify-twitter/92507806/
As a small business website designer/ architect/ developer/ coder / administrator, Julia likes to catch up skills to countermeasure the attacks, specially DDoS attack, SQL injection attack. She fixed the design issue in January 2015 to countermeasure SQL injection attacks, she learned the important lesson to countermeasure the attacks, and the important to put attacks and countermeasures in website design.
First thing in the morning at work, around 10:30am, check MP website news page, Julia noticed that social link twitter showing text content instead of icon, then, she found out twitter.com was down.
And then, she looked up internet and read the article:
10:30am
http://www.usatoday.com/story/tech/2016/10/21/cyber-attack-takes-down-east-coast-netflix-spotify-twitter/92507806/
http://www.wsj.com/articles/denial-of-service-web-attack-affects-amazon-twitter-others-1477056080
Follow up after the work, 9:00pm
http://www.usatoday.com/story/tech/2016/10/21/cyber-attack-takes-down-east-coast-netflix-spotify-twitter/92507806/
As a small business website designer/ architect/ developer/ coder / administrator, Julia likes to catch up skills to countermeasure the attacks, specially DDoS attack, SQL injection attack. She fixed the design issue in January 2015 to countermeasure SQL injection attacks, she learned the important lesson to countermeasure the attacks, and the important to put attacks and countermeasures in website design.
Counting special sub cubes - OpenBracket CodeSprint - HackerRank
Oct. 21, 2016
Problem statement:
https://www.hackerrank.com/contests/openbracket/challenges/counting-special-sub-cubes
Julia spent over 2 hours to read the problem statement and then had difficulty to make sense of the question on the second day of contest, but she could not understand the problem. Also, she spent over 30 minutes to go over all the discussion of the algorithm but did not find clue.
After the contest ends, Julia read the editorial notes. So, it is an ordinary dynamic programming algorithm.
So, plan to spend one hour to write some code.
Problem statement:
https://www.hackerrank.com/contests/openbracket/challenges/counting-special-sub-cubes
Julia spent over 2 hours to read the problem statement and then had difficulty to make sense of the question on the second day of contest, but she could not understand the problem. Also, she spent over 30 minutes to go over all the discussion of the algorithm but did not find clue.
After the contest ends, Julia read the editorial notes. So, it is an ordinary dynamic programming algorithm.
So, plan to spend one hour to write some code.
Making Candies - OpenBracket CodeSprint - HackerRank
Oct. 21, 2016
Spent over 2 hours to read the problem statement and thought about the idea to solve the solution, but Julia did not take time to write down any code for the algorithm from Oct. 15 to Oct. 16.
https://www.hackerrank.com/contests/openbracket/challenges/making-candies
Detail see the blog:
http://juliachencoding.blogspot.ca/2016/10/hackerrank-contest-pressure-and-how-to.html
After reviewing the editorial notes, on Oct. 17, just after the contest period (Oct. 15 - Oct. 16), Julia was big surprised that this algorithm is with difficult level: hard, required knowledge: binary search.
So, plan to spend one hour first to write down the code.
Spent over 2 hours to read the problem statement and thought about the idea to solve the solution, but Julia did not take time to write down any code for the algorithm from Oct. 15 to Oct. 16.
https://www.hackerrank.com/contests/openbracket/challenges/making-candies
Detail see the blog:
http://juliachencoding.blogspot.ca/2016/10/hackerrank-contest-pressure-and-how-to.html
After reviewing the editorial notes, on Oct. 17, just after the contest period (Oct. 15 - Oct. 16), Julia was big surprised that this algorithm is with difficult level: hard, required knowledge: binary search.
So, plan to spend one hour first to write down the code.
Thursday, October 20, 2016
Fraudulent Activity Notification - OpenBracket Code Sprint - HackerRank
Oct. 20, 2016
Julia spent over 8+ hours to work on this algorithm, and finally, at the end of day, she knew that she had to read problem statement again and figured out a new idea. She found the solution and scored 40 of 40.
But, Julia likes to write down her journey, and reminds herself to be smart, be able to find optimal solution in first time.
Here is the problem statement:
https://www.hackerrank.com/contests/openbracket/challenges/fraudulent-activity-notifications
And then, her submissions:
1. First submission:
pass 2 test cases, 5 test cases - runtime error
https://gist.github.com/jianminchen/ed96f667ca20d4ce6e5da61315e17cd5
Over 3 hours work,
1. timeout issue - use binary search to replace linear search, and see if the timeout issue can be solved.
2. Add position/ remove position - try to implement O(1) insertion O(1) deletion algorithm
code has flaws, insert position (p1) / remove position (p2),
p1 >= p2 or p1 < p2.
3. Look into C# bulk copy, Array.Copy, not sure if Array.Copy can be O(1) instead of O(n), using bulk copy, look up stack overflow a few times.
2. Find bugs, and continue to write new code.
https://gist.github.com/jianminchen/3beb1b21d99a62eb607f9f3b40a61bee
add new function called binarySearchAdd
function customizedArrayCopy (line 181 - line 190) - try to fix bugs
discuss different cases - 90 lines of code, hard to write without a bug, and so many cases,
think about cyclomatic complexity, or execution path, how many execution path with this design.
Julia spent hours on this function customizedArrayCopy, and it is hard to spot error/ fix error
on this function.
(Oct. 26, 2016, customizedArrayCopy function - If two case (line 267 - line 288), else, there are
3 nested statement: if/else if/else (line 289 - line 342); so, in total, 5 cases, line 252 - line 346;
This function is breaking SRP - single responsibility principle. The function spanning almost 96 lines
of code, Julia has to take more than 6 hours to write/ debug/ reason. This is not the code for
HackerRank contest!)
..., continuously submitted 9 times, score 0.
9th submission:
https://gist.github.com/jianminchen/0b7fe2b10b324e710066128682992c74
10th submission: score 40 out of 40, using bucket sort.
https://gist.github.com/jianminchen/5e85135f68bc9be02be7f7390647ae00
Timeline analysis:
7:45am - start to read problem statement
9:00am - first submission, pass 2 test cases, but timeout on other 5 test cases,
Binary search can improve time complexity from O(n) to O(logn)
Work on binary search algorithm
10:11am reviewed binary search function code
10:24am found bugs related to Add position vs Remove position
10:40am look up Java AddRange, C# bulk copy
... (Julia likes to play with Array.Copy, and other things - logic thinking if/ else. But to be a competitive programmer, Julia has to learn to sharpen her thoughts, work on optimal solution instead.)
12:00 - 9:30pm - work on the coding, try to write bug-free code, mess with ideas using Array.Copy, naively thinking about bulk copy - Time Complexity O(1)
9:30pm - gave up all the solutions, read problem statement and find a new idea:
9:30pm - 10:07 write a bucket sort algorithm, without too much effort, succeed.
Time complexity:
O(N^2) -> O(NlogN) -> O(N), N is the number of days.
Previous work on distribution sort, bucket sort:
1. Leetcode 164: Maximum Gap - a Distribution sort (bucket, counting, radix) algorithm
http://juliachencoding.blogspot.ca/2015/06/leetcode-maximum-gap-no-164.html
2. Radix Sort - a distribution sort
http://juliachencoding.blogspot.ca/2016/05/radix-sort-distribution-sort.html
3. Leetcode 164: Maximum Gap - a Distribution sort (bucket, counting, radix) algorithm
http://juliachencoding.blogspot.ca/2015/06/leetcode-distribution-sort-algorithm.html
Encouraging ending notes:
Can you give out a summary for the practice?
Answer:
10th submission: score 40 out of 40, using bucket sort.
https://gist.github.com/jianminchen/5e85135f68bc9be02be7f7390647ae00
line 141 and line 142:
Julia spent over 8+ hours to work on this algorithm, and finally, at the end of day, she knew that she had to read problem statement again and figured out a new idea. She found the solution and scored 40 of 40.
But, Julia likes to write down her journey, and reminds herself to be smart, be able to find optimal solution in first time.
Here is the problem statement:
https://www.hackerrank.com/contests/openbracket/challenges/fraudulent-activity-notifications
And then, her submissions:
1. First submission:
pass 2 test cases, 5 test cases - runtime error
https://gist.github.com/jianminchen/ed96f667ca20d4ce6e5da61315e17cd5
Over 3 hours work,
1. timeout issue - use binary search to replace linear search, and see if the timeout issue can be solved.
2. Add position/ remove position - try to implement O(1) insertion O(1) deletion algorithm
code has flaws, insert position (p1) / remove position (p2),
p1 >= p2 or p1 < p2.
3. Look into C# bulk copy, Array.Copy, not sure if Array.Copy can be O(1) instead of O(n), using bulk copy, look up stack overflow a few times.
2. Find bugs, and continue to write new code.
https://gist.github.com/jianminchen/3beb1b21d99a62eb607f9f3b40a61bee
add new function called binarySearchAdd
function customizedArrayCopy (line 181 - line 190) - try to fix bugs
discuss different cases - 90 lines of code, hard to write without a bug, and so many cases,
think about cyclomatic complexity, or execution path, how many execution path with this design.
Julia spent hours on this function customizedArrayCopy, and it is hard to spot error/ fix error
on this function.
(Oct. 26, 2016, customizedArrayCopy function - If two case (line 267 - line 288), else, there are
3 nested statement: if/else if/else (line 289 - line 342); so, in total, 5 cases, line 252 - line 346;
This function is breaking SRP - single responsibility principle. The function spanning almost 96 lines
of code, Julia has to take more than 6 hours to write/ debug/ reason. This is not the code for
HackerRank contest!)
..., continuously submitted 9 times, score 0.
9th submission:
https://gist.github.com/jianminchen/0b7fe2b10b324e710066128682992c74
10th submission: score 40 out of 40, using bucket sort.
https://gist.github.com/jianminchen/5e85135f68bc9be02be7f7390647ae00
Timeline analysis:
7:45am - start to read problem statement
9:00am - first submission, pass 2 test cases, but timeout on other 5 test cases,
Binary search can improve time complexity from O(n) to O(logn)
Work on binary search algorithm
10:11am reviewed binary search function code
10:24am found bugs related to Add position vs Remove position
10:40am look up Java AddRange, C# bulk copy
... (Julia likes to play with Array.Copy, and other things - logic thinking if/ else. But to be a competitive programmer, Julia has to learn to sharpen her thoughts, work on optimal solution instead.)
12:00 - 9:30pm - work on the coding, try to write bug-free code, mess with ideas using Array.Copy, naively thinking about bulk copy - Time Complexity O(1)
9:30pm - gave up all the solutions, read problem statement and find a new idea:
9:30pm - 10:07 write a bucket sort algorithm, without too much effort, succeed.
Time complexity:
O(N^2) -> O(NlogN) -> O(N), N is the number of days.
Previous work on distribution sort, bucket sort:
1. Leetcode 164: Maximum Gap - a Distribution sort (bucket, counting, radix) algorithm
http://juliachencoding.blogspot.ca/2015/06/leetcode-maximum-gap-no-164.html
2. Radix Sort - a distribution sort
http://juliachencoding.blogspot.ca/2016/05/radix-sort-distribution-sort.html
3. Leetcode 164: Maximum Gap - a Distribution sort (bucket, counting, radix) algorithm
http://juliachencoding.blogspot.ca/2015/06/leetcode-distribution-sort-algorithm.html
Encouraging ending notes:
Can you give out a summary for the practice?
Answer:
10th submission: score 40 out of 40, using bucket sort.
https://gist.github.com/jianminchen/5e85135f68bc9be02be7f7390647ae00
line 141 and line 142:
int SIZE = 201;
int[] dPriorDays = new int[SIZE];
Just use space to trade off time, reduce time complexity from two loops on n - number of days to
one loop on n (2*10^5), and one loop on SIZE (201) which is also constant tim O(1). Basic facts:
n^2 will be around 4*10^10, it will be around 40 billion. The time complexity is shortened to 1 of 1000. Things to work on:
Spend 2 hours to read this mentoring business in IT business -
http://www.theeffectiveengineer.com/blog/secret-to-growing-software-engineering-career |
Tech events in 2016
Oct. 20, 2016
Julia loves to attend tech events and meet people in the city of Vancouver and also in the city of Seattle in 2016. So far in 2016, she has attended more than 6 tech events. Two hosted by Microsoft, SQL server in Seattle (March 31, Microsoft Database Systems Engineering Open House), Vancouver Tech Woman in Vancouver (Sept.); Two hosted by Amazon (May 3, Amazon web service talk; June 23, RDS talk); One by Arista Network; One by Tableau, algorithm/ data structure interview workshop.
Microsoft:
In March of 2016, she took 2 days vacation and drove to the city of Seattle to attend Microsoft SQL server tech event, and visited her FAU classmates in Seattle.
And then, she visited the headquarter of Amazon, near union lake.
Tech events are fun
She had such great time to watch the video and learned a few things on Oct. 19, 2016
Grace Hopper Celebration of Women in Computing
https://www.facebook.com/gracehoppercelebration/
Entertainment episodes in tech event:
1. Episode 1
Personal coding blog is such an entertainment topic in tech event:
A senior principle programmer (A) and Julia's conversation:
A's Questions: Who can tell quicksort best performance or worst performance?
Julia:
I can tell, the worst of quicksort is linear. Because I just wrote a blog about quicksort.
A's question: where is the blog? Show me on my cellular phone?
Julia:
"Julia coding blog" search Google.com
"quick sort" search blog
2. Episode 2
A senior principle programmer (A) and Julia's conversation:
A's question: why do you write she instead of I?
Julia:
It is more close to reader, instead of I, I, I, too self-center; I choose to write as she likes; it is a style. More picky, close to reader instead using "I".
A's question: where is the code? Show me your code.
Julia:
...
Julia attended more than 5 social events in the city of Vancouver (from 2010 to 2015) hosted by facebook. And almost every time, she asked around how to improve algorithm problem solving, being competitive on algorithm problem solving.
She learned a lot, but she wanted to be a competitive programmer.
After 5 years full time job as a software programmer, she knows how weak her thinking muscle on algorithm. So, she decided to change, journal her practice through her personal coding blog in the city of Vancouver.
She decided to take some risk, and take algorithm problem solving as a highest priority in her life; she works on goals she has more control, like HackerRank contest performance improvement.
Writing is most challenging for her, so she started to write more through her coding blog, and also log her practice very honestly.
Best learning is by doing, not just reading other people's work; Best learning is also a sharing, willing to take some risk to make mistakes, share the pain, struggling to make a little progress every time, and get connected to more people, motivate others to work hard as well.
Share my favorite quote about practice - when to stop?
Introduction
Julia loves to attend tech events and meet people in the city of Vancouver and also in the city of Seattle in 2016. So far in 2016, she has attended more than 6 tech events. Two hosted by Microsoft, SQL server in Seattle (March 31, Microsoft Database Systems Engineering Open House), Vancouver Tech Woman in Vancouver (Sept.); Two hosted by Amazon (May 3, Amazon web service talk; June 23, RDS talk); One by Arista Network; One by Tableau, algorithm/ data structure interview workshop.
Seattle two day vacation - tech event trip
Such a beautiful season with tour of Seattle, so many good memories and good laughs with friends.Microsoft:
In March of 2016, she took 2 days vacation and drove to the city of Seattle to attend Microsoft SQL server tech event, and visited her FAU classmates in Seattle.
And then, she visited the headquarter of Amazon, near union lake.
Tech events are fun
She had such great time to watch the video and learned a few things on Oct. 19, 2016
Grace Hopper Celebration of Women in Computing
https://www.facebook.com/gracehoppercelebration/
Entertainment episodes in tech event:
1. Episode 1
Personal coding blog is such an entertainment topic in tech event:
A senior principle programmer (A) and Julia's conversation:
A's Questions: Who can tell quicksort best performance or worst performance?
Julia:
I can tell, the worst of quicksort is linear. Because I just wrote a blog about quicksort.
A's question: where is the blog? Show me on my cellular phone?
Julia:
"Julia coding blog" search Google.com
"quick sort" search blog
2. Episode 2
A senior principle programmer (A) and Julia's conversation:
A's question: why do you write she instead of I?
Julia:
It is more close to reader, instead of I, I, I, too self-center; I choose to write as she likes; it is a style. More picky, close to reader instead using "I".
A's question: where is the code? Show me your code.
Julia:
...
2010 - 2015 five years
Julia attended more than 5 social events in the city of Vancouver (from 2010 to 2015) hosted by facebook. And almost every time, she asked around how to improve algorithm problem solving, being competitive on algorithm problem solving.
She learned a lot, but she wanted to be a competitive programmer.
2015 - Now
She decided to take some risk, and take algorithm problem solving as a highest priority in her life; she works on goals she has more control, like HackerRank contest performance improvement.
Writing is most challenging for her, so she started to write more through her coding blog, and also log her practice very honestly.
Best learning is by doing, not just reading other people's work; Best learning is also a sharing, willing to take some risk to make mistakes, share the pain, struggling to make a little progress every time, and get connected to more people, motivate others to work hard as well.
Share my favorite quote about practice - when to stop?
Don't practice 'til you get it right. Practice 'til you can't get it wrong. #tennis #motivation pic.twitter.com/GNpWdF372B— Tennis Coaching™️ (@tennisdothow) August 20, 2015
Tuesday, October 18, 2016
geometric plane sweep algorithms - a small research
Oct. 18, 2016
Plan to spend 2+ hour to work on the algorithm called:
https://web.stanford.edu/class/cs97si/09-computational-geometry.pdf
"For example, instead of presenting sorting algorithms and balanced search trees separately, I prefer to discuss applications that integrate them such as geometric plane sweep algorithms. I believe this problem oriented exposition is helpful for using the tools later on, as well as for moving towards open-ended exploration in an area."
Teaching statement from
http://www.cc.gatech.edu/~rpeng/teachingstatement.pdf
10/20/2016
3:30am - 5:00am, (work with jet lag)
read 30 minutes about balanced search tree:
https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree
and then, associated array
https://en.wikipedia.org/wiki/Associative_array
Plan to spend 2+ hour to work on the algorithm called:
https://web.stanford.edu/class/cs97si/09-computational-geometry.pdf
"For example, instead of presenting sorting algorithms and balanced search trees separately, I prefer to discuss applications that integrate them such as geometric plane sweep algorithms. I believe this problem oriented exposition is helpful for using the tools later on, as well as for moving towards open-ended exploration in an area."
Teaching statement from
http://www.cc.gatech.edu/~rpeng/teachingstatement.pdf
10/20/2016
3:30am - 5:00am, (work with jet lag)
read 30 minutes about balanced search tree:
https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree
and then, associated array
https://en.wikipedia.org/wiki/Associative_array
Union find tutorial
Oct. 18, 2016
Plan to spend 2+ hours to work on the union find tutorial.
Union find
http://contest.cs.cmu.edu/295/tutorials/union-find.txt
Previous study on union-find algorithms:
1. http://juliachencoding.blogspot.ca/2016/07/union-find-algorithm-undirected-graph.html
2. http://juliachencoding.blogspot.ca/2016/07/hackerrank-world-codesprint-4-roads-in.html
or search "union find" through "search this blog" feature.
Plan to spend 2+ hours to work on the union find tutorial.
Union find
http://contest.cs.cmu.edu/295/tutorials/union-find.txt
Previous study on union-find algorithms:
1. http://juliachencoding.blogspot.ca/2016/07/union-find-algorithm-undirected-graph.html
2. http://juliachencoding.blogspot.ca/2016/07/hackerrank-world-codesprint-4-roads-in.html
or search "union find" through "search this blog" feature.
Min cost flow tutorial
Oct. 18, 2016
Plan to spend 2+ hours to work on this tutorial, write down C# code. Highlight some learning experience to encourage others.
Min cost flow
http://contest.cs.cmu.edu/295/tutorials/min-cost-flow.txt
Plan to spend 2+ hours to work on this tutorial, write down C# code. Highlight some learning experience to encourage others.
Min cost flow
http://contest.cs.cmu.edu/295/tutorials/min-cost-flow.txt
segment tree tutorial
Oct. 18, 2016
10 - 20 minutes to go over once, segment tree is Julia's favorite to learn.
http://contest.cs.cmu.edu/295/tutorials/seg_tree.cc
Actionable Item:
Julia, please write a C# version of code, add some test cases. Make this tutorial more helpful.
C# version:
https://gist.github.com/jianminchen/010f9ec15514f54e7cf3cca0549e22bb
Nov. 29, 2016
https://www.hackerearth.com/practice/notes/segment-tree-and-lazy-propagation/
10 - 20 minutes to go over once, segment tree is Julia's favorite to learn.
http://contest.cs.cmu.edu/295/tutorials/seg_tree.cc
Actionable Item:
Julia, please write a C# version of code, add some test cases. Make this tutorial more helpful.
C# version:
https://gist.github.com/jianminchen/010f9ec15514f54e7cf3cca0549e22bb
Nov. 29, 2016
https://www.hackerearth.com/practice/notes/segment-tree-and-lazy-propagation/
Best algorithm professor - Best coaching for Julia's HackerRank contest
Oct. 18, 2016
Julia chose to study the algorithm - work hard on her performance on the contest. Here is the blog to share the detail of her experience:
http://juliachencoding.blogspot.ca/2016/10/hackerrank-openbracket-codesprint.html
So, she likes to focus on study - best professor on algorithm research:
http://www.cs.cmu.edu/~sleator/
Julia's favorite blogs:
1. http://www.cs.cmu.edu/afs/cs/academic/class/15451-s15/schedule.html
Julia chose to study the algorithm - work hard on her performance on the contest. Here is the blog to share the detail of her experience:
http://juliachencoding.blogspot.ca/2016/10/hackerrank-openbracket-codesprint.html
So, she likes to focus on study - best professor on algorithm research:
http://www.cs.cmu.edu/~sleator/
Julia's favorite blogs:
1. http://www.cs.cmu.edu/afs/cs/academic/class/15451-s15/schedule.html
Topcoder's tutorial for competitive programming
Oct. 18, 2016
Plan to spend 10+ hours on this topcode's tutorial.
The following blog shows how Julia chose to work on this tutorial.
http://juliachencoding.blogspot.ca/2016/10/hackerrank-openbracket-codesprint.html
Competition programming courses:
http://contest.cs.cmu.edu/295/
There are a number of excellent tutorials on the algorithms and techniques needed to solve these kinds of contest programs on Topcoder's Data Science Tutorials web site.
https://www.topcoder.com/community/data-science/data-science-tutorials/
Write down some notes here to share with others.
Plan to spend 10+ hours on this topcode's tutorial.
The following blog shows how Julia chose to work on this tutorial.
http://juliachencoding.blogspot.ca/2016/10/hackerrank-openbracket-codesprint.html
Competition programming courses:
http://contest.cs.cmu.edu/295/
There are a number of excellent tutorials on the algorithms and techniques needed to solve these kinds of contest programs on Topcoder's Data Science Tutorials web site.
https://www.topcoder.com/community/data-science/data-science-tutorials/
Write down some notes here to share with others.
Best professor, great competitor in algorithm
Oct. 18, 2016
Cannot believe that best talent people are the professors in top universities. I am doubting that IT industry could not provide the position for the talent.
Here is how Julia conducts her research "what to work on, what to read, and what to follow". She is leaving weekends for HackerRank contest, therefore, the life style change leads to her learning style change as well.
Detail see the blog:
The blog is how to work on the performance of competition. Focus on basics.
http://juliachencoding.blogspot.ca/2016/10/hackerrank-openbracket-codesprint.html
To warm up the topic, think about how Julia works hard and sacrifice her weekend to strength her ability to perform in the world wide contest on HackerRank (Just basically go over the profile and see who is sharing ...), she did over 4 hours (one hour after each contest at least) to try to find the best people to be her mentor over months, now she found one.
Julia works on the research how to learn, what to learn as a software programmer, over 6 years in the city of Vancouver. She just learn how other side of party, how to teach? Best talent people on algorithms choose to teach.
https://www.hackerrank.com/rpeng
OpenBracket CodeSprint • 7/ 2450 participants
->
http://www.cc.gatech.edu/~rpeng/
->
http://www.cc.gatech.edu/~rpeng/teachingstatement.pdf
Julia's favorite new teaching approach:
"My teaching draws upon my research in data structures, algorithms, graph theory, optimization, statistics, geometry, numerical analysis, and parallel computing. Connecting these topics and enabling students to effectively utilize key ideas from them is one of my main teaching goals. These connections are often best motivated by key problems on the boundaries of these areas. Solving such problems usually requires adapting various tools from these areas, leading to a deeper understanding of both the tools and the problems. For example, instead of presenting sorting algorithms and balanced search trees separately, I prefer to discuss applications that integrate them such as geometric plane sweep algorithms. I believe this problem oriented exposition is helpful for using the tools later on, as well as for moving towards open-ended exploration in an area."
->
"I also seek opportunities to interact with students in a wider range of academic activities. Having participated in outreach activities such as math and programming camps while in high school, I regularly volunteered for them after graduating. Since 2006, I’ve been involved with the USA Computing Olympiad, whose annual online competitions attract around two thousand participants from high schools worldwide."
USA Computing Olympiad Team
http://usaco.org/index.php?page=staff
Cannot believe that best talent people are the professors in top universities. I am doubting that IT industry could not provide the position for the talent.
Here is how Julia conducts her research "what to work on, what to read, and what to follow". She is leaving weekends for HackerRank contest, therefore, the life style change leads to her learning style change as well.
Detail see the blog:
The blog is how to work on the performance of competition. Focus on basics.
http://juliachencoding.blogspot.ca/2016/10/hackerrank-openbracket-codesprint.html
To warm up the topic, think about how Julia works hard and sacrifice her weekend to strength her ability to perform in the world wide contest on HackerRank (Just basically go over the profile and see who is sharing ...), she did over 4 hours (one hour after each contest at least) to try to find the best people to be her mentor over months, now she found one.
Julia works on the research how to learn, what to learn as a software programmer, over 6 years in the city of Vancouver. She just learn how other side of party, how to teach? Best talent people on algorithms choose to teach.
https://www.hackerrank.com/rpeng
OpenBracket CodeSprint • 7/ 2450 participants
->
http://www.cc.gatech.edu/~rpeng/
->
http://www.cc.gatech.edu/~rpeng/teachingstatement.pdf
Julia's favorite new teaching approach:
"My teaching draws upon my research in data structures, algorithms, graph theory, optimization, statistics, geometry, numerical analysis, and parallel computing. Connecting these topics and enabling students to effectively utilize key ideas from them is one of my main teaching goals. These connections are often best motivated by key problems on the boundaries of these areas. Solving such problems usually requires adapting various tools from these areas, leading to a deeper understanding of both the tools and the problems. For example, instead of presenting sorting algorithms and balanced search trees separately, I prefer to discuss applications that integrate them such as geometric plane sweep algorithms. I believe this problem oriented exposition is helpful for using the tools later on, as well as for moving towards open-ended exploration in an area."
->
"I also seek opportunities to interact with students in a wider range of academic activities. Having participated in outreach activities such as math and programming camps while in high school, I regularly volunteered for them after graduating. Since 2006, I’ve been involved with the USA Computing Olympiad, whose annual online competitions attract around two thousand participants from high schools worldwide."
USA Computing Olympiad Team
http://usaco.org/index.php?page=staff
Sunday, October 16, 2016
Leetcode solutions following Java Code Style
Oct. 16, 2016
Plan to spend 2 hours to read the Java code styles:
1.
https://google.github.io/styleguide/javaguide.html
2.
https://github.com/douglasleer/LeetCode-Java-Solutions-Code-Sample
Plan to spend 2 hours to read the Java code styles:
1.
https://google.github.io/styleguide/javaguide.html
2.
https://github.com/douglasleer/LeetCode-Java-Solutions-Code-Sample
HackerRank contest pressure and countermeasures
Oct. 16, 2016
Just a quick summary, music, dance, sports, with the art to mix them by Adias commercial, Julia found her way to release the contest stress by watching the video:
Garbiñe Muguruza: Episode 3: Keeping Happy
Here are more details:
Julia spent Saturday on Oct. 16, 2016 to work on one algorithm, she finally made full score 40 of 40 after 10 hours struggle - keep scoring 0, until she could not believe that she won two bronze medal of HackerRank contest.
As a reminder, she always remembers that tennis sayings, every one knows how to play tennis, but mental is most important part.
She went back to read the problem statement of the algorithm, and noticed that she should take advantage of expeditures range 0, 200, and used bucket sort. She made it full score after 1 hour coding.
Here is the problem statement.
Second day, she felt pressure and tried to go back to work after she waked up, even it was 5:00am; but then, she decided to relax with some entertainment.
Here are the videos:
1. How to celebrate win?
2. Garbiñe Muguruza
Garbiñe Muguruza: Episode 1: On Court
Garbiñe Muguruza: Episode 2: Off Court
Garbiñe Muguruza: Episode 3: Keeping Happy
(tennis can be very demanding, but leaving everything behind, just having fun. )
4. #CreateYourMark: Hit the court with the stars of Roland Garros
5. Ana, Caroline, Andrea and Tomas Berdych Create Noise in Melbourne
Actionable items:
Julia scored the HackerRank contest Open Bracket 60 out of 250, worked on two algorithms first day of contest; she likes to push herself to full speed starting from 9:25am, score 2 more algorithms if possible.
Now, 10/16/2016, 9:25 am, she ranks 401/ 2001.
Play to win!
Just a quick summary, music, dance, sports, with the art to mix them by Adias commercial, Julia found her way to release the contest stress by watching the video:
Garbiñe Muguruza: Episode 3: Keeping Happy
Here are more details:
Julia spent Saturday on Oct. 16, 2016 to work on one algorithm, she finally made full score 40 of 40 after 10 hours struggle - keep scoring 0, until she could not believe that she won two bronze medal of HackerRank contest.
As a reminder, she always remembers that tennis sayings, every one knows how to play tennis, but mental is most important part.
She went back to read the problem statement of the algorithm, and noticed that she should take advantage of expeditures range 0, 200, and used bucket sort. She made it full score after 1 hour coding.
Here is the problem statement.
Second day, she felt pressure and tried to go back to work after she waked up, even it was 5:00am; but then, she decided to relax with some entertainment.
Here are the videos:
1. How to celebrate win?
2. Garbiñe Muguruza
Garbiñe Muguruza: Episode 1: On Court
Garbiñe Muguruza: Episode 2: Off Court
Garbiñe Muguruza: Episode 3: Keeping Happy
(tennis can be very demanding, but leaving everything behind, just having fun. )
4. #CreateYourMark: Hit the court with the stars of Roland Garros
5. Ana, Caroline, Andrea and Tomas Berdych Create Noise in Melbourne
Actionable items:
Julia scored the HackerRank contest Open Bracket 60 out of 250, worked on two algorithms first day of contest; she likes to push herself to full speed starting from 9:25am, score 2 more algorithms if possible.
Now, 10/16/2016, 9:25 am, she ranks 401/ 2001.
Play to win!
China Open, Tennis, Beijing - A big learning experience
Sept. 29 - Oct. 15 China vacation
Sept. 30 - Oct. 3, 2016
As a tennis sports amateur player, Julia spent 4 days to stay in Beijing, first 4 days of vacation, spent time with hundreds of others,
enjoyed watching WTA, ATP players practice, double/ single matches.
She learned by watching, she talked to other fans, and she sat and watched hours long matches.
It is a different experience, when she gets so close to tennis pros and observes how they prepare for matches.
For example, she observed how ex-world top 1 player Martina Hingis practiced close to 1 hour; Julia just could not believe that Martina Hingis was on the court and Julia was sitting next to court, although she watched her play through youtube.com a lot of times.
It is a different experience, when she gets so close to tennis pros and observes how they prepare for matches.
For example, she observed how ex-world top 1 player Martina Hingis practiced close to 1 hour; Julia just could not believe that Martina Hingis was on the court and Julia was sitting next to court, although she watched her play through youtube.com a lot of times.
China open is a big event of tennis, 5th biggest event; since Vancouver no longer hosts Holyburn tennis event, Julia has to travel to China and catch more events in Beijing, Shanghai.
Julia likes to have some tennis players as her role models, like Mirtina Hingis .
Julia likes to have some tennis players as her role models, like Mirtina Hingis .
She will come back to document more on her experience through China open 2015.
HackerRank - OpenBracket CodeSprint
Oct. 15, 2016
The Saturday and Sunday (Oct. 15 - Oct. 16) are reserved for HackerRank OpenBracket CodeSprint.
Came back from the vacation trip (Sept. 29, 2016 - Oct. 14, 2016) from China on Oct. 14, 2016, Julia spent 2 days to rest at home to overcome jet lag, and also she was busy with algorithm problem solving.
Read blogs:
Julia values the contest - as a training, and also she likes to check leaderboad, and see what she can learn from others.
Leaderboard of OpenBracker CodeSprint:
Here is the chain she worked on:
https://www.hackerrank.com/rpeng
OpenBracket CodeSprint • 7/ 2450 participants
->
http://www.cc.gatech.edu/~rpeng/
->
http://www.cc.gatech.edu/~rpeng/teachingstatement.pdf
Julia's favorite new teaching approach:
"My teaching draws upon my research in data structures, algorithms, graph theory, optimization, statistics, geometry, numerical analysis, and parallel computing. Connecting these topics and enabling students to effectively utilize key ideas from them is one of my main teaching goals. These connections are often best motivated by key problems on the boundaries of these areas. Solving such problems usually requires adapting various tools from these areas, leading to a deeper understanding of both the tools and the problems. For example, instead of presenting sorting algorithms and balanced search trees separately, I prefer to discuss applications that integrate them such as geometric plane sweep algorithms. I believe this problem oriented exposition is helpful for using the tools later on, as well as for moving towards open-ended exploration in an area."
->
"I also seek opportunities to interact with students in a wider range of academic activities. Having participated in outreach activities such as math and programming camps while in high school, I regularly volunteered for them after graduating. Since 2006, I’ve been involved with the USA Computing Olympiad, whose annual online competitions attract around two thousand participants from high schools worldwide."
USA Computing Olympiad Team
http://usaco.org/index.php?page=staff
->
http://www.cc.gatech.edu/~rpeng/CV.pdf
"ACM-ICPC International Collegiate Programming Contest 2008 1 st at the 2007 East Central North American regionals, 9th at the 2008 ACM-ICPC World Finals."
Programming Competitions Occasionally volunteers as practice partner / punching bag for active contestants. User id rpeng on competitive programming websites, TopCoder rating 2509, Codeforces rating 2242.
-> That is a hunting game Julia likes to do:
http://www.cc.gatech.edu/~rpeng/CV.pdf
|
\ /
Plan to spend 10 hours to work on the course first. (10/18/2016)
http://www.andrew.cmu.edu/course/15-295-archive/f12/
-> Know one more judge a time - called: Timus Online Judge
http://acm.timus.ru/help.aspx?topic=judge
->
http://www.cs.cmu.edu/~sleator/
->
http://contest.cs.cmu.edu/295/f16/
10 - 20 minutes to go over once - (10/18/2016), segment tree is Julia's favorite to learn.
A.
http://contest.cs.cmu.edu/295/tutorials/seg_tree.cc
B. Min cost flow
http://contest.cs.cmu.edu/295/tutorials/min-cost-flow.txt
C. Union find
http://contest.cs.cmu.edu/295/tutorials/union-find.txt
To join the 15-295 codeforces group, first create your codeforces account. Then go to this 15-295 Codeforces Group page. On this page you should see a list of the contests created for this course.
http://codeforces.com/group/KIrM1Owd8u/contests
Competition programming courses:
http://contest.cs.cmu.edu/295/
There are a number of excellent tutorials on the algorithms and techniques needed to solve these kinds of contest programs on Topcoder's Data Science Tutorials web site.
https://www.topcoder.com/community/data-science/data-science-tutorials/
The Saturday and Sunday (Oct. 15 - Oct. 16) are reserved for HackerRank OpenBracket CodeSprint.
Came back from the vacation trip (Sept. 29, 2016 - Oct. 14, 2016) from China on Oct. 14, 2016, Julia spent 2 days to rest at home to overcome jet lag, and also she was busy with algorithm problem solving.
Read blogs:
Julia values the contest - as a training, and also she likes to check leaderboad, and see what she can learn from others.
Leaderboard of OpenBracker CodeSprint:
Here is the chain she worked on:
https://www.hackerrank.com/rpeng
OpenBracket CodeSprint • 7/ 2450 participants
->
http://www.cc.gatech.edu/~rpeng/
->
http://www.cc.gatech.edu/~rpeng/teachingstatement.pdf
Julia's favorite new teaching approach:
"My teaching draws upon my research in data structures, algorithms, graph theory, optimization, statistics, geometry, numerical analysis, and parallel computing. Connecting these topics and enabling students to effectively utilize key ideas from them is one of my main teaching goals. These connections are often best motivated by key problems on the boundaries of these areas. Solving such problems usually requires adapting various tools from these areas, leading to a deeper understanding of both the tools and the problems. For example, instead of presenting sorting algorithms and balanced search trees separately, I prefer to discuss applications that integrate them such as geometric plane sweep algorithms. I believe this problem oriented exposition is helpful for using the tools later on, as well as for moving towards open-ended exploration in an area."
->
"I also seek opportunities to interact with students in a wider range of academic activities. Having participated in outreach activities such as math and programming camps while in high school, I regularly volunteered for them after graduating. Since 2006, I’ve been involved with the USA Computing Olympiad, whose annual online competitions attract around two thousand participants from high schools worldwide."
USA Computing Olympiad Team
http://usaco.org/index.php?page=staff
->
http://www.cc.gatech.edu/~rpeng/CV.pdf
"ACM-ICPC International Collegiate Programming Contest 2008 1 st at the 2007 East Central North American regionals, 9th at the 2008 ACM-ICPC World Finals."
Programming Competitions Occasionally volunteers as practice partner / punching bag for active contestants. User id rpeng on competitive programming websites, TopCoder rating 2509, Codeforces rating 2242.
-> That is a hunting game Julia likes to do:
http://www.cc.gatech.edu/~rpeng/CV.pdf
|
\ /
Plan to spend 10 hours to work on the course first. (10/18/2016)
http://www.andrew.cmu.edu/course/15-295-archive/f12/
-> Know one more judge a time - called: Timus Online Judge
http://acm.timus.ru/help.aspx?topic=judge
->
http://www.cs.cmu.edu/~sleator/
->
http://contest.cs.cmu.edu/295/f16/
10 - 20 minutes to go over once - (10/18/2016), segment tree is Julia's favorite to learn.
A.
http://contest.cs.cmu.edu/295/tutorials/seg_tree.cc
B. Min cost flow
http://contest.cs.cmu.edu/295/tutorials/min-cost-flow.txt
C. Union find
http://contest.cs.cmu.edu/295/tutorials/union-find.txt
To join the 15-295 codeforces group, first create your codeforces account. Then go to this 15-295 Codeforces Group page. On this page you should see a list of the contests created for this course.
http://codeforces.com/group/KIrM1Owd8u/contests
Competition programming courses:
http://contest.cs.cmu.edu/295/
There are a number of excellent tutorials on the algorithms and techniques needed to solve these kinds of contest programs on Topcoder's Data Science Tutorials web site.
https://www.topcoder.com/community/data-science/data-science-tutorials/
Saturday, October 15, 2016
ACM cheat sheet - 3 hours drill
Sept. 29 - Oct. 15 China vacation
Oct. 12, 2016
Julia spent 3 hours to read the ACM cheat sheet book on Oct. 12, 2016 while taking the train from the city of Yichun to Shanghai.
How to prepare ACM contest?
https://github.com/soulmachine/acm-cheat-sheet
What she did is to memorize catalog.
She enjoyed the reading very much. She will write down some notes here.
Oct. 12, 2016
Julia spent 3 hours to read the ACM cheat sheet book on Oct. 12, 2016 while taking the train from the city of Yichun to Shanghai.
How to prepare ACM contest?
https://github.com/soulmachine/acm-cheat-sheet
What she did is to memorize catalog.
She enjoyed the reading very much. She will write down some notes here.
programmer competency matrix
Sept. 29 - Oct. 15 China vacation
Oct. 10, 2016
Julia was on vacation and experienced the jet lag, waked up early in the morning around 3:30am; and then, she received a notification of linkedin connection she sent out in June 2016, and then, she went through the connection's linkedin profile, and the she started to read the article:
http://sijinjoseph.com/programmer-competency-matrix/
Julia noticed that she made 2 new linkedin connection through her vacation, one from Google.com, one from Amazon.com.
Here are 2 new connections through Linkedin:
1. https://www.linkedin.com/in/tanbernard
Value the coaching I got from the Amazon talent through Amazon tech event in 2016, "It does not matter how old you are, it matters if you are very competitive on programming".
2. https://www.linkedin.com/in/minminhan
Actionable Items:
Write down 3 things in the matrix - need to work on
Oct. 10, 2016
Julia was on vacation and experienced the jet lag, waked up early in the morning around 3:30am; and then, she received a notification of linkedin connection she sent out in June 2016, and then, she went through the connection's linkedin profile, and the she started to read the article:
http://sijinjoseph.com/programmer-competency-matrix/
Julia noticed that she made 2 new linkedin connection through her vacation, one from Google.com, one from Amazon.com.
Here are 2 new connections through Linkedin:
1. https://www.linkedin.com/in/tanbernard
Value the coaching I got from the Amazon talent through Amazon tech event in 2016, "It does not matter how old you are, it matters if you are very competitive on programming".
2. https://www.linkedin.com/in/minminhan
Actionable Items:
Write down 3 things in the matrix - need to work on
A small research - From HackerRank to weChat public account
Sept. 29 - Oct. 15 China vacation
Oct. 5, 2016
Julia likes to spend time to get to know top talent people in software industry, for example, she just went through HackerRank leader board, and then, checked one by one if she has 1 or 2 hours. She found one, and then, the talent also has a public wechat account, with great influence in China.
http://www.weidu8.net/author/mindwind_essay
Oct. 5, 2016
Julia likes to spend time to get to know top talent people in software industry, for example, she just went through HackerRank leader board, and then, checked one by one if she has 1 or 2 hours. She found one, and then, the talent also has a public wechat account, with great influence in China.
http://www.weidu8.net/author/mindwind_essay
Small research on wechat public account
Oct. 15, 2016
Sept. 29 - Oct. 15 China vacation
Julia started to spend time to read blogs, from a public account of wechat ID: angelaTalk, a programmer, a computer science PH.D. of Rise university, Airbnb programmer.
http://chuansong.me/n/538061341827
https://www.linkedin.com/in/angelazhu1
Excellent blogs about code review, sillicon valley, performance review and her personal experience about family and career choices.
Sept. 29 - Oct. 15 China vacation
Julia started to spend time to read blogs, from a public account of wechat ID: angelaTalk, a programmer, a computer science PH.D. of Rise university, Airbnb programmer.
http://chuansong.me/n/538061341827
https://www.linkedin.com/in/angelazhu1
Excellent blogs about code review, sillicon valley, performance review and her personal experience about family and career choices.
Born to be a warrior - Sharapova interview
Oct. 8, 2016
Spent Sept. 29 - Oct. 15 on the vacation from Vancouver to Beijing, Yichun, and then Shanghai. Experienced a lot of things as a professional software programmer.
Need to write down one by one. First one is about WTA grand slam champion Sharapove.
Born to be a warrior - How Sharapova handles interview? About doping? About her determination to back to WTA tour?
https://www.youtube.com/watch?v=rWaBVelzaFk
https://www.youtube.com/watch?v=pyeAbGKx8JA
Sharapova Limbers Up | Australian Open 2015
https://www.youtube.com/watch?v=qv__59QPf-4
Spent one hour on Sunday morning - Oct. 23, 2016 - 11:00 am - 12:00am
Learn how good the talk is -
https://www.youtube.com/watch?v=x9dKia7kC8E
Spent Sept. 29 - Oct. 15 on the vacation from Vancouver to Beijing, Yichun, and then Shanghai. Experienced a lot of things as a professional software programmer.
Need to write down one by one. First one is about WTA grand slam champion Sharapove.
Born to be a warrior - How Sharapova handles interview? About doping? About her determination to back to WTA tour?
https://www.youtube.com/watch?v=rWaBVelzaFk
https://www.youtube.com/watch?v=pyeAbGKx8JA
Sharapova Limbers Up | Australian Open 2015
https://www.youtube.com/watch?v=qv__59QPf-4
Spent one hour on Sunday morning - Oct. 23, 2016 - 11:00 am - 12:00am
Learn how good the talk is -
https://www.youtube.com/watch?v=x9dKia7kC8E
Subscribe to:
Posts (Atom)