So, I started doing frontend stuff and I am really getting into the nitty-gritty of what programming actually is through Javascript. Putting the argument of whether CSS and HTML is programming or not aside,... (it's not. Now I know.) I am curious about people's feelings and thoughts on their SECOND programming language.
I have heard that it really shapes your style, opinion, and approach to programming. I am still only on my first language, and my head is exploding because I am having to rewire my entire thinking to approach solving problems from the perspective of a machine.
I also know there aren't a lot of syntactical differences between many of the languages, so it becomes a matter of learning a few different words and some different syntax... But what does it mean to learn a new programming language to you guys? Did it blow your mind all over again (new possibilities?!), make you feel warm and fuzzy, make you want to rip your hair out (because you had to learn something tedious), or any other surprising feeling you had when you took on your second language?
I am looking forward to answers like:
"Learning my second programming language was like having sex with my second love. It still had the ferocity and passion of copulation with my first deep love, but with more precision, foreplay, and better technique."
Bonus points for using programming lingo in your analogy. I am sure you will come through.
Top comments (13)
I'd say learning different programming languages is about expanding the scope of ideas we are exposed to.
Languages tend to group together into categories. C and Assembly have similarities (low level, direct memory access). JavaScript, Ruby, and Python have many things in common (dynamically typed, multi-paradigm - i.e. combine object-oriented and functional programming ideas). Java, C#, and C++ are a lot alike (statically typed, multi-paradigm, though C++ gives direct more control). There are languages like Haskell, Scala, Erlang, Lisp, etc (tend to be statically typed, more on the declarative and functional side than the OO side). Languages like Ada, Rust, and Eiffel do static analysis of the code to improve its safety. There are DSLs, or domain-specific languages, which tend to be used more for a specific purpose. SQL, Excel macros, HTML/CSS are the most famous of these I think, but there are many such languages; and developers often create their own custom DSLs too (Ruby in particular tends to make this quite easy).
So very roughly I would categorize all this into static vs. dynamic typing; low-level vs. high level; object-oriented vs functional; declarative vs. imperative; static analysis vs. no static analysis; general-purpose vs. DSL. I'm sure it would be easy to nit pick but it's at least a reasonable high level overview. For me the excitement of learning new languages is seeing how much variety there is in how people approach the art of programming.
Dude, I am FIVE.
Just kidding. What are your preferences? Is there a language you are in love with and why?
I like Python quite a bit for its simplicity and economy. I think it tends to be the easiest way to get something done.
If I learn German as my first language it's pretty tough, because I have no idea what it's like to learn a foreign language, whether I will be able to do it, I have no idea what is akusativ dativ genetiv allthatshit-v
Once I master German and I go for Danish for example, it won't be easy but it will be significantly easier, there are tons of transferable skills that I learned while learning German that will apply for Danish
Haven't been on in a while? Are you actually learning German and then Danish?
No but I have learned 6 foreign languages so far
I like your analogy, I could hardly say it better myself.
When you learn your first language is when you learn the core experience of what coding is and what it's like to write code.
When you learn subsequent languages, it's like it's just an extension of the same core experience. You'll be frustrated, surprised, and amazed, but it will never be the same in magnitude as when you learned your first language.
I think for us developers learning something new will be aways like "there are many things i could do with it". But enjoy this moment, the first contact with programming is unique and I think it is not the same with second language.
I asked ChatGPT.
Sure! Learning a second language is like learning a new way to talk. Just like when you learn your first language, you have to listen to how other people say words and phrases, and then try to say them yourself. It's also a good idea to practice writing the words and phrases, so you can remember how they look and how they're spelled. And it's important to keep practicing, even when it's hard, so you can get better and better at understanding and using the new language. It might be hard at first, but if you keep practicing, you'll get better and better at it!
The first contact with programming is very unique, I began programming with Python but after I realized I couldn't work the front-end with it I moved to JavaScript and it has become my favorite language so far. I am working with Redux now and hope to keep improving my JS skills!
It's like trying to eat rice with a spoon (your first language) then a fork (your second language) and then chopsticks (your X language).
All of the methods above lead to you eating the rice but you might like one utensil more compared to the other.
Well put. My only hope is that the first language is as easy as eating rice with a spoon. Haha. I suppose the third language could be the most challenging (and why not?) but it would give you the deepest capabilities (to shoot yourself in the foot).
Once you learn your second you can learn your third, then your fourth, then you can easily adapt as projects call for something new and your career as technology changes. You stop thinking “oh that would mean I’d have to learn X”. Learning just becomes part of your workflow, if you don’t know something, you have a process for picking it up because you’ve done it before