Non programmer, start your programming journey today

You want to learn how to code as a hobby or to make a serious career change but you don’t know how to do it. Here is a list of thoughts that I sincerely hope will help you on this adventure.

Programming/coding/software development is about problem solving

When you start looking into the hows and the whats and the whys on computer software, you’ll be as intimidated as on your first date. Even more some. You will not understand what does what and which goes where. HTML, CSS, Javascript, variables, classes, loops, PHP, Java, Python, NodeJS, DOM, AJAX, jQuery, triggers, SQL, MySQL, NoSQL, XML, JSON and on and on.. so many technologies, so many concepts. However, always keep in mind that all of these boil down to something simple: they are just tools and ways to solve a problem or to address a need.

Imagine you want to hit a nail into the wall to hang a picture with your cat. If you don’t know what you are doing you could use almost any of the tools below. For this analogy, if we use the reverse idea behind this saying: “when the only tool you have is a hammer, everything looks like a nail” -> when you want to hit that nail and don’t know what to use, every tool looks like a hammer.

Getting back to learning programming topic, yes, you’ll try a few things and fail to understand them (at first), but don’t get discouraged, you’ll eventually find (and master) the right tool for the job.

a2db3fef88496613923bd315b212170d - Marble Arch London | Marble Arch London

The learning curve is basically a horizontal line at the beginning of the journey. This is fine.

When having little or no technical background, all software concepts are new so it takes a little time for things to “stick together”. Worry not, things will be fuzzy at first but then they will become clear, with time. This usually happens when you start and work on your first project by your own (without following a particular tutorial). In terms of time, that is purely an example (it can be X days/weeks/months), everyone has his/her schedule and pace. Just be consistent and perseverant.

learning curve

Pick a programming language to learn and stick with it for at least 6 months

Actually, I’ll pick one for you: Python 🐍 No, it’s not a sssnake and it sssurely doesss not byte, relax. For the next 6 months you’ll learn Python and after that you are free to learn what you want (next). Trust me, you’ll know by then what you want to learn next. Moving back and forth to a new “shiny” language, when starting to learn programming, won’t help too much as it will lead to extra confusion. Once you grasp the basic concepts it’ll be easier/less confusing to switch to a new language and far more productive.

Search for tutorials/courses/learning YouTube channels online and follow one that has real, good project examples along the course and do it at least once.

It goes without saying that apart from Python you will also learn some sort of SQL (probably MySQL, this is related to speaking with databases) and a bunch of other cool stuff that I’ll not go into details now. You’ll see.

Set your expectation level to low, or even better, do not set an expectation level at all

Learning a new thing, such as programming, is hard but that doesn’t mean it can’t be fun in the same time. Think and/or search for small, fun projects to do (in Python) and try them out. They don’t even need to function 100% correct, the main goal is to learn by exploring / experimenting and enjoy the process.

Can't Disappoint yourself if u have low expectations - Roll safeeeeee |  Meme Generator

Pair with someone (optional)

You can start this (learning process) with a friend or with someone that is already doing software development (like a mentor). This is good for getting feedback on your work, asking questions and overall better morale. However, never ever compare your work and progress with that someone, you are only competing with yourself on this match. Or maybe.. umm

Programming is like a boxing match

You give a punch (keystroke), you get a punch back (error, bug, fire, earthquake). Countless hours are wasted for finding the root cause of a stupid bug caused by a typo or a missing comma, lots of research and work for a POC (Proof of Concept) project that may or may not go ahead, doesn’t matter. Rounds and rounds of problem solving that not always bring you the expected satisfaction of a well done thing and might lower the morale. The secret is to stay up, no matter what and think there will be another problem to be solved around the corner, another success that will boost your confidence.

Don Berner on Twitter: "Go watch Rocky 1-3, or “Rocky Balboa”-you'll feel  better. (Skip the others though-they kind of suck)." / Twitter

Do not neglect your health

Working on a computer implies sitting down a lot. Take a brake as often as you can, walk and drink liquids (preferable non-alcoholic hehe). Usually the back and neck start to complain after a while but you’ll be fine as long as you take care of yourself. The earlier you get these habits in your daily routine, the better. Otherwise it’ll be a little harder to “implement” them.

Don’t be afraid to ask questions, just ask them effective

Programmers help each other a lot, mostly driven by curiosity and (natural) desire to learn new things and sometimes just for.. fun. By far, the best resource to look through existent programming questions/answers and ask new question(s) if stuck is Stack Overflow. Note that before asking a question there, it is good to take a look here. When asking a question, focus on the problem, detail it as accurate as possible as well as the issue/error you encounter plus note also what you tried by that point. Of course, there are plenty of other options online, just “google it”.

(Also) Read programing/software books

Online tutorials, courses, learn-programming YouTube channels etc are a great and convenient resource for learning to code but they are usually oriented on particular technologies and projects and are not as curated as books are. Once you feel comfortable in this “world of bytes”, try to read any book you consider that might be suited for your level of understanding. A different perspective is always welcome.

Don’t think about the money

Yes, it’s true, IT, programming/coding/software engineering jobs are usually paid well. If you start learning to code thinking mostly at a potential immediate financial reward, then stop. Stop either the learning process or the thinking at the money. I honestly think you should stop the latter. Your focus (at least in the first part of this journey) should be on the concepts, tools, hows and whats and whys of the computer software development, on being part of one or more software communities, on getting feedback on your work and improving. Rest ($) will come naturally…

one day

Get your hands dirty

Last but not least, you need to dive in and develop, debug, test and fix as many projects as you can. Try to choose some that are fun and engage you at a personal level. Either is a silly game or a chat application, a website or a sports related project, think of what you want/need and figure out a way to make it happen.

I hope you’ll find this useful and inspiring and you do have the Call of Code. I would really appreciate your feedback on this, as a comment. I am curious to know what are other thoughts on the subject (from either tech/non tech readers). Thanks in advance! How do you find this journey (so far), what (still) inspires you to do it?

That’s it, now go have fun!

Leave a Comment