Saturday, October 7, 2017

Book: Cracking the Coding Interview (6th Edition) by Gayle Laakmann McDowell

Whether you are a fresh graduate or an experienced software developer, if you are thinking about landing your dream job in the software engineering team of one of the world's top IT companies such as Google, Apple, Facebook, Microsoft, Amazon, Palantir, etc., this is the book for you to get well prepared for your job interview.

In fact, this book is suitable for anyone who want to secure a software engineering job in the global IT industry, regardless of level from coder to development team lead to manager to even director or VP.

If you are already working in the industry, the author also alerts you that in the event your company undergoes acquisition or acquihire by those IT big gun companies, eg. the recent case of Google-HTC deal, existing staff of the acquired company (which could be including the CEO himself) are likely required to go through similar interview process, as "they don't want acquisitions to be an easy way into the company" (page 19).



The author, Gayle, is a talented software engineer herself, having working experience at Google, Microsoft and Apple. She had gone through the experiences of being an interviewee as well as interviewer in those companies. Now, she is the founder and CEO of consulting company CareerCup.com.

For computer science graduates, this book will walk through a very quick revision of the important topics you have already learnt and passed in your college, things like the Big "O", data structures (such as hash tables, linked list, stack, queue, tree, graph, etc.), algorithms (such as sorting, searching, bit manipulation, etc.), object-oriented design, system design with scalability, programming logic such as recursion, etc.

If you are not a computer science graduate but have learnt about computer programming and is eager to enter into the software engineering industry, these topics give you some idea of what your computer science graduated counterparts have gone through in their college studies (of course, the whole course covers much more topics than the above list. Those are just some of the fundamentals which they learnt during the first 2 years of their study). You might not be required to know in-depth of such knowledge to secure a software engineering job, such as how to apply them in assembler design, compiler design or operating system memory management design, but it is good for you to know the concept of those knowledge in order to pass the technical interview test. It is out of the scope of this book to teach you such topics. It highlighted them for you to pick up the knowledge from other sources such as computer science textbooks or online courses.

This book contains 189 programming questions and solutions to give you an idea of how you will be tested during your technical interview session. Well, don't be frightened by the questions as they are the level used at Google, Apple, Facebook, Microsoft and those top-notch IT companies who only target to hire highly talented employees. You will probably be tested with less challenging questions, but yet within the domain of similar computer science knowledge. At least, you should be able to write simple function such as listing out the Fibonacci sequence.

Bear in mind that technical knowledge is just a portion of the interviewee assessment. There are other area of evaluation such as soft skills about handling ambiguity, customer focus, communication, passion for technology, teamwork, leadership, etc. before you are offered the job.

Thursday, October 5, 2017

KidoCode HoC Computer programming class for young children and teens

I came across KidoCode in an education fair. KidoCode is a computer coding and maths training center targeting children of age group from 6 to 18, founded by 2 Iranian (Hossein a.k.a. Unclecode and Maysam) who are very passionate in educating the young generation about computer programming, logical thinking and mathematics.

I have brought my kid to attend their 4 hours free trial class at their HQ in Solaris Mont Kiara (above Cold Storage supermarket). That 4 hours session enabled us to know more about them, took a look and feel about their learning environment, let the kid to have hands-on introductory class about computer programming, which included simple programming to create mobile app in an Android tablet, and electronic programming on an Arduino kit. This is essential to ensure the kid likes the learning environment and the curriculum before making decision whether to enrol with them or not.

Parallel with the kid's 4 hours free trial class, there was also a 1 hour session for parents for them to introduce their value proposition, their unique way of running the classes, curriculum and syllabus. I am pretty impressed with their holistic vision, mission and plans to train Asian children to be competent in computer programming for fun and profit (yes, they encourage entrepreneurship after the kid has created something awesome in their journey of codings). As a result, I have enrolled my kid to their 50 Hours of Code (HoC) programme.

The 50 HoC is an introductory course for the kid to build up the necessary foundation in computer programming. A minimum of 50 hours is allocated for the kid to complete the course. 50 hours is the minimum because they'll give bonus hours to the kid based on several promotional criterias, at no additional charge, which could added up to over 80 hours.

This 50 HoC introductory course comes with a K-Box which the kid can bring home for own practice and continuous development, which contains:

  • Arduino board with electronic components
  • Raspberry Pi 2 with WiFi adapter and Case
  • Android smartphone for mobile apps and games programming
  • Some free gifts

All the following subjects will be covered in the 50 HoC programme:
  • Python programming language with Turtle graphics using online KStudio IDE

  • Mobile apps development using MIT App Inventor
  • Electronics programming using Arduino and Raspberry Pi
  • Web development using Cloud9

  • Game programming
  • Information security

The HoC is consumed at KidoCode training centers. The kid will learn at his own pace. Fast learners will learn more in-depth and given more challenging exercises, while slow learners are still able to go through the breadth of learning though not as deep. Beside the kid, the parents (both father and mother) are also given the same amount of HoC at no additional charge, for them to optionally learn the same course together with their kid, and each of daddy, mummy and kid will be learning at their own respective pace and could go through different learning path.


KidoCode is opened from 10am to 10pm daily including weekends and public holidays. Other than the first Welcome Session which needs to make appointment prior to attending, the kid (and parents) can walk in anytime during the operating hours to consume their HoC. A dedicated computer will be allocated, and personal trainer will attend to the kid (and parents) throughout the session. Students can take their break at anytime, which will stop their HoC hour glass counter, only to resume when the break is over. Free flow of food and drinks is provided at the premise.

 After the 50 HoC course, the kid can proceed with more advanced courses including:
  • Code and maths (30 HoC)
  • Mobile apps development (100 HoC)
  • Electrogramming (80 HoC)
  • Game coding (70 HoC)
  • Web development (100 HoC)
  • Computer security and cryptography (40 HoC)
  • Geek coding (100 HoC)
  • BioInformatics (50 HoC)

You can find out more information about KidoCode by visiting to their website.

If you are also interested to attend their 4 hours free session, you can click here to locate the online registration form.

Friday, September 29, 2017

Education is possibly not the key factor to good income

On the basis of Professor Jesse Rothstein's research paper, American journalist Rachel M. Cohen has posted an interesting article in The Atlantic with argument that "Education Isn't the Key to a Good Income". Her article is based on the American society, which is pretty much recognized for its meritocracy culture.

Rachel's article has brought me to Jesse's earlier write-up posted in Washington Center for Equitable Growth website titled "There is more to equal access to a good education than sound school budgets" containing more insight about her research and findings.

So, are you having an equal chance to climb up the economic ladder with enough education and hard work? If this is not the case for America, what about the other parts of the world?

If education is not the key determinant of equitable economic opportunities across generations, what will be the more likely factor that can contribute to better income? Take a look in the diagram below.

 
Researcher opined that in this subject matter, the structure of the labour market is more likely to be a much bigger driver that the school quality.

It seems that the key determinant for labour income is the supply-demand factor of the skills matching with the market. Non-labour income and spousal earnings indeed play a significant part as the determinant too.

Hint: Click on the "Older Posts" link to continue reading, or click here for a listing of all my past 3 months articles.