What I’ve learned last month or so, part 1

  • I used Java to implement algorithms like Floyd Warshall, max-heap, Ford-Fulkerson and others, for the ICPC competition. This involves writing mostly for-loops, arrays, some lists and maybe 1 level of inheritance. I don't *know* Java, in the sense that I've never used any of the stuff that *makes* it Java.
  • For that matter, there's a lot of stuff I don't know. As I've been reading in my favorite new book, Coders at Work, you could research the details behind something like how the text you're reading appears on the screen to an almost infinite level of detail. For example, this text is in an HTML document which is formatted with CSS. But the HTML doc doesn't exist anywhere - it's dynamically generated by WordPress and PHP. Your browser contains instructions on how to display HTML/CSS and it's written in C, or C++. But it has to run on the operating system, which is UNIX, Linux or Windows, and each of those has its own windowing system and programming hooks. Finally the operating system has to divide time between all the applications currently running, figure out which one of them is "foremost" and display it on the screen, which is a piece of hardware requiring a special set of instructions from the operating system. And even that's missing a whole lot of obvious places to dive in for at least a few months on things like font rendering, multithreading, sending bits over a wire with HTTP, serving requests with Apache, and more.
  • One thing people say about technically skilled college graduates is that they can learn a ton and double their value in the first few years out of college, because you are programming all day and learning from the best in the industry. The other thing people say about startups is that when you work at a startup you might have to do everything and learn crazy new things from scratch all the time. I learn quickly but it's hard to show that to a company, or at least to disting. So you have to try to learn at your slow pace, or try to start a company yourself to learn at a fast pace, and then get into a startup.
  • I talked about this with Nick Bergson-Shilock from Hackruiter yesterday. Nick agreed there's a chicken and egg problem where people expect you to have a ton of skills but the way you learn those is to go work at a startup. I thought it would be cool to have some sort of online tool for learning how to scale your site, and survive things like a sudden giant burst of traffic, data writes etc. So I'll look into writing an app to do that.
  • I am trying to hire for Good Morning CMC. Hiring is really difficult. I'm pretty lazy, so for something like Good Morning CMC there are a few different scripts to automate things like deploying to the server, sending out the Snack menu every night (it's entirely automated, I don't have to do anything) or creating the email (so I don't miss closing HTML tags, etc). These scripts are good and help keep me sane; if I didn't have them it would take upwards of 2 hours to put the email together every night. But at the same time it makes the project complex. It's a Catch-22 where the students who could figure out the whole system without any problems are probably the ones who have better things to do, while the students who are pretty far away from figuring it out would take 2 hours a night, and possibly get discouraged.
  • Mostly I just want someone to show initiative and do something like grab the source code, make a change and then upload it. Maybe that's not a good heuristic for a good candidate, but so far it hasn't happened.

Liked what you read? I am available for hire.

Leave a Reply

Your email address will not be published. Required fields are marked *

Comments are heavily moderated.