Skip to content

Instantly share code, notes, and snippets.

@mjburgess
Created July 14, 2012 19:23
Show Gist options
  • Save mjburgess/3112877 to your computer and use it in GitHub Desktop.
Save mjburgess/3112877 to your computer and use it in GitHub Desktop.
Breaking into Web Dev
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).
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
(http://www.codecademy.com/)[CA]
PHP*
http://php.net/manual/en/index.php
http://devzone.zend.com/6/php-101-php-for-the-absolute-beginner/
Javascript*
http://www.codecademy.com/
SQL* (+ Stored Proceedures)
http://net.tutsplus.com/tutorials/databases/sql-for-beginners/
http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html
http://net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/
HTML*
http://htmldog.com/guides/htmlbeginner/
http://html5tutorial.net/
CSS*
http://www.htmldog.com/guides/cssbeginner/
http://net.tutsplus.com/tutorials/html-css-techniques/html-5-and-css-3-the-techniques-youll-soon-be-using/
One of Python, Ruby, Java, Scala, Clojure and one of C, C++, D Haskell
http://docs.python.org/tutorial/
http://www.cprogramming.com/tutorial.html
Tech
Apache*
http://www.sitepoint.com/installing-apache-tutorial/
MySQL*
http://dev.mysql.com/doc/refman/5.5/en/tutorial.html
Mongo or CouchDB
http://www.mongodb.org/display/DOCS/Tutorial/
Linux Admin*
http://net.tutsplus.com/tutorials/php/how-to-setup-a-dedicated-web-server-for-free/
Development for Heroku, AWS, AppEngine or similar
https://devcenter.heroku.com/articles/quickstart
Exposure to Node.js
http://howtonode.org/
Knowledge
Best Pratice PHP development*
http://www.phptherightway.com
Secuity
http://phpsec.org/projects/guide/
Testing
http://net.tutsplus.com/tutorials/php/test-driven-development-in-php-first-steps/
OOP esp. MVC*
http://net.tutsplus.com/tutorials/php/real-world-oop-with-php-and-mysql/
http://net.tutsplus.com/tutorials/php/create-your-first-tiny-mvc-boilerplate-with-php/
Javascript object-functional programming
http://ejohn.org/apps/learn/
http://msdn.microsoft.com/en-us/magazine/cc163419.aspx
CSS3, HTML5 development & Mobile
http://mobile.tutsplus.com/
Performance and Scaling
http://www.slideshare.net/duleepa/scaling-a-web-site-oscon-tutorial
http://bitkickers.blogspot.co.uk/2011/12/nginx-ssl-reverse-proxy-tutorial.html
http://code.flickr.com/blog/2010/02/08/using-abusing-and-scaling-mysql-at-flickr/
Living with Legacy*
http://www.slideshare.net/crnixon/dealing-with-legacy-php-applications
http://www.slideshare.net/rowan_m/living-with-legacy-code
Development Software
Svn, Git*
http://try.github.com/levels/1/challenges/1
http://maverick.inria.fr/~Xavier.Decoret/resources/svn/index.html
Ubuntu, ssh, rsync
http://troy.jdmz.net/rsync/index.html
One of Netbeans, PHPStorm, Eclipse, nuSphere, Zend Studio, etc.
http://netbeans.org/features/php/
One of TextMate, gEdit, Notepad++, etc.
http://notepad-plus-plus.org/
One of vim, nano, emacs, etc.
http://www.vim.org/download.php
http://blog.interlinked.org/tutorials/vim_tutorial.html
Phpmyadmin
http://www.phpmyadmin.net/home_page/index.php
One of Capistrano, phing, composer, etc.
http://nelm.io/blog/2011/12/composer-part-1-what-why/
Open Source Libraries
Zend Framework and one of Sympony, Cake, Kohana and one of Lithum, Fuel, Silex
http://framework.zend.com/manual/en/learning.quickstart.intro.html/
http://book.cakephp.org/2.0/en/index.html
http://silex.sensiolabs.org/
jQuery and Backbone.js, Underscore.js
http://andyet.net/blog/2010/oct/29/building-a-single-page-app-with-backbonejs-undersc/
http://jquery.com/
http://backbonejs.org/
http://underscorejs.org/
One of Mustache, Twig, etc.
http://mustache.github.com/
Phpdoc
http://www.phpdoc.org/
PHPUnit
https://github.com/sebastianbergmann/phpunit/
http://www.phpunit.de/manual/3.7/en/index.html
Phar
http://php.net/manual/en/book.phar.php
Projects (to write yourself!)
In PHP
Analytical (Pure PHP)
MVC Framework with Routing using PHP5.2
http://net.tutsplus.com/tutorials/php/creating-a-php5-framework-part-1/
MVC Framework with new features of PHP5.3 OR ORM framework
http://techportal.inviqa.com/2010/01/11/learning-php-5-3-by-writing-your-own-orm/
REST layer over RMDBS
http://www.gen-x-design.com/archives/create-a-rest-api-with-php/
API library for one of paypal, amazon, ebay, google, etc.
http://www.ibm.com/developerworks/opensource/tutorials/os-php-webservice/
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
http://www.noupe.com/tutorial/jquery-mobile-tutorial-creating-a-restaurant-picker-web-app.html
HTML5 Mobile Application using Twitter Bootstrap
http://webdesign.tutsplus.com/tutorials/complete-websites/twitter-bootstrap-101-introduction/
Node.js & NoSQL db app
http://howtonode.org/express-mongodb
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment