I have covered my story and how I came to learn programming aged 37 (never too late!) in "#StartupPlaybook 01: How to bootstrap a Tech startup, without a Tech cofounder":
I want in this post to encourage you to learn yourself and overcome the mental hurdle(s) you might have (I had them!).
If you are looking specifically for a "how-to start learning Python", follow me as I will publish soon my guide for those who want to start learning.
Why I did not learn earlier, and why you might still haven't started
20+ years ago, programming was more "obscure", ie not as accessible as today. And I realise now that some events formed artificial hurdles in my mind when it comes to programming.
My mother had computers early, in our home, for her work (she was working remotely). First a massive looking desktop with hypnotising green fonts on black background (perhaps why The Matrix made such an impact on me 🤔). Then a massive laptop - a "magical brick".
In both cases, they were off-limits for me - "Don't touch".
As they were work-related, doing anything wrong with them would have meant an impact on her work.
The fear of "breaking expensive things" isn't conducive to let you experiment and learn.
Programming was not an available curriculum in my school journey. My path took me from literary studies in high school, to a business school.
If you wanted to learn programming, you had first to specialise in Maths. Computer Sciences was possible at the end of the tunnel.
Things have changed these days (helped with the availability of free online courses, like Code.org - "Every student in every school should have the opportunity to learn computer science"), but not as much as they should in my opinion.
Programming should be part of the curriculum, from the earliest days.
Stemming probably from the above, I unconsciously related programming to Maths.
Along the lines of "you have to be great at maths to learn to program".
See "What you need to be a (good) programmer" below.
Different career path
That's probably my age and generation, but as I ended up on a career path in Sales and Business, programming felt like something "unreachable". Limited to those who had done the "right" studies for it, ie "taken the appropriate path".
This is just a societal moulding though, that creates artificial mind barriers.
No matter what you studied, programming is accessible to everyone. Just like learning French, Spanish or Chinese (made even easier these days, with apps like DuoLingo).
And as I became proficient in programming, what has been funny to experience for me, is that my former contacts, while I was in Sales, keep seeing me today as a "Sales expert". But in the last few months, I had 3 startups asking me to become their CTO (Chief Technical Officer), seeing me as a "Technical expert". I am not (yet) certain that I want to focus 100% on the technical side, as I like the Sales and Business side. But it shows that career path changes ARE possible.
Just don't expect the current people in your life to shift their perception of you.
Programmers tend to use a lot of unknown words and acronyms.
It can feel overwhelming at first.
But so is learning a new human language.
This barrier is overcome very quickly when you start learning.
What you need to learn programming
So, if all the above preconceptions are false, what do you really need to start learning programming?
I would boil it down to 3 traits.
Note that the more natural those traits are to you, the better you'll fare in your learning. But even if you do not consider these your strengths, learning to program will help you sharpen those skills, which are useful in other areas of life - and business.
This is the main one.
Programming is all about logic.
Breaking down every single logical step to get from an input to an output (the famous I/O or why so many startups use the .io domain name, including my own OfficeBots.io).
Programming is like solving a lot of mini-puzzles.
With the added excitement of building the puzzles yourself.
This applies to every kind of new skill you want to learn.
A learning path can be frustrating at times.
You might feel like you are making quick progress at times, at others you feel like you're stuck and not progressing.
Keeping at it, consistently, is key.
And not beating yourself up unnecessarily (I know I have!) if you have "abandoned" your learning path for a while. Just get back to it and pick up where you left of, with a quick refresher on prior steps/lessons.
And believe me, the feelings of satisfaction (dare I say "pride"), when you finally get your code to do what you want it to, is priceless! 🤗 🤓
While there are a lot of resources available to guide you, it cannot replace a high level of curiosity.
Learning happens a lot when you "go down rabbit holes". When you're driven by trying to understand things and why they work the way they do.
"How does that function work?"
"What does that do?"
"Why is that here?"
"Why was it done that way and not that way?"
"How can I do this?"
"How can I improve this?"
With a mixture of research, asking questions and experimenting, being curious is a fundamental of learning to program (or anything by that matter).
Obviously, the more pre-existing computer-related knowledge you have, the easier it will be for you.
But even if that is limited, everything can be learned, especially if you hone in on the 3 skills above.
Similitudes with human languages.
I speak, read and write English, French and German (though none perfectly I'd say). I am not saying that to boast - it's so ingrained in me, that it feels natural and not something I am "proud" of - but to provide context here.
Learning programming (computer) languages is similar to learning human languages.
There is a set of names, conventions and syntaxes to learn.
Though if learning a new human language feels overwhelming to you, the good news is that I find learning programming languages to be easier.
They are for the most part logical, contrary to, say, French grammar 🇫🇷😅
You can do more, with less to learn.
Because programming languages are written-only (no need to worry about your accent!), you can do a lot by just copy/pasting bits (code snippets) and use "libraries" (functions written by others), rather than write everything yourself from scratch.
And the words used in programming stem from English (some languages, like Python, are even "sentence-like" at times), so familiarity is quicker than learning say Chinese when you are from the Western world.
Benefits for business people
Our world is getting more and more driven by or powered by Technology. By computers.
Computers have their own language - programming languages. (I won't go as low as the binary level, though you can get good explanations if you are interested with numerous articles online, for example "How Computers Work")
There are now more computers than human beings on Earth. If you imagine that computers "speak", programming languages are thus the most common language in the world.
Forget English, Chinese, French and Spanish :)
Computer languages power almost everything around us - and will do even more so in the future (from autonomous driving to widespread office automation).
While I started to learn because of a critical need - I felt I was cornered and wanted my startup to work - I wish I had done so years (or even decades) earlier.
And believe now everyone should learn programming.
I see now all the benefits of learning to program. It helps you:
- think more logically
- structure things in a way that are more efficient
- automate simple tasks yourself
- see opportunities for automation and digitalisation you could not see before
- understand how computers and programs work
- understand the complexities and challenges of building software (and "Software is eating the world"!)
- communicate better with technical people, and programmers in particular
- hire programmers more wisely (be it freelancers or employees)
- manage programmers
- behave in a safer way with computers and on the internet
And understanding how machines (computers) work and communicate between each other, helps understand their potential and (current) limitations, while alleviating fears.
And the key thing is:
You don't need to become a professional programmer to enjoy the benefits. Knowing even the basics of programming will already help you a lot.
In a world where jobs are being disrupted by Technology, those who will thrive most are those able to think and bridge the gap between Business and Technology.
So.. what are you waiting?