Charles's profileCharlie's PlacePhotosBlogListsMore Tools Help

Charlie's Place

Just me and my thought

Charles Smith

Great Web Development Books for further reading
Introducing Microsoft Silverlight 2.0, 2nd Edition
Head First HTML with CSS & XHTML
JavaScript: The Definitive Guide
Learning XSLT
A list of Web and XML Development Resources
March 14

Upcoming Web Classes March-July 09

For those of you interested here's a list of the upcoming web classes that I'll be teaching at Strategy Computers in Bellevue WA.

 

Class Start Date Hours Description
Web Expert 3/23/09 24

Learn  to execute advanced web authoring tasks using ASP.Net web Controls. Work advanced Content management and data driven techniques to create dynamic pages and sites.

AJAX 4/29/09 24 Learn how to utilize compelling AJAX methods. Build smooth and responsive web applications employing Ajax. You will learn to implement Ajax techniques in combination with XHTML, HTML, and CSS.
XML part 1 (Schema) 5/13/09 16 XML core concepts, libraries, and best practices. Technologies covered will include XML, XSLT, and XHTML. You will develop a solid understanding of XML, be able to create Schema, and develop well-formed and valid XML documents,

XML part 2 (Transformations)

5/26/09 16 Transform XML document data into HTML, XHTML, and other markup formats. Use the XSLT transformation language to create useful structures in a Web Browser and on the .Net platform

XML part 3 (Applications)

6/8/09 24 Build web-based applications from scratch using XML technologies to supply, store, and manipulate data and structures. Program flow and control mechanisms will be emphasized. Includes XML, XSLT, CSS, SQL, ASP.Net, DOM,
ASP.Net Client Development 6/23/09 24

Create Web server controls in ASP.NET and dynamically generate web sites. You will work to integrate data by using ADO.NET, XML, and Data-Bound Controls Manage connections and transactions of databases. Manage XML data with the XML Document Object Model. Create custom web site, composite server and web controls that inherit from the WebControl class.

 

Class Info: Classes are typically 4 hours from 5:30 to 9:30 1-2 times a week, or 8:00-5:00pm on Saturdays. For those interested in the Web Certification, Web Specialist or XML Developer programs, these programs will begin with the Web Foundation class which will start early in July 09. Prospective students should sign up as soon as possible to ensure a space. Financial assistance is available.

 

Instructor Bio: My name is Charlie Smith and I've been teaching at Strategy Computers for over 14 years and have over 15 years industry experience. I also currently work as a full time senior lead software development engineer at Microsoft in Redmond WA.

 

For more information and to sign up you can contact Strategy Computers at:

Email: question@strategycomputers.com

Phone: 425-643-4849

Strategy Computers Inc.

2475 140th Ave. NE, C100

Bellevue, WA 98005

March 10

Top Ten Tips for choosing Web Classes

 

With all the recent concerns about the economy it may seem like not a great time to start a new career. Often though there are opportunities in unexpected places and in unlikely times. The tech sector is still in relatively good standing and there are still jobs out there going unfilled for lack of qualified applicants. Of all the tech sectors web development is in my opinion one of the easiest ones for a newcomer to get entry into. How do I know this? Well, that's how I got my start 13 years ago.

After getting injured while working in construction I had an opportunity to retrain into a new field. At that time the world wide web  was just beginning and there wasn't truly an industry yet. I had very limited computer experience of any sort and I had a very short time frame within which to get my training. I had only 1 calendar year to cram in as many classes as possible. Oh, I also had a new family to support so once the state stopped paying for classes, I had to have a job.

I looked at all the different opportunities out there but there was no way that I was going be able to complete all of the needed training and certifications. Besides most of them looked pretty darn dull, or they didn't pay enough to make it worthwhile. I started taking computer design classes since I had at one time done some illustration and fine art. I thought maybe that I could leverage some of my limited creativity into a some sort of digital design work. About that time the school I was attending started offering some of the first html and web programming classes in the country. I took that first html class  over a decade ago and I've never looked back. I never would of thought that building web sites would have been so creative, so challenging and so lucrative. Yes I took a risk with limited resources. I spent countless days and nights studying and working on developing my coding skills. I fell asleep at the keyboard  many times(I ended up with the keys imprinted across my forehead in one class!). After one full calendar year of classes I finally graduated in June. One week before my last class ended I was offered my first contract position as web developer at Microsoft. I haven't been out of work even a single day in the 13 years since then. In the first year I tripled my previous best year's income and within 3 years I doubled that again. Anyway, suffice it to say that this industry has been very good to me and I've loved every challenge along the way.

