Live data from Hacker News

Ask HN: Learning multiple languages vs. mastering one

news.ycombinator.com

101–110 of 137 posts

Re: Ask HN: Learning multiple languages vs. mastering one

#101

Earlier quoted context omitted.

Noob question: Is there room for below average programmers? If so, where?

> Is there room for below average programmers? Yes! If we assume that about a third of all programmers are "average" (whatever that means), another third is "above average", and one third is "below average". So, it's not actually a tiny minority, despite what Hackernews might make you think. Programming consists of many different aspects: creating an architecture, designing algorithms, implementing them, hunting bugs…

I've been slowly learning to program as a side project (I'm an architect, buildings not IT) and considering to adapt my career to a suitable niche in IT. Front-end/UI-UX seems to be the answer.

I used to hate (the lack of elegance of) JS but I got used. After a lot of dabbling, I'm still between React and Vue. While I prefer Vue, all jobs ask for React. Framework marketability seems to be crucial when/while you perceive yourself as below average.

Re: Ask HN: Learning multiple languages vs. mastering one

#102
post #85

Earlier quoted context omitted.

I "know" javascript in the same way that I "know" SQL, or JVM assembly. It's part of the stack, you do want to be able to read and understand it, but you don't use it for programming (that is, expressing business logic) in.

Which proves the commentor’s first point: “It's inevitable you will have multiple languages / platforms comprising your stack.”

Different senses of "stack". It's inevitable that there will be multiple technologies involved in the running of your code, which will involve multiple programming languages, and you will need to understand the behaviour of those technologies (though less and less as they mature - I wouldn't be surprised if it were possible to debug a compile-to-js language without understanding JS these days). But that's not the same thing as being able to program in those languages.

Re: Ask HN: Learning multiple languages vs. mastering one

#103
IMO, you can't master one language / instrument/ conceptual framework without a familiarity of several.

To be honest, I just try to build a couple of toy projects in whatever seems useful, and then I will try and build something professionally if I can a) get a client project and b) think its a useful/good fit.

As to the process, you're always better off with 30min a day rather than 2 hours on a Saturday. That's true for most things I've learned.

Specifically, I'd probably try and pick up Javascript, Ruby, or Python, as those seem to be the most portable to me. They also seem to be more widely adopted.

Re: Ask HN: Learning multiple languages vs. mastering one

#104

Recently getting into kotlin and to a lesser extent Rust; also from a Java background. First of all, there's more to learning a language than understanding the syntax. That you can accomplish in a few hours, depending on your understanding of the underlying concepts. But from there to grasping new idioms specific to a language and generally being productive takes a lot longer. You have to engage with it for longer ti…

@OP Just to give a bit of motivation for learning Kotlin - it's now the official language on Android. Not sure if Android is of interest to you, but either way at least you know it's in wide use and clearly a powerful language.

THE official language? Or an official language?

Isn't Java still the primary official language on Android?

Re: Ask HN: Learning multiple languages vs. mastering one

#105

Programming Languages are just like Human Languages. Every culture builds a common form of expressing ideas based around their shared values, needs and outlook. Restricting yourself to one Human language limits your thinking and perspective. Each time I acquire a new Human Language, I find myself thinking differently and understanding people more deeply. Speaking French and German allows me to be a better communicato…

This is a great answer to a question we all face in our programming careers - what do I learn next? With an understanding of all of the items you mentioned, the OP will be a much more well rounded, valuable programmer. At that point finding a better job will just be a matter of showing people what he/she knows.

The hard part is knowing _how_ to measure your skills. A while back I came across an article called the "Programmer Competency Matrix" and it stuck with me (google it for reference). Essentially it's a table of CS/programming skills with measurements 0-3, and it gives the reader a way to measure/track their various competencies.

After I read that article, I took his matrix and added my own additional rows/columns that I'd like to be proficient at. To the OP - I suggest doing something similar. Write out a list of all of the programming skills/languages you'd like to have (and need to advance your career), and give yourself an honest rating. Ask a programmer friend to rate you as well. Then ask yourself - what 0's do you want to turn into 3's, and weigh that against your career choices. Then plan your learning accordingly.

Like mjmdavis said: programming langs are a means to an end.Making a choice on where to move forward isn't just about your career - it's emotional/artistic/personal. You don't want to choose a language you hate just for a paycheck. I find that being more self aware (with my matrix) has helped me learn the skills I needed faster and more intentionally.

Good Luck!

Re: Ask HN: Learning multiple languages vs. mastering one

#106
post #81

Earlier quoted context omitted.

Scalia for frontend work? How do you do it?

https://www.scala-js.org/

well, for anything complex, it'll be difficult with that approach (lack of ecosystem, libraries, ..)

much more confident with a full JS approach

Re: Ask HN: Learning multiple languages vs. mastering one

#107
post #74

Earlier quoted context omitted.

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

Web browsers only run JavaScript, so in fact if you wanted to write front end code, then you would indeed need to know JS. Even if there’s a Scala transpiler or WASM target - if you think you’re going to ship to production and blissfully never need to know JS...

https://www.scala-js.org/

Re: Ask HN: Learning multiple languages vs. mastering one

#108
post #74

Earlier quoted context omitted.

> It's inevitable you will have multiple languages / platforms comprising your stack. Bash scripts for admin. Golang to write servers. Data science in Python. JS / D3 on the frontend. C# / Unity 3D modelling and scripting. Even low level C / Assembly if you need performance optimizations. It's not at all inevitable. I would - indeed do - use Scala for all of the use cases you listed.

That is an interesting response. I wonder if it were equally possible with any language. Could a Python or Java programmer say the same? I think there are probably a handful of languages that you could use for "everything". The limiting constraint is the presence of a reliable javascript compiler, followed by data science libraries (I think).

> That is an interesting response.

It's a terrible idea. Writing and running scripts from Scala is incompatible with certain actions. Specifically provisioning and kernel configuration. There are lots of tasks that Scala is a bad tool.

Re: Ask HN: Learning multiple languages vs. mastering one

#110
post #100

Earlier quoted context omitted.

That is an interesting response. I wonder if it were equally possible with any language. Could a Python or Java programmer say the same? I think there are probably a handful of languages that you could use for "everything". The limiting constraint is the presence of a reliable javascript compiler, followed by data science libraries (I think).

I think most languages could get close - see e.g. https://www.teamten.com/lawrence/writings/java-for-everythin... . Of course if you want to actually execute code in the browser then you need to compile to javascript, but I'm not convinced that's required as often as people think it is (Wicket offers a very interesting AJAX model where you re-render UI fragments on the server in response to changes - all the code tha…

Rust is better suited as universal language than Scala for me as I am writing also music applications, which really hate the garbage collector needed in Java/Scala, things that run on the JVM. I never really needed recursive types, but that's also something limiting on the JVM.
Post reply on HN