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. 🙂

Background

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.

For PHP the top frameworks (2016) are Laravel and CodeIgniter

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.

For CSS the main standard is CSS 3 or 3.3 see W3 CSS or WordPress CSS standards if you are researching.

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.

JavaScript is programming language of HTML and the Web especially “front-end stuff”. ReactJS is what Facebook uses and that is a library and framework of sorts.

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.

Python
more thinking
Philosophy may be interesting.

Some other PG essays.

Jobs
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.

Sometimes people refer to back-end dev’s or front end devs. Back end is Database related and Front end is more Javascript & CSS – which together is more of a designer approach.

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.

Training Options

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.

If you are already a graduate and know how to study you should be able to pick up some basic online courses on CSS, HTML, PHP and maybe JavaScript. For high school and those starting out in New Zealand I’d look at the CodeAvengers courses.

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.

Finally
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.

I’d say that because of Facebook and WordPress adopting ReactJS – a JavaScript “flavour” that is much more current and useful. See Top JS Frameworks  e.g. Angular and Backbone are other libraries that are popular.

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?