Posted by
Scott
on
16. March 2009 05:53
Before I go into detail I must define a few things:
Hacker - is a person who heavily modifies the software or hardware of their
computer system. It includes building, rebuilding, modifying and
creating software (software cracking, demo scene) and electronic hardware (hardware hacking, modding)
either to make it better, faster, give added features or to make it do
something it was never intended to do. Hobby hacking originated around
the MITS Altair.
Computer Hobbyist - A person who tinkered with computers and built new hardware, operating systems and even word processors.
What ever happened to the Computer Hobbyist?
Computer Hobbyists are still around, but they are now called Hackers. In the 60's, 70's, 80's and even in the 90's there a group of people who lived on IRC and bulletin boards. Apple was started by them and they had an anti-IBM sentiment. Years later most of the "old school" computer hobbyist gave up their pursuits and they complained about the big companies and big business revolution that has taken over. The hobby was getting too expensive to keep tinkering with computers. Things were changing every 18 months or so and that was just too rapid for most. This was in the period of about 1985 through 1992 when you needed to buy another desktop computer every 18 months. Most hobbyist bailed out during that time just because it was too expensive. The reason they havn't returned to the scene was that programming was turning into a nightmare. It would now take a full time commitment and most programming languages needed schooling as well. So they left the scene back around 1992. Sad time, but times; they are changing. Programming is getting easier. Code is getting easier to write and now hackers are making modifications to hardware. Instead of creating it, they are now modding it.
Hackers have now taken up the slack as the computer hobbyists have fallen off. Its the changing of the guard. Computer Hobbyist seemed to have turn out the lights in the room and now the lights are back on and in full swing. PC Magazine has fallen off the shelves. They should be reinventing them selves for the new hacker sub culture thats coming into play. Hackers these days can be found deep in their cave working on the next software modification. They work on software and on hardware. They are thriving and making up for lost time. These days, hackers are known to create new startups. These start ups will be the Apple of tomorrow. Apple was once started as a hobby and now there are many companies forming around software and hardware innovation. Hackers are now the innovators of software and hardware. Look them up. A large portion of them can be found on a site like Hacker News.

