Category: Experience

How to Improve as a Developer

How to Improve as a Software Developer

As a software developer, it’s really important to take time and improve your programming skills by learning new technologies and techniques. By constantly trying to improve as a developer there’s potential to become a highly sought after developer. Continue reading

How I became A Developer

Computers have interested me virtually my entire life. I don’t remember when I got my 1st computer, I remember my dad and mom taking about how my dad would play computer games or use a bbs and have me sitting in his lap. Around the time I was six my dad was given a computer by one of his friends that apparently wasn’t working, I remember it briefly it was a 286 and the case was a very rugged metal, but what I remember most was that my dad got the computer going again and eventually put it in my bedroom.

There were many days and nights I read out of an old beat up DOS manual. Eventually, my dad got a 486 and I inherited his old 386 that could run Windows 95 and HotDog! I made my first website with HotDog and eventually decided to move onto Homesite 1.0 which was extremely awesome and allowed me to learn HTML 3. I started doing chores and using birthday money to buy books, and better computer equipment.

I continued on and eventually went to Niagara College for Computer Engineering, but eventually switched to Computer Programming because that’s where my passion truly exists.

What first attracted you to this field?
The constantly changing and evolving web and computers has always piqued my interest. I’m lazy, I don’t like repetitive work, I couldn’t imagine working in a factory on an assembly line or working somewhere where I don’t get to learn every day.

What keeps you going
I love learning, experimenting and figuring out how to accomplish a goal as long as I’m still able to tinker I’m sure I’ll develop.

Clean Code: Compiler Warnings

It’s no secret that I work as a freelance software/web developer and often jump around between languages. I, continually, run into projects where the developers are ignoring warnings produced by the compiler which can lead to some very sloppy code along with some very interesting situations that occur as the code runs in production.

In my experience, warnings are almost always a bug in waiting especially warnings for assignment operators used in an if statement instead of the equality operator (very common in C variants.) Spend those extra few hours when you develop and try to ensure that you keep the compiler warnings to a minimum, so your code is clean and doesn’t appear to be sloppy.

Warnings also destroy your credibility as a developer, because they make your code look sloppy and suspect whenever a problem occurs. If you’re an employer, do your developers compile with warnings on and if they compile with warnings on do they take the time to resolve them?

COMP 306: Course Review

COMP 306 is a class about C++ and definitely required some previous experience programming in C, C# or some other object oriented language or variant of C. I finished the class a few months ago and have been very busy at work implemnting business intelligence and creating data quality checks and balanaces. (Only makes sense since I work for a knowledge based company!)

Thinking in C++, 2nd Edition by Bruce Eckel is the primary resource for the class. Thinking in C++ is a fantastic book, but I really feel that it suffers quite a bit by not including the answers to the questions in the book and requiring you to purchase a digital book if you want the answer key to the book.  The handbook for the course is pretty well written and covered most of what I felt was important related to C++ and object oriented programming: the last few chapters of the book could have used some additional explanation though.

The exam is based off of the four individual assignments and is pretty fair: my only complaint regarding the exam is that sometimes programming on paper can be challenging. I did very well in the course, not really a surprise considering I programmed for about five years before taking the class. Over all, I can say I would take the class again and found that it wasn’t too difficult and that the marking was pretty fair and that Richard Huntrods was definitely very available and helpful in both email and the class forums.

Athabasca Review

I have been taking distance education classes through Athabasca University for the last year and am working on my Bachelor’s of Science. I chose Athabasca because I have a family, full time employment, and often moonlight as a software developer for smaller businesses. As you can imagine, I have a very tight restraint on my time and don’t have the time to attend classes during only the day and travel to another city.

I found a few of the courses so far to be really challenging, because I didn’t really dedicate enough time to the one course. Make sure that you really have the dedication, and make the time to work on the courses because they are real courses and will take a lot of time. I can say without a doubt that I averaged two to three hours of studying each day for one or two courses along with several more hours each work for lab work.

I found the student handbooks to be more than sufficient for my needs, along with a lot of the suggested readings and links on the internet. I did find a few invalid links on the library site, but those were quickly resolved when reported. The handbooks are very well written, some of the questions in a few of the courses could have been written better.

Staff appear to be very well educated, many that I have dealt with have a MSc or PhD and are generally very available. One tutor was fairly slow to respond to emails, so I made sure to instead use the toll free number and call him. If you can’t work out those situations and resolve things on your own, probably you shouldn’t be attending university in the 1st place, and certainly you should not be looking at distance education.

Athabasca University is expensive for distance education, books and most materials are generally included with each of the courses although the exam proctoring will cost you more additional money. The courses are reputable and transferable to pretty much any school in Canada if you decide to finish your degree elsewhere or use it for graduate studies.

I’ll be finishing my degree at AU in the near future and plan to pursue my graduate degree also from them.

How To Post Great Freelance Gigs

I have been trolling Craigslist and Kijiji lately in hopes of finding some additional freelance work to add to my portfolio before I become a full time freelancer/consultant. Read the advertisements has proven to be a terribly frustrating experience. Advertisers need to always remember that the more details they provide will lead to a much more realistic budget and a system that better meets their needs.

Advertisements need to be as detailed and as short as possible. If the programmer is expected to modify or write plugins for an existing application or website you need to provide details on how the previous system is implemented. Ideally, you will answer all of the following questions. What programming language? What database is it using? Who is hosting it? Is there any sort of documentation? Do you have programming guidelines?

Regarding the actual project or changes to an existing project require you to answer additional questions. Is it completely new project? Who will own the work (source code, graphics, etc)? What’s the timeline? What should the application do? What is the scope of the project?

