Everybody has a different idea of which languages are important. And the answer really depends on who you are and what you believe is important. I came to programming through a theoretical computer science route which initially gave me a shallow understanding of a wide breadth of topics. In this school of thought, languages are just a vehicle for learning about the big ideas in computer science. And to get at all of the ideas, you need to use a language that lends itself to the topic. Read the rest of this entry »
Category: Programming Languages | 3 Comments »
Welcome to Volume II of the sweet hacks series. A sweet hack can be a clever piece of code, an innovative way of solving a technical problem, or pretty much whatever strikes me as cool. This edition includes Star Wars, Twitter, Rubik’s cubes, Webcams, Pong, Legos, and the Naked Game - with such a high concentration of geekiness mixed in with a little naked code you really can’t go wrong. Read on to get the full scoop and nominate your own sweet hack for the next edition. Read the rest of this entry »
Category: Sweet Hacks | No Comments »
In the first post in this series, I talked a bit about different indicators of job satisfaction and how you can rank your own job for each of those criteria. In this post I’ll list simple steps anyone can take to improve personal job satisfaction in each of these areas: quality of projects, work-life balance, bureaucracy & politics, recognition & respect, compensation, and teamwork. Read the rest of this entry »
Category: Career | 1 Comment »
Are you satisfied with your job? Are you satisfied with where your career path is taking you? These are important questions, and I try to take time to think about this every 6 months or so. Its usually trivial to make a general statement rating job satisfaction: “Yeah I like my job.” or “My career is going nowhere.” But what factors influence programmer job satisfaction? How can hackers become more satisfied with what they do? Read the rest of this entry »
Category: Career | 1 Comment »
The Eternity 2 (E2) puzzle has attracted the attention of puzzle fanatics, computer programmers, and mathematicians for many reasons, not the least of which is the $2 million prize for being the first to solve it. E2 is an edge-matching puzzle with 256 pieces. The general class of edge-matching puzzles is known to be NP-Complete, but it is unknown if there are aspects of E2 that can be exploited to make it tractable. In the spirit of cooperation, a few people have made their automated solvers available online, and I have provided an overview and back-of-the-napkin analysis of two of them. Read the rest of this entry »
Category: Fun Projects | 49 Comments »
Every hacker should have a good solid dead tree library to draw ideas from and use as reference material. This list has a bit of everything - textbooks you will encounter at top tier computer science universities, books giving insight into the industry, and references you shouldn’t be caught without. It is a list of hackers’ classics. Read the rest of this entry »
Category: Books & Tools | 44 Comments »