Photo by Yodel Anecdotal
So if your wondering where the last computer hobbyist went. You don't have to look very far. They are the new guard and will hopefully make the old Computer Hobbyists proud.
Posted in response to Will the last Computer Hobbyist Please turn out the lights?
If you liked this post, please be sure to subscribe to my
RSS Feed.
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.)
- 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.
- 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.
- 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.
- Have a passion for programming – Its going to be your life long job, I would hope you have a passion for it.
- 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.
- 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.
- 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.
- 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.
Posted by
Scott
on
6. March 2009 05:30
I wanted to give a bit of advice to those people getting laid off at this time. It helped me to realize what I needed to do if I ever got laid off and I thought I would put it down on paper.
- First and foremost, Sit down and think where you want to go with your career. Think of it as a fresh start and make sure your choices resonate with your interests.
- Update your Resume. (easy and fast).
- Overdress for interviews. (suit, shave, tie and a haircut) Bad presentation is usually the fastest way out the door.
- Be punctual and polite.
- Relax and be your self. This is probably the hardest to do, but you should think about this a bit more when you get an interview.
- Just be your self, don't fake another personality. In the end, if you act like your self, it will pay off.
- You need a job and they need an employee. There is a reason they are interviewing and spending so much time on this. Don't be afraid to ask serious questions. Last Layoff? Hows the growth?
- Do your homework. Look at things you have done in the past and refresh your mind when they ask you what you did or how you did it.
- Be firm in your salary. Don't go cheap. If you act desperate, then they will shoot low with you, if you are greedy, then they just wont hire you.
- Don't get desperate. If your willing to pick up and move, there are millions of jobs out there for the picking.
- Be willing to take a pay cut. Having a job that pays some bills, is better than not having a job. More experienced candidates will be asking for more money. When companies tighten up, they will want to have the cheaper guy more than the experienced.
- Don't stop searching. Don't take a week off. Search Job boards daily. Not once a week. This includes looking at craigslist for jobs.
- Interview for every job. Even if you don't get it, thats one more person that has seen you inside the company and might pass your resume on to the next interviewer.
- Be prepared to get depressed. You won't win every battle, but you will finally win the war by getting hired.
- Depending on how much you saved, you might want to call your folks up and ask for a bed in one of the spare rooms.
- Research the company your interviewing for. Its better to know about their product than not know anything about it. They will most certainly ask you a question about what the product is and if you can handle it.
- Spark a conversation between you and the interviewer. Talk about your local sports team or the next biggest and coolest thing. Being friendly is another way that you will get points in an interview or even outside the interview.
- A lot of people get jobs through people they know. Sit down and create
a contact list of everyone you know. Send each one an email with your
Resume explaining what happened and that you have hopes for a job. Rank
your contacts from 1 - 5 being close personal friends or people you met
at conferences. Follow up with your friends via a phone call, and then
send follow up emails to the 5'ers.
- If you only have a couple years experience, the older more experienced guys might take your job. Don't try to beat them on experience. Beat them on soft skills, like being a team player, being eager and excited to work.
- Stop spending. Only get needs and not wants. Your bank account will go dry fast if you spend too much too fast.
Got any other advice, please open up and let me know.
If you liked this post, please be sure to subscribe to my
RSS Feed.
Posted by
Scott
on
6. February 2009 05:25
At Start Up School 08, Greg McAdoo spoke about some different ideas on how to get your start up out the door fast. And what elements you will need for a Sustainable Company. The key points are his, but I try to explain it better.
- Clarity of Purpose - One must know what your trying to achieve in order to achieve it. Get some goals in place.
- Spectacular Market - Once must have a very good market in which to enter. The video market is just now catching on with YouTube, there can be more competitors if it grew large enough and was able to turn it around.
- Alleviate Customer Pain - Make sure you have something that people want or have been dieing for.
- Team DNA - You must have the ability to work together with your company.
- Incredible Product Focus - You must have one or two solid products before you decide to expand. Make sure the customer is happy with your product.
- Real Operating Margins - Someone help me out here. Still trying to decipher what he is saying.
- Frugality - Spend less, develop more!
- Inferno with a single Match - Light a fire and make your one product sell like mad!
I hope these points helped, because they are incredibly valuable.
If you liked this post, please be sure to subscribe to my
RSS Feed.
Posted by
Scott
on
2. February 2009 05:03
When working with workflows in software engineering, there are plenty of people that have done it before you and there will be plenty of others that come after you. Workflows are a foundation in the corporate world and new and old workflows are coded each day into the world of applications. So much so that Microsoft came out with SharePoint to help with your workflows and make them just a much better system and easier for developers. Workflows allow you to pass information from one person to another most likely attached with costs and some item of priority. Ideas and development happen all the time, but their hasn't been much innovation in workflows today just because they are exactly the way they worked 20 years ago. No need to innovate something that works unless your in the computer industry making state of the art hardware. When understanding a workflow, there needs to be a front page, a designed system to go through each "step" in the workflow and a ending point. You have to be able to send emails, show the workflows entirety and show some sort of "to-do" list which shows the user what they have to complete in the flow. It helps them understanding their current tasks.
Workflows are easy to display and configure. You have to pass information from one step to another where the steps are not infinite, so you can display them in a bubble like format on one page of your application. Reporting is easy as long as you capture all the data that gets entered, all the dates in which something happens and every thing in between. The innovation for workflows has more or less come to a skreaching hault. When you take a paper workflow and build it into an application, its hard to display your to-do list. You need to display the tasks easy enough for the person to understand what they have to do. Due to the screen real estate in such a high demand on the front page it is important to get that list as small as possible so you must learn to innovate a way to show them a to-do list which is small and tight. You must allow them to see ALL the item that need to be completed while also allowing items to be sorted and let them sit stagnant for a long period of time while other items are being added in daily. So what do we have? Well if your keeping up, before we created the app, we have a whole pile of paper sitting on a desk ordered by how recently it has been worked on and after, items sitting in a to-do list in an application with a few hundred entries in the list. Now, how to split those entries up or display them as fast as possible that the human eye is able to capture all in a few split seconds.
The to-do list is easy to see if it is a huge stack of papers, but hard to keep organized. The application allows for much less paper to be involved, but forces you to innovate in which the user sees the stack of paper(in the app). I currently am working on how to innovate a "to-do" list and I must say that there aren't many examples of the list in the world. What sits in the users queue could be only a few items or a few hundred items. Here is where the problem lies. How to display and organize a 100 plus items in a to-do list with the ability to sort through them in a few split seconds with the human eyes.

