OK, so you read my post about how you don’t need to be a genius to code. You also read my post about how you’re not too old to start programming. You even read my post about how programming languages don’t matter.
I have successfully convinced you to get involved with the future and you’re ready to get started, but how?
2020 is a weird time to begin your programming journey. It’s an interesting duality wherein you both have more resources available to you than at any time in history, and paradoxically, the sheer magnitude of the information on offer can be completely overwhelming.
The waters get even muddier as we’ve begun to segment different coding roles into narrow silos. Front end, back end, UX designer, UI developer, the almighty “full-stack” developer, database admin, native developer, mobile developer, etc. — it’s enough to freeze any newcomer in place.
Let’s start by cutting through all that right away, upfront. The truth is, nearly all of these roles have far, far more in common than it’d seem. They all involve programming and are just specialized subsets you can choose to move into once you’ve decided what excites you most as a developer.
You don’t have to decide what you’re going to do with your skills before you develop them, although some pathways will lead more easily to others, as we’ll see going forward.
Start With the Fundamentals
Some core principles exist in every programming language or role. Logic, flow-control, comparisons, variables, data structures, and more are universal concepts you will need to know and understand in any coding context.
The good news is, despite their perhaps intimidating names, none of these ideas are particularly difficult to wrap your head around.
Taking time to understand the fundamental building blocks of programming languages will open you up to coding in almost any way you wish down the line. How do you get started with these?
They offer thousands of tutorials that cover very basic ideas, all the way up to much more advanced algorithmic challenges that will translate into so many languages.
Working your way through some of their tutorials and coding challenges will set you on an excellent pathway to begin making some choices about what direction you want to take in your programming career or hobby.
Decide What Excites You
Once you’ve begun to get some programming chops, you’ll need to ask yourself: “What excites you about coding? Do you enjoy making really cool and interesting websites?”
Or, perhaps you’re much more interested in building applications that let users do things. Do you imagine these being web applications or do you want to write for Windows/macOS/Linux?
Maybe you’re really jazzed by the idea of writing code for the Internet of Things, an industry that is exploding right now.
There are so many pathways you can choose from, but ultimately the one that excites you is the one that will motivate you to begin buckling down and learning all the more esoteric and specialized types of programming required by it.
Maybe all of these pathways excite you, in which case, you’ve got a lot of learning to do, but you’re going to love every minute of it!
Let your excitement guide you. It won’t steer you wrong. That excitement is what will keep the learning process fresh and inspiring instead of feeling like a chore you have to get through.
Find a Mentor
Once you think you’ve got a grasp on where you want to take your career/hobby, find a qualified mentor in that lane. This can be an intimidating step for many, but I promise you, very few things will help move you along faster than a good mentor.
Your mentor doesn’t have to be someone local. With peer-programming built into many coding applications now, you can find someone online in a web forum, Stack Overflow, a Facebook group, Twitter, etc, and ask them to take just a bit of time once a week to help you understand something that’s stumping you.
Keep asking people until you find someone. There are many people out there who will help you, you just have to find them!
Of course, you can do it all yourself, but why would you? I can’t tell you how many times I’ve spent days reading and reading about some concept and still not grasping it only to have someone else explain it to me in five minutes in a way that makes it click.
Avail yourself of these opportunities. Your time is so much better spent working on the next thing than banging your head against a wall not understanding your current thing.
A mentor can be that shortcut you need to keep your momentum moving forward!
Once you’ve learned some fundamentals, decided what excites you, and found a mentor to help you on your way, it’s time to build your first thing! You may not feel ready yet, and this could be a scary step, but pick something small and build it.
The ultimate usefulness or complexity of what you build at this point is pretty inconsequential. This step is all about getting your first project under your belt. Nothing feels better than seeing your first project all the way through to completion.
This can be something as simple as the ubiquitous “to-do app”, a website for your grandma’s cookies, or just making an LED blink on an Arduino.
Learning the steps it takes to go from idea to a working project is invaluable for a new developer. It can build so much confidence and momentum, and as a new programmer, these are the things that will keep you going and growing!
Conclusion and Resources
Before I close this article, I want to name a couple of other resources for new programmers. There are hundreds of thousands of developer blogs on the web and articles here on Medium that can help sharpen your skills.
YouTube has thousands of brilliant developers who have spent their time building amazing tutorial series that can walk you through the steps needed to learn a certain language or framework.
Take advantage of all of these free resources to round out your skillset and learn the time-honored solutions to problems programmers face over and over so you don’t find yourself re-inventing the wheel.
You can learn to program in 2019. Don’t let the information-overload scare you off!
With some solid fundamentals and a mentor to guide your excitement, you can build an incredible career or immensely fulfilling hobby programming; all it requires is for you to take that first step!