Live data from Hacker News

Learn more programming languages, even if you won't use them

thorstenball.com

211–220 of 319 posts

Re: Learn more programming languages, even if you won't use them

#211
post #190

Earlier quoted context omitted.

Yeah, it's a matter of personal choice. My choice was to forgo any hobbies unless they are somehow useful for programming, ignore most of being "well-informed citizen of the world", ignore the whole mating and breeding business and to focus solely on programming at first, then on programming-related fields that picked up my curiousity. I'm still competent enough in other programming- and work-related areas - at least…

Even then, I don’t think you can ever really learn even one mainstream language in depth. For something as ‘simple’ a C every compiler is slightly different and includes different flags and run on different CPU generations and this stuff is constantly evolving. A language like Java has a giant and evolving standard library plus multiple compilers etc. And that’s ignoring any simply popular libraries etc. Really learn…

You're moving goalposts a bit here, I think. Or maybe it's my fault, I should have defined 'in-depth' more precisely.

Anyway, I specifically mentioned knowing "some facts about the implementation" instead of "knowing the implementation inside-out". The same is true for tools, libraries, and frameworks - there is no need to remember every function/method signature and every class name in a library - as long as you know the most important parts and can quickly and accurately find the relevant documentation for the rest.

To me, 'knowing in depth' (as a language user) means that no matter the question, you know where to search for the answers. There's no need to remember the answers themselves, although it kind of happens naturally with repetition anyway.

On the other hand, it's also important to know which questions are not worth answering. It's exactly as you say:

> Really learning what you can safely ignore in whatever context is the most important part

So, to sum it up: if you can do both these things, then, to me, you have in-depth knowledge about the language (or actually any other field). The next step - ie. actually knowing all the answers by heart - is mostly useless for language users and only matters for (and is best left to) language implementers/advocates/nerds.

> A language like Java has a giant and evolving standard library plus multiple compilers etc. And that’s ignoring any simply popular libraries etc.

Java stdlib is only "huge" in comparison with C, where stdlib is non-existent. The popular libraries may be ported from other languages or even directly called via FFI. And if the library is really good, it will be ported to other languages, too, which means you'll have an easier time using these languages in the future.

Even without all that, though, if you know more-or-less what's where and can quickly search for the details - you're good. It's not that easy to learn this - you need to remember the structure of the docs at least - but it's much easier than actually learning and remembering all of the stdlib, etc.

Re: Learn more programming languages, even if you won't use them

#212
post #23

Earlier quoted context omitted.

>When exactly are we supposed to be learning all these languages? Some argue that as a professional, you should be spending time outside of work learning to improve your career. You can't expect your employer to give you time to learn. I find it can be difficult though, especially when you want to spend your time outside of work on other things like family and hobbies.

I didn’t say you shouldn’t spend personal time on those things but you should expect to be compensated one way or another for it. It’s interesting how people in IT separate their skills from their compensation. If my lawyer or doctor is working weekends I guarantee one way or another they are making damn sure they’re getting compensated for it.

My compensation for learning things "on the side" was always simply getting the better job where you can use the skills you got.

I've taught myself web development and thus got my first job. I've taught myself iOS development and was able to switch to it full time later.

Re: Learn more programming languages, even if you won't use them

#213
post #165

Earlier quoted context omitted.

It's perfectly possible to know several languages in-depth. It just takes a lot of time and effort. Moreover, it gets easier with time and practice. Knowing N languages makes learning N+1 language just a bit easier. For me the turning point was around N == 10, since when learning a new language - and yes, in-depth, including idioms, stdlib, some external libraries, maybe some framework (if needed), and also some fact…

Define know though. A C++/Java programmer can quickly write some Python code but isn't Pythonic. To me being able to write a program in a language doesn't mean you can write some code in it, you also have to know the paradigm its supposed to be used, as well as the layout styles, build tools, commonly used libraries etc etc. Even learning a new library often takes months alone.

Yes! Exactly. Oftentimes I look for "X for Y developers" style tutorials to try and fasttrack that for myself (e.g. npm ≈ Maven but this is how they differ), but high quality ones can be hard to come by & takes a long time to fully grok a new language

Re: Learn more programming languages, even if you won't use them

#214
Would love to see a list of sample projects for each common language that plays to its strengths.

Often if trying to pick up a new language in my spare time, I can get to a stage of learning the syntax, but if I do it by following a "101" tutorial, I'll end up building another To-do app or whatever — it's very hard from an "unknown unknown" position at the start to find the path into idiomatic "X" that will show you the unique features and paradigms of the language.

Re: Learn more programming languages, even if you won't use them

#215

What a terrible advice. Does author has trouble with discipline? You don't get anything by learning more and more programming languages. Programming languages are tools, be expert at 2 or 3 languages and that should be enough. Learn anything more to solve a specific problem. You understand the crux of a language by being expert at it not by "me too" novice at it.

