How to get competent in computer science

 

Philip Johnson

Collaborative Software Development Laboratory

Information and Computer Sciences

University of Hawaii
Fall 2019

 

Competency isn't everything

Question:

What does

"CS competency" actually mean? 

Answer:

Competency in ICS

Question:

What does

"CS competency"

actually mean

in the Real World?

Answer:

That depends upon what kind of job you want after graduation

My personal criteria for a "good" job

 

Involves innovation.

Involves software development.

Well paying.

Let's assume you want more than 2 out of 3:

 

Involves innovation.

Involves software development.

Well paying.

So, what does

"CS competency"

actually mean

in this Real World?

Cracking the Coding Interview

  • Author is a software engineer who interviewed (and got offers from) Google, Microsoft, Amazon, IBM, and Apple
  • She did technical hiring at Google, Microsoft, Apple
  • Based upon her experiences and hundreds of other contributors. 
  • She still codes daily

AFAIK, the most comprehensive, evidence-based perspective on how industry currently defines "competency in computer science"

Why should you care about how industry defines "competency in computer science"?

1.

Because you might want a (good) job in industry after you graduate.

2.

Because being competent means you can do more stuff.

Let's dispel

some myths

Myth:
Only a few companies test coding skills

Myth:
Whiteboard coding doesn't assess useful skills

Myth:
I can worry about this later

Myth:
CCI is just coding questions

Contents (Summary)

  • The interview process: Microsoft, Facebook, Apple, Google, Palantir, Startups
  • A year-long preparation guide
  • Behavioral vs. technical questions and answers
  • The process of problem solving
  • Big O
  • Arrays and Strings
  • Linked lists
  • Stacks and Queues
  • Trees and Graphs
  • Bit manipulation
  • OO Design
  • Dynamic programming
  • System design
  • Sorting and searching
  • Testing
  • C & C++
  • Java
  • Databases
  • Threads and Locks

How industry assesses competency

Why assess competency?

Example Problem

Hints!

More Examples

Life Hacks for CCI

CCI is too big & heavy

3 lbs

2" high

You don't need all of it all the time

Divide and Conquer

What to do now?

  1. Buy the book
  2. Refactor it into small, transportable modules
  3. Buy a notebook and a pencil
  4. Do one problem a day for six months
  5. Incorporate Preparation Map into your academic workload.

 

Start this in the semester you take ICS 311!

How to get "competent" in computer science

By Philip Johnson

How to get "competent" in computer science

(so you can get a good job after you graduate)

  • 40