Taken by theps.net
Items that are a must have:
- Very Little Scrolling.
- Sorting.
- Split second reactions to what is seen.
- Fast Loading - Is taken care of with the language your using and the hardware your on.
Very little scrolling, Sorting and Split second reactions go hand in hand. If you can sort fast, people will have a much better understanding of what they have to do, while sorting gives us the ability to make those split second decisions. The question though is how to get all three into one application of the front page where screen real estate is very important? Split second reactions need extremely relevant information up front. This information will need to be sorted along with little scrolling. Well how do you Sort 100 objects with no scrolling on tight screen real estate?
- Options that came to mind are grouping them into tables when a user clicked the group.
- The default way is to just show a table of information with sort buttons up top which seems to be standard, but when you have to go through 100 items, it gets tough for the split second reaction times and which still requires scrolling.
- Another Option would be to show the user which items they have already viewed for the current step its at. Then create a new list which contains the "already viewed" items. This will allow for a lot less scrolling, because the items were on an entirely separate list and unless the user had an action for that item, they wouldn't need to scroll down. But the fact that you still need to show the user the list would force you show them all together, but once the user clicks a sort button for "Already Viewed" they would then separate into two lists.
Which type of to-do list shall I go with? Well, I am going to go with the third one. Even though it involves a bit more programming on my part, I think it is the "to-do" lists of the future. The next question is how to make this happen in such a small tight place of screen real estate. Hmm.
Got any other ideas on how to show to-do lists? Show them in the comments, I would love to see them.
If you liked this post, please be sure to subscribe to my
RSS Feed.
Posted by
Scott
on
5. December 2008 13:53
I must say that I was a bit skeptical about what Microsoft could offer compared to Dundes Charts when they brought out their new charting controls at PDC 2008. I was not able to attend, but I had to just go take a look at the control and I must say after seeing the sample gallery, I was BLOWN away! I have included all screenshots that came with the sample website so that you can also see what's going on with this control. I was utterly impressed and you will be too.
I would like to ask for two more types of charts to be added.
The Speedometer - I would like to see a speedometer type chart added. This chart will have a radial type chart that has measurements set by the user. Kind of like a Miles Per Hour setting. The long stick inside of the speedometer will be calibrated by how much data there is. Also, there should be allowance for an infinite amount of sticks to be added to one speedometer. The Sticks should be able to change color depending on how high each item is pacing. So to put it in terms of a car, I have a car which has 1 speedometer and it has 4 sticks inside the speedometer. It allows me to set the MPH rating inside and each stick is for each tire spinning on the car. The stick turns red if the stick is over a certain predefined mark. So what about it? This chart would probably fall under the Circular charts.
The Unknown Chart Name - This chart is a bit harder to explain and can only be expressed visually, but here it goes. First off it would be radial/Circular. It will have a status for a separate entity of a system. When the system states all items are clear, it will show bubbles in an all green, formatted in a triangle form. When very little of the operations are working, it will show a much small triangle formed red blimp. I made a crude drawing of what I am talking about below. Each entity is attached to a triangle inside the circle. When all is well, the circle should be completely green. When the status is below level, they should start to turn red. This allows you to look over the status of a system very fast and efficiently. Each bubble and each triangle should allow for a drill down to see what's going on.
The next question is where can I suggest more charts? Anyone got an answer?
All of these charts are TOO beautiful. I want to tell Microsoft and Dundes they did a GREAT job! Each chart allows for ToolTips, DrillDowns, Hover Over Texts and much more.
To Download: Charts are Here
Dundes Charts V.S. Microsoft .NET Charts
Area Charts
Bar Column Charts
Circular Charts
Combination Charts
Financial Charts
Line Charts
Pie Donut Charts
Point Charts
Price Range Charts
Pyramid Charts
Range Charts
If you liked this post, please be sure to subscribe to my
RSS Feed.
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.