If anyone knows computer science history you probably know that in recent years, programmers now can write backend using Javascript, with NodeJs framework. So, why are we, the newbie programmers, even bother to learn other languages beside Javascript? We are new, we need it to be a little easy, but not so boring. We want to learn exciting things, and Javascript will let us create a complete app from the backend to the frontend. And once we know Javascript very well, converting to other languages isn't as challenge as it would be with other high-level language like Python or Ruby.
So, why spend time on other languages ?
I first learned Python. It's a beautiful language and I love it the most. All the indentations will save the most messy code writers. And then I moved to Ruby. Ruby is quite similar to Python. There are some differences between the two but, well, for learning purpose, they're quite easy to pick up. Perhaps the learning time was quick and I wouldn't say I know everything about Ruby and Python, but I have been learning Javascript for longer than all and still felt like I understand Javascript the least.
Javascript learning path was even worst than Java. Java is a strict language, it requires us to explain everything to it. Without the correct input, Java will not let you code.
Javascript will be really really free, it takes in any type of input, and return any type of data. Sometimes you need to know what it's returning, right? No, it won't let you know unless the definition is right in front of you. Javascript is just "messy" like that.
Also, there are more memes about how weird Javascript is than the rest of the language. What's the difference between NaN, null, undefined, empty array, empty object, oh well...
Java is great for Object Oriented Programming (OOP). You probably wonder what OOP is, I don't know either. I will need to learn in the future.
Top comments (30)
How much of those languages did you learn? People often say "I learned x"- but it seem like people "get acquainted" with a language - and start using it.
With HTML, you can build a webpage.
This.
You must go deeper.
Concepts like OOP, abstractions, persistence, patterns, good and bad practices, synchronicity (and more, much much more) are the true pillars of modern programming you should learn. A language is just a tool to express those concepts and their interactions.
Do not fall in this beginner "Tutorial Trap" of assuming you know how to program by just learning some language sintax and jumping to the next language, otherwise you might have a bad experience. (like many of us already had)
Most languages have a very marked roadmap of concepts and peculiarities to learn, and the awesome thing is that most of them share most of those concepts. Follow those roadmaps, try to pick one or two languages you find comfy with, and code whole projects with increasing layers of abstractions.
Over time you will realize that you are being able to face any project.
Thank you for the kind words and encouragements. I really should focus on the fundamentals before moving forward too fast with new programming language! As if it always feel like I'm behind of the tech world :)
perpetual.education/escape-tutoria...
Amazing article!!
It is!!! Learned so much from it
Not much, I have to admit, I spent the most time with Javascript and still feel like I am just getting acquainted with it haha.
after reading this, I want to ask you all what you think of my quote about:
The differece between JS and Python:
In python people learn how to iterate a list, and it feels like they are data scientist. When people learn JS, they learn how to do single page PWA apps with dashboards, real-time interactivity, but they feel just like a noob.
Opps...
I see the same environment near me, I head one of my friend saying saying.
Here is what he said😅..
I asked him what to learn Web Dev or Machine Learning?
😂😂, I was scared and now I a web dev I see why people have this mentality?
A lot of people say this, because they have just worked with Portfolio etc.. and that is where they land after 3 months....
Developing a Real time app is what you can't relate with the statement above🥱, I am working with real time user app's which is real cool job.
Althought people say it's easy, they are the people who haven't been anywhere and have a false knowledge, which they are sharing in case to look cool.
......
I love Web Development.
Oh yes. Python definitely made me felt like I knew everything and I could do everything (I'm not). Javascript made me cry.
well... that's hilarious.
iterating over a list is pretty similar in both languages though, right? - but one - can do it in real-time / in the browser.
My journey has been a bit similar to you. Python, C, C++, Java, and now I'm "trying" to learn JS alongside HTML & CSS, and so far, it has been... not easy? The worst part for me is when I'm hopping between JS, HTML and CSS, and the syntax difference makes me wanna rage quit.
I guess the term I'm looking for is flexibility. I have yet a lot to discover about JS, but so far, I've found it's learning curve to be a bit too steep as compared to other languages I've learnt.
Ah, Java, C, C++ before Javascript? I think you're brave !
Hahaha nopes, that's just the way our curriculum was designed. C and then C++....But I'm happy about that because I can easily learn a new language without worrying too much about the basics...
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! 😉
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?
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).
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!
Not all languages expect user interfaces - but we really like this book: Exercises for Programmers: which is language agnostic: youtube.com/watch?v=YHEFuQdnXEE&fe...
A fellow javascript struggler here. Beautiful though. Have fun on your journey
Awww, you as well!
Thanks for the awesome article ✌
JS is a great programming language, learn once and do many things. I am also trying to learn ruby to build a personal project 💪
Good luck on your journey Ngan.
The toughest part about JavaScript is the tooling surrounding it.
Also knowing what NOT to use.
For example you hear about all the quirky stuff about JavaScript; the solution is to not use the quirky stuff, and to guard yourself against it.
Here is the list of JavaScript constructs I don't use....
dev.to/functional_js/what-subset-o...
Keep on truckin'!
Thank you!! And that's a really interesting article.
OOP is not a design pattern. Factory is a design pattern. Observer is a design pattern. Know the difference ;)
Thank you !
Thanks for sharing!
I code in Python, Java and JavaScript as well and I must say, I dislike JavaScript the most. I know I’m not alone.
Anyway, have fun learning!
XD !!