CS theory revisited

As I enter my fi­nal term of stud­ies, I will shortly be join­ing the over­crowded pool of freshly gradu­ated 20-somethings with a com­puter sci­ence de­gree. In pre­par­a­tion for this, I’ve been read­ing a lot about people’s ex­per­i­ences with pro­gram­ming job in­ter­views, and have come to real­ise two things:

  1. Do­main-spe­cific know­ledge is less im­port­ant than I thought it was.
  2. Job in­ter­view­ers love to fo­cus on theory.

By the­ory, I mean things like al­gorithmic com­plex­ity, lo­gic puzzles, and big O nota­tion. As a res­ult, I’m now ter­ri­fied of the fact that while I con­sider my­self a de­cent pro­gram­mer and come out near the top of my class, the fact that I did­n’t re­tain all of the know­ledge from my data struc­tures and al­gorithms mod­ule at Uni­versity may lose me fu­ture em­ploy­ment.

Sit me down and ask me to write an ap­plic­a­tion and I’ll get straight to work, but sit me down and ask me the most ef­fi­cient way to sort one mil­lion in­tegers and I’ll burst into tears be­fore your eyes.

Now, while I have little ac­tual ex­per­i­ence of job in­ter­views, I can ima­gine that openly weep­ing is pretty high up on the list of things to avoid do­ing, right along­side ag­grav­ated as­sault and call­ing the hir­ing man­ager a tosser. If I’m to have any chance of avoid­ing this dis­aster scen­ario, I need a plan.

Once a day for the next 30 days, I’m go­ing to sit down with my leg-numb­ingly heavy copy of In­tro­duc­tion to Al­gorithms and go “back to square one”, cov­er­ing one topic per day - bin­ary search trees, heap sort, re­cur­sion - all the the­ory that I’ve learned in the classroom but never needed to ap­ply in the real world.

I’ve set up a re­pos­it­ory to doc­u­ment my pro­gress, and will re­port back in 30 days with my find­ings!

AI researcher specializing in compilers and code optimization.