Thursday, March 11, 2010

Interview with Scott Pio on Programming

Posted by Scott on 13. March 2009 05:30

I was interviewed a while back for a paper about software engineers from Stephen.  He gave me several questions and I tried to answer them to the best of by abilities at that time.

1. What do you enjoy about your job?

My job is a little different than most Programming jobs, because I do it for the government.  I work on a special specific project that contribute to national security and even international security.  The fact that as a government contractor you have to take a large amount of security measures to make sure your software doesn’t break in front of the customer during mission capable times is something to be stressed over.  Most software these days can have several hundreds of “known” bugs, but when your a government contractor, you need to make sure your software is vetted with no “known” bugs or problems.  Testing in this environment can be large while writing the actual software it self can be small.  The problem has to be thought through before one line of code is written.  There is a famous quote that goes “80% mental, 20% execution” and programming is no different.  You don’t want to have to rewrite your code so a lot of mental thought has to go into it.

On a side note, my almost favorite thing to do is experiment.  Most programmers are required to push out a certain amount of code a week.  I don’t have any restrictions and have the ability to experiment a lot.

2. What characteristics make a great programmer?

Characteristics and values are two different and two of the same thing.  A man named Ben Rady said it best in terms of values:

Programmers value:

  • Working software
  • Clean Code
  • Rich Communication – I think he meant here that you must be able to tak back and forth with another programmer.
  • Flexibility over efficiency
  • Sustainable Pace – Don’t over pace your self
  • Simplicity – Code needs to be as simple and as fast as possible.

I take those values to heart.  As a programmer you must have those in order to work in the field.  You don’t have to be ethical, but you need to start with those values.


Photo by Joi

As for characteristics:

I would base it off a list generated by Steve Riley, (he made the list and I will explain it a bit more.) 

  1. Be a great problem solver – If you think about it, software is solving most problems today in the world.  In either making life just plain easier or just solving a paper process.  Someone has thought about all these problems when they first started and most software made today just makes those problems just easier and faster.  This is a number one for me.  You must be good problem solver.
  2. Being Lazy and driven at the same time – When you are lazy, you want the fastest and easiest possible solutions.  When you are driven, you will get the job done no matter what.  If you combine the two, a programmer who is lazy and driven will both find the fastest and easiest possible solution and make sure he gets it done.
  3. Ability to understand other peoples code – A simple fact is, as a programmer you will be going over other peoples code in either examples you find or old code that has done the project your now upgrading.  To give you the best example of this.  Microsoft Excel 2003 and 2007 have completely different code bases.  The code is completely different.  The programmers need to read the old Excel code and generate their new code.  A simple but not very well known fact is that Microsoft programmers took Excels old code, Commented it OUT entirely and rewrote the code.  The commented out code is STILL in the 2007 source code because they always want to see how the programmers in the past did it.
  4. Have a passion for programming – Its going to be your life long job, I would hope you have a passion for it.
  5. Love learning for the sake of learning – If you don’t learn, you will NOT succeed in the programming world today.  Code, Frameworks and new languages come out every two years or so.  The programming art is still very young.  The community is still very young and in its infancy.  Its still growing up.  You have to realize this and keep up with the community.  It is a requirement.  You have to enjoy to keep learning.
  6. Being good at math – Now I don’t know the stats of how many programmers actually deal with real math, but I think its probably dwindling a bit.  A professor out of MIT said “A good Programmer has been programming for 2 years.  A Great programmer has been programming for 6 years OR has been programming for two years and has taken some algorithm classes.”  That quote explains it all.  Its about how high you want to go on the totem poll.
  7. Having good communication skills – You have to clearly express your thoughts to other people.  They don’t have to be socially inept, just make sure they can give a little straight talk.
  8. Extreme Optimism – It goes right along with problem solving.  You have to believe you can do it or you will never be able to get it done.  There are big problems at my company that I experience on a daily basis.  You have to make sure you believe you can get it done.

3.    In detail, what do you do in a typical day?

