Tgsue5ypq6jgtj7frbg9

How To Change The World By Learning To Code

Share

Published

29 Jun 2016

Segment

coding starters

Duration

21 minute read

Matt Barrie created Freelancer to advance the free market. Danae Ringelmann, Slava Rubin, and Eric Schell invented Indiegogo to democratise the funding of projects, both for-profit and non-profit. Google was developed to make it easier to find information.

Coding is complex

Code can be incredibly intimidating. It’s something you can only become good at it after hours and hours of practice. Coding is a journey that never ends.

Thus, no school can promise to teach you everything coding involves…and those that do are lying. The field of coding changes far too rapidly and consists of way too much information to make learning everything an attainable reality. 

Coding is how we talk to machines. All things in code are built from fundamental constructs.

Every new architecture is just a re-imagination and a re-adaptation of an idea that was floating around for decades. — Adrian Kosmaczewski

Every new language and framework is a reinterpretation of computational thinking fundamentals. There are even many different levels of abstraction, from super low level, like Assembly, to super high level, like Scratch.

You can’t learn them all.

However, what a good coding school will do is teach fundamentals and established industry practices and tools — and most importantly, teach students how to teach themselves, so that when the next big things for coders comes along, which we guarantee you it will, you’re self-sufficient enough to evolve and grow.

However, coding schools are a great way to be held accountable, if that’s what you need…and there’s absolutely nothing wrong with that!

“Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter,” says Eric Raymond, author of The New Hacker’s Dictionary.

Nobody denies it’s difficult to learn to code (and if they do, they’re also lying), but that’s what makes learning to code worth your while and extra rewarding. Our motto here at Coder Academy definitely includes the common phrase, “You get out what you put in".

You don’t need to learn every single language, platform, or tool that comes up…and you can’t, either. Stay focussed in your endeavours and learn only what’s relevant to what you want to achieve.

Coding is an immediate, continuous rush of problem solving — hours of frustration interrupted by minutes of elation. So, if it’s incredibly daunting to learn to code, why should you do it? 

Coding’s influence on the world

In case you didn’t know, the whole world runs on code. Just look around!

Computers don’t have minds of their own…yet. They can act only according to the instructions programmed into them. Regardless, there are now nearly no industries and social activities untouched by code. Our culture is represented and reflected by code. Our social norms are reflected in code. The world we want to create is built on code.

Your entire life is run on code

You’re probably reading this blog post in Chrome or Firefox, maybe even Internet Explorer on your work machine, running Windows or OS X, on a laptop or desktop. You also likely spend many hours a week reading emails, checking your friends’ Facebook statuses, or watching shows or movies on Netflix

Much of your life is on computers

Medical records? In a government database. Resume? LinkedIn, maybe Seek and CareerOne. If you run a business, you use Google and Facebook to market your products, and a CRM like Hubspot or Salesforce to track them. You use Amazon to purchase products. You file your taxes online, manage your bank account online, and perhaps even dabble in digital currencies. Bitcoin, anyone?

In your pocket, purse, or on a desk nearby, you probably have a smart-phone. 2.08 billion people have smart-phones now. If you’re reading this, you almost definitely have one. They are the most common communication device. In this device, you have access to a GPS, camera, touchscreen, and endless applications.

Modern cars are designed by software, built in factories by robots, and chock full of computers. Did you know your dashboard sends instructions to the rest of the car through minicomputers? 

Cars also aren’t as mechanical as they used to be. They have reverse sensors, GPS tracking systems…That central locking system is all software. 

If you have a car, you might use Google Maps to find your way around, Yelp to find a place to eat, or TripAdvisor to find a place to stay. You might even order food in with MenuLog, perfectly timed to greet you upon your arrival home.

Now, look up. Somewhere above you, a plane will pass that is controlled by autopilot, has in-flight WiFi and entertainment systems, and is constantly communicating with other planes, traffic controllers, and its manufacturer.

Somewhere above that, satellites and space stations orbit the earth, taking pictures, measuring the weather, and routing phone calls.

Software is eating the world, and if you don’t get involved, it’ll swallow you whole.

