DEV Community

loading...

Discussion on: I learned Javascript, Ruby, Python and Java

Collapse
claudemuller profile image
LЦҜΞ FILΞЩДLҜΞЯ • Edited

It's great that you want to learn more than one language - that is what programming and Computer Science is about, but I would encourage you to look at each language independently and for what they offer and how they do things in "their own way".

JavaScript is not a messy language or inferior to other languages like a lot of people think. It is different - a dynamically typed, c-style, interpreted, prototypal language (and remember, it was written in 10 days!). Additionally, most people never learn about JS's roots and using/learning it the way the creator - Brendan Eich - created it. While it is important to see how languages differ and in doing so you remember/learn their quirks better as you see them in relation to another languages, I implore you to try and learn JS at a deeper level.

There are few devs out there who advocate and teach the real "JS way". Two of these gurus are Kyle Simpson and Eric Elliot. Eric is a Grandmaster and has a great course that he teaches online. It isn't free but well worth it if you can afford it, while Kyle (another GM) has the best JS resource I personally have ever read online for free! It really opened my eyes - github.com/getify/You-Dont-Know-JS. I would encourage you and anyone reading this to pore over those books and learn and use JS the way it was meant.

Beyond JS I would encourage everyone to first focus on basic concepts and to master those as a programming language is just a way to express those concepts. Don't think that statically typed languages (e.g. Java, Go, C etc.) are superior to dynamically typed languages (e.g. Python, JS, Ruby etc.), or vice-versa. Instead think of them as each allowing you to express solutions to problems using different concepts and styles.

Once you know the underpinning concepts of programming and computer science, you can learn any language! I don't say this to boast, but I know (pretty well, and can programme quite competently in) about 10-15 languages. My place of work hires polyglots - we all know at least 5 languages and all code different languages on different projects simultaneously. I recently learned Go and am now learning Scala for a big data project. But I can see how each language offers something different and allows one to solve problems in certain ways while making certain problems easier to deal with (and others more difficult and complex).

I personally prefer statically typed languages as I prefer the strictness and the fact that the IDE/code editor and compiler can check my work more thoroughly before it goes out into the wild. Additionally, it forces me to think about what I'm doing and how I'm using system resources. On top of all of that I would really suggest that everyone learns and writes (if you don't already) unit tests for all the languages they use from the get-go. Another tip is to make the debugger your best friend! It saves you from hours and days of pain - I'm speaking from many painful hours 😭

But above all else - have fun and learn 😍 every day it still feels like a punch to the head and heart when I realise all the things that one can do and make when you know a little bit about computers/electronics and programming!! My brother has just started on his road to becoming a software developer/engineer and comes from an engineering (machine engineering) background - so quite different, but as I was telling my wife yesterday - ANYONE can learn to programme!

Enjoy, learn, never give up and have fun! 😉

Collapse
nk2303 profile image
Ngan Kim Khong Author

That's so sweet 😍. How did you learn so many languages? Is your background computer science? How did you get all the CS fundamental concepts that helped build up your knowledge for learning new languages?

Collapse
claudemuller profile image
LЦҜΞ FILΞЩДLҜΞЯ

Thanks :) I was lucky to be exposed to computers at about the age of about 12 - I'm 37 now - so I've had many years' practice :) I learned by self-study and trial and error, although I always felt that I was missing something - but thats just my personality - to know every little detail. I've always been very curious about how things work and naturally want to know all there is to know about computers and thus, am never satisfied with what I know - including languages. And finally, I've decided to dedicate myself to getting a ComSci degree (multiple degrees is my goal).

Thread Thread
claudemuller profile image
LЦҜΞ FILΞЩДLҜΞЯ • Edited

Also to answer your question (sorry, I'm learning Dvorak, most of my brain power is going towards typing the letters, not necessarily what I'm saying, lol). I think just continue to learn from different resources and languages.

Also sign up at the following sites and learn and practice algorithms and data structures:

Also join here to learn from the masters for free at - exercism.io (again my profile is - exercism.io/profiles/LukeFilewalker - although I'm not a master like the mentors on this site)

And study and practice design patterns:

And above all else - code as much as you can!

(I would also suggest learning linux and the shell if you want to be better than most devs out there)

I hope this helps :) stay safe!