Skip to content

Instantly share code, notes, and snippets.

@mjburgess
Created July 14, 2012 19:25
Show Gist options
  • Star 79 You must be signed in to star a gist
  • Fork 12 You must be signed in to fork a gist
  • Save mjburgess/3112886 to your computer and use it in GitHub Desktop.
Save mjburgess/3112886 to your computer and use it in GitHub Desktop.
Breaking into Web Dev

Breaking into Web Development

I work as an analyst contractor, these days my roles are often a mixture of development and management. I have been asked by a countless number of people what they need to do to get the jobs I’m offered – and it’s simpler than most expect. The market for talented developers in the United Kingdom (and in many talent-lite communities around the world) is such that anyone who merely knows what they are doing has a very good chance of getting a job. Even a job contracting (which ordinarily has senior-level requirements).

To become a web developer with a good salary and employment expectations you need skills. Below I’ll provide a plan to get you towards the top of the largest market: PHP Web Development. Advanced knowledge of everything on this list would immediately make you one of the best, so just strive to have an exposure if not a comprehensive understanding (though the *starred points are essential). To learn these technologies you should use several in combination on one of the projects listed at the bottom (as well as on ideas of your own). Applied knowledge is much more useful than theoretical, good interviews will often asked about problems encountered to demonstrate that you do actually know your stuff.

When you have completed projects, you can upload them to github (or another public repo) and get help & feedback from the community via freednode irc (##php, etc.) or reddit (/r/php, /r/webdev) etc.

When it comes to writing a CV (resume) for web dev. positions having this code available on a public respository will do wonders for your credibility. You do not need to have commercial experience to get a job. On a CV you can discuss these projects, the technology you used, its pluses/negatives. You should expand on any work you have done (outside of dev. included) that shows you are reliable and personable. Aim to demonstrate enough knowledge that interviewing you will be worth their time. Remember that many companies would prefer to hire a personable developer that they can train up than a highly skilled developer that is difficult to work with.

Languages

Basic Programming

PHP*

Javascript*

SQL* (+ Stored Proceedures)

HTML*

CSS*

One of Python, Ruby, Java, Scala, Clojure and one of C, C++, D Haskell

Tech

Apache*

MySQL*

Mongo or CouchDB

In-Memory (/Cache) DBs redis & memcached

Linux Admin*

Development for Heroku, AWS, AppEngine or similar

Exposure to Node.js

Knowledge

Best Pratice PHP development*

Secuity

Testing* & Quality Assurance

OOP*

Functional Programming

MVC*

Javascript object-functional programming

CSS3, HTML5 development & Mobile

Performance and Scaling

Living with Legacy*

Licencing

Development Software

Svn, Git*

Ubuntu, ssh, rsync

One of Netbeans, PHPStorm, Eclipse, nuSphere, Zend Studio, etc.

One of TextMate, gEdit, Notepad++, etc.

One of vim, nano, emacs, etc.

Phpmyadmin

One of Capistrano, phing, composer, etc.

Open Source Libraries

Zend Framework and one of Sympony, Cake, Kohana and one of Lithum, Fuel, Silex

jQuery and Backbone.js, Underscore.js

One of Mustache, Twig, etc.

Phpdoc

PHPUnit

Phar

Projects (to write yourself!)

In PHP

Analytical (Pure PHP)

MVC Framework with Routing using PHP5.2

MVC Framework with new features of PHP5.3 OR ORM framework

REST layer over RMDBS

API library for one of paypal, amazon, ebay, google, etc.

Mixed

  • Basic CRUD Form/Survey/Guestbook website
  • Blog using the above libraries
  • Shopping Cart/Ecommerce project using these libraries
  • Social Networking Site (either microblogger, group sharing, etc.)
  • Chat (Rooms)
  • File Manager
  • Online Build/Deployment Manager (upload & deploy phars?)

In Javascritpt

Single page application using jQuery/Backbone

HTML5 Mobile Application using Twitter Bootstrap

Node.js & NoSQL db app

Meta

  • Write documentation and tutorials on your own code
  • Write coding standards
  • Write designs for different applications you have seen online (how would you design facebook?)
  • Outline the way you work, from how you start to deploy to support projects

**Research other solutions to the above problems and compare with your own. **

@VAggrippino
Copy link

This is a great list. The links to learning resources are especially appreciated. I'm an unemployed web developer, so think a lot of this will be useful to me.

There are a lot of important items here that I wouldn't have thought of. There are also a few that I wouldn't have included and a few that I've never even heard of. Good stuff!

Before I saw this, I wrote an article with a similar list, but a slightly different focus. My list, entitled Starting Over, is more like "Breaking Back Into Web Dev". I'm going to link to this gist and also add some of these ideas to my list.

Turning it into a gist is also an good idea. I'll probably do that with mine after I finish writing the related companion articles.

@luigisayshello
Copy link

Does it really pays of to be a PHP dev instead of RoR dev?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment