Wednesday, November 16, 2016

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:




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

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:

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 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);

Question 2: What does (n-p) stand for? Can you explain it in one sentence?

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.)

Great idea to push hard - cannot get it wrong! that is the attitude for advanced level algorithm involved mathematical analyse.

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


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.

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.




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

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

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.

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




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.








Resume screen - study of resume

Nov. 8, 2016

Resume screening
https://www.youtube.com/watch?v=ChWXDnzIB00

PBCES

P  - passion
B  - Brands - high GPA
C - creativity
E -
S - Screening - selective universities etc.

Work on resume screen tips through Google search:

1. Read article:
https://www.facebook.com/notes/facebook-engineering/get-that-job-at-facebook/10150964382448920/

2.
http://steve-yegge.blogspot.ca/2008/03/get-that-job-at-google.html

1. Study a data-structures and algorithms book

Julia's favorite advice:
to practice the art of recognizing that certain problem classes are best solved with certain algorithms and data structures

Mental Prep

Go in humble, open-minded, and focused. 

Don't try to change the subject and answer a different question. 
Don't try to divert the interviewer from asking you a question by telling war stories. 
Don't try to bluff your interviewer. 

You should focus on each problem they're giving you and make your best effort to answer it fully.

Even if you think you know the answer to the problem, ask some questions and talk about the approach you'll take a little before diving in.

Do not come across as arrogant, people will question whether they want to work with you.

The best way to appear arrogant is to question the validity of the interviewer's question – it really ticks them off, as I pointed out earlier on.

Treat every question as legitimate, even if you are frustrated that you don't know the answer.

Feel free to ask for help or hints if you're stuck.

Do not take too long before actually solving the problem, or some interviewers will give you a delay-of-game penalty.

Try to move and write quickly, since often the interviewers want to get through more than one question during the interview.

They will mark you down because they could not get a full picture of your skills.

The benefit of the doubt is rarely given in interviewing.

Operating System:
Doug Lea's Concurrent Programming in Java
(lots of other books on concurrency. I'd avoid the academic ones and focus on the practical stuff, since it's most likely to get asked in interviews.)




HackerRank - matrix rotation (Series 4 of 5)

Nov. 8, 2016

Plan to work on unfinished HackerRank algorithm related to array, try to score full score this time to celebrate new year 2017.

http://juliachencoding.blogspot.ca/2016/04/hackerrank-matrix-rotation-ii.html

Rotate array - HackerRank

problem statement:
https://www.hackerrank.com/challenges/matrix-rotation-algo

Write C# solution:

Review April, 2016 practice: 

another practice: (more than 1 hour, still having bugs, score 8.89/ wrong answer)
https://gist.github.com/jianminchen/57572227dafe939060f7cc81b193cd9b

Will come back very soon with the solution, hopefully score a hard algorithm perfectly. 

Dec. 6, 2016
Fix the bug on line 114, declare a new variable on line 114 actualSteps
C# solution - pass all test cases:
https://gist.github.com/jianminchen/6fabef7436097552e35633a549b0268a

There are over 100 C# solutions, Julia, let us have some fun; code review as many solutions as possible. 
Post C# solution here:

Monday, November 7, 2016

HackerRank NCR codesprint review

Nov. 7, 2016

Codesprint:
https://www.hackerrank.com/contests/ncr-codesprint/challenges


Julia was so motivated to spend 2 days in the weekend to work on the codesprint, she only did one shopping trip to Burnaby crystal mall, less than 2 hours. Rest of weekend, she worked on the problem solving.

Julia reviewed the article about HackerRank contest and how to play better:

https://goo.gl/IHeEoi

Her favorite note in the above blog, item 4:

Even if you are not world class competitive programmer, you still have a chance to get into top 50 or even higher. The minimum goal is to get into top100, which is like usually about top 2–3% of all competitors. Being in top100 is great and sounds really good. 

The major factor to achieve the goal is a combination of problem solving skills, online research, dedication and persistence. First read all the problems and start solving them one by one from the easiest one. First solve the ones you can tackle without any research or long thinking, just to mark them as done and get motivation to tackle harder ones.

