If coding is gonna be your next job, your next love or not really your thing, is something you need to figure out yourself by getting some practical experience with coding. But independent of if the answer will be yes or no in the end - you will definitely learn & improve useful skills you can always need in life:
curiosity about how objects and systems work
how to prioritize important tasks
and learn to deal with emotional rollercoasters (yeah, I will explain later what I mean).
My suggestion: finish this blog post, become aware of the possibilities of coding, start with some basics, build 1-2 simple projects and see if you like it or not. And oh yeah… there is a lot to love about coding!
Let's be honest - when we don't know why we should learn something, we quickly lose motivation and interest to continue learning. Especially when you are at the low of the emotional roller coaster you will experience while learning to code: in one minute you have no idea how to fix your coding problem, no idea how to continue and are frustrated. And a few minutes later you find the solution and everything works amazing and is super exciting!
That's why it's so important to remind yourself on a regular base what your goals are, what your next steps will be and what impact your current project can have on your life and those of other people.
It’s very exciting to explore the possibilities of what you can build with code - all the cool software, useful automation and so much more! Not sure yet it coding is something for you? Here is an overview of things you can do and how coding can have an impact on your life and those around you:
Why learn to code? Manage software projects better
It needs practical experience to realistically estimate what can be built, how could it be built, how long could it take and how much could it cost. So even if you don't want to build a whole software project yourself - you can profit massively from the experience and knowledge you gain while learning to code -> for your job, for building up your startup and pretty much everywhere in life.
Why learn to code? The best job opportunities
Working on all kinds of exciting projects over the years, extending your knowledge and experience, working in a great atmosphere surrounded by like-minded people while getting paid a really good salary - these are all good reasons to get a job at one of the uprising tech startups or leading tech companies. And in case you wonder - yeah they DO pay a lot for software developer: from an average $100k a year up to $400k a year. If you are curious to take a look at the numbers yourself - visit Paysa.
Why learn to code? Build cool projects
Just take a look for example on these projects, all powered by code - from beautiful art installations, keeping history alive, fun projects to home automation
You could build such projects as well!
Why learn to code? Build the next big thing
Want to build the next big innovation that changes a whole industry and our daily life? That's awesome! And never forget - every famous platform that is used now by millions of people worldwide started small at some point:
Wikipedia - started in 2001 - now the largest encyclopedia in the world
Wordpress - started in 2003 - now the software that runs 30% of the entire internet
change.org - started in 2007 - now the most impactful petition platform with more than 100 million users
Airbnb - started in 2008 - now the world's largest accommodation provider
Instagram - started in 2010 - now the photo & social network platform with more than 1 billion! monthly active users
And who knows - even while most startups
are gonna fail quickly, maybe your software is gonna be the next big thing - so don't let yourself get demotivated!
Why learn to code? Help your community
That's a wonderful cause and you will have many amazing communities you can join! People around the world use coding to improve their communities and fix problems like homelessness, infrastructure, participation in politics and much more.
They organize themselves for example in "Code for …" groups in the US, Canada, Germany, Australia, Africa, Japan, Netherlands, Mexico, and other countries. And by learning to code you can be part of those movements and make a difference!
Why learn to code? Help other developers
Coding is so much easier accessible than a few decades ago. And besides the increase in computer performance, this is mainly because of all the developers who created programming languages
and a huge amount of useful software to accelerate the development process while making software development easier access to more people.
Share your software on git
platforms like GitHub, GitLab or Bitbucket or participate in existing projects on those platforms and help developers all over the world to make even faster even easier even better software!
Ask for feedback, but don't let it destroy your motivation!
Hope this overview helped you become aware of all the things you can do with code and better reflect on what path you want to take. And don't let the voices of a few people stop you, just because they think your path is not worth the time or what you are creating already exists. Society wouldn't be where we are now if artists, makers, activists, entrepreneurs, or politicians would have just stopped what they are doing only because a few people didn't believe in their ideas. That doesn't mean of course you should ignore feedback - it's essential to help you find out what does work and what doesn't! But don't let criticism destroy your motivation for learning to code, getting a job in that industry, building cool projects or helping your community.
There are so many ways how, what and where you can learn to code - it can quickly get overwhelming to figure out your learning path. If you just started learning to code, begin with the basics and an easy to learn programming language.
First programming language: keep it easy
What makes a programming language easy to learn?
easy to understand logic
see quickly a result that your code is producing
a lot of resources/content
Start with web technologies first
Wonder what HTML and CSS are?
HTML is the skeleton of a website (defines where text, images etc. are placed)
CSS makes a website pretty (defines how objects look like - what color, size etc.)
Don't want to build a website but a mobile app
or home automation? Still: learn web technologies first - they can even be used for building mobile apps or home automation and are easier to learn than Kotlin & Android Studio for example or Swift & Xcode to build mobile apps.
Learn with others together
Online courses, books, apps, video tutorials, etc. are a great way to learn coding skills - as long as you don't only learn alone. Finding community spaces, co-learning
, and co-working
meetups is absolutely essential to learn to code (I can't highlight it enough). And on SkillMe you can find them all - online resources and offline meetups and communities.
Some of the reasons:
a great atmosphere to learn and work
share what you want to learn, what you want to build and get useful feedback
meet other cool developers, make new friends and empower each other
get quick help to fix your coding problems instead of spending hours searching on the web
external feedback helps you get a clearer picture again of what you should focus on
On a personal note:
I would have never had so much of a learning curve in that short time if I wouldn't have spent months at a hackerspace (community spaces to learn, make & exchange about everything from software, electronics to art and activism) called Noisebridge, in San Francisco - with all those amazing people, working on cool projects, supporting each other and spending some great time together. Plus all the time I spent since then at similar hackerspaces
Want to start your own learning path?
Finish this blog post and set up your personal learning path at the end to get more specific recommendations!
Search yourself a concrete project you want to build
It doesn't help to just read or watch something to understand it - instead: "learning by doing". Think about a first project you want to build, something you find interesting to make - it can be anything from a simple website, automation script for your computer or home automation up to a simple mobile app. Here are some examples:
a portfolio website for your designs
a mobile app to set reminders
a search engine for movies
program to control the lights in your home
Keep it simple
Have a concrete project in mind? Perfect! One of the most common mistakes is having too large ambitions for your very first project - what can quickly be overwhelming and lead to you working on the project forever, instead of releasing something and getting quick real-world feedback.
To prevent this: choose the most fundamental part of your project -> what is the simplest version of your project you could imagine? Focus on that part first. Don't forget - you can always extend the project later when it's online. But learn to say "no" - to a long list of exciting features you could possibly integrate into your projects - and figure out the key features and realize them first. One example: if you want to build a social network - instead build a simple newsfeed first that saves post - and then go on from there. If you are not sure if your project is already too large or not - ask some friendly people at meetups or community spaces which you can find here on SkillMe.
Prepare your computer before you start learning & coding
There are a few preparation steps you should do on your computer (Mac, Windows or Linux) - independent of what project you want to build and what programming language you want to learn.
Step 1: Create a Git account
Create an account on one of the biggest git web platforms - to manage, backup and share your projects - while collaborating with other developers. Go to GitHub (owned by Microsoft) if you want to host your project on the biggest platform, or chose GitLab or Bitbucket if you prefer supporting more competition.
Step 2: Install an IDE
While there are many ways how you can write and execute code on your computer - you should install and use an IDE
. To write code, to manage your project, update your Git repo
Step 3: Sync your Git repo to your computer
To keep your Git repo/backup updated the easiest way possible, sync your Git repo with your computer. This allows you to easily edit your code in the IDE of your choice and push updates directly via your IDE - or the terminal.
Follow the tutorial and setup up Git on your computer:
on GitHubon GitLabon Bitbucket
Wonderful, now your computer is prepared and you can start creating your learning path!
Any open question? Anything you missed in the blog post?