So what makes web development so different from the other tech fields? Web development is unique in that it is constantly changing. Every few months new technology is introduced. Also there are many differing level of technical implementation. Some applications are cutting edge, some are legacy applications that may be several years old. You might deal with abstract data layers or strictly with user experience and visual design. In short there are multitude of slots in a very wide variety of knowledge domains and technologies.

A word about certification programs here.  There are currently no standardized industry wide certifications for the the technologies most in use in web development. There are a few proprietary certifications sponsored by various schools or companies. The reason for this is simple. The web technology landscape constantly changes. Web certification programs are of limited use since they are often out of date by the time that they are available and could be accepted across the industry. The good news is that most web programming interviews particularly for contract positions don't even ask what certifications you might have. The proof is in what you can do. It's painfully obvious to a qualified web programmer  within a few minutes of an interview if you can do the work or not. A certification won't save the interview for you if you haven't done the preparation. Some certifications in web development though can be useful if you have no other experience, but they will absolutely not get you the job. Nothing substitutes for a solid classes developed and taught by instructors with years of industry experience. Here are the top 10  tips to help you choose the right school and classes:

1. Verify that your instructor has recent industry experience. Academic experience by itself is not very useful in an instructor. Interviewers have little or no time or patience for theory. You need to know the processes, tools, and techniques that will allow you to build working real world applications.

2. Be sure that the classes taught are relevant to the specific part of the web development field that you are most interested in. Of course this might change as you become more familiar with the industry you are targeting. You might also find yourself more or less suited by aptitude to different types of  web development careers. See my earlier post for practical details on how this breaks down.

3. Don't hesitate to ask to speak to or contact an instructor if you have questions. Although they might be busy most instructors want you to be happy with their class and can really give you the details about whether or not the class would be suitable for your goals. Unfortunately school staff or counselors may not have all the detailed industry knowledge you might need to make a decision.

4. Ask about placement rates and about available career counseling and tutoring sessions.

5. Ask about testimonials and references from successful former students. Privacy rules may prohibit the schools from allowing you to contact former students directly but schools often maintain a file of testimonials or they may contact students who might be willing to talk with you.

6. Take a look at examples of student projects that have been completed in the class or program you are interested in. You can often tell much about a program from the quality and proficiency level of the projects that the students are capable of completing.

7. If possible ask to sit in on a class. Even a very brief audit of a class will often give you a fair idea of what kind of instruction you can expect from a class or instructor.

8. Ensure that the classes that you are evaluating are appropriate for your current familiarity with technology. Some classes will be suited to those with limited experience, some will require extensive pre-requisite knowledge. It can be difficult for staff to evaluate your level and technology classes often move very fast. You will not be able to catch up if you are behind from the start.

9. Prior to purchasing a personal computer or software to learn on contact the school to see if they have a recommended hardware/software setup. Often schools will have access to academic or other discounts. Some will even have programs to help you build your own!

10. Be committed to an investment in your future. This isn't easy. If it were everyone would be doing it. Be willing to do the work needed to really understand the class material and it's application. The class itself will only be able to take you so far. For every hour of class count on 2-4 hours of working on projects on your own outside of class.

 

In these difficult economic times remember that he web is unique because it is often the lowest cost way for businesses to do business. Do you need to communicate with far flung enterprises? - the web is the solution. Need exposure to millions of targeted consumers? - the web is the solution. Need to track customers, inventory and vendors across the globe through a multitude of enterprise level applications? the web is the solution. In this age of cost cutting  web development is the technology that will allow business and industry to save the bottom line and stay profitable. Web jobs are here to stay and we are only at the very frontier of the possibilities. I hope to see you in class soon!

September 08

New Class: Developing Silverlight 2.0 Applications

