The Montoya Herald, a weblog about Blueprint, jQuery, design, music and life, publishing on the web since September 2005. Written by Christian Montoya: developer, designer and entrepreneur.

The Montoya Herald — ChristianMontoya.com

Search

I Recommend

Genesis Rocket

Like What I Do?

My Amazon.com Wish List

On this domain

Elsewhere

My advice to anyone planning to become a web developer

Posted on August 22, 2007.

A year ago I was mostly convinced that I would never have a job in the industry as a web developer. I was certain that I would always be a web hobbyist and I was O.K. with that. It wasn't until this past May, in my post entitled "No Longer a Web Hobbyist," that I announced my career as a web professional was about to begin. A lot had happened in that last semester of college. First, I decided to stop pursuing jobs in Computer Engineering and make a serious effort to find a job in the web industry. Second, I interviewed and received an offer for a position that fit what I was looking for (it was my only offer, and I got it in my last month of college). Third, I agreed to spend my summer working for a startup with a group of Cornell students in Silicon Valley.

Now I am in my second week at my new job and my title is officially "Web Developer." I had it changed because my skillset expanded a lot in the past few months and I am doing a lot of work that I didn't think I would be able to do when I interviewed. I've been thinking a lot today about all the things I did that really prepared me for my position, and I would like to share my advice with you.

The first thing I should mention is that, while I did take some courses related to web programming and information science, my coursework alone did not prepare me for my job. There are a lot of reasons for this:

  1. Most web programming courses are months — even years — behind what is going on in the industry
  2. These courses are also impeded by those students who don't have a solid programming background.
  3. There are a ton of things to learn in web programming that your courses alone can't cover.

That being said, courses are essential and I don't want to make anyone think that they aren't worth taking. My advice, however, is to go beyond your coursework, especially while you are in college. Here are the things that really helped me prepare for my career:

  1. Learn concepts, not syntax. Some people have the misconception that you should try and pick up as many programming languages as you can. The truth is that a lot of things work pretty much the same way across all the programming languages out there; you have your loops, your conditions, and some handful of data structures at your disposal. What you should know are the concepts… learn object oriented programming. Build something with the MVC model. Manipulate files and work with databases. Learn as many concepts as you can, because when you do, you will have learned a lot of techniques for solving problems and you will be able to pick up new languages quickly.
  2. Get some experience programming off the web. It might be hard to believe that you can learn a lot from writing a "classic" language like C and making software that runs on a computer (or a video game console, or an embedded chip), but you can learn a lot from it that you will find yourself applying to anything programming-related that you do.
  3. Learn XML and play with APIs. APIs are where the web is headed right now so it's good to have some experience with them. Some really good ones to play with are Flickr and Facebook. Along with APIs, you should learn how to work with the various data formats that are used to send information, such as XML and JSON (but don't try to write your own parser unless you are a masochist).
  4. Practice good coding principles. One of the most important things I learned about programming is how to write clean code. If you are not accustomed to keeping your code organized (functions go in one place, SQL queries in another, etc. etc.) and commenting the things you do, you really need to change your habits. Otherwise you will regret it a lot down the line when you are working with teams and building large, complex applications.
  5. Learn to read bad code. I hate to break it to you, but more often than not you are going to have to look at code that someone else wrote and usually it will look horrendous. Regardless of how much you might want to delete it all and write it again from scratch, you are going to have to figure out what it does and work with it. It's good to get used to this early on and save yourself the head-to-desk episodes when it happens at your job.
  6. Teach yourself as much about design as possible. On the web, everything you do is user-centric. Even if you don't have the natural artistic talent that a designer needs, you should still try to learn everything about design you possibly can. Pick up some Photoshop techniques, learn about user interface design principles, and get a mind for conveying messages visually. It will help a lot in understanding the design phase of every website, and it will expand your skillset too.
  7. Run your own website(s)/do some advertising/build your own web app(s). There are a lot of things that you can learn only through experience. Start a blog and see how many readers you can attract. Run some advertising and figure out what works. Build some web apps and cover the steps of making user account systems and developing both the front-end and the back-end. The time I put into my websites and into building my first web application really paid off in terms of how much I learned, especially since I learned things that I could never have learned in class.
  8. Work freelance. It's easy to build websites for yourself; it isn't until you work for clients that you realize how difficult it is to take someone else's idea to implementation. Plus, maintaining good client relations is a great way to build your people skills.
  9. Work at least once on a team. Regardless of what the work itself entails, you should definitely get some experience working with others. It will teach you to rely on other people for portions of projects and write code that others can work with.
  10. Get on the chatter. You can become very knowledgeable about web development simply by listening to what others are saying on the web. Read blogs, follow mailing lists, join discussion boards, etc. Doing so will allow you to learn about things you never would have heard about on your own and keep you ahead of the fast pace of the web industry.

That conveniently makes for 10 points, and we all know how popular 10-lists are… anyway, I hope everyone finds that advice useful. If you are a web developer, share your own advice for others in the comments.

Get a trackback link

3 Trackbacks/Pingbacks

  1. Pingback: Career Change Resource Centre » How To Become | Web Developer on August 23, 2007
  2. Pingback: Alessandro Pagnin » Christian Montoya, grazie per i consigli. on August 23, 2007
  3. Pingback: I want to become a web developer what should i study? on December 20, 2009

17 Comments

  1. BHI Pro careers on August 22, 2007

    It's a good thing to also have your own crash courses to be ahead. It's a fast pace out there. Kudos!

  2. NatalieMac on August 22, 2007

    When I became a Web developer, there were no courses out there to help you learn at all. I think that's one of the best things about the field now - it's a field of people who are so passionate about the web that they take the initiative to learn and experiment on their own and share their knowledge with others.

    It's still a field where real-world experience and ability count more than your resume and education history. When you apply for a job in web development, employers look at your portfolio and poke around in your code. Sometimes they don't even read your resume.

    Be aware that employers do typically read your blog, your MySpace pages, your Facebook pages, view your Flickr stream, etc. etc. Be aware of the reputation you're creating online.

  3. qeek on August 22, 2007

    That's an extremely useful article, thank you Christian!

  4. Izabela Bogdanovic on August 22, 2007

    Programming is very specific since there are no limits for one to practice on his own, and thus gain significant experience. It would take some time to grasp all the technologies and techniques you have mentioned, but your list definitely can be a guide for newly become programmers.

    You wrote so well on the subject and I will trackback to your post on my blog (career related) as I have a series of posts on "how to become…". Good luck with web development :)

  5. Katrina on August 22, 2007

    Nice post. I have had basically the exact same experience as you have - finished college last year, got a job working for a web development company in my last semester etc.

    Currently I have already been doing everything from this list except playing with APIs (I will take a look into them when i get some time) and I am having the best time of my life. Thanks for putting it all in a nice to read list, I will post a trackback on my site.

  6. Jermayn Parker on August 23, 2007

    Some very good hints there and I totally agree with what you said about doing extra study and real life work outside study.

    Of my year (200 graphic and mmd people), the only people that got jobs were people who studied and did real life work outside uni and I was one of them :)

    btw I ended up teaching my teachers html :P

  7. cak on August 23, 2007

    Wow, it is great to get advice from someone who has been working for two whole weeks. Firstly, how can programming courses be months of years behind?? Programming courses are supposed to teach you how to program, it doesn't matter which language they use, or what technologies - once you learn the basics it is the same in any language (even functional languages).

    Seriously, your advice only suits people who really shouldn't be on the web anyway, except to update their myspace page.

  8. Ale on August 23, 2007

    Very great article ! Thank you Christian!

  9. annoyed on August 23, 2007

    and for gods sake, don't use tables for layout!

    how the #$!% do people get paid what they do to create pages that use nested tables for layout. it kills me.

    off with their heads!

  10. Christian Montoya on August 23, 2007

    cak: Your comment only shows how ignorant you are regarding information science programs and how many assumptions you have made about me. First of all, I have been working in the web industry since September 2005, when I launched my first websites for profit and began doing freelance work. Since then, I have worked in various roles both as an entrepreneur and a freelancer, plus I spent this past summer as the lead UI designer for a startup that has taken off as a full-fledged business. So sure, I have been working for 2 weeks at my current job but I have a lot of experience in the industry already.

    Second, what I think was very clear in my article (provided you read it) was that web programming courses are far behind the industry. When I took the intermediate web programming course at Cornell, they never covered Ajax, barely touched OOP, and certainly didn't have any exercises dealing with APIs. Sure, you can learn a lot about programming in traditional computer science and engineering courses, but there is still a lot to be learned from working specifically with web languages and web platforms. That's the point I was trying to make in my article, which didn't get across very far to you.

    By the way, what is your experience? You didn't leave a URL so I don't know whether you are 12 or 30 years old. Are you a web professional?

  11. beth on August 23, 2007

    I agree that most of what is taught in colleges regarding web design is waaaaaay behind.

    That in mind I think a good design school will still prepare you better than most other programs. At least you're still learning about solving problems and the foundation of visual communication. I think the best situation someone starting fresh could put themselves in is a school with an excellent design program, that also offers a diverse range of computer science courses.

  12. jad on August 23, 2007

    I frequently have to interview and hire for co-op and full-time web development positions, and I am forever astounded by one simple and frightening fact on the co-op and 'fresh out of school' fronts:

    At least 60% of kids well into or just out of compsci / programming programs are not making any effort to learn and work in this field outside of the classroom. No personal projects, no freelancing, not even any apparent curiosity sometimes.

    These interviews are short. What, we're not going to hire them on the basis of that wonderful fluffed up resume alone? We're going to ask questions that stray outside of their canned answer domain? SHOCK! We're a shop that has a lot of interesting work experience available for a green coder, but we can't afford to waste our time on slackers who aren't hungry enough that their classroom experience leaves them wanting.

    Kids - you do need to have personal projects (and you know, it often isn't that hard to grow at least semi-profitable sidelines out of those if the idea is good)! You do need to learn other languages! School is giving you some of the tools and knowledge, but if you aren't bearing down and applying it outside of the classroom, then you need to (A) ask yourself why you're trying to get into this field to begin with, if you don't explore it and augment your knowledge and experience on your own, and (B) not be surprised when you're spending years just scraping by and rotating through extremely tedious and underwhelming positions for a good long while.

  13. Jem on August 28, 2007

    cak.. is that name based on the British slang for shit: "cack"? Would explain a lot.

    I agree with your post, although I definitely think you should have put some focus on what NatalieMac mentioned - potential employers (particularly in the IT field) will read your blog, your myspack (typo deliberate), your facebook profile/etc. If you want to be employed based on your web presence, make sure it's one worth employing.

  14. Christian Montoya on August 28, 2007

    That's definitely a good point, I guess it just slipped my mind since I've always been careful and professional about my web presence and I kinda figured other people knew that already!

  15. Mike on May 26, 2009

    Christian:

    Thanks for the article! I found it useful in confirming what others are saying in the industry. I graduated with a Marketing degree and have since realized my real passion is in web development.

    I have been learning and researching for about half a year (my job only really requires about 4 hours of real work per week), and believe I am on track to apply for a job in web dev in another 6 months.

    Question: From a "future of the industry standpoint", should I be focusing on ruby on rails then learning ruby or PHP? I understand that Java is huge too…

    My plan: XHTML and CSS are done.
    I'm learning OOP PHP with file manipulation and MySQL.
    I will move to javascript after that.
    Then come the intricacies like workflow and UI design basics.

    Anyway, if you had to chart your own educational chart what would you do differently? Anyone who reads this please offer your advice!

    Thanks.

  16. Christian Montoya on May 26, 2009

    You should learn programming regardless of the language first, so OOP PHP is the right track. At some point you should pick up Ruby on Rails, because it is becoming very popular and it will make you a more flexible web developer. Also, being able to work with MVC frameworks is a must now.

  17. Pierre on June 25, 2009

    Hi guys

    I'm new to programming in general.

    I want to build a simple Christian website with links on specific issues to BibleGateway.

    What programming language do you guys think will be best ?

    I've messed around with Joomla ! but not sure if it is the bst recourse.

    Any help will be appreciated.

    Thanks !

Leave a comment

Use Markdown or basic HTML. For posting code, use Postable. Please keep comments respectful and on topic.