Career Hack Programming Guide

An unprecedented amount of people in all stages of working life are starting to look beyond big business as a means of forging themselves a career. Specifically, the ongoing digital and mobile revolution is proving a persuasive argument for learning to understand and create computer-driven programs. Navigating the mysteries and squiggly lines of symbols may seem daunting at first – but whether you’re 25 or 52, there’s nothing stopping you from accessing the limitless possibilities of the digital universe.

In fact, there’s quite literally no time like the present to get started. An unprecedented number of sites now offer free or low-cost courses in everything from front-end design to back-end programming, via aesthetics and database management. Average Joe is spoilt for choice. Whatever you circumstances – whether you want to dedicate yourself to becoming a full-time designer or simply dabble for an hour or so every day – there will be something out there to suit you. So let’s dive straight in.

Why coding?

First, it’s important to work out why you’re interested in learning to code. Do you want to start your own business? Work as a developer in someone else’s business? Or are you doing it simply for the intellectual challenge?

Whatever the motivation, before throwing yourself in with great abandon, it might be wise to test the waters. It’s important to find out from the very beginning whether you actually enjoy coding/programming in the first place, and whether you can get good at it. Green lines of encrypted symbols à la Matrix sounds sexy, but chances are the reality will be quite different, at least to start with.

Chances are you may have to adapt to a new way of working as well. In a programming context, collaboration and experimentation trumps hierarchy and power structures, every time. If you’re coming from the corporate world, it might be quite a jolt. Bendyworks CEO Bradley Grzesiak has some wise words on the subject. Openness to a mutually supportive working environment and a willingness to learn are, says Bradley, paramount.

Which languages?

If you’re starting your own business, it’s very likely that you’ll have to set up a website, and probably a mobile app as well – so your priority will be to develop skills and knowledge in web design and backend web programming. Even if you haven’t got the time to become a pro, don’t underestimate the value of understanding how the whole thing works.

Keen on working as a developer? Then web design is probably a good place to start – but you should spend most of your time working on the back end, writing your own programs. For a developer, it’s not the finished product that counts. It’s the machinery that lies behind what you see on the screen. Web design allows you to drive the car, but programming allows you to build it.

Learning to code is becoming the new literacy. Having even a basic understanding of computer programming supercharges a user’s computer skills. Learning to write code teaches critical thinking, problem solving, and logic skills that can applied elsewhere in life. Becoming a programmer, even a hobbyist, also develops a very marketable skillset.

If you’re in it for the intellectual buzz, it’s essentially down to you. Here’s a breakdown of some of the major programming languages to help you decide:

  • Web Design: HTML, CSS, JavaScript
  • Graphic Design: Adobe Creative Suite (Photoshop, Illustrator)
  • Databases: MySQL, PostgreSQL
  • Programming: Python, PHP, Ruby on Rails

So there are many benefits to learning to write code, but that leaves a very important question: Which language should you learn? Which programming language is the best?

Frankly, it’s about easy to answer that as it is to say, “What car is the best?” Utility is essential. While a Lamborghini is a brilliant road car, it wouldn’t do so well off-roading on the frozen tundra, would it? But try driving a snowmobile down the Autobahn. It’s not likely to work out well.

Programming languages are the same. Some are meant for web design, or for creating functional programs, or managing large data sets. The best languages to learn depend on the student’s programming goals. So here are some of the best languages for the goals.

Total Noob – HTML and CSS

If you don’t know what a noob is (it’s a gaming term for “newbie” or “new player”), then these are definitely the languages for you. Even if you are computer savvy, but without any coding experience, HTML and CSS are the perfect places to start. They are fairly straightforward and involve relatively little programming.

HTML is the basic programming of the web, and it’s been used as an introductory programming language for decades. As a tag-based language, it’s mostly a matter of arranging elements in the order in which one wants them to appear. CSS is more recent, and it has to do with arranging elements on a larger page. Again, it’s based mostly on tags for various elements and doesn’t require the coding of any particular functions.

Anyone doing work on the web will need to have at least a passing familiarity with HTML and CSS as it comes up constantly. And like many things, it’s the simple to get started, but there are depths of complexity that only a true master will get. This is why people hire web designers instead of doing it themselves.

Web Development – PHP, Python/Ruby, SQL

For a more serious developer, PHP is a programming language that underpins many websites and applications. Unlike HTML and CSS, however, it can be used to perform more complex functions, including opportunity to interact with a website and working with data. Any PHP code can also be inserted into HTML, and the two coding languages often interact.