Learning to code not only increases your understanding of how people are changing the world, but it gives you the skill set to create the future right alongside them…or beat them to the punch.

So, how do you learn to code? Let us simplify the process for you. It all starts with....

Computational Thinking

We repeat: coding is more than typing in a text editor. Coding encapsulates a whole way of thinking called computational thinking.

  • To code well, you need to learn how to solve problems by breaking them down. This is called decomposition. To design a simple website that calculates how long it will take to save enough money for a housing deposit, you’ll first need to know: a) how much you earn, b) how much you can afford to save, c) how much the house you want costs, and d) how much tax will be taken out of your income.
  • Pattern recognition. This is a highly refined ability to match information from a stimulus with information retrieved from memory, and assists with the decomposition process. 
  • Logic. Abstraction. This is knowing how to reduce a process to a set of essential characteristics. In very very very simple terms, it reduces making 10 functions, where one prints 1, then the next prints 2, then 3, then 4, and making a master function that runs all of them one after another to a simple loop that prints 1, and until 10, it keeps printing. 
  • Data. What is information? How do you model the real world? This is called Information Theory. For software, it manifests in what is called information architecture. This is the work of structuring content, developing taxonomies, designing navigation, and all the other activities that make information accessible, usable, and understandable.
  • Systems. Are your requirements: necessary; appropriate; unambiguous; feasible; singular; verifiable. If it’s not, can you make it so? This is Systems Engineering. How does everything in your program interact with each other? 

Coding Culture

Why is programming fun? What delights may its practitioner expect as their reward? First is the sheer joy of making things. As the child delights in their mud pie, so the adult enjoys building things, especially things of their own design .— The Mythical Man-Month

If you’re not sure if you’re fit to code, go to coding-centric events and read coding-centric media. See if it strikes your fancy. Delve deep into it and understand how the coder’s mind thinks. Associate with coders of varying experience, skills, and personality. 

Hackathons: HackJustice, GovHack, Techfugees, angelhack, Random Hacks of Kindness

Here are four tips on how to get involved:

Do hackathons. In Sydney, we have many, including several that Coder Academy is proud to sponsor or partner with: GovHack, NASA Space Apps, Facebook Sydney, Chronic Pain, HackJustice, AngelHack, NAB Hack. Random Hacks Of Kindness, Techfugees, And that’s just for starters! 

Attend meetups. SydJS, React Sydney, Sunday Coder Club (come meet our team!), AngularJS Sydney, and many, many, more!

Read coding blogs. Joel On Software, The Daily WTF, Coding Horror, A List Apart, etc.

Follow coding twitter accounts. A combination of industry stalwarts and parody accounts are a good mix. Here are a few to check out: David Heinemeier Hansson (DHH), Kent Beck, Infosec Taylor Swift, I Am Devloper, Alan Cooper, UncleBob, Ward Cunningham.

Examine why you are learning to code

You can code pretty much anything— video games, mobile apps, websites, and even…drone firework displays. You can help people. You can improve the world. You can make a lot of money. Or, you can do it all at once. 

With code, you can also become a stronger product manager or entrepreneur, a lawyer or business analyst who is ahead of the game, or a ferociously productive administrator. 

There are endless possibilities, and they are only increasing every day.

What coding language should you learn first?

One of the coding languages that Coder Academy specialises in, Ruby, is chosen not only because it is in high demand at the moment, but because it’s simple, expressive, and flexible. Pete, our Founder, likes the philosophy behind Ruby, of developer happiness. It’s elegant, and readable. This is great for beginners, as they are able to understand what code does almost immediately. The lack of obfuscation encourages you to be a good coder and to write quality code. We’ve chosen Rails because it is opinionated. This means it has an idea about how things should be done, which is good for beginners, as they don’t have to get caught up in small details. Ruby’s abstraction encourages curiosity. While you don’t need CS understanding to get started, you will gain it as you continue. 

Web fundamentals

The revolutionary projects you now know well (mentioned in the very beginning of this post) all have one thing in common: They are all websites, or involve web components. 

The lines between traditional computer applications and web apps are blurring — a growing number of software solutions that previously weren’t web-based have now integrated web interfaces or interact with a cloud service. For example, Adobe Cloud, Dropbox, and Google Drive.

