Any suggestions on how to improve this year’s code war?

I feel pretty good about this year’s problem. It was hard, but the top teams were able to implement strong solutions and that is the goal, where it is a stretch. Even for students who are really good.

In the code itself the delay in updating the status of the power-up cards was not intentional and therefore was a bug. My fault as I wrote that code on the server side. One big downside of a code war is we can’t push something out for beta test because we have to keep it confidential. We did have an all-day code war here with everyone in dev on teams writing AIs for it as a test run, but all of them updated their cards when playing them so they never hit this issue.

The feedback on keeping Windwardopolis but changing the play substantially was mixed. A few disliked it. A few appreciated it. For most it wasn’t an issue. Going forward we will probably not do that again.

If you have any suggestions for us, please post them here as a comment or email them direct to me at I hope you all had a great time participating.

Based on the suggestions so far (email and the below comments):

  1. We will create javadocs (and same for C#/Python) of the client API. 
  2. Tell people that the game is 10:00 – 6:00 but they need to be there no later than 9:30 and the play-offs are 6:00pm.
  3. Stress that they need to have machines on which they can turn the firewall off. And get that figured out before the day.
  4. We may send printed posters to put up.
  5. Provide a suggested website for the event similar to the University of Victoria one.


What Makes The Windward Programming Championship Unique

There’s a lot of hackathons out there. What makes Windward’s unique. A number of things:

  1. The competition emphasizes strategy and problem solving rather than simply coding.
  2. The problem requires a team to collaborate and communicate as they design their solution.
  3. Students must make trade-offs. Given 20 hours a team could craft a great solution. They have 8 hours. So they need to figure out what provides the most bang for the buck.
  4. It’s a direct competition. Each team’s A.I. competes in the same game against the other team’s A.I.s.
  5. It’s freshman friendly (a great strategy implemented in simple code will beat a mediocre strategy implemented it superb code). Many teams are comprised of upperclassmen and freshman which provides great mentoring.
  6. A higher participation rate by female students than most hackathons.
  7. It provides Universities a chance to compete with each other academically rather than just athletically.
  8. There is no human opinion judging winners and losers. The score on the board determines the winner.
  9. The entire event is just 8 hours and held locally.
  10. You’re competing with the top students from the top schools, across the world.
  11. We provide our competitors with a piece of functioning code, giving those new to programming a healthy start and those well experienced with a jumping off point.

Every year we work to make the event even better than the year before. And our two key goals as we put this on are first, that the students have a really fun day. And second, that they learn from it. If they end the day with a giant smile on their face and as a better programmer – that’s worth all the time and effort we put in.

For a description of the experience, read this HuffPo article.

From Stanford to MIT to Cuba to Egypt

The Intercollegiate Championship between the top computer science Universities is now world-wide. The latest international entries are Universidad de las Ciencias Informáticas in Cuba and Alexandria University in Egypt. The Windward International Collegiate Coding Championship (code war) is now truly an international championship.

<== The winning school receives that super cool trophy!

Windward Code Wars pits hundreds of teams from top universities who spend the day creating an A.I. character that will battle it out against other A.I. characters in a previously undisclosed programming game. This year the contest will take place Saturday, February 1, 2014.

Code Wars requires collaborative design, is freshman-friendly, and gives computer science students a chance to represent their school in a really challenging intellectual competition. It’s the most exciting programming contest in the world. (If your school is not yet signed up, there’s still time.)


Which University do you think will be the world champions (and win the really cool trophy)?

What to Look For in Your First Job

jobs22[1]One semester to go and you graduate. No more tests, no more projects, no more defining your success with a grade each semester.

But now comes a giant question – which job do you take? (This is written specifically for computer science majors but I think these suggestions hold for most any job.) Get this wrong and your first job will suck. Get it right and you’ll like your job so much, it won’t be work, it’ll be fun – and you get paid!

Trust me, I’ve made each of the below mistakes. Getting it wrong sucks. Here they are in priority order.

  1. How smart & imaginative are the employees? If the employees there are below your level you’re going to find it drudgery to carry them along. If they’re well above you, they’ll find you a pain and will push you off to the side. If you’re not at the same level as the people at a company, you’ll have a short unhappy experience there before quitting or being fired.
  2. How motivated are the employees? I worked at a company where the people were all brilliant but there was no urgency to ship the product. Everyone has their own speed as they balance functionality vs delivery, but you want to work with people who balance that similarly. If you’re way different then you will find the speed of the team frustrating. The larger the difference, the greater the frustration.
  3. How well do employees work together? At Windward (my company) we have a no negative people rule. You’re not going to find perfection anywhere, but if you find a company where there are no negative drains, that makes for a much more pleasant (and productive) experience.
  4. What do people do in their spare time? This matters more in smaller companies where there’s often less diversity in personal interests. If your life is extreme mountain biking and others at a company are into sports, that makes for common interests to discuss at lunch, or even go biking together on the weekends. This is not make or break, but it can make the experience better.
  5. What are the expected number of hours each week. At Windward I tell people 44 hours/week max (and then often yell at talk with people who work more). At other companies the expectation is 90 hours/week. When I was younger I worked the killer hours and loved it so I’m not saying one is better than the other. But make sure you’re ok with the expectations.
  6. Measure the salary vs. the cost of living. Silicon Valley pays about twice what Boulder, Colorado does. And with that doubled pay… you’ll have less left over after covering rent & food (and a much smaller apartment to boot).
  7. Are they looking for a fox or a hedgehog? And which are you. You want a job that plays to your strengths, not your weaknesses. If the job is working for Amazon on the AWS backbone, you better be a hedgehog. If it’s creating a new killer social media app, you better be a fox.
  8. The technology at the company? No big deal. If a company (5 years ago) said they were working on a subscription based messaging system you probably would have said no way, too boring. That was Twitter.

So, great list of questions but how do you get answers when interviewing? This is pretty easy – ask what you’ll be working on. As they explain, ask for more details on the interesting parts. Ask what the big challenges are, ask what the market response has been so far, ask what the company has struggled with the most. And ask what it’s like working there in general.

Listen to the answers carefully, not just for what is said but how its said and what is not said. Are the problems key to the program or peripheral? Do they have a good handle on what they face? Are these problems trivial, impossible, or difficult but solvable? Do they mention co-workers as part of the problem?

Don’t be afraid to ask these questions. If you do so in a way that is friendly & curious, it is viewed as a good sign in an interview. It means you are interested in the job and are looking for someplace where you can contribute. One of the best questions you can ask is “what do you need from me to make the company successful.” The answer tells you a lot, and the interviewer wants to hear that question (unless the company is a complete mess).

Here’s hoping you find a job that’s a good fit for you. But you will also get one or two turkeys. When you do, learn what you can from that job and when you are 95% certain it’s a bad fit, move on to something else. And with that said, every job is hard at times, frustrating at times, all wrong at times.

What should I do with all my computer games?


How do I find them a good home?

I have over 200 games from the golden age (the picture above is about 1/3 of them). I have a ton of wonderful memories of all the time I spent lost in them.

However, I also need to face up to the fact that I haven’t played them for years. And I’m not going to play them again (there’s 4 I still play).

I want them to go to a good home, someplace where they’ll be played & enjoyed. I thought of giving them to the local High School but my daughters tell me kids nowadays play console games, not PC games. And definitely not old MS-DOS games.

So, anyone have a suggestion of where I can give these that they’ll be appreciated?