Always remember that you also get what you pay for and that if you pay minimum wage or outsource to another country (China,India, Brazil, etc) you will likely get inflexible crap that will have to be redone if your site or application goes through some sort of expansion.

Book Review:The Passionate Programmer

“The Passionate Programmer” is an excellent read and that I feel I have learned more about myself than I would have ever thought. I would never say that it is the next Code Complete or Code Craft, but it can definitely help you develop a meaningful career.

Continue reading – Web Hosting Review

Purchasing web hosting service is extremely easy; however, purchasing great web service is extremely difficult. Some of the web hosts pretty much register the domain and give you access almost immediately to some temporary space while the DNS wait period occurs.

I can’t remember how long it took for me to get access to the temporary space on 1and1, because I started hosting with them around 2003 / 2004. I have used 1and1 pretty much exclusively since purchasing my first domain name and can’t say I have a lot of complaints although there are definitely somethings I wish they did differently.

I haven’t had any issues with the actual web hosting although I do find it frustrating that things like FTP accounts are so limited. I was thinking about including hosting in my web design/development projects and allowing the company FTP access but that would limit me to 50 clients per package. An important thing to keep in mind is that if you are going to use a 1and1 database (MySQL / MS SQL) is that it is behind a firewall and you must use their web based tools.

Customer Service
The four times, I have had to deal with 1and1 I was extremely disappointed with the level of customer service. For example, there was a severe email outage for about two days and staff seemed to be indifferent to the issue. Before you go with 1and1 make sure that you know exactly what you are doing, and that you have patience because their technical support/customer service is terribly slow. The FAQs aren’t exactly great and often don’t really contain remedies to the problem: for example why is DOMDocument disabled and how do I fix the problem? Well, 1and1 doesn’t actually say at the time of this writing!

Billing Practices
I’m not exactly thrilled with having to pay for a full year’s service at a time and not getting any sort of deal for allowing them to use my money for free for like 12 months. Cancelling domains and packages is quite tricky on the billing/cancel application partly because you have to respond to an email at least once and then wait some period of time (2 months?) and make sure again that the item is actually cancelled.

Final Thoughts
1and1 was the cheapest host that I could basically find around 2003/2004 and still seems to be one of the cheapest. I wouldn’t describe the experience as great but I also wouldn’t say it was terrible. If you are price conscious, willing to learn, and have patience then your 1and1 experience will probably be similar to mine.

Dell Studio: Epic Fail

Dell fails again, this time with a Dell Studio 1550.Keys being pressed weren’t being sent properly to Windows 7, and LEDs weren’t properly lit. Solution seems to be removing the battery and pressing the power button for 10seconds.

Continue reading

Open Source Week 2009

I am so excited to say that I finally booked everything I need to attend the Toronto Open Source Week. In a couple of weeks time, I will be spending a couple of days in Toronto while attending the many conferences, workshops and presentations on open source software (GNU Linux, PHP, etc.)

I am hoping to do some serious networking for my consulting business, along with getting more experience with web programming and the rest of the LAMP stack which seem to be creating an IT revolution.

I hope to see you at some of the events!

Questions to Ask In An Interview

I’ve been involved in interviewing people, and like everyone I have also been interviewed. I believe that when you are interviewing for a company, it is a time for both parties to determine if you will fit into the corporate culture so everyone should ask questions. I strongly believe that if something really bothers you in an interview that you should walk away if you have any doubts.

I usually ask at least these four questions, although sometimes I will ask more to clarify something I’m concerned with or to show that I don’t quite understand but would like to understand.

Do programmers have quiet working conditions?
This question really determines if I will be able to get into a really productive mind set or if I will struggle most of my day getting in and out of the zone. I believe that there’s no harm with a programmer sharing an office with someone else, but it wouldn’t be very logical to put a programmer beside someone else that is always on the phone.

On average, how long does an employee remain with your company?
You should never suggest or use the phrase “turnover” because you will probably just receive a simple response like “low.” Obviously, if the company is younger or a startup this question might be completely meaningless. Ideally, you will hear that there are some programmers that have been with the company for several years.

Could you explain to me how the development process works here?
I don’t usually expect much of a response to this question if the person works in Human Resources, but hopefully you will hear about processes being documented.

How do you track/follow bugs/issues?
This question is used to probe how organized the development and maitenance processes are. Ideally, the team will be highly organized which should make your time used effectively and software released with fewer bugs.

Books I’ve Read

Sometimes, when I have applied for full time employment in the past I have seen job ads or received responses from companies asking what books I’ve read. Nearly every time, I have heard this question I was so shocked because I didn’t ever keep track of what I had read or where I had gleamed those little bits of valuable information.

This list will be updated at least monthly, although when I have an abundance of extra time I might be able to read an additonal book or two. Please note that this list only contains books I am interested in professionally and in no specific order.

Books Finished:

  • ASP.NET 2.0 Unleashed
  • Beginning Ubuntu Linux
  • C# How to Program
  • Code Craft: The Practice of Writing Excellent Code
  • Don’t Make Me Think: A Common Sense Approach to Web Usability
  • jQuery In Action
  • Network+ Guide to Networks
  • Learn to Program With C++
  • Practical Web 2.0 Applications with PHP
  • Systems Analysis and Design in a Changing World
  • Teach Yourself HTML 4 in 24 Hours
  • Visual Basic 6 Complete
  • Web Style Guide: Basic Design Principles for Creating Web Sites

Currently Reading:

  • Operating System Concepts

Although the list is getting pretty extensive, please understand that these are books I can verify as of September 7th 2009. The title suggests this is only books, so please remember that I definitely have visited many websites along the way.