𝘍𝘢𝘭𝘭𝘢𝘤𝘺 𝘰𝘧 𝘧𝘭𝘶𝘦𝘯𝘤𝘺

𝘍𝘢𝘭𝘭𝘢𝘤𝘺 𝘰𝘧 𝘧𝘭𝘶𝘦𝘯𝘤𝘺

Why becoming fluent in a programming language isn’t the end.

When I was first learning programming, I had messed with a few languages. Objective-C, Java, Python, etc. I chose to be committed to Python as my first language. After making the commitment, my initial goal was to become fluent in the language.

In this context, the definition of “fluent” means you can read and write code as if it were your native language. That doesn’t mean you’ll understand what all modules do when you see them for the first time, there are people who speak English fluently who still encounter new words, but just as an English speaker can pick up on new words easily, you’ll be able to learn new modules fairly easily. I think becoming fluent is a worthy goal for each and every programmer, however, if you’re on your way to becoming fluent, I want to save you from a misconception I had about becoming fluent.

In my mind, I thought that once I became fluent, I would be able to code whatever I wanted off the top of my head. This is not the case.

I’m going to give you two reasons why thinking fluency is “the end” is a fallacy:

  1. Each field is a study unto itself

  2. The language itself updates

Elaboration

First reason

If you’re still new, I want you to understand that programming is used to make software for entirely different fields of study. Cryptography is a subject all to itself, and it takes a lot of practice and study to become competent with Cryptography. Artificial Intelligence is a subject all to itself, and again, it takes a lot of practice and study to become competent. Cyber-forensics, data science, robotics, 3D graphics, each of these things are a field unto themselves.

When you become fluent in a language and then decide you want to write an IRC bot that connects to your IRC server, you will realize you have to learn some standards with IRC protocol in order to be able to connect. This applies to making a program that signs into your social media accounts for you. Making a program sign into twitter is going to have different code from making a program that signs into facebook. Each social media platform has a different API.

Do you want to make your own anti-virus? Your code for a Windows version will be very different from your code for a GNU/Linux version, and this is because the Operating Systems are different. Do you want to make a program that encrypts and decrypts folders from scratch, not using anyone else’s modules? You’ll need to study cryptography. I found out the hard way that there’s a lot more to this than meets the eye.

Because there are so many fields already, and new fields of study in technology are popping up over time, becoming fluent certainly will not be the end of your programming journey. It simply won’t empower you to code just whatever you want off the top of your head. This is something a lot of people who don’t program don’t understand.

Hopefully this does more than explain to you the first reason, it hopefully helps you to appreciate how much study a person had to complete before being able to develop software in various fields. Some people specialize in one area, and some people specialize in a few areas!

Second Reason

The second reason why becoming fluent in a language today is not “the end” is because languages get updated. Did you become fluent in the ISO/IEC 9899:2011 standard for the C programming language? There’s a new standard out now, it’s ISO/IEC 9899:2018. Did you become fluent in Python version 3.6? Python 3.11 is out now.

When I first became fluent in Python, neither the Asyncio module nor coroutine objects existed. Once those features were added to the language I had to learn them to stay up to date. Now some languages get updated more often than others, but sure enough, sooner or later they get updated. It’s not just “ancient” languages like C that get updated, COBOL has been updated too.

Conclusion

Hopefully these two reasons help you to understand that becoming fluent in your programming language of choice won’t be the “end” of your learning journey. Hope you enjoyed reading this and learned something new.