Julia did some research on this NCR contest, in top 100, even around 100, some of them are ICPC contest winner, score range is around 200 out of 430. 

Julia's score is 62.76, 480 out of 2621. 

Facts:
1. Julia likes to work on those hard algorithms, last 3 of 8 algorithms. She thought that she could make 10 from each of them. But it was too late when she read the problem statement. She only had 3 hour left to 12:00am in the middle night of Sunday. 

Lessons learned: 

Do not work on ideas taking a lot of time to code; even prototype is questionable. Treat it as a contest, play to win, not play to learn. 

48 hours contest, a lot of algorithms - 8 of them, total time to work on is 16 hours, 8 hours a day. So, give each algorithm 2 hours a time. 

Spent 6-8 hours to score 6 out of 20 on spiral message. Simple mistake of understanding problem statement, and base test case: one line, one row failure. 

Should be more confident on hard algorithm - game of numbers. Less than 1 hour to score 15 of 50, but gave up bug fix. So close to perfect solution. 
So, if Julia has more experience to play HackerRank contest, she should try to make it at least 100 of 430. And also, she can spend less hours to work on the contest, and spend 1 - 2 hours a day on sport activities in the day time. 

Do not think about past contest - Warlmart codesprint, 24 hour contest, Julia spent time to bet on a hard problem (score: 100) until 4:00am, and scored 0 of 100. 





HackerRank NCR codesprint - super-valid bracket sequences (II - first submission)

Nov. 7, 2016

Problem statement:

https://www.hackerrank.com/contests/ncr-codesprint/challenges/super-valid-bracket-sequences

First submission: pass sample test case, score 0 of 40.

https://gist.github.com/jianminchen/c4cfa2a7a4ffeecaaeff725af17baaad


Julia spent time to understand the problem, and then, she did work on sample test case; and next, she likes to work on timeout, space complexity.

It is a dynamic programming solution.

HackerRank NCR codespring - super-valid bracket sequences (I - prototype)

Nov. 7, 2016

Problem statement:

https://www.hackerrank.com/contests/ncr-codesprint/challenges/super-valid-bracket-sequences

Julia spent over 2 hours to do some research, work on a simple problem using code, figure out the size T(n), and also came out the formula of recurrence.

Here is her code for prototype work:

https://gist.github.com/jianminchen/d27a0c1b5d7b366903b4c25408d25269

HackerRank NCR codesprint - Game of Numbers

Nov. 7, 2016

Problem statement:

https://www.hackerrank.com/contests/ncr-codesprint/challenges/game-of-numbers


Her first submission:  score 15 of 50
https://gist.github.com/jianminchen/ef96b59d7279f1b80473519434ab959f

In the 48 hour contest, second day evening around 9:00pm, she could not believe that she could make 15 of 50 so easy so quick.

Celebrated her work by showing her workout sheet.


Editorial Notes:

Julia did not know how she is so close to perfect solution; she only need to minimize the module size to 11 for her test case, start left = 1, end right = 11, instead of 21 she figured out in her workout sheet.

She did not notice that her work needs to be examined carefully. Hard problem can be completed in 10 - 30 minutes, Julia spent over 4 years to study applied mathematics in SJTU, she just did not practice a lot at all in last 6 years. She is very comfortable with discrete mathematics.



HackerRank NCR codesprint - Mega Tic-Tac-Toe

Nov. 7, 2016

Problem statement:
https://www.hackerrank.com/contests/ncr-codesprint/challenges/mega-tic-tac-toe

Submission using Dynamic Programming solution, score 30 out of 30.


https://gist.github.com/jianminchen/0055d61e696ef762310f1176734b2d60

HackerRank NCR codesprint - Spiral message - After the contest

Nov. 7, 2016

Problem statement


Previous blog about 15 submissions in the 48 hours contest.


After the contest, Julia downloaded all test cases, input/ output, she played with test cases, after more than 30 minutes, she finally figured out her major issue on the problem solving.

From the first 3 lines of problem statement:
The message originated as a single line of one or more space-separated words, but it was encoded into an  matrix as a clockwise spiral starting in the lower left-hand corner. 

