4 ms·
Is it though ? Not trying to sound smart, but what I found in 20+ years of programming is: Learning new paradigms are harder than learning a new language. Exam
by rawoke083600 5y ago
Is it though ?
Not trying to sound smart, but what I found in 20+ years of programming is:
Learning new paradigms are harder than learning a new language. Example (functional vs OOP)
YouTube is a great resource to give you "overview". Notice I didn't say do a youtube course (although if that is your jam go for it).
I found the YouTube "programming tutorials" is a great way to just start filling in the "outer leaves of the knowledge tree" for a particular language/paradigm/framework.
I've also over the years, "conditioned myself", by telling myself learning a new lang/paradigm is not "hard" it's just "pain in the arse / time-consuming", but not "hard".
YMMV
- amelius 5y agoLearning the ecosystem is the hard part.
- Trucont 5y agoI agree. I would guess it's pretty difficult to learn all of the idioms, tooling, community, etc of the first language for most programmers as well? It can be easy to forget your struggles with something when, years later, you've become comfortable with it.
- tonyedgecombe 5y agoIt's not really hard though, just time consuming. And somewhat frustrating if you think it will be obsolete in a couple of years.
- saiya-jin 5y agoExactly, its not about languages as much, but how whole ecosystem works. Do you have some sort of VM? What libraries allow you to do? How does build works? What to expect from memory management? What kind of servers / clusters do you deploy to? And so on. Learning language to OK level isn't usually that hard. The rest of which makes an effective developer able to deliver useful products is another story.
- DonHopkins 5y agoI've certainly encountered a sub-culture of mono-linguistic programmers not WANTING to learn another programming language, because they think they already know the One True Programming Language and want to stick with it forever, and for everyone else to use it too. And I think that correlates with learning a terrible first language that's unnecessarily complex and badly designed (like Perl), and assuming all languages are as difficult to learn as their first and only one was, so they stick with their first and only language that traumatized them by requiring such a huge investment of time and energy to learn that they're afraid to learn any others. Back in the 80's and 90's, people who started by dabbling around with shell scripting and then discovered Perl (which proudly touted its similarity to shell scripting as a "feature" instead of a "liability") tended to think that Perl was incredibly powerful just because it had hash tables and regular expressions, which the shell didn't support at the time (and was a major source of frustration). And they ascribed the power to Perl itself, instead of hash tables and regexps, because C doesn't have hash tables and regexps built in, so it's "hard" to do what they do in Perl, and they assumed it was something special about Perl itself, not just its hash tables and regular expressions that are totally independent of the language, which other languages like Python and JavaScript and even C++ finally now have (which all eventually became much more popular than Perl). Finally there are enough popular languages with hash tables and regular expressions and all kinds of other data structures and libraries that Perl doesn't seem like such a unique special magical language any more. But for many programmers decades ago, Perl was a mono-linguistic dead-end black hole that made them afraid of learning any other language for quite a long time, and they'd fervently evangelize Perl as the solution to every problem, without recognizing how badly designed and hard to learn and maintain it was (while celebrating and cultivating its write-only aspect and fetishizing its arcane line-noise syntax and TMTOWTDI-oriented programming in the name of job security), and without bothering to learn any other more powerful, better designed languages like Lisp or Python or even Java or C++ to compare it with. I think that effect of ascribing all that magical power to the surface features of the first language you learn instead of realizing that it's just the abstract data structures and libraries is still common with newbie programmers, but just not as intense and pathological as it was with Perl back in its heyday in the 90's. Now we have cross-language data description languages like (dare I say) XML and JSON, so it doesn't matter so much what language you write stuff in, and they can all interoperate easily, and you can mix and match the languages that support the libraries you need, so professional programmers should be comfortable writing in several languages (and data formats) at once, including non-programming languages like JSON, XML, HTML, CSS, YAML, etc. The mono-linguistic mindset is a huge liability these days.
- Jenk 5y agoSimilar vintage, similar story. I will purposely pick languages to learn that present different paradigms, even if the likeliest outcome is that I won't use the language in earnest but can take the new knowledge back to my usual bread-and-butter stack. Haskell has helped me to write cleaner (as in purity) C# (and F#, (Type|Java)script, etc). Golang helped me see the value of goroutine-style (at least, the implementation _style_ if not the functional benefits thereof) Tasks. I've also taken this lesson to heart with non-technical things - young me didn't have the patience to learn to play the guitar, but old(er) me now sees learning the guitar for what it is - a journey of exploration and continuous learning. Before I was far too focussed on the "end game" of mastering something (i.e., being a master) rather than appreciating the progression of being a student.
- pjmlp 5y agoThe grammar and semantics is easy, no big deal. However now jump into IDE, build tooling, package managers, standard library, implementations (compilers/interpreters/runtimes), common set of third party libraries that always get used (e.g. boost, qt, rayon, tokio, wpf, forms, spring,....). And naturally a deadline to deliver something into a couple of weeks.