Monday, October 30, 2006

Is the price of the Wii TOO low?

The Nintendo Wii's low price of $250.00 is arguably the greatest reason to buy a Wii over a PS3, which will cost approximately $600.00. Many have said that it is a great move by Nintendo to make a less expensive system with more emphasis on innovative gameplay and less emphasis on graphics and processing power.

No matter how you slice it, the Wii is the more practical buy, but this doesn't necessarily make it the better buy, and it especially does not mean that more people will buy it. Consider this situation under different circumstances.

When people buy cars, do they always buy the ones that can go from point A to point B? No, they buy cars that get from A to B, but also have flash and a stigma of superiorority. "I drive a Mercedes, therefore I am rich and important. You drive a Honda, so you must be less rich and less important." People buy expensive cars because they're expensive. People just naturally like to show off. Of course, not all people are like this, but many are.

When people buy beer, do they buy whatever gets them drunk? Whatever tastes good? Whatever is the cheapest? Sometimes, but there are also many who buy beer that is expensive because it's expensive. I'm reminded of an advertisement by Stella Artois, "Reassuringly Expensive." Especially people that want to impress others will buy expensive beer just to be seen drinking an expensive beer. Practical? I think not.

What does this mean for the Wii? Well it means that some people are going to overlook it because it's inexpensive and practical. It's like the Honda of cars or the Bud Light of beers. It's something that is affordable and therefore non-exclusive. It may not make a great deal of sense, in fact it might be downright stupid, but people will buy the PS3 over the Wii just because the PS3 is the more expensive unit. The PS3 will attract the crowd that likes to show off and spend lots of money on the impractical. The Wii will attract the crowd that likes games for their content and buys things that are practical. Which would you rather have as a customer?

Monday, October 23, 2006

Bloggers Repeating Themselves

If you're a reader of many blogs (and if you're reading this one, then you probably are), you have likely noticed the amount of repitition that goes on in the blogging community. This is an expected outcome when there are multitudes of people who constantly post their thoughts, ideas, and opinions. With all of these posts, it's very difficult to come up with something very original. Even if you aren't copying somebody elses ideas, there is a high risk that the idea that you are posting has been stated by at least one other person, if not many others. And yes, I am certainly aware that the very notion I am speaking of may have already been discussed.

But that's the problem! There's so much discussion going on, it is just plain impossible to be sure that it hasn't already been discussed before. A while back I wrote an article titled Would You Put WoW On Your Resume? Little did I know that almost 2 years earlier there was an article written in Wired Magazine about the same exact thing, so of course I got a whole lot of "Old news" and "Unoriginal" comments.

This is the fear that I go through every time I come up with ideas to post on. It's pretty disheartening to go through the process of writing something that I think is original, creative, and exciting, only to find that it's old news. Imagine that feeling on a larger scale. It's as if you've come up with the discovery of a lifetime. The invention that will change the world. But once you do some research you find out that it's already been tried...a very long time ago, and guess what...it didn't change the world. Talk about a total bummer.

Most articles that I write, I don't write unless I think there is something valuable to communicate. I suppose this should be the goal of bloggers (although more times than not, it isn't). If I think it's valuable information, I get excited about it, because I'm the one holding the key to this information. It's a rather empowering feeling, and can certainly boost self-esteem if I'm right and it actually is valuable to other people. So, when I come to find out that this information is already known, and I'm not the almighty holder of important knowledge, it hurts. My revolutionary idea is just plain ordinary...

