The year of coding

NB: updated July 24, 2013

A recent WordPress Sydney meetup got me thinking. Is it useful for writers, designers, journalists, or any other people who do stuff that touches the web, to know how to code?

One of the presenters was guiding some people through what it takes to create a WordPress Theme. For the uninitiated, a WordPress theme is the part that sits between the WordPress application (which is a Content Management System) and the user’s browser, to pull the content and page elements together for the webpage.

Dee Teal mentioned there are courses available on teamTreehouse for Web Design, Web Development and iOS development. It’s a great service where you pay by the month and take as much tuition as you can handle. It’s a great service but if you’re uncertain of your commitment level before paying anything, I have a few free suggestions below to dip your toe in to ignite your developmental spark.

Before you start though it is useful to understand a few basics about coding for the web.

Markup, style sheets and scripting

Before starting any course on web development it is important to know the difference between the types of code required for building websites. The three main standards are based on page structure markup, presentational language and functional scripting. This is expressed as HTML, CSS and Javascript (ore more accurately, ECMAscript, the “official” version of Javascript), which are all interpreted by the browser to display webpages. This is of course a simplistic view, but it does cover all three elements, structure, presentation, function.

A useful reference for coding is the excellent W3Schools, which allows you to play with each code type as you go. HTML is the markup language that is used to create the page structure, creating the headings, paragraphs, text content, images, and links, etc. HTML alone should be enough to convey the structure and meaning of your document.

CSS, or Cascading Style Sheets is the language that is used to manage the visual representation of a page. CSS is used to manage colours, sizes, visual style and spaces between page elements. CSS isn’t critical for the structure of a web page, but it helps convey meaning through visual style.

Finally, Javascript is the scripting language that occur in the browser. Javascript is commonly used to manipulate the document structure (a.k.a. “the DOM”, the Document Object Model) or appearance to supply functional interactivity. Examples of Javascript functionality are: menus that pop-out, forms that change as you fill them in or validate the information you type, and heading images that smoothly transition as a slide show.

Server side languages

These three coding languages above are all interpreted by the browser in the user’s computer to present structured, attractive and functional websites.

Programming languages are run on the server instead of the user’s computer, hence  “server-side” versus “client-side” code. These languages, like WordPress’s PHP, Windows’ DotNet, and the endemic Python and Server-side Javascript, work on the server, like collecting information from a database or collating disparate elements together to build up a page from smaller elements.

Learning at your own pace

That got me thinking about all the wonderfully free stuff out there where you can start coding without any commitment or cost. A good starting point might be: Don’t fear the Internet where Jessica Hische & Russ Maschmeyer present excellently made videos about coding and mark-up that are easy to understand. You might also like to know about are Codecademy  and Learn Python the hard way. Both are free and excellent learning courses where you can move at your own speed.

Codecademy aims to get more people to understand coding and is similar to teamTreehouse in that there are stages, rewards and badges. It assumes you know nothing at all about coding and are willing to take your education in small steps. It is incredibly well written and offered in bite size lessons you can choose to snack on one at a time or plan a large,. tapas-style meal over several hours. At the moment it is mainly JavaScript but it will help you start to understand code concepts enough to be able to debug and roll your own functions. I believe there will be more courses as time progresses.

If you really want to learn a powerful and established sever-side programming language,  Learn Python the Hard Way by Zed A. Shaw is offered as a physical book, ePub, PDF and as FREE HTML. You can pay a little extra for some video lessons. It is very well written, again, with lashings of great, dry humour. It expects you to download a free coding tool to use for the lessons, which shouldn’t be too difficult if you are working with WordPress. It defines the “hard way” as writing completely from scratch, not by copying pre-existing code, and therefore learning to think about what you are doing instead of mimicking someone else’s ideas. Think of it as an Immersive language course instead of carrying around a phrase book! Not for the faint-hearted, but good if you are determined and keen to build your own programs from scratch.

These resources and courses are free, flexible, rewarding and will get you thinking in coding languages and might infect you with a desire to learn more as you build up your skills and understanding.

I’ve been recently informed that the Open University model is alive and well, with Open Colleges here in Australia offering a Certificate IV in Web Design which allows you to study online. All the benefit of a certificated course, but something you can do evenings and weekends in your own time.

Finally, have a look at Coursera, an online resource that lets you take free classes from hugely respected universities like Princeton, Stanford, Penn State and others. You get course materials, lectures, assignments, and communicate with other students world-wide. You don’t get certification, but you get everything else, from an excellent source.

Whatever your interest, there’s a course with your name on it, and some of them are as free as they are excellent. Once you get some understanding, you may even consider some of the paid for courses to take your understanding further. Happy coding!

Leave a Reply

Your email address will not be published. Required fields are marked *