As JavaScript’s capabilities are expanding into nearly type of possible software device, from operating systems to web animation, from mobile to drones, web developers can find work not only as web developers and designers, but as back-end engineers, desktop software developers, hardware hackers, drone pilots, mobile developers, and more.

You can join a world-changing web based organisation or you can create your own. A good code school will introduce you to it all.

So, what’s involved in developing a website?

Project Sierra JSON

It kind of keeps on growing. Right now, it’s this:

  • How the internet works
  • Deployment and dev-ops.
  • Problem solving & abstraction.
  • Logging, profiling and debugging.
  • How to manipulate APIs, AJAX, JSON.
  • Database design — Relational & NoSQL.
  • Source control — branch/PR/merge flows etc.
  • Principles and patterns of object-oriented & functional design.
  • Security practices — Encryption, validation, authentification etc.
  • Testing — Unit, integration and system testing, pair programming, TDD, code review etc.
  • Programming fundamentals — variables, expressions, statements, functions, conditionals, recursion, iteration, strings, lists, dictionaries, tuples, files, classes, objects, methods, inheritance etc.....
  • Source control — branch/PR/merge flows etc,
  • Pure HTML, CSS & Javascript — how to translate an illustrator file
  • Responsive design — how to design a site to work well on all screen sizes
  • Web performance — optimising images, minifying javascript,
  • CSS & Javascript frameworks — React, Backbone, Bootstrap, Materialize. There’s a lot here! Just prove you can pick up one quickly.
  • CSS Preprocessors — SASS, LESS
  • Automation tools — Grunt, gulp
  • Browser Developer Tools — Chrome & Firefox have a great set of developer tools.
  • Cross Browser Development — all browsers process code slightly differently.

Reading is Your Friend

We can’t stress this enough. You. Must. Read. Digesting text won’t teach you exactly what to do, but it will impart philosophies of coding and coding culture. Here are a few canonical books to check out:

Practice, Practice, Practice!

Practice makes…improvement. Think of a problem you want to solve. Any problem. The best way to retain a skill is to develop a project that requires lots of iterating. 

Code at least a few hours every day. You don’t learn sport by reading about tactics, or learn an instrument by reading music without playing. Coding is much the same. The best way to learn is by doing.

Do mini side projects. Yes, they should be simple(to start with). Be sure to gradually build up in complexity, or you’ll undoubtedly overwhelm yourself. The best way to learn a new technology is to build a project with it. Remember to make it useful, and more importantly, make it fun.

Here are some project ideas to get your wheels turning:

  • A blog
  • A unit converter
  • A credit card validator
  • A mortgage calculator
  • A change return program
  • A personal budgeting tool
  • A website for your portfolio
  • A formula to calculate your taxes

Want more? Check these out for starters: Github List, Project Euler, 5 Project Ideas, and Programming Tasks. Some of these websites will help you learn web development, while others are almost purely to teach you how to think like a coder.

As a small exercise about half a year ago, I scraped realestate.com.au and did some stuff with numbers to calculate how long it would take to save up for a housing deposit. The website I built can be found at aussieHouses.

Work on projects with other programmers. Get involved in open source. Assist some friends. 

Read open source code. Watch some repositories on Github. Get to know the software behind the software you write in Ruby on Rails, jQuery, Twitter Bootstrap, etc. Read code by great programmers (and groups of programmers who are collectively great).

And that's how you learn how to become a web developer.


LEARN MORE ABOUT FAST TRACK

 

 



Want to become a junior developer? At Coder Academy we have Australia's first and only accredited fast-track coding bootcamp that will set you up for a new career in tech. Our immersive course helps students acquire in-demand skills through hands on, project-based training by industry experts over six months.

Now enrolling domestic & international students in Sydney, Melbourne & Brisbane! Study now, pay later with FEE-HELP! 

Are you a woman interested in coding? Check out our Women in Tech Scholarship!


BECOME A FULL STACK DEVELOPER IN 25 WEEKS OF STUDY

Seriously considering a coding bootcamp? Learn more about Australia's first accredited coding bootcamp.

Join our newsletter to find out about upcoming courses and events!