I can’t truly explain in detail, but for the few few minutes of my day, I look over any email that has been sent.  My email is somewhat the first notification if my software has failed.  So I see if any problems happened over night. I then catch up on any reading that is needed.  I don’t surf the internet, but I must spend a few hours a day researching and learning.  Due to programming being my full time job, I do require that I catch up on the recent news and try to learn something each day.  I don’t pick up a book, but I actually read a bunch of articles and code demos online till about 11am.  I have subscribed to about 50 or so blogs that I go through each day.  I can justify it by not having to pick up a programming book each day at work.  Instead I get the free stuff out on the internet. I would suggest every programmer do the same thing.  Its another reason why the IT book market is crashing terribly.  Everything is being learned now these days from demos and tutorials online.  There is no need for a book really these days.  At about 11 am after getting into work by 8am, I start to get into the mode of programming. I work on code for the rest of the day.  I think Microsoft expects their programmers to write about 200 lines of code a day.  I think I touch this and sometimes surpass it.  I code in ASP.NET and C#.  So does Microsoft.  These days, It is a known fact that Microsoft uses 98% C# and no C++ anymore.  C++ is starting to mellow out.  I go home at 6pm each day after a full days work and taking a few 5-10 minute breaks in between. I then start programming on my startup projects at home.

4.    Where does one look for programming careers?

Just throw your resume up on Career Builder and job listing sites.  If you have at least a years experience, its not hard to get a job these days. Even though the economy sucks, Technical recruiters are still seeing a double digit growth in recruiting for IT related jobs.  By the time recruiters salvage through career builder, you could probably get a few calls a month for programmers in your area.  Its still very easy to find a job as a programmer.  Look for job boards.  Most big bloggers these days have job boards.  They are a great place to start.  I must say, that if you can code and are in college or highschool still, don’t think about getting a job.  Think about creating a startup business.  Create a website and make a bit of money off of it.  Venture capitalists are looking to seed money into startups more than ever these days because of the economy.

5.    If you could go back in time to your first day on the job, what advice would you give yourself?

Don’t fret, everything will happen in time. You will learn all you need to learn and you got the job.  Now all you have to do is keep it.

6.    What are some downsides to being a programmer?

I get bored super easy at work.  There is no challenge for me.  Its all meaningless.  Its almost like getting to do busy work assigned by your teacher.  They just give It to you for you to stay busy.  Programming can be like that sometimes…

7.    What is the best thing about being a programmer and why?

This is an easy one.  If you have a big imagination, its super easy to create anything you want a computer to do.  Its one of the most gratifying things in this world.  It’s the same reason why bridge builders love to build bridges or why architects love to design.  When they see there work done and in use, its absolutely a thrill.  The programmer though has the ability to make software faster and cheap.  Bridges still need many people and could cost millions.  Software doesn’t need many.  Its very easy for a programmer to get started and have an application working and in use two months down the road.  It’s a thrill to build something and see it working.

8.    Tell me something about your self?

I got expelled out of high school for hacking.  I was the first in my high school to be caught for hacking.  It was a first for them.  When I went back the next year, I was not allowed to touch a computer at all, unless supervised.  I was surprised I got my security clearance with that on my record.  I was still underage, but at the age I got hired and the investigator to go back ten years, they could have seen that on my record.

9.    How did you acquire your job?

You know, this is an interesting topic.  My college had plenty of those college board jobs.  The job boards you get straight out of college.  Well I had a bit of technical knowledge already after working a bit in a good environment at my work study position on campus.  I went to career builder and for the next 5 weeks every weekend, I would apply for up to 75 jobs each week. After that, I got a few calls and then I nailed one.  As good as that.  The pay was low, but all I wanted was the experience to start off with and now I get calls from Microsoft that I turn down just because I don’t want to move.

By the way, for your paper, My name is Scott Pio, my domain is www.spoiledtechie.com and www.scottpio.com.  If you need more bio about me, go to spoiledtechie.com and click on the about tab.

Scott Pio


If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

How to Create a Threaded Comment System with ASP.NET

Posted by Scott on 4. February 2009 05:49

A few days ago I was designing a threaded comment system for Drinkingfor.com which allows users to reply back to other users directly instead of a flat comment system like you see at most other places.  I made my argument for threaded comments over here and why they should be used.  I didn't know where to start or how to write the code.  I had a pretty good idea on database design which was decently simple.  Each comment shall have an owner comment.  The treeview is the best example of what the data in the database should look like.  As for how to display this out to code is another problem.  I ended up searching on the internet and found a man who created hierarchy class which is exactly what I needed.  The Hierarchy class selects the information from the database and organizes it into a cached treeview.  I ended up talking to him and he had explained to me that he was refactoring the class which will allow it to run faster.  As for how I implemented the code to write out HTML, I ran through the hierarchy class recursively and then created html for each node found.  The class was quite impressive and I included some sample code below.  I didn't want something like this to be wasted and hope everyone can put it to good use.