Julia did not pay attention to the start point, lower left-hand corner. All her works are from up left-hand corner instead by a mistake. 

So, there are 4 corners:
up left-hand           up right-hand
lower left-hand      lower right-hand

Work on the sample test case: 
3 5
a##ar
a#aa#
xxwsr
The output of spiral message:
xaa##ar#rswx#aa

She did work on the coding in the contest, her output starting from 'a', not 'x'. In other words, sample test case's spiral message - her understanding and output: 
a##ar#rswxxa#aa


So, in the contest, Julia has to train herself to read problem statement more carefully. 

Ideas:
1. Write down all inputs
2. Make a check list
3. Make her own notes, do some research about the algorithm
For example:
1. a spiral message
2. clockwise
3. starting from lower left-hand corner
4. Not from general case - upper left-hand corner
5. ...


She started to work on the algorithm from 11:00am, Saturday, and then, in the evening, from 11:00pm - 1:00am, she came back to work on the algorithm, she read the problem statement again and again, but she did not notice the starting point - lower left-hand corner. 

Actionable Items:

Do not spend more than 1 hour to write code in the contest; go back to read the problem statement again and again; draw your own diagram - anti-clockwise. 

It is easy algorithm. Julia stumbled on easy algorithm so badly. 

C# code after contest - bug-free, clock-wise starting from lower left-hand corner


Year End review:
Review previous work on array manipulation:

1. Previous work on rotate of array

2. array rotation

3. array rotation (II)

4. array rotation (III)

HackerRank - Spiral Message - NCR codesprint

Nov. 7, 2016

Problem statement

Julia spent over 4 hours to work on the solution, she made 15 submissions in the contest.

No. 1: first submission - score 4.49 of 20 (pass 4 of 14 test cases)


submission #2: (Score is 0.82 (full score is 20), pass 2 cases of 14 test cases.)


Julia's analysis after contest about the submission:
Submission #2 issues:

1. Repetition: Code is no good in structure, repetition code.
2. Structure issue: Counting mixes with string construction. Counting code duplicates 4 time. line 96 - 100
3. Base case: base case is not handled properly, one row, one column; one row will be counted twice.
4. Missing info: String split using # is avoided, just use count directly. But the spiral message is not correct.
5. Extra variables - row, col two variable can be avoided, using startX, startY, endX, endY to calculate.

No. 3 submission

code review after the contest:
  1. The while loop - 115 - 119, but line 118, 119 redundant, part of first two lines.
  2. Base case - one row, one column do not work - count twice
  3. Add debug code - stringBuilder to tracker the string output - it is helpful, but unfortunately in the contest, Julia did not catch the error - starting point.
  4. Missing start time/ end time for submission above function comment, need to track time spent.

line 49 - 59 test function: 

if the testing() function, the program does something like string.CompareTo("xaa##ar#rswx#aa") == 0 (line 209 - 210). and then, Julia would have found the start point should be lower left-hand instead of up left-hand in the contest.


No. 15. Julia's submission - score 6.7 of 20



Editorial Notes:

Think about the problem writing. Good problem writing gives out the important information, directly/ indirectly, more than once, twice.

There are 3 times to catch up spiral message starting point bug.
1. First, by following the diagrams closely.
2. Read the word by word
3. Sample test case spiral message result.

Base test case failed - bug, need to think about Math induction proof, starting from base case, and then, assuming N is correct, prove N+1 case based on N and base cases. Detail see book:
Page 15 - mathematical induction vs  programming technique of recursion

Design talk:
Spiral message - a matrix

start point matters,
choices: start from 4 corners.






Leetcode solution - a book

Nov. 7, 2016

Great solution book to study on Leetcode algorithms.

Read the pdf document:

The gitbook, the link is here.


https://jeantimex.gitbooks.io/solve-leetcode-problems/content/

https://discuss.leetcode.com/user/jeantimex

https://www.linkedin.com/in/suyong

https://discuss.leetcode.com/user/jeantimex

Follow up 


January 17, 2018

It is the first time I plan to spend time to study the solution one by one. The blog is the third popular post on my blog. I wonder a few times, and today I did look into a few solutions, such as Leetcode 10: regular expression matching, binary index tree, and I do find that the leetcode solutions are excellent, I should spend time to read those solutions in 2018.