All this has effected me by making me weary to post anything that might be unoriginal. Unoriginal is boring and if something I write is tagged as unoriginal and boring (by either myself or somebody else), than I might as well have done something productive with my time instead of repeating words that have already been said or stating things that are obvious to others. So, in a way, it deters me from writing my thoughts as much as I would like to. What about you? Do you often hold back your opinions & ideas (whether it's on your blog or in a conversation with friends) for fear of stating the obvious or repeating somebody else?

Friday, October 20, 2006

Microsoft: The up and coming 'Me Too!' company?

The latest release of Internet Explorer 7 is another example of Microsoft moving from the software leader to yet another 'Me Too!' company. It's obvious that IE7 has been due for years now. It took some heavy competition from other browsers to light a fire underneath them. Without Firefox or Opera, we would still be stuck with IE6 for years to come.

Not only are they lagging behind in web browsers, but it seems like everywhere you look, Microsoft is lagging behind heavily, and is starting to play copycat with other software companies, most notably Google. The most prominent example of this is Microsoft's response to Google's wide range of rich web applications. What was their response? Well, we're doing that too! Only better!

Michael Robert wrote an excellent book a while back called The Power Of Strategic Thinking. The premise behind the book is essentially that in order to overcome your competitors, you need to change the rules of the game. It seems like a simple concept, but it's actually very difficult to do (like I would know).

So the truth behind the success of Microsoft's competitors is in their ability to change the rules. It's hard to compete with Microsoft's desktop office suite by creating another desktop office suite. Why? Well, because Microsoft has been there for years, they're good at it, and they've proven that to their customers. So what does Google do? They latch on to an online office suite and a variety of other web applications. Whether or not this will overcome Microsoft's stronghold on these areas has yet to be seen, but one thing is certain. The rules are changing and not in Microsoft's favor. In many respects, Microsoft is not very different from all of the other small 'Me Too!' companies that see another company's success and copy them, hoping to grab some of the share.

Tuesday, October 17, 2006

Vista & PS3: Are graphics that important?

A recent article on Wired mentions that:

"A separate graphics processor, usually reserved for the gamer set, is almost always needed to take full advantage of Vista's graphics capabilities"

So, if you want to run Vista the way it is meant to be run (with pretty graphics), you're going to need a powerful PC with a powerful graphics card. This is bad news for consumers, because it will obviously drive up the costs of running a Vista system as the prerequisites for your system are even more demanding. Many XP users run on weak graphics cards, because they only use their PC for internet and word-processing/spreadsheet applications, none of which requires a strong graphics card. The powerful graphics cards were, as the quote states, reserved for gamers.

As we have been hearing for months now, the PS3 will also have a strong emphasis on graphics. Like Microsoft, Sony is willing to put the burden on consumers to spend more money for what they are trying to deliver.

This particular issue spins back to one of the most prevalent debates in the console wars: What's more important? Graphics or price? There have been valid arguments on both sides, but it seems that Microsoft and Sony have aligned on the same path, that being an emphasis on graphics.

The results of these decisions still remain to be seen, but I've always erred to the side of content & price over graphics, especially when it comes to something as fundamental as my operating system. Graphics might matter to the gamers, but I'm not convinced that your average Windows user will care to spend a load of cash for pretty buttons.

Of course I could be wrong, and graphics are that important...

Friday, October 13, 2006

Software Engineer Salaries On The Rise

As an entry level software engineer in the Boston area, I try to keep up-to-date on average salaries to keep my HR people in check. According to salary.com, the median salary for entry level software engineers in the Boston area has gone up from $53K to $59K, that's a $6,000 per year difference! This is from data collected in October 2006, and it isn't limited to the Boston area, so it might do you some good to visit salary.com yourself and drop a hint to your manager or HR person sometime soon :)

Why the sudden increase? I can only speculate, but here are a few theories:

1. The cost of living is increasing (especially in Boston) and this is just accomodating for that.

2. Software Engineers have high demand and low supply. The bust from the late 90's discouraged many college students from getting into the computer science/engineering field, so there's fewer and fewer people with the experience and skills that software companies need. There's also statistics suggesting that software engineers will be one of the fastest growing careers between now and 2014.

3. We're just that flipping amazing.

Wednesday, October 11, 2006

Does It Really Pay To Be Different?

Growing up we all heard the same old cliches about celebrating our differences and being a unique individual:

"Dare to be different!"


"Normal people are boring."


"Just be yourself, regardless of what people think about you."



You've probably heard these so many times that the words have lost all meaning, although they occasionally remind us to make that extra effort to do something that makes us different than the norm. Nobody wants to consider themself a cookie-cutter copy cat; we want to be unique, different, revolutionary people, and not normal, average, boring people. But the question still remains: Is it really better to be different over being normal?

Consider the simple definitions (from dictionary.com):

NORMAL: conforming to the standard or the common type; usual; not abnormal; regular; natural.

DIFFERENT: differing from all others; unusual.

Normal people conform to standards, that's what makes them normal. Their personalities, ideoligies, political views, hobbies, activities, careers, opinions, fashions all conform to standards. By conforming to a certain standard, normal people find themselves in a crowded boat with many other people that have the similar personalities, ideologies, political views, etc. As you would expect of normal people, they are one of many. Picture your typical business executive, with fine clothing, drives a Mercedes, has a big house, plays golf, watches sports. Or consider your typical computer geek, with jeans & a T-shirt, is pale and out of shape, lives simply, loves tech toys, plays video games, spends lots of time on the internet, doesn't give a shit about sports.

Unique people create their own standards, that's what makes them different. They define their own personality, their own views. They choose their own activities and hobbies that are far from common. These unique people find themselves alone (for the most part) in all of these categories. Sure, some people might share similar hobbies or views, but in order to be a different person, your whole spectrum of personhood should match up with very few people. So, the computer geek is far different from the business person, but there are many computer geeks and there are many business people who meet the aformentioned profiles.

The unique people that I am speaking of are the ones who are different on all fronts and don't fit a specific profile. Picture the business executive who drives a Mercedes and has a nice house. Now picture him wearing the casual jean/T-shirt combo. Picture him playing World Of Warcraft and talking with his online friends about Why You Should Put WoW On Your Resume. This is a unique profile. Now picture the computer geek as a 6 ft. 5 in. physical specimen. Sure, he spends his job in front of a computer, but after work he spends 2 hours at the gym, and on weekends he competes in Mixed Martial Arts tournaments. There aren't too many business execs who play online computer games, and there aren't too many nerds that are professional fighters.

