Tuesday, January 20, 2009

My Addiction

Ladies and Gentlemen, (I shouldn't use plural I suppose...no one is reading...oh well!!)

If you don't already know about the site stackoverflow.com, you should(Unless you don't like programming).

It is a website based around asking programming questions and getting good answers.

The founders of the website, Jeff Atwood and Joel Spolsky are well know bloggers. You can visit their respective sites at Coding Horror and Joel on Software. I would recommend reading their stuff.

The coolest part of the website is the reputation system. When you begin at stackoverflow, you have 1 reputation. As you ask and answer questions people can vote you up or down. The more votes you get, the more reputation you get.

As you gain reputation you gain new abilities on the site. You become more and more like a moderator.

First you gain the ability to vote people down, then you can post comments. Eventually you will be able to edit other peoples posts and close questions. (To learn more about the system visit the unofficial FAQ at stackoverflow.)

It is all rather exciting.

The best part is you learn the whole time. Stackoverflow has a community of brilliant people already built up. Just browsing the site for a few minutes will teach you something that you didn't already know.

You can find me there by the name jjnguy.

Why I Don't Read (Programming) Books

Since I started programming I have not found books useful. There are a few reasons. I shall rant about them below.

I don't read books.


Reason 1: By the time a book is printed it is already out of date.
Technology is changing so fast these days books cannot keep up. Sure, there are some things in programming that don't change much. However, all of that content can be found online already (see reason 2).

Reason 2: Everything can be found online (for free).
RTFM (Read the f%@#ing manual) has now been essentially replaced with GI (Google it).
Granted the acronym is not as good now, however, the information is now much easier to find.

These days, instead of having a printed copy of the Javadocs, you can simply google them.

Sure books are good reference material. But the internet is better. The only requirement you need to make the internet a better tool than a book is good searching skills. Luckily, google makes easy to be good these days.

People who grew up in an age before the internet needed books. The book was the only reference there was. It may be hard to realize that there is so much great information on the internet without trying to find it. If people always go to their book to look up a quick reference thing, they will never see all of the quick information that is available on the world wide web.

With the vast amount of information available online, why would anyone want a book?

*Obviously, if you don't have an internet connection, a book will be much more helpful than the internet.

I don't like reading books.

Reason 1: They are filled with things I don't want to know.
Programming books these days are huge. Not only does it take forever to parse through such a large amount of information it is terribly difficult to do well. The books may have information that I may want to learn eventually; however, they most definitely have information that I don't care about right now.

Reason 2: The information is restricted to one page.
Often times the best way to describe something can't fit on one page. Unfortunately books have to work around that. Drawings are scaled to fit in a small page, or worse, broken up int multiple pages. Reading programs that continue from one page to another is worse than finding a 100 line method somewhere. It is just bad practice. But, books can't always help it.

Reason 3: Programming needs to be done, not just read about.
Sure you can open a book next to your keyboard and read while you type. But that's just really hard. The big books never want to stay open and you have to keep looking back and forth from book to screen. It is just unproductive. I'd rather use the internet.

Monday, January 19, 2009

How To Learn C# in 0 Days

Visit http://msdn.microsoft.com/en-us/library/ms229335.aspx

Then begin programming and refer to the previously mentioned page to resolve any questions.

Prerequisites:
Thorough knowledge of the Java language

To clarify the above:

I have been learning Java for three years now, so I have a good handle on the language. Recently on my job I was tasked with writing a desktop app. They told me that I had to do it in .Net.

'Great' I thought. 'Now I have to stumble through this project for a few weeks while I learn a new language.

I started plodding through after reading a few websites and found that it was ridiculous how easy it was to make the transition to the new language. I am very glad that the syntax for the two languages are almost identical.

So, if you are trying to decide whether or not you should learn a new language and you already know Java, learn C#. You will find it easier than you thought.