Saturday, November 5, 2016

Fix things Twice with the 5 ways

Nov. 5, 2016

Fixing Things Twice with the 5 Whys
https://www.youtube.com/watch?v=GLenAuGqIA4

Ask 5 why: - Amazon culture - Ask 5 ways - Everyone can apply

Symptoms -> root problem -> underneath problem

why?
why?
why?
why?
why?

Action items:

More reading, do small research, 5 whys vs 1 why?

1. https://www.isixsigma.com/tools-templates/cause-effect/determine-root-cause-5-whys/

Tips (www.hqontario.ca/portals/0/documents/qi/rf-5-whys-tool-en.docx):
1. You don't want to list 5 different reasons; you want to go deep on 1 reason.
Caution:
If your last answer is something you can't control, go back up to the previous answer on 1 reason

Blog to read:
How to win the contest on HackerRank?
https://goo.gl/xxASFC

Notes from the above blog:
The best contest will be the a long one, so at least lasting 24 hours, because in this case there is a factor of effort and dedication one
can put into the contest. The second most important thing is to find a contest with very hard problems or ideally an approximate ones.

Goal: Get in top 50 or top 100 -

a combination of problem solving skills,
online research
dedication
persistence

pure mathematics structure and google it.

Read the blog and try to make some sense on one of them, get the idea how to improve:
http://chasethered.com/

Friday, November 4, 2016

Why Hire the Smartest Programmers - a small research

Nov. 4, 2016

Why Hire the Smartest Programmers

https://www.youtube.com/watch?v=hCg-2fOfTGI

Who they will work with? Work with smart people.

Case study:
Yale professor - assignment for each week,
student complained that it took 40 hours/ week to complete the assignment.

Students kept hours on the assignment.
4 hours vs 40 hours
Grade is objective, done by computer program, no human interaction.

No correlation between grades and hours spent on assignment.

Actionable Items:

Smart programmer makes 10 times difference. Look into this argument, different views.

Remote Code Tests

Nov. 4, 2016

Remote Code Tests

https://www.youtube.com/watch?v=n5lCnWuGkZ0

A good developer - free run, simple mistakes

Scheduling and Estimates

Nov. 4, 2016

Scheduling and Estimates (7 minutes video)
https://www.youtube.com/watch?v=-ahhbWHM6AU

Take some notes, and continue to do some research. 

Book: Becoming a Better Programmer

Nov. 4, 2016

Going Beyond Code to Become a Better Programmer - Interview with Pete Goodliffe
https://www.youtube.com/watch?v=vGmCc7AhKVo

Slideshow: 130+ pages
https://goo.gl/2tmjII

The only way to go fast is to go well.
Bob martin, speed kills, 97 things Every programmer should know

Learn to communicate effectively in speech and writing. Bjarne Stroustrup

More reading:

1. Book:  Code Craft: The Practice of Writing Excellent Code

https://www.amazon.ca/Code-Craft-Practice-Writing-Excellent/dp/1593271190

2. Beautiful Architecture - Leading Thinkers Reveal the Hidden Beauty in Software Design
http://shop.oreilly.com/product/9780596517984.do

A guide to Developer Mentoring

Nov. 14, 2016

A guide to Developer Mentoring - Interview with Rachel Ober
https://www.youtube.com/watch?v=FVUKPt7MJ3M


Read articles:

http://www.alleywatch.com/2014/01/how-to-nail-your-interview-and-land-a-lucrative-job-in-tech/


Product management - talks

Nov. 14, 2016

Plan to spend hours to go over the talks by a product manager. Learn something.

How to Onboard Software Engineeers - Interview with Kate Heddleston
https://www.youtube.com/watch?v=Bt40BOXfejk

Technical Onboarding, Training and Mentoring
https://kateheddleston.com/talk/ef464595-b113-4c1b-9c5b-cc1f3681055c


https://kateheddleston.com/talks

Read the blog:
https://kateheddleston.com/blog

Julia's favorite saying from Kate heddleston:

