Nov. 20, 2016
One thing Julia is learning in the contest is to write simple code, avoid complicated situation, cut the executable paths/ giant expression/ complicated things to eat time.
One thing Julia likes to do is to compare her C# solution using Dictionary<Int64, string> to this C++ solution, she just found out that her logic thinking can be simpler.
C# solution written by Julia:
https://gist.github.com/jianminchen/af474846d81b96f4e70fc1a5866dca15
C++ solution: (rank after 400 before 500)
https://gist.github.com/jianminchen/0e98727e40937c11594b0be8ea496885
Compared to top performer (rank 6 out of 1500) - C++ code, just less than 30 lines of code:
https://gist.github.com/jianminchen/8a448bac7de8ad3667b125abe3544e5d
Very close to my idea in C# - by a Microsoft Bing employee -
Nickolas - Topcoder writer, rank 84 of contest.
https://gist.github.com/jianminchen/7ef0dcb49662f277fda36742da5fa57c
Study all her submission on this contest ! - figure out the style I should learn.
Julia's comment:
Know the problem inside out, a lot of ideas and implementation. One day, Julia can choose best one to make it less than 10 minutes a medium algorithm as well.
Visual facts to encourage Julia work hard, and continuously improve! The goal is to shorten the time to performance. It is also practical goal, achievable!
Here is the graph Julia likes to share the research she did through the contest:
Case 1:
algorithm: minimum cost
100 minutes vs 8 minutes - over 10 times more to spend on the performance! Julia, you have a big room to improve!
Case 2:
algorithm: stone division, revisited
329 minutes to come out a solution, score 0 of 50; extra 3 hour to work until 2:00am
Compared to 50 minutes full performance, less than 40 minutes.
500 minutes -> 40 minutes, 10 times more! I just could not believe that. The research and development I did over 6 hours, does not help. Best performer uses 40 minutes to do everything, including his research, coding and testing etc.
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, November 20, 2016
Minimum Cost - study failed code - partial score 17/ 35 (series 6 of 10)
Nov. 20, 2016
In order to improve the performance on HackerRan contest, Julia tries to look into things she can work on, help her to gain some confidence, relax more when she has a contest to compete.
She score full score 35 on the Minimum cost - HackerRank woman codesprint #2, but she likes to go to extra mile to find out things:
One of failed code with test cases, try to figure out the issue, do some analysis of code.
https://gist.github.com/jianminchen/7401c0b6108659df7d03abd2576cb1cf
Questions:
It is run-time error, why it is not timeout or related to issue. Look into later.
Actionable Items:
Do more research on this, and then figure out how HackerRank will report the runtime error/ timeout. At least know the difference.
In order to improve the performance on HackerRan contest, Julia tries to look into things she can work on, help her to gain some confidence, relax more when she has a contest to compete.
She score full score 35 on the Minimum cost - HackerRank woman codesprint #2, but she likes to go to extra mile to find out things:
One of failed code with test cases, try to figure out the issue, do some analysis of code.
https://gist.github.com/jianminchen/7401c0b6108659df7d03abd2576cb1cf
Questions:
It is run-time error, why it is not timeout or related to issue. Look into later.
Actionable Items:
Do more research on this, and then figure out how HackerRank will report the runtime error/ timeout. At least know the difference.
C# sortedDictionary - Minimum Cost Algorithm - an idea to write code (series 5 of 10)
Nov. 20, 2016
1. Introduction:
Julia spent time to write a C# solution in HackerRank - woman codesprint #2, using Dictionary<Int64, int> in the contest, here are the detail:
Here is the problem statement:
https://www.hackerrank.com/contests/womens-codesprint-2/challenges/minimum-loss
Julia's C# solution:
https://gist.github.com/jianminchen/af474846d81b96f4e70fc1a5866dca15
The ideas used in the algorithm:
Sort the array with house price.
Use bucket sort similar idea to go through each bucket, compare to previous if the current is less than minimum loss or not. Each bucket keeps the two value - max/ min value.
2. C# solution - Go deep to search for ideas to improve and strength the skill:
1. There is a solution written in C#, much simpler and smarter than Julia's C# code:
https://gist.github.com/jianminchen/c382bc1b40e47c2740a25abcaeffb846
Based on the assumption that housing price is different for each year, but I did not find the word in the problem statement.
2. Using Binary search - therefore, it is easy to find the minimum price, O(nlogn)
Maintain a binary search tree!
Study this C# solution using Binary search tree:
https://gist.github.com/jianminchen/c910f5d1f37309c70b489e6c75b0678c
3. Performance comparison among Java TreeSet, C# SortedSet, SortedDictionary:
Now, she likes to write a C# solution similar to C++14 using Set, Java 8 using TreeSet. Now she will write using SortedDictionary.
C# solution using SortedDictionary, timeout, only score 17.5 of 20.
https://gist.github.com/jianminchen/3e978465798afbd7d611e90a8ad7af0c
using C# SortedSet, timeout, score 17.5 of 20.
https://gist.github.com/jianminchen/63c1ed68999f78a72250372eb58a6953
Look up on stackoverflow.com
http://stackoverflow.com/questions/14675108/sortedset-sortedlist-with-better-linq-performance
Java TreeSet code: Perfect solution, score 20
https://gist.github.com/jianminchen/3fce12eff5838fa10bff0792547d0779
Test code here:
https://www.hackerrank.com/contests/womens-codesprint-2/challenges/minimum-loss
Use LINQ only, no SortedSet, timeout
https://gist.github.com/jianminchen/83f0079acbcfc4b6de3f5b1aff6aa131
Dec. 1, 2016
StackExchange.com Code Review
Julia came out the idea to get help from top talent in the world, she chose stackexchange.com code review and posted a code review request, a few people gave out their contribution, one on LINQ, one on SortedSet, then, Julia learned the solution. The question was posted on Nov. 30, 2016, and then, it was solved on Dec. 2, 2016. Less than 3 days.
Using List<T> BinarySearch
Using List<Int64>, BinarySearch and Insert APIs. Score 24 ( maximum score 35).
https://gist.github.com/jianminchen/d6c675533578d50049c636e566695830
The stackexchange.com code review link:
http://codereview.stackexchange.com/a/148714/123986
Using SortedSet<T> GetViewBetween(), score 30 (maximum score: 30)
http://codereview.stackexchange.com/a/148727/123986
C# submission:
https://gist.github.com/jianminchen/2fda6d1d11b19d6b59f3d44822115927
1. Introduction:
Julia spent time to write a C# solution in HackerRank - woman codesprint #2, using Dictionary<Int64, int> in the contest, here are the detail:
Here is the problem statement:
https://www.hackerrank.com/contests/womens-codesprint-2/challenges/minimum-loss
Julia's C# solution:
https://gist.github.com/jianminchen/af474846d81b96f4e70fc1a5866dca15
The ideas used in the algorithm:
Sort the array with house price.
Use bucket sort similar idea to go through each bucket, compare to previous if the current is less than minimum loss or not. Each bucket keeps the two value - max/ min value.
2. C# solution - Go deep to search for ideas to improve and strength the skill:
1. There is a solution written in C#, much simpler and smarter than Julia's C# code:
https://gist.github.com/jianminchen/c382bc1b40e47c2740a25abcaeffb846
Based on the assumption that housing price is different for each year, but I did not find the word in the problem statement.
2. Using Binary search - therefore, it is easy to find the minimum price, O(nlogn)
Maintain a binary search tree!
Study this C# solution using Binary search tree:
https://gist.github.com/jianminchen/c910f5d1f37309c70b489e6c75b0678c
3. Performance comparison among Java TreeSet, C# SortedSet, SortedDictionary:
Now, she likes to write a C# solution similar to C++14 using Set, Java 8 using TreeSet. Now she will write using SortedDictionary.
C# solution using SortedDictionary, timeout, only score 17.5 of 20.
https://gist.github.com/jianminchen/3e978465798afbd7d611e90a8ad7af0c
using C# SortedSet, timeout, score 17.5 of 20.
https://gist.github.com/jianminchen/63c1ed68999f78a72250372eb58a6953
Look up on stackoverflow.com
http://stackoverflow.com/questions/14675108/sortedset-sortedlist-with-better-linq-performance
Java TreeSet code: Perfect solution, score 20
https://gist.github.com/jianminchen/3fce12eff5838fa10bff0792547d0779
Test code here:
https://www.hackerrank.com/contests/womens-codesprint-2/challenges/minimum-loss
Use LINQ only, no SortedSet, timeout
https://gist.github.com/jianminchen/83f0079acbcfc4b6de3f5b1aff6aa131
Dec. 1, 2016
StackExchange.com Code Review
Julia came out the idea to get help from top talent in the world, she chose stackexchange.com code review and posted a code review request, a few people gave out their contribution, one on LINQ, one on SortedSet, then, Julia learned the solution. The question was posted on Nov. 30, 2016, and then, it was solved on Dec. 2, 2016. Less than 3 days.
Using List<T> BinarySearch
Using List<Int64>, BinarySearch and Insert APIs. Score 24 ( maximum score 35).
https://gist.github.com/jianminchen/d6c675533578d50049c636e566695830
The stackexchange.com code review link:
http://codereview.stackexchange.com/a/148714/123986
Using SortedSet<T> GetViewBetween(), score 30 (maximum score: 30)
http://codereview.stackexchange.com/a/148727/123986
C# submission:
https://gist.github.com/jianminchen/2fda6d1d11b19d6b59f3d44822115927
C++ 14 Set class study - minimum loss - an algorithm - on the hackerRank (series 4 of 10)
Nov. 20, 2016
Julia likes to write a separate blog on C++ 14 Set class. She spent time to read C++ solution on algorithm minimum loss. She like to do some research on C++ Set
C++ Set underneath is a binary search tree.
Study code:
https://gist.github.com/jianminchen/bae3b7c5c3326213d1ff800aef47ebc8
https://gist.github.com/jianminchen/9098f545f0b750fe1cb4acd6a2c0b1b9
C++ Set analog in C#:
http://stackoverflow.com/questions/575406/what-is-the-c-sharp-equivalent-of-the-stl-set
SortedDictionary<T, U>
Actionable Item:
Study C++ 14 Set class, spend 30 minutes to go over all API - memorize all the APIs.
http://www.cplusplus.com/reference/set/set/set/
26 APIs
begin
cbegin
cend
clear
count
crbegin
crend
emplace
emplace_hint
empty
end
equal_range
erase
find
get_allocator
insert
key_comp
lower_bound
max_size
operator=
rbegin
rend
rize
swap
upper_bound
value_comp
Julia likes to write a separate blog on C++ 14 Set class. She spent time to read C++ solution on algorithm minimum loss. She like to do some research on C++ Set
C++ Set underneath is a binary search tree.
Here is the problem statement:
Study code:
https://gist.github.com/jianminchen/bae3b7c5c3326213d1ff800aef47ebc8
https://gist.github.com/jianminchen/9098f545f0b750fe1cb4acd6a2c0b1b9
C++ Set analog in C#:
http://stackoverflow.com/questions/575406/what-is-the-c-sharp-equivalent-of-the-stl-set
SortedDictionary<T, U>
Actionable Item:
Study C++ 14 Set class, spend 30 minutes to go over all API - memorize all the APIs.
http://www.cplusplus.com/reference/set/set/set/
26 APIs
begin
cbegin
cend
clear
count
crbegin
crend
emplace
emplace_hint
empty
end
equal_range
erase
find
get_allocator
insert
key_comp
lower_bound
max_size
operator=
rbegin
rend
rize
swap
upper_bound
value_comp
Java TreeSet study - Minimum Loss - an algorithm in contest on Hackerrank (series 3 of 10)
Nov. 20, 2016
Julia likes to put a separate blog to work on the research on Java 8 / TreeSet class - underneath a binary search tree.
She was amazed that the code is so clean and easy to understand.
Study more Java submission with perfect score, best performance compared to Julia's performance.
https://gist.github.com/jianminchen/3fce12eff5838fa10bff0792547d0779
Google search keyword:
Java TreeSet C# analog
Stackoverflow:
Will get into more detail.
Julia likes to put a separate blog to work on the research on Java 8 / TreeSet class - underneath a binary search tree.
She was amazed that the code is so clean and easy to understand.
Study more Java submission with perfect score, best performance compared to Julia's performance.
https://gist.github.com/jianminchen/3fce12eff5838fa10bff0792547d0779
Google search keyword:
Java TreeSet C# analog
Stackoverflow:
Will get into more detail.
Woman's CodeSprint 2 - Minimum Loss - after the contest (series 2 of 10)
Nov. 20, 2016
Julia worked on the algorithm in the contest, and then solved the algorithm with full score - 35.
Here is the problem statement:
Julia's C# solution:
The ideas used in the algorithm:
Use bucket sort similar idea to go through each bucket, compare to previous if the current is less than minimum loss
or not. Each bucket keeps the two value - max/ min value.
Study all other submissions using C++, Java, C#, JavaScript:
Actionable Items:
1. Read the code line by line, word by word; train myself to understand the code, by reading, by association
with C#.
2. Study TreeSet - Java - class - memorize all the API, compared to C# Hashset
https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.htmlMy favorite Java code:
https://gist.github.com/jianminchen/3fce12eff5838fa10bff0792547d0779
A small research - TreeSet in Java is implemented as Binary search Tree?
http://stackoverflow.com/questions/4430809/making-binary-search-tree
Find the best solution written in Java:
Discussion of Time Complexity:
1. Brute force solution - O(n^2), choose any two year to compare the price. Will time-out!
2. Using Binary search - therefore, it is easy to find the minimum price, O(nlogn)
Maintain a binary search tree!
Study this C# solution using Binary search tree:
https://gist.github.com/jianminchen/c910f5d1f37309c70b489e6c75b0678c
line 16, 25 are Julia's favorite code -
Very classical solution using binary search tree, and very clever solution.
Memorize the solution. Warm up the solution sometimes in the future.
Woman's CodeSprint 2 - Minimum Loss - in the contest (series 1 of 10)
Nov. 20, 2016
Julia worked on the algorithm in the contest, and then solved the algorithm with full score - 35.
Here is the problem statement:
https://www.hackerrank.com/contests/womens-codesprint-2/challenges/minimum-loss
Julia's C# solution:
https://gist.github.com/jianminchen/af474846d81b96f4e70fc1a5866dca15
The ideas used in the algorithm:
Sort the array with house price.
Use bucket sort similar idea to go through each bucket, compare to previous if the current is less than minimum loss or not. Each bucket keeps the two value - max/ min value.
After the contest study:
There is a solution written in C#, much simpler and smarter than Julia's C# code:
https://gist.github.com/jianminchen/c382bc1b40e47c2740a25abcaeffb846
Based on the assumption that housing price is different for each year, but I did not find the word in the problem statement.
Discussion of Time Complexity:
1. Brute force solution - O(n^2), choose any two year to compare the price. Will time-out!
2. Using Binary search - therefore, it is easy to find the minimum price, O(nlogn)
Maintain a binary search tree!
Study this C# solution using Binary search tree:
https://gist.github.com/jianminchen/c910f5d1f37309c70b489e6c75b0678c
Very classical solution using binary search tree, and very clever solution.
Memorize the solution. Warm up the solution sometimes in the future.
Compared to Java submission using TreeSet class:
https://gist.github.com/jianminchen/6fa69ef28c849d63ed0dc4b419cd0dee
3.
Julia worked on the algorithm in the contest, and then solved the algorithm with full score - 35.
Here is the problem statement:
https://www.hackerrank.com/contests/womens-codesprint-2/challenges/minimum-loss
Julia's C# solution:
https://gist.github.com/jianminchen/af474846d81b96f4e70fc1a5866dca15
The ideas used in the algorithm:
Sort the array with house price.
Use bucket sort similar idea to go through each bucket, compare to previous if the current is less than minimum loss or not. Each bucket keeps the two value - max/ min value.
After the contest study:
There is a solution written in C#, much simpler and smarter than Julia's C# code:
https://gist.github.com/jianminchen/c382bc1b40e47c2740a25abcaeffb846
Based on the assumption that housing price is different for each year, but I did not find the word in the problem statement.
Discussion of Time Complexity:
1. Brute force solution - O(n^2), choose any two year to compare the price. Will time-out!
2. Using Binary search - therefore, it is easy to find the minimum price, O(nlogn)
Maintain a binary search tree!
Study this C# solution using Binary search tree:
https://gist.github.com/jianminchen/c910f5d1f37309c70b489e6c75b0678c
Very classical solution using binary search tree, and very clever solution.
Memorize the solution. Warm up the solution sometimes in the future.
Compared to Java submission using TreeSet class:
https://gist.github.com/jianminchen/6fa69ef28c849d63ed0dc4b419cd0dee
3.
Saturday, November 19, 2016
HackerRank - university codesprint - array construction - code study (series 4 of 5)
Nov. 19, 2016
Plan to spend time to study all 211 submission score 80 -
Array Construction
https://www.hackerrank.com/contests/university-codesprint/challenges/array-construction/leaderboard/3
6 Java/ 8 Java8/ 60 cpp/ 2 C#
Also, study code scored 40 or above 40.
Also, read more code if time is available. Most important is to find ideas solving problems.
Ideas Julia likes most:
ideas about DFS, backtracking, DP, and pruning ideas related to mathematics, algebra.
1. DP - dynamic programming
See Editorial notes of Array construction
2. ...
Blogs:
https://yourstory.com/2015/11/simran-dokania/
coding blog: Java
http://problemasdeprogramacao.blogspot.com
Plan to spend time to study all 211 submission score 80 -
Array Construction
https://www.hackerrank.com/contests/university-codesprint/challenges/array-construction/leaderboard/3
6 Java/ 8 Java8/ 60 cpp/ 2 C#
Also, study code scored 40 or above 40.
Also, read more code if time is available. Most important is to find ideas solving problems.
Ideas Julia likes most:
ideas about DFS, backtracking, DP, and pruning ideas related to mathematics, algebra.
1. DP - dynamic programming
See Editorial notes of Array construction
2. ...
Blogs:
https://yourstory.com/2015/11/simran-dokania/
coding blog: Java
http://problemasdeprogramacao.blogspot.com
Friday, November 18, 2016
HackerRank - university codesprint - array construction - testing and playing after the contest (series 3 of 5)
Nov. 18, 2016
Julia spent another 3+ hours to work on the array construction code study after she understood the algorithm design. The blog:
http://juliachencoding.blogspot.ca/2016/11/hackerrank-codesprint-array.html
Here is the C# solution she did some research:
1. perfect solution with full score 80
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
And then, she wrote some debug information on the code:
So, she tried to figure out if she can apply the same idea to her code in the contest, but she still had timeout issues. And then, she noticed that line 36 of solution:
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
--
line 6:
static bool[, ,] w;
line 21:
w = new bool[n, s + 1, k + 1];
line 36:
if (w[p, sum, diffsum]) return -1; else w[p, sum, diffsum] = true;
--
- quick calculation to verify the space limit -
n<= 50,
s<=200
k<=2000,
so, bool[,,]w size is less than 20 MB.
HackerRank contest space limit is 512MB. It is ok to declare the w[,,] 3 dimension array to avoid timeout!
-- the end of space limit calculation --
She tried to play with line 36, comment out the line 36, run HackerRank test cases, and then, she found out that test case 4 timeout.
Testing and new findings:
1. first, she commented out the code on line 36:
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
and then, HackerRank complained test case 4 timeout.
So, this pruning is important to avoid timeout.
So, she open the test case 4 input:
TraceFile No 1:
https://gist.github.com/jianminchen/2d3622a096c51b0afe81fd60ca9865ef
Open the trace file(TraceFile No 1) using github,
Search the word: w[49,6,282],
Find first, line 4661,
w[p, sum, diffsum] is not true w[49,6,282]
Read content from line 4658 - 4661:
line 4658:
E: Array A is [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,3,3,9]
line 4659:
F: recursive call construct - arguments: (A,6,282,49)
We know that before the small sequence is found, then, w[49,6,282] is called again. We knew that
the first call W[49,6,282] is calculated and did not lead to a solution. So the second time, we
stopped right away.
Search again on w[49,6,282]
See the line 6722:
E: Array A is [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,4,15]
see the line 6723:
F: recursive call construct - arguments: (A,6,282,49)
see the line 6725:
w[p, sum, diffsum] is true - w[49,6,282] - return -1
In other words, [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,3,3]
(A, 6, 282, 49) is the first time to invoke W[49,6,282], and then, continue to run the code,
did not find the optimal solution.
So the second time, [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,1,4]
(A, 6, 282, 49)
w[p, sum, diffsum] is true, return -1.
Julia's notes:
HackerRank advanced algorithm "Array Construction" is really a challenging one. But Julia likes to
have some fun with the algorithm, and then, she just played the algorithm, C# study code, and then,
her own code. Try to find something interesting.
Julia spent another 3+ hours to work on the array construction code study after she understood the algorithm design. The blog:
http://juliachencoding.blogspot.ca/2016/11/hackerrank-codesprint-array.html
Here is the C# solution she did some research:
1. perfect solution with full score 80
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
And then, she wrote some debug information on the code:
debug code:
C# code with debug info (stage II):
So, she tried to figure out if she can apply the same idea to her code in the contest, but she still had timeout issues. And then, she noticed that line 36 of solution:
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
--
line 6:
static bool[, ,] w;
line 21:
w = new bool[n, s + 1, k + 1];
line 36:
if (w[p, sum, diffsum]) return -1; else w[p, sum, diffsum] = true;
--
- quick calculation to verify the space limit -
n<= 50,
s<=200
k<=2000,
so, bool[,,]w size is less than 20 MB.
HackerRank contest space limit is 512MB. It is ok to declare the w[,,] 3 dimension array to avoid timeout!
-- the end of space limit calculation --
She tried to play with line 36, comment out the line 36, run HackerRank test cases, and then, she found out that test case 4 timeout.
Testing and new findings:
1. first, she commented out the code on line 36:
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
and then, HackerRank complained test case 4 timeout.
So, this pruning is important to avoid timeout.
So, she open the test case 4 input:
| 20 50 200 1860 ... |
Julia chose first test case by mistake: 50, 20, 1860 instead of 50, 200, 1860, trace file is 193 page long in the word document. Fact: 50, 200, 1860, out-of-memory, trace file is too big Julia ran the debug code to get trace:
debug code:
C# code with debug info (stage II):
And then, here is the trace information -
|
TraceFile No 1:
https://gist.github.com/jianminchen/2d3622a096c51b0afe81fd60ca9865ef
Open the trace file(TraceFile No 1) using github,
Search the word: w[49,6,282],
Find first, line 4661,
w[p, sum, diffsum] is not true w[49,6,282]
Read content from line 4658 - 4661:
line 4658:
E: Array A is [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,3,3,9]
line 4659:
F: recursive call construct - arguments: (A,6,282,49)
We know that before the small sequence is found, then, w[49,6,282] is called again. We knew that
the first call W[49,6,282] is calculated and did not lead to a solution. So the second time, we
stopped right away.
Search again on w[49,6,282]
See the line 6722:
E: Array A is [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,4,15]
see the line 6723:
F: recursive call construct - arguments: (A,6,282,49)
see the line 6725:
w[p, sum, diffsum] is true - w[49,6,282] - return -1
In other words, [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,3,3]
(A, 6, 282, 49) is the first time to invoke W[49,6,282], and then, continue to run the code,
did not find the optimal solution.
So the second time, [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,1,1,4]
(A, 6, 282, 49)
w[p, sum, diffsum] is true, return -1.
Julia's notes:
HackerRank advanced algorithm "Array Construction" is really a challenging one. But Julia likes to
have some fun with the algorithm, and then, she just played the algorithm, C# study code, and then,
her own code. Try to find something interesting.
Wednesday, November 16, 2016
HackerRank - university codesprint - kindergarten adventures (after the contest)
Nov. 16, 2016
It is time to learn Segment Tree quickly. Julia worked on Segment Tree a few times in 2016, but when she worked on the algorithm in the contest, she did not come out the idea using segment tree to solve the problem. Segment tree is also called binary index tree.
The best learning experience is a failure. She will remember forever how segment tree is applied to a real story - kindergarten adventures.
Problem statement
Previous blogs about segment tree:
1. Oct. 18, 2016
Segment Tree Tutorial
2. Sept. 25, 2016
Range Minimum Query blog
3. March 4, 2016
HackerRank: Bear and Steady Gene (I)
Study C# submissions:
1. C# code # 1
2. C# code #2
3. C# code #3
4. C# code #4
5. C# code #5
Study JavaScript submission
Study Java submission
There are over 60 solution to score 30 (maximum score 30), go over one by one, and learn a few tips from those solutions. Write down what you like most - 3 things in Java code.
1. Very structured code
2. Java code to study
No. 1
No. 2
No. 3
C solution
Julia's ideas to improve the performance:
1. Try to write some code first, or do some research to categorize the problem, narrow down the algorithm problem - segment tree. (Quickly go over competition books, search ideas!)
2. Either improving the research of categorizing the problem to classical problem, or be practical, using brute force solution to get a few points. (Just do it!)
3. Give up the effort on advanced algorithm, only focus on one of medium algorithms. If Julia work on this medium algorithm in the contest, put 10 hours work on it, then she could score full score. (Aim low target first!)
4. Try to get in Bronze medal first. Work on medium algorithm (maximum score 30) instead of advanced algorithm (maximum score 80). (Play safe! From medium to advanced)
5. Try to work on an algorithm in 2 hours range - Do not spend more than 2 hours on a problem. First work on medium algorithm each one 2 hours first. Increase the chance to score more points.
It is time to learn Segment Tree quickly. Julia worked on Segment Tree a few times in 2016, but when she worked on the algorithm in the contest, she did not come out the idea using segment tree to solve the problem. Segment tree is also called binary index tree.
The best learning experience is a failure. She will remember forever how segment tree is applied to a real story - kindergarten adventures.
Problem statement
Previous blogs about segment tree:
1. Oct. 18, 2016
Segment Tree Tutorial
2. Sept. 25, 2016
Range Minimum Query blog
3. March 4, 2016
HackerRank: Bear and Steady Gene (I)
Study C# submissions:
1. C# code # 1
2. C# code #2
3. C# code #3
4. C# code #4
5. C# code #5
Study JavaScript submission
Study Java submission
There are over 60 solution to score 30 (maximum score 30), go over one by one, and learn a few tips from those solutions. Write down what you like most - 3 things in Java code.
1. Very structured code
2. Java code to study
No. 1
No. 2
No. 3
C solution
Julia's ideas to improve the performance:
1. Try to write some code first, or do some research to categorize the problem, narrow down the algorithm problem - segment tree. (Quickly go over competition books, search ideas!)
2. Either improving the research of categorizing the problem to classical problem, or be practical, using brute force solution to get a few points. (Just do it!)
3. Give up the effort on advanced algorithm, only focus on one of medium algorithms. If Julia work on this medium algorithm in the contest, put 10 hours work on it, then she could score full score. (Aim low target first!)
4. Try to get in Bronze medal first. Work on medium algorithm (maximum score 30) instead of advanced algorithm (maximum score 80). (Play safe! From medium to advanced)
5. Try to work on an algorithm in 2 hours range - Do not spend more than 2 hours on a problem. First work on medium algorithm each one 2 hours first. Increase the chance to score more points.
Learning style - a good tip to share
Nov. 16, 2016
One of daily habit is to look up search keywords through Blogger back office.
Here are the last month search keywords of this blog:
hackerrank bonetrousle
leetcode 146 C#
acm cheat sheet
leetcode 239
topcoder + finding the longest increasing ...
zig-zag traversal of a binary tree in c
camelcase hackerrank solution
pluralsight c++ advanced
Nov. 16, 2016 - one of search from Yahoo.com is about this algorithm:
http://juliachencoding.blogspot.ca/2016/04/hackerrank-connected-cell-in-grid.html
Julia's favorite algorithm - DFS/ BFS algorithm, she did a lot of practice from April - June, 2016. Five months later, it is time to review the algorithm again.
--
So, Julia will refresh the content of those blogs as well, and try to improve the solution/ or blog content as well.
Share the blog statistics of month of November, 2016:
One of daily habit is to look up search keywords through Blogger back office.
Here are the last month search keywords of this blog:
hackerrank bonetrousle
leetcode 146 C#
acm cheat sheet
leetcode 239
topcoder + finding the longest increasing ...
zig-zag traversal of a binary tree in c
camelcase hackerrank solution
pluralsight c++ advanced
Nov. 16, 2016 - one of search from Yahoo.com is about this algorithm:
http://juliachencoding.blogspot.ca/2016/04/hackerrank-connected-cell-in-grid.html
Julia's favorite algorithm - DFS/ BFS algorithm, she did a lot of practice from April - June, 2016. Five months later, it is time to review the algorithm again.
--
So, Julia will refresh the content of those blogs as well, and try to improve the solution/ or blog content as well.
Share the blog statistics of month of November, 2016:
How to prepare for a programming interview?
Nov. 16, 2016
Read the blog, and write down some notes for further research:
http://snip.ly/0aey0?platform=hootsuite#http://www.makeuseof.com/tag/prepare-programming-interview/
Julia's idea - compete the high level, stressful, challenging contest one contest a time, and then try to find the weakness, improve one algorithm a time, find ways to be a better competitive programmer.
Julia likes to challenge herself in sports training last few years. She just got used to do a lot of competitions through the tennis sports, she knew that she had so many failures, uncountable, but also she learned day by day, got very confident on the sports. She worked on tennis sports - on court close to 500 hours last 5 years, watching tennis games/ coaching videos etc. over 200 hours.
So, she tried to apply her tennis sports experience to her personal coding experience as well. Also she is working on her writing skills - blogging is part of her practice, contribution to the IT community, get connected to most talent people in the world.
Nov. 24, 2016
1. https://blogs.msdn.microsoft.com/ericlippert/2004/04/15/writing-code-on-whiteboards-is-hard/
2. http://sellsbrothers.com/tagged/interview
Read the blog, and write down some notes for further research:
http://snip.ly/0aey0?platform=hootsuite#http://www.makeuseof.com/tag/prepare-programming-interview/
Julia's idea - compete the high level, stressful, challenging contest one contest a time, and then try to find the weakness, improve one algorithm a time, find ways to be a better competitive programmer.
Julia likes to challenge herself in sports training last few years. She just got used to do a lot of competitions through the tennis sports, she knew that she had so many failures, uncountable, but also she learned day by day, got very confident on the sports. She worked on tennis sports - on court close to 500 hours last 5 years, watching tennis games/ coaching videos etc. over 200 hours.
So, she tried to apply her tennis sports experience to her personal coding experience as well. Also she is working on her writing skills - blogging is part of her practice, contribution to the IT community, get connected to most talent people in the world.
Nov. 24, 2016
1. https://blogs.msdn.microsoft.com/ericlippert/2004/04/15/writing-code-on-whiteboards-is-hard/
2. http://sellsbrothers.com/tagged/interview
Monday, November 14, 2016
HackerRank codesprint - Array construction - after contest (series 2 of 5)
Nov. 14, 2016
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/array-construction/submissions/code/7825209
Study C# submissions:
1. perfect solution with full score 80
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
Julia spent more than one hour to read code, but she could not understand the design. So, she decided to work on debugging, add output text info to figure out the design.
Here are workout she did and then figured out the algorithm:
add debugging information to the source code
-> Here is the log file to understand the algorithm design:
118 int newSum = sum + i * (n - p);
119 int newDiffSum = diffsum + (i * p - sum) * (n - p);
Question 2: What does (n-p) stand for? Can you explain it in one sentence?
Let us work on one more change first:
2.1. perfect solution with full score 80
2.2. perfect solution with full score 80
2.3. score half score 40
Great idea to push hard - cannot get it wrong! that is the attitude for advanced level algorithm involved mathematical analyse.
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/array-construction/submissions/code/7825209
Study C# submissions:
1. perfect solution with full score 80
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
Julia spent more than one hour to read code, but she could not understand the design. So, she decided to work on debugging, add output text info to figure out the design.
Here are workout she did and then figured out the algorithm:
Study more than 2 hours on one of solutions, using recursive solution; but Julia still are not clear about the solution. Need to work on more! Do not give up! Try it every day 10 minutes. It should be easy!
Julia's work (3+ hours) Try very hard to understand the clever solution by debugging
- From the above C# solution:
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
--> add some debug information to understand the algorithm
--> add some debug information to understand the algorithm
add debugging information to the source code
-> Here is the log file to understand the algorithm design:
Question 1:
Use your own words to guess how to design the algorithm through debugging process?
Answer:
still confused about line 118, line 119:
118 int newSum = sum + i * (n - p);
119 int newDiffSum = diffsum + (i * p - sum) * (n - p);
Let us work on one more change first:
so, decided to track n-p value on line 118.
C# code with debug info (stage II):
Actionable Items:
1. Run test cases, and compare the time difference
First, comment out code on line 36, time out on test case 4.
Write a new blog on this testing adventure.
http://juliachencoding.blogspot.ca/2016/11/hackerrank-university-codesprint-array_18.html
2. Study all C# solutions:
2.1. perfect solution with full score 80
2.2. perfect solution with full score 80
2.3. score half score 40
3. understand one term: constructive algorithm
Constructive algorithm: (preprocessing, and then, lookup)
(HackerRank - array construction is a constructive algo.)
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
Sunday, November 13, 2016
HackerRank - university codesprint - Walking the longest path (Approximation problem)
Nov. 13, 2016
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges
Will come back very soon to write down some notes. Julia spent over one hour to read the problem statement.
blog reading:
1. http://snip.ly/0aey0?platform=hootsuite#http://www.makeuseof.com/tag/prepare-programming-interview/
2. Top 10 ranking - HackerRank university codesprint 2016
http://blog.csdn.net/philipsweng
Ranking 46: high school student - a lot of good articles in Chinese
http://blog.csdn.net/a_crazy_czy
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges
Will come back very soon to write down some notes. Julia spent over one hour to read the problem statement.
blog reading:
1. http://snip.ly/0aey0?platform=hootsuite#http://www.makeuseof.com/tag/prepare-programming-interview/
2. Top 10 ranking - HackerRank university codesprint 2016
http://blog.csdn.net/philipsweng
Ranking 46: high school student - a lot of good articles in Chinese
http://blog.csdn.net/a_crazy_czy
HackerRank - university codesprint - Bob and Ben (thinking in the contest)
Nov. 13, 2016
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/bob-and-ben
Julia worked on the algorithm, she read the problem statement and then write down her analysis. She will come back to write down some work she did in the contest.
No coding, she read the problem statement and ensured that she did understand the problem.
Will come back later to write down some notes.
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/bob-and-ben
Julia worked on the algorithm, she read the problem statement and then write down her analysis. She will come back to write down some work she did in the contest.
No coding, she read the problem statement and ensured that she did understand the problem.
Will come back later to write down some notes.
HackerRank - university codesprint - kindergarten adventures (in the contest)
Nov. 13, 2016
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/kindergarten-adventures
Julia spent over 1 hour to read problem statement, and worked on ideas to solve the problem on Nov. 11, 2016. She will write down her analysis later.
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/kindergarten-adventures
Julia spent over 1 hour to read problem statement, and worked on ideas to solve the problem on Nov. 11, 2016. She will write down her analysis later.
HackerRank - University CodeSprint - Array Construction - In contest performance (series 1 of 5)
Nov. 13, 2016
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/array-construction/submissions/code/7825209
Advanced algorithm, Max Score: 80
Over 6 hours to work on the algorithm.
Warm up the topic:
It felt so good to work on the algorithm.
First, Julia warmed up the backtracking algorithm using sample test case, spent more than one hour.
input:
1
3 3 4
output:
0 1 2
Here is the submission: pass the above test case, score 0.
https://gist.github.com/jianminchen/c17ce782080a99a2480ff1c6eb390628
There are a lot of issues, timeout, wrong answer. As long as the solution used the backtracking, DFS with some pruning, the timeout issue could not be avoided. Julia worked up to 3:30am, more than 10 hours, 5 hours before the end of contest. She finally gave up the effort and called it a day.
Julia felt so challenged through the problem solving, she went through backtracking, timeout issue, and then, she did some pruning, set up maximum/ minimum range for the search, through sum of array and sum of difference of any two elements. She did some research after over 10 hours, and then, find the article to reduce O(n^2) to O(n) to calculate sum of (Ai-Aj) for any i, j from 1 to n.
Highlights of great things in the contest: (need to fill out with really good things, think hard again.)
1. First, Julia did search from smallest word to biggest one.
This way, if she finds one word, the word should be the smallest one. Backtracking algorithm she did practice on phone number.
2. Julia had backtracking code experience, on Leetcode phone number.
3. Although Julia did not know DFS/backtracking could not solve the timeout issue, she knew that backtracking practice helps her to understand the problem, really understand the scalability issue. She understands the depth of the problem, and also understand the math analysis of time complexity is such important to help design.
4.
5.
6.
Highlights of things to work on:
1. Backtracking algorithm cannot beat the dynamic programming algorithm on timeout issue.
DP solution can give the math formula about time complexity analysis, and then, further pruning gives out better performance.
10 hours hard word, learn the first lesson.
2.
3.
4.
5.
6.
Last submission: score 8 of 80
Julia spent over 20 minutes to clean up the code, reduce the complexity of the code through so many efforts, hours work. Just use common sense, "The real challenge is from mathematics! What is time complexity of my algorithm? I had to depend on those pruning ideas - it worked great on my test case, up to 50 (size of array)(line 101 - 119), only take around 110 milliseconds, but it still failed on timeout issue."
https://gist.github.com/jianminchen/42300e1f09b748d5a165990f0c7f64b2
Study C# submissions:
1. perfect solution with full score 80
https://gist.github.com/jianminchen/49f45acc69b4d87c51d02c81a788fbc9
2. perfect solution with full score 80
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
3. score half score 40
https://gist.github.com/jianminchen/f85de0c2b6014ff79d1097ce12705691
Constructive algorithm: (preprocessing, and then, lookup)
(HackerRank - array construction is a constructive algo.)
https://www.quora.com/What-does-the-constructive-algorithms-tag-mean-at-Codeforces
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/array-construction/submissions/code/7825209
Advanced algorithm, Max Score: 80
Over 6 hours to work on the algorithm.
Warm up the topic:
It felt so good to work on the algorithm.
First, Julia warmed up the backtracking algorithm using sample test case, spent more than one hour.
input:
1
3 3 4
output:
0 1 2
Here is the submission: pass the above test case, score 0.
https://gist.github.com/jianminchen/c17ce782080a99a2480ff1c6eb390628
There are a lot of issues, timeout, wrong answer. As long as the solution used the backtracking, DFS with some pruning, the timeout issue could not be avoided. Julia worked up to 3:30am, more than 10 hours, 5 hours before the end of contest. She finally gave up the effort and called it a day.
Julia felt so challenged through the problem solving, she went through backtracking, timeout issue, and then, she did some pruning, set up maximum/ minimum range for the search, through sum of array and sum of difference of any two elements. She did some research after over 10 hours, and then, find the article to reduce O(n^2) to O(n) to calculate sum of (Ai-Aj) for any i, j from 1 to n.
Highlights of great things in the contest: (need to fill out with really good things, think hard again.)
1. First, Julia did search from smallest word to biggest one.
This way, if she finds one word, the word should be the smallest one. Backtracking algorithm she did practice on phone number.
2. Julia had backtracking code experience, on Leetcode phone number.
3. Although Julia did not know DFS/backtracking could not solve the timeout issue, she knew that backtracking practice helps her to understand the problem, really understand the scalability issue. She understands the depth of the problem, and also understand the math analysis of time complexity is such important to help design.
4.
5.
6.
Highlights of things to work on:
1. Backtracking algorithm cannot beat the dynamic programming algorithm on timeout issue.
DP solution can give the math formula about time complexity analysis, and then, further pruning gives out better performance.
10 hours hard word, learn the first lesson.
2.
3.
4.
5.
6.
Last submission: score 8 of 80
Julia spent over 20 minutes to clean up the code, reduce the complexity of the code through so many efforts, hours work. Just use common sense, "The real challenge is from mathematics! What is time complexity of my algorithm? I had to depend on those pruning ideas - it worked great on my test case, up to 50 (size of array)(line 101 - 119), only take around 110 milliseconds, but it still failed on timeout issue."
https://gist.github.com/jianminchen/42300e1f09b748d5a165990f0c7f64b2
Study C# submissions:
1. perfect solution with full score 80
https://gist.github.com/jianminchen/49f45acc69b4d87c51d02c81a788fbc9
2. perfect solution with full score 80
https://gist.github.com/jianminchen/096ebc5bc1769b83b38ec6eeaabbc7c5
3. score half score 40
https://gist.github.com/jianminchen/f85de0c2b6014ff79d1097ce12705691
Constructive algorithm: (preprocessing, and then, lookup)
(HackerRank - array construction is a constructive algo.)
https://www.quora.com/What-does-the-constructive-algorithms-tag-mean-at-Codeforces
University CodeSprint: Hackerland Radio Transmitters (after the contest)
Nov. 13, 2016
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/hackerland-radio-transmitters
Solution using two pointers:
https://gist.github.com/jianminchen/c5204568cc43b05489eb87afc77fbfd8
Problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/hackerland-radio-transmitters
Solution using two pointers:
https://gist.github.com/jianminchen/c5204568cc43b05489eb87afc77fbfd8
University CodeSprint: Hackerland Radio Transmitters (in the contest)
Nov. 13, 2016
problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/hackerland-radio-transmitters
Submission in the contest: score 6 of 16
https://gist.github.com/jianminchen/8b7822488dbf607ef187da2cb46e146c
Actionable Items:
This is an easy algorithm.
Failed test case 2:
7 2
2 4 5 6 9 12 15
Actionable Item:
Work on more testing, just be more patient. And careful write down how many test cases will pass.
problem statement:
https://www.hackerrank.com/contests/university-codesprint/challenges/hackerland-radio-transmitters
Submission in the contest: score 6 of 16
https://gist.github.com/jianminchen/8b7822488dbf607ef187da2cb46e146c
Actionable Items:
This is an easy algorithm.
Failed test case 2:
7 2
2 4 5 6 9 12 15
Actionable Item:
Work on more testing, just be more patient. And careful write down how many test cases will pass.
Mobile first
Nov. 13, 2016
Julia has to focus on learning mobile first design again. She went back to work on the book:
Luke Wroblewski - Mobile first
Spent 1 hour to read the book on Nov. 10.
Spent 2 hour to go over twitter account content on Nov. 10: Julia's favorite!
https://twitter.com/lukew
And then, she watched latest videos:
Luke Wroblewski Part 1 - Conversions@Google 2016
https://www.youtube.com/watch?v=OkeJg92PA4E&t=1380s
Luke Wroblewski Part 2 - Conversions@Google 2016
https://www.youtube.com/watch?v=1jUaGin7YTM&spfreload=5
Julia has to focus on learning mobile first design again. She went back to work on the book:
Luke Wroblewski - Mobile first
Spent 1 hour to read the book on Nov. 10.
Spent 2 hour to go over twitter account content on Nov. 10: Julia's favorite!
https://twitter.com/lukew
And then, she watched latest videos:
Luke Wroblewski Part 1 - Conversions@Google 2016
https://www.youtube.com/watch?v=OkeJg92PA4E&t=1380s
Luke Wroblewski Part 2 - Conversions@Google 2016
https://www.youtube.com/watch?v=1jUaGin7YTM&spfreload=5
Tuesday, November 8, 2016
How stackoverflow works?
Nov. 8, 2016 - January 25, 2017
Introduction
It is a long journey for Julia to get updated with latest technologies. She laughed about it when she went to meet people from companies, she heard a term called "reinvent yourself". How she could do better through this process. She stopped to attend the events like speed dating format to meet employers, she knew that she had to catch up, and she did not cover the basic questions very well. Do you use a source control system? How do you test a pen?
Those days are long gone. Work alone as a development team. But Julia has one. She has to take chance to develop all skills she likes to have through the years.
Julia knows that only way she can get better is to make current employer happy - by her favorite career coach Kevin O'Leary. No wonder Julia had to write logs for every day activities, and then find her weakness by her own, and then catch up.
So, she started to question about stackoverflow.com, watched 5 or 6 videos from Joel, and played Joe's videos again and again when she worked out at her living room, and then one day she heard that Joe shared his personal story, how he wrote blogs and then so lonely, after 5 or 6 years, but one day he had this idea like stackoverflow.com. From blog writing to the idea of stackoverflow, Joel gave credit for his small habit to write blogs.
Humble to do a small thing every day. That is the way to get chance to be the best.
Log of study:
1. The Interview, Joel Spolsky, CEO, Stack Overflow
2. Do some research on "Stackoverflow vote up/ down, moderator, credit, etc. "
Watch more videos, another one is here.
Talk about performance review, how to manage software developers etc.
3. Make Better Software: The Training Series - Module 2: Team Members
Dec. 11, 2016
(watched 3 times - my cooking time video - Dec. 10 - Dec. 15)
Joel Spolsky at TechHub
Dec. 15, 2016
Joel Spolsky @Hive53.com
Actionable Items on Nov. 8, 2016:
1. Spent time to write a biographer on stackoverflow.com for myself. Take time to write something to build a brand.
My profile is here.
My profile on code review is here.
My profile on softwareengineering.stackexchange.com is here.
Introduction
It is a long journey for Julia to get updated with latest technologies. She laughed about it when she went to meet people from companies, she heard a term called "reinvent yourself". How she could do better through this process. She stopped to attend the events like speed dating format to meet employers, she knew that she had to catch up, and she did not cover the basic questions very well. Do you use a source control system? How do you test a pen?
Those days are long gone. Work alone as a development team. But Julia has one. She has to take chance to develop all skills she likes to have through the years.
Julia knows that only way she can get better is to make current employer happy - by her favorite career coach Kevin O'Leary. No wonder Julia had to write logs for every day activities, and then find her weakness by her own, and then catch up.
So, she started to question about stackoverflow.com, watched 5 or 6 videos from Joel, and played Joe's videos again and again when she worked out at her living room, and then one day she heard that Joe shared his personal story, how he wrote blogs and then so lonely, after 5 or 6 years, but one day he had this idea like stackoverflow.com. From blog writing to the idea of stackoverflow, Joel gave credit for his small habit to write blogs.
Humble to do a small thing every day. That is the way to get chance to be the best.
Log of study:
1. The Interview, Joel Spolsky, CEO, Stack Overflow
2. Do some research on "Stackoverflow vote up/ down, moderator, credit, etc. "
Watch more videos, another one is here.
Talk about performance review, how to manage software developers etc.
3. Make Better Software: The Training Series - Module 2: Team Members
Dec. 11, 2016
(watched 3 times - my cooking time video - Dec. 10 - Dec. 15)
Joel Spolsky at TechHub
Dec. 15, 2016
Joel Spolsky @Hive53.com
Actionable Items on Nov. 8, 2016:
1. Spent time to write a biographer on stackoverflow.com for myself. Take time to write something to build a brand.
My profile is here.
My profile on code review is here.
My profile on softwareengineering.stackexchange.com is here.
Subscribe to:
Posts (Atom)