I still haven't answered your question. Is it better to be unique or is it better to be normal? The truth is that normal people have many advantages, the largest being the ability to more easily communicate with and relate with a larger audience. If the majority of people are in the same boat as you, then you have a lot of easy connections to make and a wide network to reach out to. Remember that normal people have standards all over, and one of these is communication standards. Their language is a common one, while a unique person defines their own language standards. I'm not saying that unique people make up their own language, but there is certainly a communication gap between these unique people. Normal people can explain themselves with references and analogies to sports. If you start making World Of Warcraft analogies to the average person, they are going to look at you like you have 3 heads. Suddenly, the way that you understand things does not match up with how others understand things.

While normal people carry the networking & communication advantage, unique people hold the ground on innovation and revolutionary ideas. They think outside of the box, because that is where they exist, it's what they know. Normal people stay in the box, and can really only follow along with ideas that are placed in front of them. Their mindset is constricted by their sociological and pshycological norms. Normal people live in a closed box, and are relatively unaware about what exists on the outsde, nor do they care.

My advice? Be unique, but remain aware of what's happening within the box of normality. If you think different, but can communicate with the normal, you'll find yourself with a great advantage over those who are just plain normal or whackily different.

Monday, October 09, 2006

Getting Ready For Your Entry Level Software Interview

So, you're fresh out of college and want to take your Computer Science/Computer Engineering degree into the software field? What you learned in 4 years of college might not be enough to get you through round 1 of your interviews. I know this because I just went through it and thought I would share some advice with others that will soon be interviewing for entry level software engineer positions. So here's a few things that can help you land that job:

Understand OO Principles

If you got a degree in some form of computer field, you probably did you fair share of object oriented programming. You've heard of inheritance, polymorphism, and encapsulation. You know the difference between private and public modifiers. But do you know why all of it is important? Well I've had 3 interviews where the first question was, "Can you explain the main principles of object oriented programming and why they are important?" I listed them above (inheritance, polymorphism, and encapsulation), but you need to know that we use these for reusability, robustness, easy maintenance, etc. You also need to know why we want our code to be reusable, robust, and maintainable (it saves time, money, headaches). Go to Wikipedia, open your textbooks, do whatever it takes to know this stuff.

Know The High Level Stuff

Employers think it's great that you got some real world experience at your internship or co-op, but if you can't explain your understanding of a software system at a high level, you're in trouble. You could work on small pieces of code in a J2EE or .NET application and get pretty good at knowing the code in that particular system, but if you can't explain what the JVM is or what the Common Language Runtime is, it means nothing. It would do you some good to purchase or borrow a book for whatever language you are interviewing for (this is an almost obvious statement, but people don't think it's worth the $$$$). You don't need to read every chapter, but definately read the first one or two where everything is explained at a high level. You are guaranteed to be asked several high level questions pertaining to a particular framework or technology.

Learn Design Patterns

I have been asked about design patterns in every single interview I've had within the software field. It might be a while before you are truly exposed to them, but your employer wants you to know them, because it exemplifies good programming practices. The most common design patterns I've been asked about are Singleton (probably because its the easiest), Factory, and Model-View-Controller (MVC is a must-know for web applications).

Know What A Relational Database Is

Most computer science majors took a course on relational databases, so if this is you, you already know this stuff. Many computer engineers do not take any courses in this category (and some CS majors do not), so if you don't know anything about relational databases, you should learn. Every modern application interacts with a database in some form, so even if you aren't aspiring to be a database engineer, you should know what's going on. If you could only learn a few things about relational databases, know what these terms mean: one-to-one, one-to-many, many-to-many. It might also be a good idea to know some simple SQL statements. (I was once asked to write a few query statements to retrieve some data given a database schema, nothing terribly complicated, but if you haven't done a query statement, you might look bad).

Practice, Practice, Practice!

There is a good chance that you will be asked at least once to write a program in a short window of time. If you've never done anything of this sort, it is very different than writing a program with unlimited time and a wide array of resources available to you (APIs, IDEs, Google, etc.). You really need to be able to write your program on paper or a command line and not rely on external resources. You won't need complicated API functions or anything of that sort, so don't go memorizing anything outside the common stuff. The test is really to see how well you can problem solve with a little pressure applied. You really need all of your energy to focus on writing the required algorithm in an efficient manner. You don't want to get caught up in remembering syntax (which they don't really care about anyway). I highly recommend going through your old programming books and doing the exercises at the end of the chapters. Time yourself and don't use anything that you won't have at an interview. When you're finished, check yourself and see if it works and if there are any ways to improve it. (During my first interview I wrote the correct algorithm, but the interviewers quickly explained to me how it could be better, don't put yourself in this position.)