Tutorial videos from my courses

I’ve been creating some demo movies as part of my on-line classes and have posted them out on blip.tv.

I thought you might like to look at the series. I’ll be adding new ones on a regular basis.

Here’s a link showing all the videos available out on Blip.tv.

I’m using ScreenFlow to create my onscreen videos. This is an amazing program that allows me to capture video and sound and edit using scrolling and panning. Mac only. What is displayed here is only the video portion of the more complete tutorials I offer as part of my online and face2face courses.

The videos shots of my whiteboard talks are taken using a very inexpensive ($150) Aiptek HD1080P pocket-size video. Chad Peterson, one of my students is working on the editing. These resulted from one of my online students asking me to record my entire class. That is very difficult, getting good sound, but I thought I’d try some simple videos that focused on specific concepts to see how enhance the learning activities for each module.

I’d be interested in your comments on how useful these would be to you as a student. Thanks!

What should I charge?

What should I charge? This question comes up a lot.

Here’s are some pieces to the puzzle that might help determine what to charge a customer. Each one has to work with the others.

  • What is your time worth?
  • How fast are you?
  • Do you want the business relationship to be long term or short term?
  • What is the current market rate?
  • How much experience do you have?

What is your time worth?

A person out of high school working at a burger shop will put a lower price on his or her time than a professional manager that is making big bucks. Be careful not to undersell the value of your time.

How fast are you?

You have to realistically look at how fast your can create web pages or write a program. It takes a new student a much longer time to figure out a basic CSS design than a seasoned, five-year CSS expert. And, the expert will have several templates ready and waiting so he or she can create a basic site in minutes. Literally.

Even something as simple as typing speed plays into this figure. Let’s say you can only tap out 30 words per minute on a good day. And, that’s using English words. It might drop down to 15 words a minute when you start typing code…

Now compare your output to another person who is able to type code at 60 wpm or higher. Who will be the most productive? The 60 wpm will be able to generate four web pages or more for every one the 15 wpm typist can write. If you have your skill set down (CSS, XHTML, design, some JavaScript) and have a few web site templates in your personal library that you can build from you will be able to finish normal tasks much quicker than someone that doesn’t. The faster you are the more you can charge. Time is money for both you and your client.

Do you want the business relationship to be long term or short term?

This will help you determine how to charge. If you want this to develop into a long term relationship you may want to charge a flat rate for a set number of pages. Later additions and changes could be billed at an hourly rate. A common error though is to charge to little in order to “buy the business”. After awhile you will find yourself doing lots work and the first question, “What am I worth?” will be nagging at you. It’s always harder to raise rates later than to bill a little higher in the beginning.

Should you charge by the hour or by the project? A short job is usually best by the hour. Longer projects could be billed by a flat rate. Also, if you are newer to the business of web site programming and design you might want to charge a flat rate for a set number of pages.

What is the current market rate?

This is the question that most people are really asking. But, these numbers are only valuable if they seen in context with the other questions listed here. Most professional agencies charge between $100 – $200/hour. A complete, professional website normally runs $1,500 on up depending on how complex it is. The keyword here is professional. Also, keep in mind that these rates are what the agency charges, not what the web programmer gets paid. The agency or company has to pay salaries, utilities, and rent out of this money as well as show a profit.

I usually recommend to people just breaking into the market to charge between $15 – $50/hour depending on their skill level. Once they are established they can charge the higher rate. Established could be roughly defined as a person that has at least 10-15 working web sites that they maintain.

How much experience do you have?

As you continue to work in the field and learn more skills and techniques you will be able to charge more. Experienced people have built up a toolbox of code and techniques that allow them to build and maintain sites/programs quickly and easily. Also, a web developer/programmer that can build a shopping cart or a web page that can be maintained by the customer without needing a programmer is a lot more valuable than one that can only create static web pages that simply display information.

If you can think of better ways to do the routine things quicker and easier you will be even more valuable. For example, one of my students started work at a web design company and put together a framework of code that allowed him to created complex web sites very quickly. Each web site had the same basic structure, but by adding different graphics and modifying the CSS code he was able to create unique sites in an hour or so (once he had the framework built.) All the other employees took several weeks to accomplish the same amount of work.

Technorati : , ,
Del.icio.us : , ,