Python and Ruby are two similar (but not identical) programming languages that are useful in web-based applications. Both are object-oriented programs, using blocks of code as discreet “objects” that interact with each other. Both are useful in adding functionality to websites, but debate rages about which one is actually better.

SQL is a query language used to work with the information on a database. This is absolutely essential for any large site that keeps data on hand, such as member information. Other languages may stand in for this function, but it’s SQL’s main purpose.

Web and Mobile Apps – Java and JavaScript

In addition to languages like Ruby or Python, Java and JavaScript are also incredibly useful for adding functionality to a website. Again, both are object-oriented languages, and they have a great deal of built-in functionality. Both are extremely common online, with Java being used for programs run on a website host (the website’s computer) and JavaScript being run on the client’s browser (the user’s computer).

These languages are notoriously picky, however, and require a great deal of time and patience to master. The syntax is pretty unforgiving, so simply forgetting a punctuation mark could throw off the whole program.

But on the trade-off, these languages are so common that they can be used for both website-based application and mobile apps without having to learn another coding language. So that’s pretty handy.

Software Development – C/C++

C is an older programming language that was the basis for C++ (which inspired Java). These are powerful programming languages with a huge amount of functionality, but they are challenging. However, if you’re going to go into a career developing software – it doesn’t matter if its accounting software or games – you’re eventually going to have to learn a deeper language. C++ is more modern, and it’s an object-oriented language, so it might be a better choice to develop something for the modern market. But C should be ignored entirely, as it still has a great deal of use.

And many more…

Unfortunately, this is just a brief look. There are other programming languages out there that are just as useful as these, depending on what you want to do. Sadly, there just isn’t enough space here (or anywhere, really) to discuss each and every programming language available, what they’re all good for, and which is the best.

Actually Learning to Code

There are an increasing number of resources for the aspiring computer programmer out there. Some, like Codecademy, are free. Others, like Udemy, have free courses and more advanced training on a course-by-course basis. There are also enormous numbers of foundations devoted to these languages, books on their use, and classes at reputable brick-and-mortar schools. There are podcasts, YouTube videos, and packets of code to copy and paste. Essentially, there are so many learning resources that there’s something for everyone to suit any learning style.

So what are you waiting for? Pick one, and give it a try. You could have an exciting new career just waiting for you.

What are the best resources for learning to code?

Here’s the good news: there are a plethora of sites dedicated to helping you on your way to becoming a coding genius. Here’s the bad news: there are way, way too many. How do you make a decision? Luckily, Career Hack has hand-picked a few of the best:

  • Treehouse is a purpose-built education platform with courses on everything from web design, to programming Android apps, to starting your own business.
  • Codecademy is the best of the free options and has its own built-in editor. Doing some of the crash courses is a fantastic way to get a feel for writing code, even for complete beginners.
  • Udemy is a more generalist site offering a catalogue of courses on various subjects. Used by millions, it’s certainly something worth considering. Most courses come with individual price tags, however – so keep an eye on the bill!
  • W3Schools is the textbook site on web development. Literally. It’s the governing body that decides how web design languages should work, what they should include and how they should be written.
  • JSFiddle is a web programmer’s playground. It allows you to enter your code in one panel, and immediately renders the results in another. Handy for experimentation and testing.
  • Stackoverflow is a more advanced source of advice for software engineering. Every programmer I know of has used Stackoverflow at some point in their career (most of us use it every day!)

To back yourself up and make sure you put the work in, it might well be worth taking a class at a community college and buying some books on Ruby, PHP or CSS. You’ll be encouraged to produce high quality work, and you’ll be around people working towards similar goals.

How should I get going?

You can get started right away. Start from the very beginning and see how far you can push yourself. If you’re learning full time and need to keep your costs down as much as possible while still enjoying good connectivity and high quality collaborators, it might well be worth relocating to Asia or Latin America.

If you’ve already got an idea or identified a problem to be solved, even better. Decide what you need your program to do to address the problem. Then target your learning accordingly. Programming itself can be tedious to learn in detail – but if you know what you’re trying to achieve, there’s no use in reinventing the wheel. If you want to build and maintain momentum, you should start putting your knowledge into practice from Day 1. Coding is one of those things you can only learn well by doing, and by cutting up into small, digestible slices.

In short, you’re embarking on an exciting adventure. Good luck!