THIS 100%! ...I'm an extremely undisciplined never-finish-even-starting-almost-antyhing ADHD-I crazed squirrel-brain that never has enough out of learning "just a tiny bit" of some new programming language, new tech, or even entirely new field, but hardly gets good at anything.

Sure, learn one or two languages from completely different paradigms than what you use daily, to broaden your mind and seed stuff in context. But the... STOP! And get more projects finished faster and better instead, you'll learn 100x faster this way, and learn more useful things.

Then learn some time management and communication skills...

Re: Learn more programming languages, even if you won't use them

#216
As a totally self-taught and advanced-beginner in bare bones R, Python, CSS, VBA, etc What can you recommend as the #1 thing I can do to improve my approach to programming? Not talking about syntax p,which I can easily reference when needed, but high-level paradigms and thought-patterns. Is there a favorite book, school of thought etc? Much appreciated. I know it’s a broad question.

Re: Learn more programming languages, even if you won't use them

#217
post #210

Earlier quoted context omitted.

I would argue that for software engineers, the fields you mentioned would be adjacent fields, while other languages would give deeper insight into the tools of the very trade you're in. In a time of people going for T-shaped careers, another language is deepening the vertical bar, while another field enriches the horizontal bar. In that sense, learning a new language and learning a new field are complementary, but di…

Learning a new language doesn't necessarily deepen the vertical bar if the language cannot really be used to improve productivity/innovation on top of an engineer's current toolset. Learning TypeScript on top of Javascript can be thought of as vertical, but learning say Lua or C# on top of JS is probably better described as horizontal unless you're already intending to do some really specific desktop application.

Learning different concepts from other languages can make a big difference. For instance I learned about the value of composition over inheritance by learning Rust, then applied it to my life as an Objective-C developer (prior to Swift). It forces you to break out of your well tread paths, and take the best of other systems and fold it into yours.

Re: Learn more programming languages, even if you won't use them

#218
post #160

Earlier quoted context omitted.

I don't doubt it's possible. What I do doubt, is that it's possible to know several languages in-depth and at the same time be at least very good in a specific domain (webdev & mobile apps are not domains), have good algo and problem-solving skills, have decent to good soft skills, know at least a little bit of PM and also be a good conversation partner and well informed citizen of the world, while also being a good…

Yeah, it's a matter of personal choice. My choice was to forgo any hobbies unless they are somehow useful for programming, ignore most of being "well-informed citizen of the world", ignore the whole mating and breeding business and to focus solely on programming at first, then on programming-related fields that picked up my curiousity. I'm still competent enough in other programming- and work-related areas - at least…

Languages change. In depth knowledge comes with an ongoing cost.

For this reason I think it may be rational to only learn what will be used in the near future and spend the saved time on more timeless knowledge.

Re: Learn more programming languages, even if you won't use them

#219
post #77

Earlier quoted context omitted.

“That’s all you need to know” is very reductive. Never stop learning: add JS and functional languages such as Clojure, Scala, OCaml. You don’t need to use a language every day for it to be useful. Learning a bit of Objective-C taught me a lot about naming variables. Smalltalk taught me about non-class-based OOP. Forth taught me low-level stack operations. Prolog, Io, BASIC, Erlang taught me a lot of things I use ever…

The more languages you learn, the more you realize they have more in common than not. At some point it’s time to stop learning 20+ languages and start building stuff. I never said to stop learning, but be very careful what you spend your time learning. If you can be world class at Python alone, able to solve just about any problem with it, it’s better than 100% knowing many languages. Knowing a language doesn’t mean…

> The more languages you learn, the more you realize they have more in common than not.

That happens if you learn many similar languages, which is a waste of time. You have to learn languages in different paradigms to learn new things and discover languages that have nothing in common.

> At some point it’s time to stop learning 20+ languages and start building stuff.

You can’t learn a language without building stuff.

Re: Learn more programming languages, even if you won't use them

#220
post #98

At this point I have almost 20 languages that I've used for at least two years, which is what I consider an decent bar for "knowing" a language. The problem I now have is that I don't know if I'll ever be able to master any language anymore. Mmmmaybe C, since I've used that fairly consistently, albeit on-and-off for 25 years. But whenever I get to an "if" or "for" or function declaration, I often have to look at an e…

I thought I was the only one. Also class and method names : is it array.length(), array.len(), array.Length, array.size(), len(array), Len(array).

This is one reason I love PowerShell's design that everything is case insensitive.

For casual scripting, it's so nice to not have to care if it's length or Length. At least memory can help me if it's len/length but length/Length is no distinction at all.

(Case sensitivity is one of my pet hates, for anti-human UX).

Post reply on HN