Taking the plunge: which programming language should I start with?

Alicia Williams
4 min readJan 15, 2019

--

I have searched this exact phrase on Google more than I would like to admit. And it never ends well. In fact, there are a lot of opinions out there, which have kept me fairly busy over the months and years in analyzing my options and reanalyzing my decisions (while chipping away any confidence I had in the matter).

Putting personal blogs and reddit threads aside, I’ve looked for more “authoritative” resources, like the Stack Overflow developer survey. Surely learning the most popular and loved languages wouldn’t be a bad decision….right?

https://insights.stackoverflow.com/survey/2018/#technology

Now I hope you don’t get too distracted by that chart, because alas, it is not the answer to the question posed in the title of this post. The real answer is this:

The best programming language to start learning is whichever language you can use right now to solve an active problem in your life.

You can go ahead and take my word for it. But to show you why I believe this to be true, here is a b̶r̶i̶e̶f̶ history of my programming life:

The Excel Spreadsheet Years

I’ve dipped my toe in many-a-language over the years. My first exposure of any sort was with VBA which was used to automate Excel files at my first job in actuarial consulting. I spent 6+ hours a day in Excel. While I never quite managed to learn VBA, I could update and adapt it like a champ.

The Imposter Years

Several years later, after starting a job at Google and feeling like a tech employee poser, I decided to take a python class taught internally by women, for women. It felt pretty good to finally know what the command line was, but it honestly moved me further away from solving any tangible problems. I closed my command line for a few more years and kept program managing the only way I knew how: manually in email and spreadsheets. Until one day, I ended up in a sea of developers as part of Google’s Cloud Developer Relations team. It was hard not to be inspired, and after encouragement from my teammate Sara, I followed OneMonth’s HTML and Rails courses. It was pretty cool! I opened a Github account, hosted an app on Heroku, and created a blog. All wonderful things, but they didn’t quite stick because…

The “I just need to figure out how to get my job done more efficiently” Years

…I had a mountain of work to do as a program manager! It turns out, I didn’t need a blog written from scratch in HTML and CSS. I also didn’t need a Pinterest-inspired app hosted on Heroku. And yes, I know that these sample projects are only a first step in understanding the power of the programming languages and frameworks. What I really needed was to be able to pull numbers on our GCP blog performance (using SQL in BigQuery) and to automate my project tracking spreadsheet (using Apps Script in Google Sheets). Aha! I had finally found the first two languages that I was not only excited to learn but motivated to learn. Because I was able to start using these languages to make the tasks of my role easier and faster, I also got an instant reward that kept my motivation high.

The Future

Spoiler alert: I haven’t “finished” learning SQL and Apps Script. Not even close. If it weren’t for my teammates (including one who can write JavaScript like a boss, and another that I’ve witnessed recognized in public for his mad SQL-ing skills in BigQuery), my queries and automations would not be where they are today. Now I’m in a phase of learning by doing, which is a pretty fun way to learn. Kinda like learning French by living in France! (which is most definitely the best way to learn a spoken language…another post for another time)

So…what’s the best language to start with?

Instead of asking “What’s the best language to start with?”, ask yourself “What are my day-to-day challenges?” Think about what in your job could be faster, better, or cheaper, and then research which technology can help solve that problem.

My biggest challenges have been automation and data analysis. In future posts, I’ll be sharing how I got started with two technologies, Apps Script and SQL, that help tackle these types of problems.

--

--

Alicia Williams

Google Cloud Developer Relations. Learning how to do cool things with @GoogleCloudTech and @GoogleWorkspace. Opinions are my own, not that of my company.