Photo by jurvetson

I also wanted to give a shout out to Stefan Cruysberghs and say thank you for creating this class and posting it up on the net.  Now to keep with the current standard, I will post up my execution of his code.

ThreadedComments.cs (5.98 kb)


If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

If I was a programmer still in college, I would...

Posted by Scott on 3. December 2008 17:32

I was mentoring some kids the other day about being in college as a programmer.  Heck they could even had been kids in high school.  The ideas stated here still apply.

  • still worry about grades - Grades get you the job, but they don't keep your job.  Learn new things and relax off the grades a little.  You don't have to always get that A in class.  Unless you're going for a masters or PHD right after your bachelors, relax and have a little more fun.
  • put down the video games - There is much more to life than video games and chatting with people online you have no idea about.  The biggest thing that got me to put down a controller were the questions that "If I disappear tomorrow in the gaming world, will I be missed?  If I disappear tomorrow in the real world, will I be missed?"  There is a big line in spending a bit more personal time with your real friends compared to just some people on the other side of the world.
  • go out a few more times - I am two years out of college and I sure do miss it sometimes.  The interaction with all the people.  The not having to worry about bills and not waking up to a 9-5 job would be amazing again.  On a side note: I do think I have grown out of the parties a bit.
  • have thought of a GREAT IDEA and gone with it - It was the perfect time to focus less on college studies and more time on a great business/web 2.0 idea.  I had plenty of time where I got bored, I should have focused it towards a great idea and making it happen.  Now a day, I get home at 6pm and only have about 3 hours to work on my ideas at home.  I don't have much time left in the day to actually get my business ideas up and running.
  • join a Fraternity - It is a known fact that more than 75% of CEO's have been in a college fraternity.  It is a known fact that you get resources and jobs just through your fraternal world.  You get connections beyond your belief and you get a better social life in college.  Instead of playing those video games by your self, you could be enjoying a great time with friends that you have a close bond with.  Sure you might think of it as paying for friends, but I thought of it as networking and a social life.  I did join a Fraternity and got much more than I expected out of what I put in.  For a college job making $7.50 and hour and only working 10 hours a week, I was able to pay for my fraternity and social life.  It was a great bargain!
  • have thought of a GREAT IDEA and gone with it! - I know it is a repeat, but I fear it was one of my biggest mistakes in college.
  • have learned a real programming language - Java and C++ are no longer really used these days outside of academia.  Some people will even argue that java has become too academic.  I know Ill get some flack for this, but I consider it to be true.  Did you know that Microsoft uses 98% C# in its work environment?  I wouldn't learn PHP now seeing that Microsoft gives out its IDE and workspace extremely cheap these days to students.  Java and C++ are a good free language.  Even if you don't pick up two languanges, at least pick up one.  Learn one programming language and build something with it!
  • not let my teacher hold me back - teachers can sometimes not care too much about students.  Don't let them hold you back.  There is a BIG saying at most big universities which is hard to get away from.  "Publish or die" Teachers are required to publish at universities.  Unless they really like teaching, they are required by the university to publish or leave. They don't care much about the students. Don't let the teachers hold you back.
  • try to find a mentor - You can never have too many mentors.  I wish I would have found one to guide me along the programmers trail.
  • have run with my great idea! - I know I said it once and twice, but this is the biggest thing I look back on and think I should have done that!
  • not own a credit card - Spring break is fun for a week, but bad credit last for 7 years or more.  Don't own a credit card and repeat mistakes of others.
  • Last but not least, Be controversial! - Don't be hated, but be controversial. Make sure you get your point of view heard.

This is only a short list and I imagine there are many other things in that period of time I wish I would have done, but this list will not die and will keep growing.

These thoughts are more of advice than a memory.  You can do what you wish with them. 

  • "Be careful whose advice you buy, but, be patient with those who supply it. Advice is a form of nostalgia, dispensing it is a way of fishing the past from the disposal, wiping it off, painting over the ugly parts and recycling it for more than it’s worth." - Baz Luhrmann
If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

SEO and BlogEngine.Net

Posted by Scott on 19. November 2008 21:12

In the world of blogs, people can find many types of Blog Engines out there.  The list is vast and non-exclusive which includes but is not limited to:

  • Google Blogger
  • WordPress
  • BlogEngine.Net
  • SixApart
  • Movable Type
  • InstantSpot
  • And More...

