Being a web developer can mean quite a few different things in today’s programming arena. You can focus on a specific subset of skills and concentrate on becoming a specialist within a given component of web development. Or you can broaden your technological horizons and take your career all the way to the top (opinions vary!). Choosing the latter path would very loosely mean you are competent in a range of technologies and disciplines and able to implement a moderately complex, web-based system, from start to finish. At this point, you will identify as a full stack web developer.
Computer programming has changed dramatically over the last thirty years. Never before has it been so varied in its demands and fragmented in the technologies available.
A 1990s developer of computer systems used for business processes in the office would typically only need strong skills in one or maybe two programming languages. These may have been C, or for the veterans out there higher level languages such as DBase or its compiled competitor Clipper.
If you had the ability to work on a database and build a few batch scripts and attain a grasp of a multi-user environment, you had almost everything businesses would need of you as a programmer.
Jump forward to the present day and take a look at the current ways businesses use the internet.
The bare minimum for static site development is changing
But it doesn’t stop there, not by a long shot. You’re very likely going to be using an IDE (Integrated Development Environment). Many of these are bug-riddled and complicated to use in their own right. A graphics editing package such as PhotoShop or PaintShop will be essential. These represent almost an entire toolbox for some employees, whereas you will be expected to know them by default in a similar way that knowing a word processor or spreadsheet package is just the norm.
Expanding into the server environment
Thus far we haven’t addressed the back-end or server-side of how to become a web developer.
We can implement a few different languages on the back-end. These include PHP, C or JAVA for instance, along with Microsoft ASP and its derivatives. Becoming experienced and fluent in one or more of these will allow you to specialize or build upon your stack.
It can take years to master the above languages, but the learning curve can be greatly reduced by modifying existing systems as long as the code being modified is of a certain standard. Poor code encourages bad habits, which can be hard to shake off down the line.
To transmit information between the browser and the back-end processes, today’s programmers will need to understand a mechanism such as AJAX. A full page refresh won’t cut the mustard anymore!
Performance issues must be understood from the outset, and expectations and potential demands on the server should be addressed from the start. Knowledge of overheads and bottlenecks is going to be essential.
Whichever language you use, it will (in most cases) need to communicate with a database. For this, SQL (Structured Query Language) is going to be needed. The syntax will be embedded within the main back-end language and passed to the actual database server, which in turn will provide the data and response. Performance is a critical consideration when designing a database, the way it is accessed by the application determines (in part) the required indexes. With this in mind, knowledge of SQL and Database design will be fundamental in your success as a programmer either full stack in nature – or specialising in back-end processing and data storage.
It isn’t all about the tech
One thing which has not changed over the years, is the simple fact that you MUST LISTEN if you are programmer involved in the gathering of system requirements, especially during the analysis phase of a project. Learning to listen first and foremost is essential and represents the starting point in ANY programming career “journey”. Understand exactly what the customer wants. What they want may be at odds with what YOU think they want – but only once you understand their view will your suggestions and refinements be of any true value.
I hope this doesn’t put you off wanting to become a web developer – just be aware that there are a few hills to climb before you hit the top!