Note: each external link in this article is free and does not require PII
I remember when I first decided I wanted to learn to write code, my google search history would look like this:
- Best first programming language
- What programming language should I learn
- How to avoid Ebola (unrelated)
- Python good first language?
Ultimately, this time I spent was a waste and I’ll tell you why.
Note: This is an older article of mine, deleted from it’s original site and reposted here. Note, some of the information (mostly personal) is outdated, and in the spirit of full disclosure, I will note as much when appropriate.
(Always keep in mind that an author’s experience is not everyone’s experience. Just because this is my story doesn’t mean it will be yours)
Eventually I decided that my first language would be
DRUM ROLL……..
C++
That’s right. I decided on C++ not because I read anything saying it would be a great first programming language, but because my first programming class in college was going to use C++ and I wanted to learn it before class started.
Note: I hesitate to share this information about myself, because I am adamantly against telling people to learn C/C++ as blanket advice, especially as a first language. That is not the point being made here.
Also, please don’t take this to mean I hate C/C++, that I don’t know the languages, or that they are not worth learning.
I found a pretty awesome website ( Learn CPP) and spent about an hour a day going through the exercises. After a couple of months, I was good enough at it that I breezed through my class without much effort. How many times have I used C++ in the four years since? Zero.
Another edit, as this is an older article of mine. It’s now been five years since I learned C++, and I actually have used it in the last few months.
Just because I never used it outside of that one semester doesn’t mean I didn’t learn valuable things about programming. I learned about conditionals, loops, objects, and other basic things that are common in nearly all languages. I also learned some of the most important skills that I use to this day:
- How to isolate the source of an error
- How to break problems up into smaller problems
- and most importantly, How to google my problems
I am at least a halfway decent programmer but it’s not because I learned C++ before I learned Python or Ruby, but because I stuck with it and I got experience in the actual art of programming.
Why My First Language Didn’t Matter
The fact that C++ was my first language didn’t matter at all. After that class, the rest of the coding classes in my undergraduate program consisted of:
- A semester of HTML/CSS/JavaScript
- Two semesters of Java (the second of which focusing on Spring)
- One semester of Ruby on Rails (and a capstone class that utilized it as well)
- Four semesters of classes utilizing SQL to varying degrees
So, with 2 semesters of Java, a working knowledge of RoR, and all the SQL you can think of, what language do you think I was writing in the first time I got paid to code? If you guessed C#, you’re right.
It didn’t matter which languages I learned, it mattered that I knew how to think about problems (or business requirements), break them up into manageable pieces, and solve them programmatically.
My second and current job has me working with Ruby on Rails which I hadn’t touched in years, and ReactJS, something I had zero experience with. I wasn’t hired because I knew these frameworks intimately, it’s because I have a good attitude and I’m willing to learn.
So How Do You Decide What to Learn First?
Easy, you pick the language that’s most accessible to you that can have you coding right now and keep you excited about learning and building new things. The most important thing is that you start ASAP, and the second most important thing is that you’re learning the kinds of things that keep you interested.
If you’re reading this on Google Chrome, you can press F12, click the Console tab, and start writing JavaScript right this second.
You can download Python and start writing in the IDLE immediately.
If you’re on Windows you can open PowerShell and write that, or in Linux you can start writing Bash. You can even start writing Python or C right now if you’re on a Mac.
It’s entirely likely that the first language you learn will not even be the one you end up using most. As you learn what kind of things interest you, you’ll start to learn about the tools and languages used in that domain and ditch the language you’re learning now if it’s not a good fit for your interests. But you’ll bring the things you learned from your first language with you everywhere you go.
Side Point: There’s More to Development than Development
I’m not just talking about the soft-skills that are important to career growth, but there’s a lot of technical skills you’ll need to be a decent programmer outside of programming. It may sound a bit off topic, but it’s important to keep the end in mind when setting out on your learn-programming-adventure. The sooner you start learning your first language, the sooner you can start learning the other stuff you’ll eventually have/want to learn. Things like
- Databases — Databases are everywhere and you’ll need to know at least the basics of querying, creating, and updating data.
- Frameworks — Frameworks are ecosystems and libraries built around a certain language to get things done quickly and are generally not suggested for beginners. You will eventually want to learn one because you will get stuff done so much faster. (Some examples of frameworks would be Rails for Ruby, Django for Python, Spring for Java, etc.) Warning: Do not learn a framework until you feel comfortable in your language of choice.
- Infrastructure — This is stuff like servers, operating systems, networks, and so on. This is a very deep and broad topic and you definitely don’t need to master any of it, but at some point you will probably have to worry about network connectivity, server configuration, and so on.
Learning two programming languages doesn’t make you twice as employable. If you’re applying for a web developer position as someone who knows Python and MySQL, you will have a leg-up on someone how knows, for example, Python and Ruby.
Conclusion
If you’ve read all of this and you still don’t know what language to learn first, let me make it easy on you. Learn Python. Why? Because it truly doesn’t matter what you learn first, you just need to start learning. Go to your computer’s terminal, type python and press enter. If you get a message and a
>>>
at your terminal, you’re ready to go. If not, go download it. Afterwards, head over to learnpython.org and go through the “Learn the Basics” and “Advanced Tutorial” lessons. Boom, you learned a programming language. Then go build something.
Originally posted at eriksCodeSpace
Top comments (2)
I strongly agree that many people overthink the problem of choosing the first language to code at the beginning. The very basic concepts are almost the same in all languages, so there will be no problem changing the language at any time. I think the issue here lies in small details. After working with teenagers who were learning to code, I noticed that motivation and self-confidence play a significant role in people doing their first steps in programming. Languages with less natural syntax and strict rules tend to create additional problems at the beginning. Additional unnecessary problems develop negative feelings and result in a decrease in motivation. To avoid such situations, I think JavaScript or Python may be more preferable as they have looser mandatory rules to follow.
Interesting take, I'd never considered the learner's own confidence. Thanks for your perspective!