Foreword from Imke: “Happy to publish my 2nd guest post here: I met Rafael Knuth in the Technet-forum where it was a joy to see how quickly he was set on fire by the M-language. When he vented the idea about starting a newbie-to-newbie-series where he would share his learning experiences and perspectives as an “Excel-guy”, I was quick enough to engage him for an intro on my site. As it turns out, he is a VERY talented communicator as well, but just see for yourself”:
I’m just a regular corporate marketing guy in his late forties with no formal programming education. However, one day I woke up and decided to teach myself to code. I had no plan whatsoever, and my learning journey was anything but a carefully planned venue. It was rather accidental fumbling & stumbling, accompanied by loads of frustrations, with frequent, prolonged breaks to recover from my failed attempts to teach myself to code.
What makes learning to code so hard?
These are the main obstacles in my views:
1) Lack of time
As a professional in a corporate environment, it’s nearly impossible to put 20 hours a week aside to teach yourself a new skill from scratch, without major sacrifices in other areas of your life.
2) Your brain’s “wrong” wiring
What makes learning so hard is the amount of knowledge you have to unlearn: “Why is my program not doing what I expect?” Because you set the wrong expectations. Rewire your brain.
3) Complexity of the subject
Coding is a hard piece of candy, bluntly speaking. There is good reason why there’s such a dramatic undersupply with good developers.
4) Lack of applicability of your knowledge
So, you did that course on Python at Codecademy. How do you put your newly acquired skills at work? Unless you prove me wrong, my answer is: Not at all.
5) Unrealistic expectations
Become a Data Scientist in a 6 month bootcamp. You will find tons of offerings like that. So, basically what it says, is: “You can be smarter than all those guys who put years and years into studying programming, mathematics, acquiring PHDs – just join our course and you’ll get there in no time.” Good luck with that.
Microsoft M-Language comes to your rescue
As always in life, there is a solution to virtually any problem. If I could swing the magic wand and turn back time, M-Language would be certainly my first programming language to learn, even though it’s “just” a query language:
1) Learn in no time
M-Language is easy to learn, even for those with close to zero knowledge of Excel formula language. It’s a great entry level drug, as you move from endorphins rush to endorphins rush.
2) Rewire your brain gently
You are not overcharging your brain with M-Language. Give yourself a chance to gradually adapt to an entirely new subject. M-Language will do that service for you.
3) Your first line of code is just one click away
Hit the Advanced Editor and start writing. No exotic IDEs, packages that need to be downloaded with help of weirdly looking scripts. None of the stuff that can potentially kill your beginner’s enthusiasm. Just hit the ground and run.
4) Immediately put your knowledge at work
You can start mashing up data after just a few hours of learning M-Language. Even concepts that sound esoteric to a regular business user’s ears are within reach. Fetching data through REST APIs? And then prepping it up for analytics? No problem.
5) It’s an unsexy, but very useful skill
Start using M-Language to clean up your data, do meaningful and feasible work, or die trying to become a fully fledged Data Scientist in 6 months.
The best way to learn is by teaching others
When I first discovered M-Language, I only found one truly great book dedicated to the subject of M-Language: “M is for (DATA) MONKEY” by Ken Plus and Miguel Escobar.
M-Language allows you to mash up data without actually writing more than one or two lines of code here and there. You don’t need to learn writing code in M-Language, most of the work can be done through the UI. However, if you are keen on gaining a better understanding of how thigs work under the hood – it’s wort putting the time and effort in learning the fundamentals of this query language. It will “rewire” your brain, and you will eventually feel comfortable learning further programming languages.
Unfortunately, I haven’t found any learning materials that teach newbies from scratch to write code in M-Language. Or should I better say: “Fortunately”? After some fumbling and stumbling, I asked myself: “Why don’t I share my learnings with likeminded people?” That said, I started putting together a series of blog posts. Here’s the result:
I was a bit scared when I wrote this series. By all means, I am not an expert and I am sure that my course is far from perfect. However, I believe the way we learn is changing: We can’t solely rely on experts (they will always be needed), but the importance of peer to peer learning is increasing.
Peer to Peer Learning: Sharing knowledge newbie to newbie
So, what’s the take away from my write-up? First, whenever you stumble upon a subject you are sincerely interested in and you suffer from a lack of usable learning resources around it – just go ahead and share what you learn along the way, even if you are just one step ahead of your audience. Don’t be shy to be that lonely nut who stands out of the crowd. Others will follow. You will feel richly rewarded by those first followers: “Yeah, I did it, and it’s of importance for others – even if it’s just a small handful of people.”
Second, just go ahead and read my series. I am very excited to hear back from you and get your honest feedback on my work. Thanks in advance!