Well for those of you interested in Silverlight it looks like I might have a new Silverlight class. Now we just need to get enough people interested and signed up. I've posted the details of this class at TeachStreet.com . It's called Developing Silverlight 2.0 Applications . I've also posted the class on Craigslist at: Developing Silverlight 2.0 Applications .  Similar classes in other regions (there are no other classes currently here in the NW) at the same level and the same hours are going for $1800 to $2500 per person! Please contact me for details.  Below is a revised, detailed syllabus of what I propose covering.


clip_image001

Developing Silverlight Applications is a 24 hour course that focuses on Silverlight Development with the latest version 2.0 and integration with the .Net environment and Visual Studio 2008. This workshop will cover Silverlight extensively and include such advanced topics as isolated storage, using managed code in a client side environment and html/JavaScript and Silverlight integrations. The goal of this course is to provide web application developers with the knowledge and skills they need to utilize the Silverlight platform to its fullest. Additionally this course will cover the basics of Microsoft’s Expression Studio, which provides the tools needed to build great Silverlight UI's. Although this is a developer-focused course with an emphasis on architecture, coding practices, and Visual Studio 2008, designers seeking a deeper knowledge of Silverlight will find the course helpful as well.

Duration and Format

  • 6 - 4 hour instructor led classes
  • Online tutorials and labs

Syllabus

Intro to Silverlight

1. Creating Silverlight Objects

2. Events

3. XAML object model

4. Downloading images and videos

Fundamentals of XAML

1. Layout and Positioning

2. Shapes, Brushes, Text and Images

3. Transformations and animations (Expression Blend)

Silverlight Basic Controls

1. Layout Controls

2. Buttons, List Boxes etc.

3. Control Templates

Custom Controls

1. Reusable Styles

2. Creating Dynamic Controls

3. Deep Zoom

Silverlight 2.0 Managed Code Integration

1. Isolated storage

2. Bridging JavaScript/DOM  with managed code

3. Visual State Manager

4. Proxies and Deploying Silverlight Applications

Handling Data in Silverlight

1. Data Binding

2. Web Services- Soap and REST

3. XML Read/Write

4. Consuming RSS feeds

5. Application Timers

Languages Covered

C#, XML, XHTML, JavaScript

Prerequisites

Persons who attend Developing Silverlight 2.0 Applications should have experience building .NET applications and should be comfortable with the C# programming language, JavaScript, XML, and XHTML.

September 02

Great cheat sheets for beginning developers

I just came across this site, Added Bytes that has compiled free cheat sheets for JavaScript Functions and Methods, XMLHttpRequest, JavaScript/HTML, Regular Expressions, and Event Handlers. There are also other sheets for HTML, CSS and PHP.

Thumbnail highlighting functions and methods sections.

These can be very useful as a desktop reference or even for a review before a technical interview or whiteboard session. Many thanks to Dave Child for his hard work in putting together this incredibly helpful tool!

August 22

10 tips to becoming an entry level web developer

In my 12 years as a web developer and a tech teacher I have seen many people successfully make the transition from student to professional web developer. There seems to be several common threads that connect the success stories. But before I launch into that perhaps I should define a little better what I'm referering to when I talk about becoming a web developer. There are so many related terms and technologies that are employed in different contexts that it can be difficult to define a common frame of reference. For example is a flash developer a web developer? What about someone who builds C# web services? Obviously both produce work that ultimately is output in some fashion to the web. But in my mind a web developer is somewhere in the middle (that's not to say that a rare few couldn't do both). In my mind a Web designer works with Photoshop, Dreamweaver,  knows CSS (beginning level), HTML, and perhaps Flash. A web programmer knows one or more of these: C#, PHP, JSP, C++, Java, Web Services, perhaps IIS (Apache, Tomcat etc.), SQL, as well as A framework such as ASP.Net, J2ee, Rails etc. You might also define even another category for those content or media specialists that create interactive content such as Flash or Silverlight controls. A web developer should be able to cover the gaps between these mulitple disciplines. In other words a Web Developer is the bridge between the middle tier (business + data layers) and the user interface of a web application. Typical skills and applications would be HTML, CSS (Advanced), Javascript/DOM (Advanced), XML, XSLT, AJAX, C#, PHP and/or ASP.Net. Obviously, there are skills that overlap but in my experience in most circumstances you will find that roles within a organization fall into these 3 groups, regardless of what they are called. 
 
