A while ago we did a series of posts that were tutorials taking you through the beginnings of HTML and CSS but what if you wanted to do something more advanced? Well for that you are going to have to climb a totally different but related mountain. I don’t want to scare you off here, no what I intend to do is introduce you to a few of the tools that you may want to investigate should you wish to go further than making a few plain HTML pages. A lot of these things may be completely foreign to you but try not to worry about that too much. I have planned in my head a series of posts that take you through a select few of these, aiming mostly for free things you can download and just play with before you spend any serious money.
An editor is a bit of a personal choice but if there is one thing I will say about all the editors I have ever used they all perform the same job in the end. As a developer, you spend most of your life looking at code and so you will inevitably spend some time customising what your editor does. The three that we suggest below all have the ability to run on Windows, Mac, Linux and be customised, as far as I know all of them have the ability to edit multiple things at any time and can deal with almost any language.
Sublime (http://www.sublimetext.com/) – 70 USD
An awesome editor for a great price. I paid for Sublime 2 and got a free upgrade to Sublime 3. Take a look at all the plugins available for it and it’s not hard to make your own.
Atom (https://atom.io/) – FREE
Programmed by the people who provide GitHub this was bound to be something special. It’s small and powerful.
JetBrains (http://www.jetbrains.com/) – 69 GBP / year
The expensive and often professional choice. JetBrains produce a number of different products, most of which focus on a particular language or another. You can pay monthly (From £4.10 for a single product) and receive all updates including major new versions or yearly (£69 for the first year). The licensing is really quite confusing and in my opinion their major problem. I will say that they still give out free educational licenses which if you’re still in school or university are well worth looking into.
To program something a bit more complicated you’re going to need to choose a language. Now I will try to keep my biases to myself here but all languages have their plus and minus points you certainly can choose the wrong technology. We are only dealing with a few of the main web technologies available and there are more that you can research. I plan in future posts to hopefully take you through how to build an app in one or two of these languages and would like anyone who has some ideas of what we should try to build.
The great thing about PHP is that you can start to use it without any knowledge of objects however, they are well worth learning about. For any serious PHP developer, you should be looking to employ the use of a framework and there are many available. The great thing about PHP is that it is supported by a lot of hosting companies, getting started with a site built in PHP is simple and you can see results really quickly.
I have always found python to be much better at being a language to use for common line based tools rather than full working web based projects. Although saying that both the client and server code of the popular MMORP EVE Online is made using a variant of Python. Python is a little harder to get your head around in my opinion mostly because everything is treated as an object. Now if you understand the concept of objects in programming this is not a bad thing but for those who don’t, it forms a bit of a barrier I feel.
Web-based applications usually use some sort of database to store information. Probably most popular on the list of available databases are MySQL and PostgreSQL. These are what I would call very classic databases. You build tables that are optimised to look up the information quickly and query it using a slight deviation of the same language (known as SQL). These days there are a few other options that optimise document based searches or a subset of larger data sources, you’ll often hear these referred to as NoSQL because they generally do not use the SQL language to query the data.
These days I use an Apple Mac but it really should not matter what system you run you should be able to develop an app fully. Most people will tell you that if you use Linux it’s going to be easier, but the trouble is that Linux has generally a very steep learning curve and has (at least once to me) ended up with me nuking my entire machine by accident. My advice no matter what system you run is to look into Virtual Machines. I did mention that we will be looking into development a bit deeper and if your planning on doing this download and install a VirtualBox and Vagrant I will take you through what these do and how we use them in a two weeks time.
Do you know of any more development tools, or tricks for development that you think we should have covered in this article? Were there any particular tools that you liked the looks of? Tell me about your thoughts in the comments below, or over on Facebook and Twitter.