I think the period where I grew the most as a dev was an interlude when I knew I was changing jobs, including moving countries. From having built trading systems in c++, I ended up building, over about a year or so: - A django (python / js) website. It integrated with both Android (java) and iOS (objective-C) apps that could read QR codes and ask the server stuff. It also made me interact with the app stores for the…
Trying new programming languages helped me grow as a software engineer
131–140 of 192 posts
Re: Trying new programming languages helped me grow as a software engineer
#132Different 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 think this is my first post on HN, but have been a long time lurker. That aside. Your point around ecosystems is interesting to me. As a wannabee coder I'm always trying new things. Most of my code was in PowerShell although I did do a bit of C++ and Delphi in school. I have been dabbling with dotnet core (C#) and Python the last couple of years. I tried to get into Java a bit, but to be frank the learning curve to…
In Python a library like requests is a thin abstraction over http calls it is very easy to understand what is going on and get started.
In Java, there is a tendency to wrap everything so it fits with a framework and is super generic and configurable. For example look at the Feign library.
Each approach has its pro's and cons, but knowing both of them good as it allows you to pick the right solution for different use cases.
About getting into java: i'd recommend using Spring Boot. I provides a low abstraction http client (RestTemplate) that allows for straightforward calls to REST services.
Re: Trying new programming languages helped me grow as a software engineer
#133Earlier quoted context omitted.
"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." Which functional language are you talking about? Of the two functional languages I know, Elm can only have a single return statement. Scala encourages a single return.
In a functional language technically you don’t have multiple returns, because the function is a single expression so in a way you’re right. On the other hand the actual result of the expression is determined on a leaf of the expression so you could consider it a return point To make an example the following expression can be considered to have two returns: max x y = if x > y then x else y The Java equivalent is int m…
int max(int x,int y) {
if (x>y)
return x;
else
return y;
}
I just looks completely fine to me, but colleagues would complain about it in reviews and I just don't understant the problem at all.
The variant with the extra result variable looks just wierd to me, and I have seen much uglier code written by people desperately avoiding early/multiple returns.Re: Trying new programming languages helped me grow as a software engineer
#134I think the period where I grew the most as a dev was an interlude when I knew I was changing jobs, including moving countries. From having built trading systems in c++, I ended up building, over about a year or so: - A django (python / js) website. It integrated with both Android (java) and iOS (objective-C) apps that could read QR codes and ask the server stuff. It also made me interact with the app stores for the…
How do you get all these different jobs? I’d just hear: you don’t have enough experience in framework/language X.
I knew various people who needed an MVP made for their startup, and with a little bit of familiarity people will let you do things you haven't done before.
Re: Trying new programming languages helped me grow as a software engineer
#135Learning different programming languages definitely helped expose me to new ideas, but I think it's a relatively shallow way to grow. There's only a few that I think are really worth learning for the sake of personal growth: - both C and C++ - Some form of lisp. I could see julia taking this spot. - Haskell - SQL There are obviously more that are worth learning for industrial use. Learning the above will give a solid…
Re: Trying new programming languages helped me grow as a software engineer
#136> For me, JavaScript became my primary language and stays
Oh, my God! Computer science of leftPad.js strikes back.
Re: Trying new programming languages helped me grow as a software engineer
#137I’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…
Re: Trying new programming languages helped me grow as a software engineer
#138Learning different programming languages definitely helped expose me to new ideas, but I think it's a relatively shallow way to grow. There's only a few that I think are really worth learning for the sake of personal growth: - both C and C++ - Some form of lisp. I could see julia taking this spot. - Haskell - SQL There are obviously more that are worth learning for industrial use. Learning the above will give a solid…
Choosing a language to learn depends on, among many more aspects:
* What style do you prefer. Return codes vs exceptions, small lambdas vs elaborate functions...
* What paradigms you find useful (procedural, functional)
* how do you think, rather mathematical, more in a state/execution way or more like cooking (recipes),...
* what applications do you like? Frontend to a store, embedded/industrial, mission critical,...
* simply taste. I hate ruby and love python. For a lot of people it is the other way around.
* do you love optimizing? For what memory, speed?
* Do you prioritize or advocate readability, maintainability, re-use?
In the end you have to choose your battles, you can't master all paradigms and styles in one lifetime.
Re: Trying new programming languages helped me grow as a software engineer
#139Other languages might feel more like a "single language" because they are more domain-specific, and there are established basic libraries that are widely used, so moving from one code base to another is more fluid.
Re: Trying new programming languages helped me grow as a software engineer
#140Learning different programming languages definitely helped expose me to new ideas, but I think it's a relatively shallow way to grow. There's only a few that I think are really worth learning for the sake of personal growth: - both C and C++ - Some form of lisp. I could see julia taking this spot. - Haskell - SQL There are obviously more that are worth learning for industrial use. Learning the above will give a solid…
I think it is impossible to make a list of programming languages that are worth learning. Just as a comparison, would you also make such a list for normal languages? English, Arabic and Chinese? Choosing a language to learn depends on, among many more aspects: * What style do you prefer. Return codes vs exceptions, small lambdas vs elaborate functions... * What paradigms you find useful (procedural, functional) * how…
Without this, there’s a risk that the “learning” is just tunneling in on your own pre-existing prejudices (insert hammer-nail metaphor here).