Okay with those defintions out of the way, just one more disclaimer- none of the below will work until you've put your time in.What I mean is it's very likely that you'll need to enroll in classes or preferably, an entire program that covers the targetted skills that you'll need to have (see above).  Very, very few people have the ability or inclination to learn what's needed entirely on their own- especially these days. Ten years ago html would pretty much get you a job. These days the person asking you "do you wnat fries with that" probably knows html. A solid program of classes will get you up to speed 10 times faster than trying to learn exclusively from the web or books. Tech schools, community colleges, extension programs all often have highly specific programs to get you up to speed. Interestingly enough, I haven't been particularly impressed with the programs espoused by many 4 year colleges. I've taught many classes to students who graduated from a university but didn't have the practical skills to become an entry level web developer. That's not to say that a 4 year degree isn't incredibly valuable, it's just that in a focused tech field, a focused education may be a better route for some. I'm sure that many would disagree, and if we were talking about programming only- I might defer. Additionally, those that make a successful start as web developer will be those that spend many long hours honing their knowledge and skills working on their own. A class is no guarantee that your skills will be up to the needed level to get a job.
 
Okay now finally, on to the list. Keep in mind that many of these may apply to other fields in the technology arena.
 
1. Build a resource file. A resource can be as simple as a web browsers favorites folder that contains the urls of all the reference and tutorial sites that you find useful. I keep a folder of code samples as well as docs on interview questions.
 
2. Practice Interviewing. Especially in fron of a whiteboard. Be able to explain and/or diagram your answers in simple pseudocode. Often the exact syntax isn't as important as understanding the concepts involved in answering a question.
 
3. Keep using your skills. You paid for them, either in cash or simply in time and effort. Do not let them atrophy! It might take weeks or months to get the position you want. You should be coding nearly every day, or if not you should be reading articles and books related to your field. You will be surprised how quickly you forget syntax and concepts that seem nearly self explanatory now.
 
4. Leverage existing domain knowledge where possible. Entry into a new career path can be difficult at best. If you have existing knowledge you may be able to apply that knowledge in a new way along with your newly aquired web skills to gain entry into the field. Almost every field from Health to Business has a need for web sites, if you have experience in those fields who would better understand their needs?
 
5. Learn all you can about who you are interviewing with. As someone who interviews candidates at least once a week, I would expect that they at least have taken a quick look at our site. I would hope that they were somewhat familar with our souce code. I would be impressed if they could come up with a reasonable response to the question: "What do you think we could do to improve our site?".
 
6. Thoroughly review all job postings to  better understand market needs. Remember who writes these postings. It's almost 100% certain that it wasn't the actual developers you'll be working for or with. Most likely they are written by an HR person who doens't understand the distinction between Java and Javascript and thinks that asking for 5 years experience in a 2 year old technology is acceptable. The better you understand the buzzwords the better you'll be able to narrow down the postions you might be suitable for.
 
7. Track all of your interview questions and their correct answers. Do a crtique of yourself after every interview. If you didn't get the answer right, then find it out! Write everything down as well as any impressions of the interviewer and company you might have. You will likely get the same or similar questions multiple times over many interviews.
8. Build your portfolio. Keep a constantly updated site containing links and screen captures of your best work. This site should be hosted with yor own domain name when possible as this makes your site's url easier to remember and gives it more of professional impression. Always be on the lookout for ways to get experience. Practically everyone knows someone who needs a site. Lawyers, Real Estate Professionals, Dentist, and non profit groups are only a few examples of potential clients who might be willing to use a novice web developer. Some of my former students have even made a decent living from doing just freelance work. Also make sure that your work is impeccable and that the source code id performant, well commented and easy to read. If I interview you for a job- I will absolutlely look at your portfolio examples' source code!
9 Craft your resume carefully. Be sure that you have several people review it before presenting it. Also it never hurts to tailor a few different resume's for different types of jobs- particularly if you have existing domain experience. If, for example you have aerospace experience and the job is for a company heavily involved in that filed, highlight that particular domain knowledge, even if the position is unrelated. The same goes if you have graphic skills or database skills in addition to you newly acquired web knowledge.
10. Develop a network of resources to support your job search. Family, friends, former coworkers, other students all are potential sources of job leads. Social networking sites such as Myspace, Facebook and Twitter are all great places to begin networking. I often see designers looking for devs to partner with as well as small businesses looking for someone to do piece work on their web site. Don't forget to include your instructors in your network. If you haven't spent your class time in the back shooting spitballs, they will probably be more than willing to pass along any leads they get as well as write you a reference.  Also think about starting your own blog, you'd  be surprised how much credibility you can build when you starting chronicaling what you know. Lastly a supporting network can be helpful in cushioning your ego if you get turned down alot. You have to develop a thick skin and just be able to move forward, this is not the very easiest of fields to break into. Fortunately, it's not rocket surgery either, it's just that not everyone is going to see that you are a diamond in the rough immediately. It might take some time :-).
 