Got API?


Got API?

An Application Programming Interface is a set of functions that let you “hook” into a system without having access to the source code or inside workings of that system. There’s an API for all the modern languages like Java, PHP, Ruby On Rails, and HTML. Sites such as Google, Amazon, and eBay all have an API allowing programmers to access information from their sites. Here’s a list of the APIs Google has available for many of its services including maps, adwords, and Blogger data. This lets a savvy programmer include all types of eBay or Amazon services on their web site by using what these sites have already created.

You can also think of an API as a dictionary. Just like an English dictionary displays words and their meanings, an API lists all the functions available in the API as well as what type of information each one is expecting and what type of information each function will return. Programmers use an API as a reference in using functions correctly.

Up until now a programmer had to keep a copy of each API on their computer or keep a list of bookmarks pointing to the APIs out on Web.

gotapi.com changes all of that. All the common language APIs are now available from a single link page. (Sorry, the application APIs such as Google, Amazon, and eBay aren’t listed yet.) As a programmer this means you can find information quickly as you are writing code.

gotAPIStartMenu.jpgTip: With the gotapi.com page displaying, click and drag the icon in the Address field gotAPIURL.jpgof your browser and drop it on upper part of your Start menu button. You’ll see a solid black line showing you were it will be positioned as you drag it into the Start list.

Anytime you need to look up a function, gotAPI.com is only a click or two away.

– Special thanks to Sean Washington for reminding me about this really great programming tool.

Technorati :
Del.icio.us :
Ice Rocket :
Buzznet :

File Naming Conventions

If you work with files you should have a set of rules that you follow so that your file names are always consistent. This is especially true if other people will be working with your files which is very common in web work and programming.

Here’s the file naming conventions that I have developed over the years as a programmer and web person. What you do is not as important as being consistent. Using the same name convention will save you countless hours of “fixing” things and looking up to see how a filename was spelled. I recommend using these rules for filenames, folders and directories, and variable names.

  • always start a filename using lowercase
  • don’t use spaces or underscores _
  • use camelCaseToMakeNamesEasierToRead
  • don’t use plurals – for example: Use “graphic” instead of “graphics”
  • be consistent with extensions. .html should always be .html and not .htm one day or .default on another day.

Here’s the reasoning and experience that helped me develop this list:

Always start a filename using lowercase
80% of the web servers use Apache running on Linux and Linux is case sensitive. By starting every name with a lower case letter you remove the guesswork like “Now, was it Index.html or index.html?” On a Linux server these are two different things.
Each time you have to go look up a file name to find out you used the wrong upper/lower case means less time with your video games or bronzing on the beach.

Don’t use spaces or underscores “_”
Web servers and programming languages are befuddled by spaces. They may work in Windows and Word, but most other computer programs don’t even allow them. Linux is a good example.

Why not underscores “_” you may ask. Underscores will “hide” when being displayed as an underlined word and users think they are spaces. Also, why add another character to your name if you don’t have to? And finally, how many people can touch-type the _ character. Every time you have to pause your typing to hit a special key means the longer it takes to complete your killer app.
Use camelCaseToMakeNamesEasierToRead
This is the solution to not using spaces or underscores. Note how easy it is to read the statement above. Its much faster to type this way. You’ll have to personally decide how you are going to handle acronyms. For example: web3RSS.html or web3Rss.html or web3rss.html
My recommendation, for readability and recognition, is to keep an acronym as all caps: web3RSS.html

Don’t use plurals

For example: use “photo” instead of “photos”

When working with a programming team we spent countless hours fixing our programs because of simple spelling “errors” like this. Then, one day someone suggested that we follow this rule and everyone’s life got so much easier.

It’s a little weird at first, but after a few times of knowing how a foldername will be and not having to go look it up makes it all feel right in the end.

Be consistent with extensions and keep them lowercase.

I recommend always using .html. Don’t use .htm one day and .html the next.

Same thing with .jpg

By following these rules on a regular, and consistent basis, you will be able to work faster and with a lot less frustration.Note: There’s a few exceptions to all of this. If you are a Java or .NET programmer than you will want to have all your Class files begin with an upper case letter. And constants are always written using ALL_CAPS with underscores to separate the words. These are both naming conventions that were around a lot longer than my little set of rules.