Ask HN: What programming language will you learn in 2014?
41–50 of 53 posts
Re: Ask HN: What programming language will you learn in 2014?
#42If you're learning Haskell, be prepared to feel like a beginner for a while. I had great learning it. I usually pick up languages fairly quickly, but Haskell eluded me for more months than I'd care to admit. There is a great community of very smart and friendly people who helped me on IRC, and a couple of pretty good books -- http://learnyouahaskell.com/ and http://www.cs.nott.ac.uk/~gmh/book.html . I enjoyed the exp…
Re: Ask HN: What programming language will you learn in 2014?
#43Earlier quoted context omitted.
and what about domains only tangentially related to computer science, like robotics, semiconductors, or digital music? or what about domains barely related to computer science, but where coding is an invaluable skill, like medicine/genetics, manufacturing, or aerospace? consider how many programming languages your average person knows (zero). now consider how many you know. is it objectively worth your time optimizin…
> would you rather have a carpenter who knows how to use a dozen hammers, or a wide variety of tools? There's a danger in what you're suggesting, in overgeneralizing and never learning too much about one topic. Would you rather have a carpenter who's an okay carpenter, an okay musician, an okay actor, and an okay racecar driver, or a carpenter who's really good at carpenting?
If I had to pick a point of leverage with which to increase programming skill in minimal time, "learn a new programming language" would be far down the list if two or three for various contexts were already well mastered. "Learn Haskell", almost universally, would be near the bottom.
Re: Ask HN: What programming language will you learn in 2014?
#44- Java. My first real programming language, learned in college, used for a year and a half in enterprise work and Android, got pretty good at it, but I learned
- Objective-C for making iOS apps and I never want to write in Java again. I'm also learning C just to understand Objective-C more but I have no plans building anything with C.
Basically, my current interests/goals for learning a new language are:
- Develop a new way of thinking.
- Learn some great engineering practices.
- Build products (software) that solve real-world problems. I'm not likely to learn a new language if I can't build anything useful with it, that can potentially sell and make it as a consumer startup.
- Become full-stack. I can already easily build an iOS app (I have no interest in building responsive websites) but I find myself still having to rely on something like Parse. Which isn't so bad though because it saves me so much time.
I guess that narrows my choices down to: Ruby, Python, Go, or something else, but I'm not in a position to identify which poison is best-suited to me. I just want one that I can be really good at and meet most if not all of my goals. Any thoughts?
Re: Ask HN: What programming language will you learn in 2014?
#45Earlier quoted context omitted.
> would you rather have a carpenter who knows how to use a dozen hammers, or a wide variety of tools? There's a danger in what you're suggesting, in overgeneralizing and never learning too much about one topic. Would you rather have a carpenter who's an okay carpenter, an okay musician, an okay actor, and an okay racecar driver, or a carpenter who's really good at carpenting?
well, my point is a person needs to determine on their own if learning something like haskell really makes them a better carpenter, or if they are just going leveling up their "number of programming languages" XP because that's the main XP they are familiar with. If I had to pick a point of leverage with which to increase programming skill in minimal time, "learn a new programming language" would be far down the list…
On the other hand I strongly dislike the "in minimal time" condition. After let's say 10 years or more in programming (that's me in this case) and you say that the next step one could achieve is something that comes faster than learning a new programming paradigm? My gut feeling is that it will take me about 6 months with a strong programming background. I am not talking about learning Haskell (What could it be: a week or so?) but about understanding FP, knowing (and feeling) the fp design patterns. Depending on the investment in 6 months one probably can achieve that the application of those patterns come as second nature. That's my goal. Two questions:
1) What would give greater and longer-term benefits than that? Learning Reactive Extensions? Yet another ORM framework? Node.js? Those are only tools. One can learn them in some days when a project requires it.
2) What is the rush for? Do you remember the time you learnt OO programming? I would say to learn it properly, in the beginning of your career as most of us do it, required much more effort than to learn Haskell and FP when you are already an experienced programmer. Wasn't it worth to spend all that time to learn OO principles, design-patterns, tools, languages? And if you were stuck in the OO world throughout your career, then I am pretty sure that learning FP principles, patterns and language(s) have about the same effect on your future than OO had on your present expertise.
Re: Ask HN: What programming language will you learn in 2014?
#46Can someone make recommendations for me? Here's what I already know and what I've built with it: - Java. My first real programming language, learned in college, used for a year and a half in enterprise work and Android, got pretty good at it, but I learned - Objective-C for making iOS apps and I never want to write in Java again. I'm also learning C just to understand Objective-C more but I have no plans building any…
You cannot go wrong with any of these. So have a look at code samples and spend some time browsing the web-sites about all of them then choose the one that appeals the most to you.
Re: Ask HN: What programming language will you learn in 2014?
#47"Machine" language - this is anything turing complete that's close to the hardware, ie that forces you to think about and understand the underlying circuitry. Candidates: Assembler, C.
Static/Imperative "Object" language - put this one off for as long as you can, for it is easy but not simple, and will ensnare your mind with the belief that you are special because you are among the elite priesthood of programmers who can grasp levels of complexity mere mortals dare not even dream of. Down this path lies years of frustration, all in service of the darkside. Chances are that this category will be forced upon you first, by naive, shortsighted fools who little realize the evil they are spreading. Learn only what you need to disable the tractor beam and escape with the Deathstar layout, so that when the time is right a well planned rebel assault may remove this abomination from the universe.
Candidates: there are no candidates here, as that implies choice. One of these languages will be heaved upon you whether you like it or not - C++, Java or Visual Basic (if the darkside is particularly strong in you).
Dynamic "scripting" language - this is for that category of problems where most of the needed abstractions are well understood and well tested. Using them should involve as few words as possible.
Candidates: Ruby, Python, Perl, Lua, bash (or any bourne shell derivative).
And finally, what should be every programmer's last language,
A "language" language - these are usually known as Lisps, but I think both Alan Kay's original bootstrapping Smalltalk and Forth are acceptable here. The key feature is having a small core of concepts that can be infinitely composed into higher abstraction commands that are treated no differently from the compiler's perspective. Once you have this power, all of the interesting behaviours of languages like Haskell, Erlang, Prolog, etc, are available to you.
Candidates: Scheme/Racket, Common Lisp, Clojure, Smalltalk, Lisp.
Re: Ask HN: What programming language will you learn in 2014?
#48Having learned perl, ruby and python (these are all incredibly similar), and then Clojure, I've found that I really like the functional paradigm. It helped drag my attention back to thinking about data structures and functions to act on that data a lot more than a ton of bad OOP examples ever have. I'm actually excited to program now instead of feeling like, "Okay, this mess of classes I'm making is going to pay off some day..."
One negative/positive is that I now kind of recoil in distaste when I find OOP-y code that's seemingly done for the sake of jamming code into a class instead of using generic functions and data types. It's funny that there's a large swath of not so useful monad tutorials, because there's an absolute mountain of examples of classes/objects that don't make any sense at all. I didn't mean to make a tiny rant on OOP. Sorry about that.
As someone who has been using a lot of dynamic languages, I'm really interested to find out how a static type system can help me program better software.
Re: Ask HN: What programming language will you learn in 2014?
#49Python - I'm doing far too much stuff in PHP just because that's what I know, seems to be fairly simple to learn as well, and quick which should help in the $dayjob efficiency.
Re: Ask HN: What programming language will you learn in 2014?
#50Earlier quoted context omitted.
well, my point is a person needs to determine on their own if learning something like haskell really makes them a better carpenter, or if they are just going leveling up their "number of programming languages" XP because that's the main XP they are familiar with. If I had to pick a point of leverage with which to increase programming skill in minimal time, "learn a new programming language" would be far down the list…
I agree with you that it is everybody's own decision :) Although from a slightly philosophical point of view: how can one determine what levels are beyond their own knowledge, let alone what amount of effort it would take for them to get there and if it would worth it to do so. An experienced developer can tell a beginner what they could/should learn next to step up, but how do you determine the same for yourself? On…
as far as your first point goes, I agree that some type of random walk part is important to breaking out of local maxima. you can look to social cues for what might be a good thing to start learning about that is outside of your comfort zone. generally speaking since software is eating the world a good litmus test for me is if the domain seems to be amenable to automation and is also not as far along the curve as more "easy" domains to dive into like the latest newfangled way to build a web based CRUD app.