So you wanna be a web dev?
It is the end of a school / university year and people are thinking about what to do to become more web savvy. Here are some ideas.
The notes below are the latest version of a set of conversations for anyone wanting to explore web development as a job or even as a sideline.
I am particularly keen to see more gender diversity in particular and I think it would be great if everyone learned a little about web development. As a web developer I’ve seen many programmes come and go over the years.
I bought my first serious computer in 1985. It was rubbish but at the time – also state of the art and very expensive comparatively speaking. I was the first in my peer group to get a laptop a few years later and using spreadsheets was my thing. That application was Lotus Symphony .
I also discovered that if you hit the Alt key and an F key (can’t remember which one) you could use it as a Word processor. I think it took me about a year to find out about the keyboard shortcut and pretty sure I wrote text on the spreadsheet mode for a long time. 🙂
I work mostly in what is called a LAMP environment which means that I work with Linux, Apache Webserver, MySQL and PHP. This is a great place to start.
Linux & Apache not so important at first but just know this is not Microsoft and most of the internet infrastructure is LAMP.
Sometimes these elements are called a stack and what employers want is a “full stack developer”.
MySQL is the main database that people use for most everything including content management systems like WordPress, Drupal and so on. Most users would learn phpMyAdmin at some point which offers some shortcuts to using databases.
PHP is a scripting language. Programmers often use frameworks which is like a set of tools to manage their code and for PHP this could be Bootstrap or Foundation. Now more than ever it is important to be able to develop “mobile first” responsive websites and web applications. See also Skeleton for some ideas on how this all works.
The main web display tool is CSS – Cascading stylesheets to display the style “layer” which is a separate skill set and very useful as it deals with the visual side of how content is displayed so controls fonts, colours, layouts & styling generally. Sometimes people will mention coding standards. I work mostly on WordPress projects so that is where I’d look for a checklist.
HTML and HTML 5 will be mentioned by some people. It is great to have some knowledge of HTML but many of the newer systems generate the HTML for you from a combination of the PHP and the CSS which “talks to” a database and creates pages, posts and any custom page types.
Ruby on Rails is also something all prospective coders should look at. It is a PHP alternative and another way of understanding code development.
Supporting technologies – the frameworks referred to earlier are all of interest. Applications like PHPMyAdmin and GITHUB which is a source code library to control versions. Coding needs project managers and Agile is a popular approach. so http://agilemethodology.org/
Future & Philosophy
There is a book called Hackers & Painters by Paul Graham that contains a number of essays thinking about problems in code. Find a copy at a library and read as much of it as you can but especially these essays that are also available online.
Hackers & Painters background
Hundred Year Language language design and why if you go down this path it is best to learn multiple programming environments as different ways of solving the same problems.
Some other PG essays.
I would encourage you to think about related jobs. Some programming knowledge is a great thing but not everyone can programme and better not to do something you don’t really like but you need to try it first.
I’d look at “Business Analyst” and “Project Manager” as well as coder / programmer. A combination analyst / programmer used to be a thing. In NZ this combination is still very useful for employers.
Designers also use PhotoShop a fair amount and there is a whole field of designers and design tools. However since there are lots of people with design skills who still work in print and other media that is less sought after. But useful to get some design skills in Photoshop to manage images more easily at least.
Project Management is an area that always needs good people and graduates should look at that. Besides Agile there are other approaches and certification for example PMI.
There could be some great NZ computer science course out there. My impression is that the university courses good on theory but not immersive enough and its very much luck if you get a great tutor who is actually working in business. For the first time in modern history a university might not be the best place to get a technology degree.
I think having a degree in Philosophy, Engineering, Law or anything which requires thinking and precise communication is great.
Once you have an idea of what those are and if it is interesting then a coding bootcamp like Dev Academy might be useful. It covers most of the items mentioned above and is an 18 week system that costs around $11k. There are other private training setups out there – most of them are not very useful or practical and I’d avoid them.
If you have a high school daughter and live in Auckland Girlcode is a primer and costs $400 and is basic but would be a great way to get involved and try out some ideas. The tech industry needs much great gender balance and so part of the thinking there is to get more women into tech and it is a great idea.
For an idea of expectation and actual experience of DevAcademy – some interesting comments there.
Find out from people you know or friends of friends the practical side of what they do if they are in a tech role. Get an idea of what is important. Read, read and think. A programmer with a background in philosophy would be ideal in my view.
BTW – I’ve ignored Microsoft but there is a whole programming ecosystem around Microsoft apps and coding languages. C & C Sharp which would be worth exploring later on.
Java is also something that might be useful but in my opinion its usefulness is over stated and I know many programming courses still use it.
BTW – Sitepoint is useful site to research many of this ideas. See also – NodeJS is something that gets mentioned often in open source circles.
Python is also very interesting but see earlier essays I included links to. If you “get” programming then just know that the very best, exceptional programmers learn multiple languages and modal models. Those developers can solve problems in multiple ways. That is something that most businesses would love.
We have too many people who know a lot about Microsoft ( which is a huge universe but well supplied) or one language and what really we need are multi-disciplinary developers who understand how all the environments work together.
What do you think? Do you have any friends or staff who have used CodeAvengers or CodeAcademy? Other ways to get started?