Live data from Hacker News

Trying new programming languages helped me grow as a software engineer

cichocinski.dev

51–60 of 192 posts

Re: Trying new programming languages helped me grow as a software engineer

#51
post #28

I do believe that learning many programming languages is overrated Learn concepts, obtain foundational computer science knowledge, write complex projects not just get familiar with somebody's interpretations that they implemented as a language. Languages that I used besides my job language barely gave me anything, in most cases they made me appreciate more for sane environment (package managers, IDEs, debuggers, stro…

How are you supposed to learn concepts like higher-order functions if you only know C, for example?

Read about them?

Re: Trying new programming languages helped me grow as a software engineer

#52
Different languages also have their own culture and ecosystem, which are also valuable to learn in order to get a different perspective.

Some things that are taken as best practices are bad practices in other langauges and vice versa.

For example, lots of Java devs are against early and multiple returns to the point of absurdity, while in functional languages this is idiomatic and no problem at all.

Using different languages lets you see how different approaches work out in practice, so you can get a better view about which approaches work and which approaches are just cargo-cult nonsense.

Re: Trying new programming languages helped me grow as a software engineer

#53
post #42
post #33

I value learning new languages, especially as I have yet to find a very good one. Some are pure and beautiful like Scheme, but if you asked me what single language I would take to a lonely island with me where I was stranded, it would still have to be C. To those here who would like to have some guidance diving into other languages I can recommend these two books: Bruce Tate: Seven Languages in Seven Weeks https://ww…

Other than the fact that C can be run on basically any device on earth, and the super rich history behind it, does C as a language have any benefits? I personally don’t find C more ergonomic, expressive or beautiful compared to any other language.

Pointers. Nearer to the core. In assembly it's all pointers, pointers and pointers.

C having better support for pointers makes it nearer to how the processor works, compared to other languages.

Re: Trying new programming languages helped me grow as a software engineer

#54
post #28

Earlier quoted context omitted.

How are you supposed to learn concepts like higher-order functions if you only know C, for example?

Read about them?

What is that good for if you can't use them for anything?

Re: Trying new programming languages helped me grow as a software engineer

#55

It's also really, really fun to use a language that's completely different than what you're used to. I've learned Elixir, Scala, F#, and Common Lisp on the side in the past year or so. I like Elixir and CL to the point where they're typically my go-to for personal projects. I liked Scala and F# a lot but I don't reach for them so often; it'd be nice to work with them. The worst part about learning (and liking!) new l…

Elixir was the most pleasant experience I’ve had learning a new language. I really enjoy the ergonomics of pattern matching and the pipe operator. Really wish I had an opportunity to use it professionally.

Re: Trying new programming languages helped me grow as a software engineer

#56
post #53
post #42

Earlier quoted context omitted.

Other than the fact that C can be run on basically any device on earth, and the super rich history behind it, does C as a language have any benefits? I personally don’t find C more ergonomic, expressive or beautiful compared to any other language.

Pointers. Nearer to the core. In assembly it's all pointers, pointers and pointers. C having better support for pointers makes it nearer to how the processor works, compared to other languages.

C is very far removed from the CPUs of the last few decades.

Re: Trying new programming languages helped me grow as a software engineer

#57

I’ve worked deeply with about 9 programming languages. Not hobby level, but client work level. They did not really help me to become a better software engineer. What did? Being able to understand the business of the customer and create software that helped them do that easier. That’s why today I tell junior programmers that almost everything we do these days could be accomplished with Bash, text files to hold the dat…

"Being able to understand the business of the customer and create software that helped them do that easier." I don't consider that software 'engineering' necessarily. Yes to be a more useful employee or more successful freelancer etc understanding the business case is absolutely an essential skill. But the 'engineering' begins once the problem has been defined; how do you actually implement the vision.

Defining the problem is a core part of engineering to me.

Re: Trying new programming languages helped me grow as a software engineer

#58
post #42
post #33

I value learning new languages, especially as I have yet to find a very good one. Some are pure and beautiful like Scheme, but if you asked me what single language I would take to a lonely island with me where I was stranded, it would still have to be C. To those here who would like to have some guidance diving into other languages I can recommend these two books: Bruce Tate: Seven Languages in Seven Weeks https://ww…

Other than the fact that C can be run on basically any device on earth, and the super rich history behind it, does C as a language have any benefits? I personally don’t find C more ergonomic, expressive or beautiful compared to any other language.

I found it useful to learn just because there's so much existing code that's been written in it.

Means I can at least dig through some old codebases and understand what's going on.

Lots of higher level languages also have C bindings, so at least a couple of times in my career I've ended up writing short C modules for speed critical bits of code.

The pain of manual memory management also gave me much more of an appreciation of its pitfalls and alternatives.

Re: Trying new programming languages helped me grow as a software engineer

#59
post #42
post #33

I value learning new languages, especially as I have yet to find a very good one. Some are pure and beautiful like Scheme, but if you asked me what single language I would take to a lonely island with me where I was stranded, it would still have to be C. To those here who would like to have some guidance diving into other languages I can recommend these two books: Bruce Tate: Seven Languages in Seven Weeks https://ww…

Other than the fact that C can be run on basically any device on earth, and the super rich history behind it, does C as a language have any benefits? I personally don’t find C more ergonomic, expressive or beautiful compared to any other language.

C is not meant to be a beautiful language. C is meant to write programs that run as fast as possible on any CPU. The beauty of C comes from being able to tame the hardware and OS complexity to get the most speed, not from taming the complexity of the software architecture or abstract design.

If I had to pick one language to code in for the rest of my life, it would be C.

Re: Trying new programming languages helped me grow as a software engineer

#60
post #52

Different languages also have their own culture and ecosystem, which are also valuable to learn in order to get a different perspective. Some things that are taken as best practices are bad practices in other langauges and vice versa. For example, lots of Java devs are against early and multiple returns to the point of absurdity, while in functional languages this is idiomatic and no problem at all. Using different l…

I find the java example different to my experience. java doesn't have all expressions return values, like if, making the attempt to have single returns from functions much harder to do tidily than in other languages like for example ruby, rust, scala.
Post reply on HN