Well that's about it, comments? I hope this has been helpful to some of you looking to make a change of careers or for your first career! Maybe I'll see you in class sometime :-)
 
Thanks for visiting! This is where you can post class questions or ask other students for input or set up collaborations for projects.
Please wait...
Sorry, the comment you entered is too long. Please shorten it.
You didn't enter anything. Please try again.
Sorry, we can't add your comment right now. Please try again later.
To add a comment, you need permission from your parent. Ask for permission
Your parent has turned off comments.
Sorry, we can't delete your comment right now. Please try again later.
You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
Complete the security check below to finish leaving your comment.
The characters you type in the security check must match the characters in the picture or audio.
Aaronwrote:
Wow.  I've gotta research those "intermediate quiz" questions above.  Good stuff!

So, I've got one for you.  (I've posted it on the sitepoint forums but it's always good to go to a trusted source ;-)

Here it is.  Start thinking "database"............

----------------------------------------------------------

If I were making a database called "clothing".

And inside this table there are fields for :

-tops
-bottoms

Yet there were 2 kinds of "tops" too, such as:

-short sleeved
-long sleeved

Would it be best and/or possible to store "tops" as both an integer (say, 0 for "short sleeved" and 1 for "long-sleeved") and still have a text field for some text info about that top (i.e. "red/white striped button-up"? Or does that mean I should just make another table for "tops" too?

(One for "type of top" (1 or 2), and one for "description VARCHAR(30)

In other words, one field in one table can only hold one type of info, correct?

It's hard to know what's possible and best at the same time.

Also, this question was just as difficult to word as its subject matter was confusing. I get meta-terrible points.

Thanks.

EDIT: Actually, I wouldn't necessarily have to make the "tops" field a binary int, as that could make my search one step deeper (i.e. I'd have to specify somewhere that "0" is "short-sleeved" and "1" is "long-sleeved"), right?

I could just have a
Code:
CREATE TABLE tops (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
sleeve VARCHAR(2),
);
"Sleeve" would be either "s" or "l" for short or long.

Or would it be easier/more-efficient to search on "short" or
"long"?

Ugh. (brain fizzles)

---------------------------------------------------------------------

I think I should have signed it "confused".

Thanks, Charlie!

-Aaron
Mar. 25
BRAD HAASwrote:
Hi Kay,
Thanks for the response, transparent CSS that's cool! But i think if i can just dynamically alter the style sheet on the page load based on the browser and/or OS it'd be more implement-able (that a word?)...i could just brighten/darken specific areas/images according to whatever client is viewing...
Mar. 15
Kay Chinnwrote:
Hi Brad,

I found this link which may be useful to you.

http://www.domedia.org/oveklykken/css-transparency.php

Kay Chinn
Mar. 14
BRAD HAASwrote:
hi charlie,
question re the HLINK method(?) we went over on thursday... I have a client i'm setting up the splash page for..she uses a mac(safari/firefox), so the color gamut is very different (lighter, more washed out depending on how the image is created or the user's color settings) so she's not happy with color on a mac, but digs it on a pc... can i server side evaluate what browser/OS is being used and then HLINK to a different style sheet based on that? the HLINK thing seems pretty simple, i just can't figure out the browser evaluation on pageload....
Mar. 14
Hi Jim, without looking at your code I would have to quess that you are actually poiniting to two different files. There is no html reason why those two browsers would didplay animage differently. What could be happening though is caching. One or the other could be looking at a different file although it has the same url. I would flush your browser cache and try again. Also don;t forget to check your path to the images. Also you can try browsing directly to the images rmemeber a web page will open an image just like any other resource.
Mar. 10

Note Gadget

Loading...
Photo 1 of 3