Skills follows confidence. Not confidence follows skills.

The reasoning is that you are confident and then you do more research on things to work on.

Light talk: 3 rules of management
1. Care about people you manage
2. Say things 3 times - New thing, 3rd time, finally he/she gets it.
3. Service position - engineer/ make a product
Suggestions: Avoid using "Don't ", tell them what to go

https://kateheddleston.com/talk/a9122d63-2ee2-403c-af21-7e08bf5b0678

Interview developers - Mistakes and how to fix them

Nov. 14, 2016

 Kerri Miller

We’re Bad at Interviewing Developers (and How to Fix It) - Interview with Kerri Miller

https://www.youtube.com/watch?v=IbIXhwVwuSc

Software lead

Nov. 4, 2016

Becoming the Leader Your Engineers Need - Interview with Oren Ellenbogen
https://www.youtube.com/watch?v=BBdOIEs_mY8

Software lead weekly:
http://softwareleadweekly.com/issues/206

Engineering Excellence talk

Nov. 14, 2016

From Talmudic Maxims to Engineering Excellence - Interview with Yitzchok Willroth

https://www.youtube.com/watch?v=I6nouViM4a4

Recommended books and practices:

1. Code complete
2. Implementation Patterns
3. Patterns of enterprise application architecture

5. Practical Object-oriented Design in Ruby

http://www.sandimetz.com/

Practices:
1. Coaching agile teams - Lyssa Adkins
2. Driving Technical Change - Terrence Ryan


Thursday, November 3, 2016

Make better software - a study of software company

Nov. 3, 2016

 Plan to spend 2+ hours to go over the videos by FogCreekSoftware through youtube:

1. Make better software: Recruiting
https://www.youtube.com/watch?v=gVte99aCL_4

Best talent only applies 7 jobs in life time at most!

2. What do programmers care about - Joel Spolsky, Stack overflow
https://www.youtube.com/watch?v=yLyALWAp8IM

What programmers are looking for?

Steak dinner did not work, starting from 90s, Microsoft gave interviewee this kind of steak dinner. After 10 years, it did not work, and then stop.

Do you have a question for me? (in the interview)
Can you see a schedule for your product?

One step away from development to publish, 5 steps should be programmed to one step, assume that you are a developer, a good developer.

"the joel test" - Google - 15 of tests

3. Make better software: Design
https://www.youtube.com/watch?v=iQrmz85N7gI

4. Make Better software: Team Members
https://www.youtube.com/watch?v=tF9F6R83aEc

5. A Conversation with Joel Spolsky
https://www.youtube.com/watch?v=NF8ZVB-v3IM


Editorial Notes:

Why Julia chose the company "Fog Creek Software" to study on Nov. 3, 2016?
Because she watched Edmond Lau's interview through FogCreekSoftware, see blog:

http://juliachencoding.blogspot.ca/2016/11/how-to-identify-efforts-that-make-big.html

Actionable Item:
1. Next series of videos to watch:
Think like a programmer
https://www.youtube.com/watch?v=YgzpqlF54lo&list=PLKQ5LYb497AZIZe9dBWy8GwLluVaMQVj0

2. System design: Youtube

http://blog.gainlo.co/index.php/2016/10/22/design-youtube-part/
CDN - content delivery network
 a globally distributed network of proxy servers


http://blog.gainlo.co/index.php/2016/11/04/design-youtube-part-ii/?utm_source=email&utm_campaign=email&utm_medium=email


Industry research - digital marketing

Nov. 3, 2016

  Spend more than 2 hours to do research on digital marketing - Cendyn One. Julia is working on web development and business analysis for a small of manufacture company in the city of Vancouver, and a lot of time she has to learn how to work with marketing and sales team. So, once a while, she starts to do her own research on marketing and sales as well.

  This is the first blog she writes about her research on digital marketing.

  Plan to put something together about the study.

  http://www.cendynone.com/

  Her favorite blogs to read:
1.  http://www.cendynone.com/blog/march-2016/what-does-removal-of-right-side-text-ads-on-google/

Article reading:
http://business.fau.edu/news-events/news-details/index.aspx?nid=460#.WBwbKPorKUk