Tuesday, April 5, 2016

HackerRank articles - reading time

April 5, 2016

 Julia's favorite articles on HackerRank:

 Recently, Julia starts to read articles on HackerRank, and she likes to take some notes:

 1. 8 ways to reduce bugs while coding
  Tools: Findbugs - Java code, GetExceptional - Ruby apps, Selenium - web browsers

   unit tests & integration test/ use Tools / Compiler warnings / Code Review / Logs / Use existing libraries / Pseudo code / Avoid distractions

   Julia's thoughts:
 1. Write a small function
 2. Check variable scope - limit scope to minimum
 3. Design concern - make it easy, so every one can tell there is no problem.
 4. Push the coding problems to compile time not running time
 5. Document the test case above function, precondition/ post condition
 6. Have a lot of ideas to solve one problem, then, choose any one, you can write code right away
 7. Think about maintenance, use data structure, such as Array, go through loops - use iteration

    Recently, in March 2016, Julia uses a loop in JavaScript to add onclick() event - callback function; and then, finds out the variable i - iterated value is always the last one, not like C#,  and then, she figured out using closure concept; she started to write her first closure variable for real work. She got so excited. You can avoid using closure to finish a project, but when the code is reviewed the expert will know your strength - you never develop the muscle! Your code is like a fat, not a muscle.

   Push yourself to make the code most efficient mode first, and then, stay out of your comfortable zone; learn to be a good critic.

 2. Great article about learning
 10% reading -> 20% Audiovisual -> 30% Demonstration -> 50% discussion -> 75% Practice doing-> 90% Teach others

 maximum learning happens when to "Teach others"

 Julia's thoughts:
  In 2015, Julia spent days/ weeks/ months on JavaScript learning, books reading, code snippets practice, video watching; But, in 2016, when she reads so many JavaScript submissions on HackerRank, she suddenly noticed that people are so good at JavaScript language, use it to solve daily simple algorithm problem, maybe as a hobby. She knows that it is also urgent to catch up JavaScript.

  1. Simplify the question
  2. Create  assumptions
  3. Solve for simplified case
  4. Finally, generalize your answer

  Smart, write good code, who care about writing clean code

 4. Promoting Coding Culture in you campus
  self learning - MOCCs like Udacity, Coursera, edX
  Inculcate the habit of reading

 5. A stronger Programming Culture for India

 HackerRank clubs
 Self learning attitude
 Rote-based education system has been detrimental
 Facts: IT graduates, only 25% are employable (as per Nasscom)

6. http://blog.hackerrank.com/how-to-crack-microsoft-interview/
 Arrive at the answer  (not just about arriving an answer)
 How you approach the problem (a lot about how you approach the problem)
 Your clarity of thought
 How you backtrack when you are stuck
 How you use the hints given to you.

Julia's thoughts:
Do some self-evaluation:
  1. Code skills - do you write a lot, read a lot of code recently? Warm up definitely helps.
  2. Do you like to solve the problem or not?
  3. Do you have some rituals to help you solve the problem?
For example, if you are so nervous, cannot think/ write as normal, what do you do?
Julia's answer: Find a simple test case, work out the design/ coding first.

  4.  Can you tell the problem difficulty level? Easy, medium, advanced  or difficult?
  5.  What kind of person you are in programming style? Are you a hacker?
  6.  How often do you practice problem solving?
  7.  What kind of tools you are using? Do you use HackerRank?
  8.  How many  peers you have - mock interview?
  9.  How often can you get some code screening? code assessment?
 10. Do you stay on the current moment or think about consequences? mental skills.

7. Productivity tips for programmers

 1. write Unit test for higher productivity.
 2. Practice your programming.
 3. Use libraries and help improve them.
 4. Read code and technical stuff.

Julia's thoughts:
1. Julia did not find things exciting to do after work from 2010 - 2014, she found out that she does not develop strong interest, long term effort on somethings except tennis sports. So, she started to make change; Now, she likes to solve coding problems, and also she reduces a lot of stress as a developer. She knows a few more way to make the apps run good, easy to maintain.

No comments:

Post a Comment