I am not here to discuss which blog is the best.  I am here to discuss the transformation of the SEO (Search Engine Optimization) that BlogEngine.NET has succeeded in. SEO is a big game in the world of having an online presence.  You need people to be able to find what they are looking for and get out.  People don't want to spend forever looking for something that they want to solve.  That is what made Google so popular is the fact that they have search well established and it works.

After BlogEngine.NET released version 1.2 (currently at 1.45), they sent out a call for new ideas and thoughts.  That call was answered with many comments, but one in particular I think helped shape the strategic world of BlogEngine which gives it the ability to compete with the other blogs listed above. The user called for many upgrades in BlogEngine for SEO and I think they listened.

Big SEO request (and, honestly, slight aggravation),

The main blog index page is not very conducive to SEO. You have two fields in setup. First field is title, second is description. The description should NOT be appended to the title. If I want it appended to the title, then I'll add it myself in the title field. Further, I do not want my "Pages" in the keywords. I want to add my own custom keywords for the main page. The only other option would be for me to re-create the home page as a separate page and add custom keywords and description, but that's pain. (Please note, that the posts pages are fine. I'm only talking about the front page.) Now, when you look up my site in google, the description is messed up. And, unfortunately, there's no way to change it until the next release. I can't disable your description and keyword mechanism either. It would be great to at least be able to put my own description and keywords in the custom header, but google treats that as "overlooading" and throws both references of the META out.

From an SEM, I must say while the project as a whole it a great piece of work, the SEO, however, hasn't been thought through enough.

Please fix.

I can't tell truly where the changes were made, but they were as in what I can now show you. If you search for any of these topics, you will find my blog in the top 15 or 20 results or even higher.

The facts show for them selves.  BlogEngine.Net has a large amount of SEO maintained in it.  It does a great job with it.  The code is beautiful and works well unlike a platform like WordPress where the code is just a mess.  In choosing a Blogging platform/engine, I would hope that everyone gives BlogEngine a very close look as for it is one of the best I have seen.  The engine has come a long way and hopefully will continue into the far reaching future.

The basic idea of this post was to show you that if BlogEngine.NET does one thing GREAT, then it most likely does other things GREAT as well and should be extensively looked at before starting a new blog.

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

What Gives? Microsofts Code Generation Tool

Posted by Scott on 17. November 2008 21:48

In a world of Microsoft and third party applications, out comes t4.  t4 is a code generation tool that can compete with CodeSmith, but its FREE and built right into Visual Studio. It has been years since the first edition with very little publication of the actual application. t4 is a free code generation engine from Microsoft that underpins the Domain Specific Languages and Software Factory toolkits.  t4 is a rich code generation and has the ability to stand up against and compete with CodeSmith.  I have used both Codesmith and MyGeneration a lot in the past few years, so I have seen the competition.  What is nice about this old/non publicized tool is that it is built directly into Visual Studio 2008.

t4 is being spear headed into the open source market for free templates by Oleg Sych.  It brings a long a toolbox which can also be download with extra templates along with a GREAT T4 Editor which of course is also free.  There is not more need to spend money on CodeSmith, when Microsoft will do it right out of the box with Visual Studio.

Some have speculated, why hasn't Microsoft published this tool to a greater extent.  We can only think that it has to do with being a Gold Partner.  Microsoft doesn't like to lose Gold Partners and therefore hasn't truly publicized this tool.  The next question you have to ask your self is what can be generated?

  • Site Maps.
  • Database schemas.
  • Session Variables. 
  • Store Procedures.
  • Text Documents.

As of October 2008, t4 Editor has been officially placed as a plug in to Visual Studio 2010, which will boost the ability to generate t4 code through other means besides CodeSmith.

Demos and Other information can be found below.

Point of concern: If your company currently uses CodeSmith, wouldn't it be nice to tell your boss what you found could save the company a few hundred dollars by using something that is already built into Visual Studio? So why not give it a try and save a little money doing it?

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

In programming, clever != smart.

Posted by Scott on 10. November 2008 21:52

You ever have one of those days where you think you are the smartest man in the world and the best programmer at your place of work?  Then some clever kid comes along and does something that speeds up your code by a few seconds/minutes?  Ease your self.  Just because that person just solved your problem, doesn't mean they are smart.

"In programming, clever != smart." - anonymous


You work all day on a certain project, take a step back and look at it.  Its some of the beautiful code you just created, but you are hung up on this little issue.  Along comes some programmer and they solve it for you. When I was in high school or middle school and I was getting off the bus.  One day I heard one of my bus drivers say to a girl.

"You might be book smart, but your not street smart" - anonymous 

I tend to think that I am about in the middle of this quote.  I tend to think I am both book and street smart.  I imagine most people do.  Book smart programmers tend to be better at writing code then their street smart counter part.

The book smart programmer (smart):

  1. tended to focus more in school on classes including algorithms.
  2. tended to have less of a social life due to studying more or less depending on how fast they got solutions to projects.
  3. tended to be either inside playing video games or working on a cool project that could solve the way USB drives communicated to computers.
  4. tended to have soda cans and candy around while staying up late around his computer.
  5. tended to get better grades.


The street smart programmer (clever):

  1. tended to focus a bit more on going out and socializing.
  2. tended to focus a bit more on girls.
  3. tended to copy and paste code.
  4. tended to join a social organization.
  5. tended to have a bit more fun in the activities they thought up.
  6. tended to get a little lower grades.


This reminds me of the movie "Real Genius". Where Chris seems to have both of these types of people tackled.  He sees Mitch and he sees the old him.  The book smart programmer(laser tech).  Mitch is stuck with trying to do the best in college that he can. Then one day, Chris gives Mitch a little lesson. He lets Mitch know that college and life can't just be all books.  It has to be books and fun.  It has to be smart and clever. Sure clever != smart, but wouldn't it be good to be both? Wouldn't it be satisfying to be Chris and let Mitch slack off a bit.  They are both geniuses.

I went to college for four years, I did my fair share of partying and I didn't graduate with the best GPA.  For a Computer Engineer, it is a pretty shameful GPA.  Though I got a real job before even graduating.  I had done some work on the side while still in school.  I got an intern with my college Fraternity. This advanced my ability to show my future employer I can have a real job and keep it.  I am not saying stop all your studies now, but live life.

Programmers need to both be smart and clever. Not just smart and not just clever.  If you want to tackle the real issues, you can't keep writing code all day and every day.  You need to just step out and have some fun.

"Don't let Life pass you by..." - Scott

I am not trying to be a philosopher, but what I am saying is find your true happiness in life.  Be smart and clever.  Don't get stuck on always trying to be the best or smartest, but make sure you Get the Job Done at the same time.

P.S. I always tend to start on one subject and completely finish with another by the end of the post.  This one is no different. hah.

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

The Sex and Cash Theory for Programmers

Posted by Scott on 3. November 2008 22:23

When I go to work, I do it for my family.  When I come home and work on my hobbies, I do it for my self.  Its called the Sex and Cash Theory. Everyone in the world does it.  Everyone in the world practices it.

I came across this theory from a comment left on one blog posts.  You can always learn something from your posts.  This one was a bit different and needed to be researched a bit and now I will apply it to computer programming.

THE SEX & CASH THEORY: "The creative person basically has two kinds of jobs: One is the sexy, creative kind. Second is the kind that pays the bills. Sometimes the task in hand covers both bases, but not often. This tense duality will always play center stage. It will never be transcended." - Hugh Macleod

I am a multitasking, multi-job programmer who works hard for his money at work and plays hard with code at home.  I am currently working on four projects at home which I get to stretch my creative muscle, while at work I do boring and repetitive tasks to insert and update a database.  How lovely.  Like many other programmers, I am no different.  I work the 9-5 for cash, but when I go home I do my hobbies which will some day allow me to never have to work again.

My sex is working at home on my creative muscle.

My cash is the 9-5 working hours.

Working at home allows me to build my portfolio as a programmer in jobs I believe in.  I wouldn't spend my alone and girlfriend time if I didn't believe in these projects.

Almost all creative people including programmers have to go through it at some time in their lives.  They too practice the Sex and Cash Theory.

  • Its like the actor who waits tables to pay the bills in their small apartment until they get noticed for their great ability.
  • Its like the artist who struggles with their paintings, until they get truly noticed which usually happens after death for artists.
  • Its like the programmer who codes during the day, but hacks pushing out the worlds greatest program at night.  It took a year for this hacker to get their application out, but after being noticed by a VC they finally can stop working for the "cash" and start working full time for the "sex".
  • Its like the open source programmer who works for a big corporation where people buy the software he writes, while at home he gives his services for free to everyone.

What a great life us creative folks have.  It takes what seems to be a half a life time to get noticed and then when you finally do, you are past your prime. I say, practice the theory and someday you might also get noticed.

The Rule: If it turns you on, it's your sex.  Enough said.

My M.O. is spoiledtechie.com along with my four other projects, what's yours?

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

The Self Improving Programmer

Posted by Scott on 29. October 2008 22:34

Money never made a man happy yet, nor will it. The more a man has, the more he wants. Instead of filling a vacuum, it makes one. - Benjamin Franklin

"Money can't buy you happiness, but it can buy you extra time to be happy." - Scott Pio

Today after a successful twelve days of blogging, I made my first dollar.  I am at $1.03 this present moment and I am still moving upward.  Most small businesses always have a commemorative dollar sticking up on their wall so everyone can see. At this present moment, after making my first dollar, I don't feel any different and I don't think after I make my first hundred dollars will it feel different either.  I am a person who doesn't worry too much about money and seem to always be okay with the amount of money that comes in my door.  I always seem to sustain my current lifestyle which isn't much and don't ever seem to have to worry about money.

"I am a computer programmer.  There will always be work for me."

If there will always be work for me then why write a blog?  First and foremost, I will be honest and say I am doing it for selfish reasons.  A bit different than what the readers might think, which isn't for money. In school and now at work, I have always been told I write like I speak.  I shouldn't do that.  In high school, I got around a 400 on my American SATs which at the time the max was 800.  I wasn't a great writer by any means, I'm still not.  I am a technical person.  I write to this blog to further increase my writing ability.  I want to make a better writer some day, which means practice makes perfect.

So why mention the money? Why can't I get paid to write what I say.  Why can't I make the measly 10 cents per post that I write up? I suggest if your a technical person, that you make a goal to start writing if you care where you might be in ten years.

Programmers and technical people in general need to learn how to write better.  They need to learn how to comment better.  They need to learn how to write proposals better.  Programmers might write in several places, but to name a few.

You might write:

  • A business plan for when you deploy your first startup.
  • A white paper explaining the next best idea to help increase programming efficiency.
  • A business case analysis for that startup you just created.
  • A proposal for that TOP SECRET Government contract that will put your name down next to Albert Einstein.
  • A argument for or against Microsoft/Apple/Adobe/Google products that could end up saving you or your company MILLIONS.
  • A technical manual for use of that TOP SECRET government project you just created.
  • For a magazine article.
  • Your next speech to the WORLD explaining to them why you are the best programmer in the world.

These things are some what far fetched, but you really don't know when you might be put into that position.

So write articales, do a journal and write often.

"It is better to have tried and lost, than to never have tried at all." - anonymous

Programmers seek to improve them selves every day with beautiful code, but why not also seek to improve your self every day with your dialect?

For me, I am happy when I improve upon my self, not upon my wallet.

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Thank your local programmer

Posted by Scott on 28. October 2008 22:55

"Who started it all? Who made the world a better place for all programmers?  Who should we pay homage to as programmers?"  When asking these questions, who do you think of? One thing I was never taught was who were the first successful programmers?  Who made my job what it is today?  Of course you have Bill Gates and Steve Wozniak, but they weren't the ones who started it all; only the ones that made millions from it all.

The first and foremost programmer was:

  • Ada Lovelace - She was the first person to write an algorithm that was expressly intended to work on mechanical computer by Charles Babbage. She died at the early age of 36, but has remained for ever in the programmer's hall of fame. The programming language Ada was named after her which was first used by the U.S. Department of Defense.
The following are a list of notable programmers, for if it weren't for these frontiers men we would still be about 20 years behind.

  • ENIAC -This giant machine was considered the first giant brain when it was released to the press in 1946. This machine needed the first working programmers Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman.
  • Leonard Adleman - Co-inventor of the RSA algorithm which also coined the term "Computer Virus".
  • Paul Allen - Co-founder of Microsoft.
  • John Backus - Creator of FORTRAN.
  • Tim Berners-Lee - The person all internet startup companies should pay homage to.  He is the creator of the World Wide Web. The Internet.
  • Richard Brodie - The creator of Microsoft word. For all those against Microsoft, you have to agree that we would still be way behind if it not for this guy.
  • Walter Bright - Creator of the first C++ compiler.
  • John D. Carmack - Creator of Doom and Quake.  This man changed the average time spent on the computer.
  • Bram Cohen - Creator of the BitTorrent Protocol.
  • Alan Cooper - Creator of Visual Basic.
  • Alan Cox - Creator of the Linux Kernel.
  • Ward Cunningham - Inventor of the Wik.
  • Bill Gates - Co-Creator of Microsoft.
  • Jawed Karim - Creator of YouTube.
  • Mike Muus - Author of Ping.
  • Jarkko Oikarinen - The creator of IRC.
  • Bjarne Stroustrup - Creator of C++.

These programmers are the most notable of our field today and have been for some time.  They are the guys we should say thank you to.  For those interesting factoid kind of people.  I would like to point out that the first programmer is a woman in an industry that is dominated by males. Go figure!

Programmers have a way of making the world a better place.  Making it a place where things get easier and life gets faster.  Programmers save lives, prevent natural catastrophes (hurricanes, earthquakes, tsunamis) in which BILLIONS of lives have been saved by your average programmer sitting in a cubicle somewhere making the next best digital widget that could end up saving your life.  Computers are everywhere so lets not forget that code from a programmer is also entrenched in our daily lives. 

Moral of the story: Thank your local programmer! They might not be preventing heart failure in a pacemaker, but they are making the world a easier place to live in!

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

What class of programmer are you?

Posted by Scott on 27. October 2008 14:29

"People can be divided into two classes: those who go ahead and do something, and those who sit still and inquire." - Oliver Wendell Holmes

What kind of programmer are you? In today's world of programming, the average programmer does not sit on the bleeding edge nor do they sit on the back burner waiting for the coils to get hot enough to jump ship.  You have to change and evolve.  You have to keep moving forward.

Programmers generally move forward to a new product every few years, but also sit complacent when they don't feel threatened.  Like one of the Militaries favorite quotes, "If it ain't broken, don't fix it." The military is a reactionary force along with the average programmer.  The programmer that moves ahead in the world is not the average programmer.  They are a programmer who moves forward, who thrives for the best.  Who sees a problem and fixes it.  They do not wait for the problem to come about and then go about fixing it.  They are ahead of the crowd, the first kind of programmers are your Bill Gates, Steve Wozniaks, Scott Guthries, Paul Allens, Steve Capps, Justin Frankels and Jarkko Oikarinens. The first type of programmer wants to innovate, move around and make things that help humanity.  These are the programmers I look up to.  As of recently these types of programmers have gone into hiding at Microsoft, but not Google or Apple.  Why is it that most of Microsoft's programmers (Microsoft employees) fit into the second class of people.  These days, Google is the innovator.  Google's employees fit into the first class of people.  They are now the company to beat in the programming world.  They are the ones that everyone else is trying to play catch up with. Microsoft has lost a lot of its innovative programmers and they have moved to Google or decided to venture into their own startups.

If Microsoft wants to compete in Google's world, it has to accomplish a few great things. The first thing to do would see how Google works.  See what they do to make great software.  If Microsoft fails at this, they will not be a company in the next twenty years. Microsoft has to go back to the basics.

"Competition always creates an environment for innovation."

Microsoft tried to compete with Google over two years ago today.  They started a service that could have created such a competitive environment, but they fell complacent. Therefore they fit in the second class of programmer. 

What was this service? Live Labs. Google has launched over 30 innovative products from their labs, so why has Microsoft launched only six in the passed two years?  Microsoft has become complacent. This post is not to slam Microsoft on their shortcomings.  It gives you a difference between what the first class of programmer looks like compared to the second class.  Microsoft is neck deep in the second class of programmers with only a few truly innovating, while Google is up to its knees in the second class of programmers.

I would like to hope since your reading this, that you are not falling complacent.  That you have an innovative environment around you.  That you are pushing the thresh hold of your very fabric. I hope that you are not like Live Labs, but actually like Google Labs. Always creating, always innovating. The average programmer sticks with Live Labs, but the first class programmer is Google Labs. Be Google Labs. Become better than you are.

Microsoft launches its Google Labs - Here is an article from January 06 that had hopes of Live Labs competing with Google Labs.  Microsoft wonders why people are flocking towards Google.

"The country needs and, unless I mistake its temper, the country demands bold, persistent experimentation. It is common sense to take a method and try it. If it fails, admit it frankly and try another. But above all, try something." - Franklin D. Roosevelt - 1932

Don't just stand there.  Go ahead and do something! The world is waiting for you to experiment. Be the first class of programmer!

kick it on DotNetKicks.com


If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark