Help me become a web developer.. where do I start?
July 2, 2010 2:08 PM   Subscribe

Help me become a web developer.. where do I start?

I graduated from college 10 years ago with a bachelors in computer and information science. I've worked in the I.T. world ever since but never as a developer. I spent 3 years as a network ops guy and then got a lucky break later on when i moved into the development area of the business and became a project manager and eventually the Senior PM in charge of large web development projects and system architecture design. I enjoyed that work a lot because I did all of the creative stuff.. the analysis, designing very detailed software specs, strategy, information architecture.. it was very brain heavy work.. but I somehow managed never to write a single piece of code in all those years even though I was very much involved in the technical decisions. I always thought up the reqs and then passed it off to my team in Delhi to do. I did my job very well but inside i always felt like i cheated the system somehow. I still try to hide the fact that I never got dirty.

So now I find myself at a crossroads in my career. I am going to stay in the tech world but after a long travel sabatical i am on my own and finding that I am getting a lot of offers to create websites. I can very easily just be a PM again and subcontract the work and take a 70% cut of the profit but I want to get rid of this insecurity of mine.. I want to learn how to make great dynamic websites myself but my skills are WAY outdated. I'm still not sure what a DIV does hehe

So, sorry for the long winded story, I'm also kinda looking for shared experiences but my question is this: If you had to learn this all from the beginning, where would you start? There are so many technologies and reference sites out there now that my fucking head is spinning. HTML? CSS? Javascript? PHP? Ruby on Rails? Wordpress? Joomla? .NET? XSLT? SEO?

Its important for me not only to learn the technologies but the correct methodologies... best practices etc.

I want to get up and running quick with the basics and i think with my background I wont need as much time as a complete newbie but I also don't want to waste a lot of time on things that are fading out or you would skip. I also am hoping to make a concise list of great online tutorial sites and cut that list to 3 or 4 and stick to it period. because with my ADD like brain, I tend to have a bookmark folder with 300 links to coding tutorials that I find on digg and reddit "TOP 10 X to do Y" type lists. Eventually the list is useless.. too much choice.

Now I just want to preempt anyone who is thinking of telling me it takes years and hard work to become a web developer. Of course I know this.. I read Malcolm Gladwell's Outliers too and I am perfectly aware that its going to take time and practice.

So I turn to you.. the cloud. What are your suggestions and top 3 tutorial sites??

Thanks for reading all this shit.
posted by postergeist to Technology (12 answers total) 18 users marked this as a favorite
 
This is a very broad question, so you're probably going to get very broad answers.

First, there are some core things that you need to learn sufficiently before you can proceed further: HTML and CSS at a minimum, and you might even include JavaScript in this category. You need these - the first two at least - just to build static web pages.

Next, you'll need to learn a CGI programming environment. There are all sorts of these, and my recommendation here would be to go with (a) whatever strikes your fancy, and/or (b) whatever you think will be most in demand by your future employers. Other than those two criteria, they're pretty much interchangable: Java, .NET, PHP, Ruby, Python, ColdFusion (my favorite of the lot, but probably not your best choice).

There's one important sense in which they're not interchangable, and this may influence your decision. Some are general-purpose programming languages, like Java, .NET, and Python, while others are designed specifically for CGI programming: PHP, ColdFusion. If you're looking for quick results and a lower learning curve, you might choose one of the latter. But if you're looking to be a well-rounded developer, you might choose one of the former.

Some of the other things you list are kind of secondary or tangential: Wordpress and Joomla are content management systems of a sort, and while they may be useful they're not really representative of web development as a whole. SEO is basically just an extension of HTML knowledge - knowing how to build well-formed, useful documents is what provides SEO value. XSLT, and more broadly, XML knowledge in general, is very useful for any sort of developer, but you can defer learning about that until you have a specific need for it or you've learned enough about the other items mentioned.

The item that you don't mention, that is very important for most web developers, is SQL and database design. Most web applications rely on relational databases, so having a deep and thorough knowledge of how those databases work and how to write code against them is incredibly important. You'll have to learn that in parallel with your CGI programming environment of choice.
posted by me & my monkey at 2:27 PM on July 2, 2010 [4 favorites]


I'm not an expert either, but have been trying to push myself more into web, from my graphic/visual design background.

I have one piece of advice. Screw tutorials.

Really.

I'll sit and fret about everything, read everything I can find, squirrel away every bookmark I think is useful, etc. You can read about best practices all day long (and it is a great idea to do so), but you won't learn how to apply them until you start doing the work. Every project is a learning experience, and sure some tutorials (or for me, glue code) will be useful tools in that project, but they'll never be an exact recipe or pattern to follow.

Start with some idea for a website, then make it. Maybe make Postergeist's Old-Timey Fudge Shop an online store, with fudge photo gallery and the store's cat Twitter feed. Sounds daunting right? It'll be slow, torturous, and you'll do everything wrong. Thats ok. You'll make it work, (then you'll make it work in IE). Then you'll burn the hideous monster of code and do it again, armed with the knowledge of everything you did wrong, and everything to avoid. The next project will seem much less daunting. Rinse and repeat.

As for trends to follow, I know Ruby is much loved by a hardcore set of fans, but I don't see it having a future. I think the skills to learn are HTML and CSS (make them your pets), JS, PHP and HTML5.

You mentioned Wordpress and Joomla, which are Content Management Systems. I'm assuming you're referring to developing modules for them (as developing themes is just a basic understanding of php, html and css). Module development, if in the right environment (eg web-house with big clients, or on a big website team), can be profitable. Otherwise, I don't think it'll make bank. Those CMSs are free, and the users aren't really going to be pushing the limits of functionality, and a huge market of free WP and Joomla modules exist already.

Another question to ask is where you want web development to take you. It's a huge field. Do you want to hand complete website packages to clients? Do you want to develop templates, modules, or .psd to .html? Work in house at a big company? Work at small web shops, or big design shops? Each of these will want different things from a web developer.
posted by fontophilic at 2:42 PM on July 2, 2010 [1 favorite]


I would recommend avoiding tutorials to learn.

In my opinion you should start with an idea of a not-very-ambitious project you would like to complete. Determine the requirements of your project, then begin trudging though the development learning the skills and techniques as necessary.

When you are satisfied with how your first project turned out, start a new project of increased complexity. Repeat ad infinitum.
posted by axismundi at 2:55 PM on July 2, 2010 [2 favorites]


+1 on picturing a a goal and working towards it.

if you share your goal, we'll probably be able to give advice on which technologies will help you get there quickly.

don't stress too much about technology because as a beginner, knowledge you gain will transfer readily to the next technology.

i would also say that once you have built your first site. have somebody look at the code. it's invaluable feedback.
posted by maulik at 3:00 PM on July 2, 2010


I should add:

"Tell me and I'll forget; show me and I may remember; involve me and I'll understand."
posted by axismundi at 3:00 PM on July 2, 2010 [2 favorites]


In the interest of answering your actual question, I find w3schools.com to have pretty good tutorials and quizzes. You won't stay with them long, given your background, but I think they offer a good overall picture.

But seconding just working on a project as the best way to learn. You might try finding a current site that interests you and saving all the code locally. Then play with it. But remember the scientific method! Only change one thing at a time, see how it affects the design, and repeat.
posted by SuperSquirrel at 4:26 PM on July 2, 2010


1) Master HTML & CSS.
2) Become familiar enough with Javascript that you can effectively steal/re-use/customize other people's code. Be friends with the DOM.
3) Learn JQuery, at least to the point where you know when you can avoid pure JavaScript.
4) Learn some language + SQL. You don't have to master it yet, but get friendly with it.
5) Master a server-side programming/scripting language (PHP or Python are probably most common, but if you know one, you can adapt pretty readily to others).

In the process of each of these, you'll learn a lot about the others.

Truthfully (at least in my experience and in my field), the designation "Web Developer" is becoming a little dated. Now people want developers who are intimately familiar with a specific product like Drupal or Wordpress or Joomla (I've seen a lot of ads for "Drupal Developers" lately). Also, "Web Developer" can mean someone who only does backend web work (PHP+MySQL) or someone who does front end design (HTML+CSS+JQuery, or even templating work for Drupal or another CMS) within a particular framework.

Basically, like everything else, web development has fractured into a number of more specialized fields, and it means different things to different people. Yes, there are still job postings for "Web Developer" but there are also a lot of more targeted Web Developer posting out there.

I'm sure others will encourage you to be a generalist, but I'd go the opposite route -- specialize. Pick a single focus (like, for example, Drupal) and become the master of that. In the process, you would also need to master HTML and CSS, learn quite a bit of PHP and some SQL, and some JQuery (because it plays well with Drupal). The other advantage of this is that you'd be able to start with a working, attractive, complex model (a Drupal site) and customize, rather than beginning at the very beginning ("Hello World!")

Additionally, all these open source products (and even the languages) have dedicated yearly conferences where you can meet other like-minded people who are happy to help you. Becoming involved in a given community -- Drupal, Python, Wordpress, even Javascript -- may be the best thing you can do to help yourself grow quickly into a real developer. Even if you don't get involved, the community is always there to help you.

Finally, like others here, I'm not a fan of tutorials, but Lynda.com has some great ones. They're always my first stop when I need to learn something new, and I highly recommend them. Then again, I have free access to the site through my work, so it doesn't cost a small fortune.
posted by coolguymichael at 4:34 PM on July 2, 2010 [1 favorite]


Response by poster: These are great answers so far, thanks. To answer the more specific question about what I would like to do, I am starting my own business so I am not at all interested in becoming part of a web team at a company large or small though that may end up happening one day depending. I think mainly its to plug this huge gap in my skill set. I will be a much better leader and more self sufficient, if I know how to do the work myself. In reality, to run this business I really dont have to know this stuff, I just have to sell and be an account manager. I can farm out the work. But I guess this is kind of personal as well. I want to know how for my own sense of self and to be much better rounded.

Initially, my clients are going to be small websites like mom and pops and so my first projects will be mostly static and i'll want to be able to do something simple like give them an online store. I'm thinking once I get html and css down, one of those off-the-shelf CMSs where I can just download modules and reskin them would be the quickest way to get me there without writing the online store code myself. That I can eventually learn in the long run but i have to think about balancing that with being business efficient as well and making money. Unfortunately i'm not 20 living at mom and dads... i have the unfortunate time killer of needing to pay the rent as soon as possible.

Eventually, where I would like my business to go is to aim for higher value clients.. small to midsized corporations where a project is in the $20,000-$40,000 range and the work is more about business analysis, process engineering and writing software to solve a specific business need.

For those of you who said ditch the books, ok great..I would love to! I dont think ive ever gotten through a whole one anyway.. but like you said.. i should start with one project.. well i've actually already got two. So i'm sitting in front of a screen and without the book or tutorial, where would I start?
posted by postergeist at 4:57 PM on July 2, 2010


I'm not a developer, but I will pass along some advice. Copy and paste code from sample websites you like. Figure out how they work by trial and error.

If you're really a Noob, read a book first. It's not going to hurt.
posted by xammerboy at 11:40 PM on July 2, 2010


The best way is learn the basics of HTML, CSS before moving ahead with any web development courses. That would let you understand and guide the best way to move forward. You would understand if this is really of interests to you. There are many websites from where you can learn the basics and develop small websites in couple of days.
posted by vishacon at 4:40 AM on July 3, 2010


Best advice I ever got in a programming class: draw it out.

Draw out what each screen will look like, make notes about what each page will have (and justify its existence). Make a story board of your website.

Later when you start tackling databases, you'll draw out the relationships that tables have, what data is in each, and what data links each.

After you draw it out, you'll have the dirction you need to decide what to learn. (e.g. "I want every page to have a logo and contact info on the bottom, what is that called (a footer) and how do I make it?")
posted by jander03 at 12:32 PM on July 3, 2010


+1 for understanding HTML and CSS before you do anything.

Once you have that down, learn the basics of JavaScript. I'm not sure if I can advocate immediately learning the JQuery library, but as far as JavaScript "shortcuts" go, it's a damn good one.

You should then be able to reason out "why" you need to use something like PHP... and from there it's a short jump to realizing "why" you'd use something like MySQL.

If I had to put a list together from what I commonly use, it would be HTML+CSS+JQuery, PHP+ADOdb+Smarty (or Dwoo), and MySQL+phpMyAdmin.

Of course, there's a ton of things I've left out, but those are the core. All those have served me very well.
posted by Fat Elvis at 1:58 PM on July 5, 2010


« Older How do I get a new picture ID when I don't have a...   |   Pick a fall weekend in Seattle Newer »
This thread is closed to new comments.