Profil de CharlesCharlie's PlacePhotosBlogListesPlus Outils Aide

Blog


22 août

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 :-)
20 août

To Web or not to Web- Is this field right for you?

One question that you should look at before embarking on an education program designed to help you become a Web Developer is simply this: Are you suited for the work, and is the work suited for you? I know that it seems obvious, but if you are starting from a non computer skills background you have a long row to hoe. I know because I was a construction worker for over a decade before I got into web development and had little computer experience. Before that I was a Marine Corps infantryman (a "grunt" in other words) and the bulk of my knowledge involved blowing things up in assorted ways. So anyway, if I can do it so can you...but it's not easy.
 
There are a couple of different ways of getting the requisite knowledge for entry into this field. By far the most difficult route is to try to learn entirely on your own via books and the internet. Although a less expensive option, it could take you years to get the same knowledge that you could gain from being guided by an experienced instructor with a structured and proven curriculum. That's not to say that a somewhat self guided option is not useful. In fact, if you are coming at this with no computer experience, learn all you can about how to use common computer apps such as Word, various web browsers, file management and troubleshooting. The web is a great tool for this kind of learning. You can also look for tutorials all over the web in just about anything else you need to know, but I would recommend the web as more of a supplement to your learning than the main course. Additionally, I would recommend you begin this process before you take your first formal class ( if that's the route you decide on). You don't want to waste your money because you miss out on most of the instructor's lecture trying to find your files or start an application. Instructors are going to expect that you have a least a modicum of computer knowledge if you are enrolled in a development class of any sort and few will have the time or the willingness to delay the rest of the class while you catch up. Also if you have some computer background it is risky to assume that you are able to do away with the prerequisites and skip to the advanced classes. Unfortunately, building an html page doesn't make you a web wizard :-) 
 
You should also be certain that you really love making things happen on a computer screen. Long long hours of staring at code should actually seem fun and challenging to you. You must love learning because you cannot ever stop in this field. Once you stop learning new skills you better be prepared for retirement because you won't have a job for very long. This field moves very quickly and you can never get too comfortable with what you know. You must also be able to learn from your peers and accept criticism. The days when a developer worked alone in a closet at the end of a hall are gone. You must now either have decent people skills or be godlike in your coding ability. Actually I take that back, I've worked with some coding gods and they are just TMW (too much work) to deal with. Teams are how things get done and communication (including writing skills) are where it's at. Being creative (surprisingly) is also a very important attribute to have. Elegant coding and solutions are an art form entirely unto themselves, most of the great developers that I have known are completely comfortable with not only working outside the box, but in getting rid of the box altogether.  
 
 
In short, I've found that students who are in a Web program because they love the potential of the technology and enjoy creating and communicating with it will have the needed motivation to work the long unpaid, unstructured hours needed to successfully polish their skills to a professional level.  You will never get all the skills you need in a class or classes. You must be able to work independently with a long range goal in mind. Those that only want a quick path to a lucrative career will likely be disappointed. Unfortunately, if were easy, everyone would be doing it. If building web sites is something it seems like you would love doing even if no one paid you, then you might have picked the right field! For those that persist- this is a very rewarding field. I look forward to work every single day and I honestly make more that 8 times than what I did in my best year in construction. I also enjoy passing on what I can of my experiences and skills to future developers, afterall, this is still a very young field and I'd like to say that we are all pioneers. Good luck to you if you have decided to embark on this path- maybe I'll see you in class someday!