What programming language should I learn: or Why it doesn’t matter
This is the struggle of beginners learning to program — and even myself, when I was looking for a second language to learn. There is so much noise and no clear path. Now I’m not about to add to all those articles and recommend you another language.
I’m instead going to promote a new idea — IT DOESN’T MATTER. No really! Here me out.
My point here is this…
Languages and frameworks, come and go. Concepts are here to stay.
Let’s take React as an example here. I am of the opinion that although React is not here to stay. The concepts and underlying principles behind React are definitely here to stay. The way React promotes a hierarchical component structure and flows data through that structure; The way it only re-renders the parts of the components that have had a state change, is all amazing.
Now whether you chose to learn React or not is your choice, but the concepts behind it will soon be applied in other languages. And at that point, if you do understand React, you will be able to adopt that way of thinking when building your application in that languages version of React.
In the wildly successful game Portal, the narrator comments “Now you’re thinking with Portals”. The idea of the saying is that now you’re thinking with the technology you have, in this case the Portal gun which the player users to create two ends of a portal that link between each other.
We can apply this saying to the technology we work with. When you finally crack the concept of how data can travel from your models through to your views, you can say “Now I’m thinking with MVC”.
You’re not a REAL programming if you’re not doing this #obvi (source: https://xkcd.com/378/)
Trying to get into this space and become a developer can be a scary place, but fear not! Programming is about the problem solving skills you develop. Not about what shiny syntax you happen to use. Many people use a language that they never used before that job (myself included). When learning to program, you will naturally acquire these skills. It’s something I was told when I first started to learn to code, when I thought to get a job you had to be this NASA-level genius that had made 10 apps and half a dozen website (hint: you don’t need that — it certainly helps though!), I didn’t believe what they had to say. I simply couldn’t fathom this indescribable skill you just ‘acquired’ as if by some miasma. Well, it is true. Trust me.
My piece of specific advise would be to start building things as soon as possible. They don’t have to be amazing, they don’t have to be original. They just have to be something you’d like to try out. Freecodecamp does this excellently in their curriculum. One of my first projects was a calculator. I came to that project because I know how calculators work and I know how add, subtract, divide and multiple work. From my learning of programming, I knew that to keep track of the buttons the user had pushed I could store it in a variable. I knew I would need to hook up the buttons to trigger a function that would do various things. I had almost no idea of the inner workings of the application. But overarchingly I knew the concepts of how it should work. Apply this same principle to things you build and you’ll go far. It’s also great because you get to solve actual problems as if you were on a job. And debugging, like you will in a job. 90% of programming is debugging what you’ve written — so get used to it! Further, doing a project yourself will give you an understanding of what the code does. Many tutorials adopt a “type this, do that” mentality, with little explanation given to what or how this thing works. Take the time to read documentation and truly understand what you are writing.If you don’t right away, that’s ok. Take some time, chew on it, and come back to it later. That’s part of learning these concepts.
As a bonus to all this project building, at the end, you get something cool you can show your Mum, Dad, Cat or beloved family member/pet.
Keep learning. Don’t get discouraged. And have fun, make some cool stuff, programming is like digital wizardry, use your powers!