5 ms·
Ask HN: best language for hiring?
I'm thinking about spending 6 months learning another programming language. I'm good at PHP, and nothing against it, but I think it'll limit me if I want to do a startup, in terms of hiring smart people.
So:
What language (Ruby, Python, ...) should I learn?
Requirements: it should be well webby (ie. have libraries for all the usual web stuff you want to do), and be exciting/easy to hire smart people for.
- gtani 15y agoruby/python shd be relatively easy, I recommend immersing in Java ecosystem, including scala, JRuby, groovy, clojure.
- 0x12 15y agoIf you see the language as the 'barrier' that people have to jump over in order to be accepted as smart then maybe go for something exotic. Clojure or Haskell? I'm not sure if a test like that is meaningful or not, you can narrow down the field of applicants substantially but you may end up with people that have more theoretical than practical knowledge.
- adbge 15y agoSpeaking as someone who has dabbled in both Haskell and Clojure (emphasis "dabbled"), I'd have to currently recommend Clojure over Haskell, for a couple reasons: * The Clojure community has a strong focus on web stuff, while the Haskell community has (to date) been primarily concerned with more math-centric fields. * Haskell's web stack is still very much a work-in-progress. It severely lacks when it comes to documentation of even "simple" stuff necessary for the web, like shuffling data into a database. Unless you're looking for a type signature. The Haskell community loves to provide documentation in the form of type signatures. * Learning curve. While both are functional languages, it was my experience that Clojure's emphasis on simplicity and ease-of-use made it very easy to pick up and start tackling real things. There is some ramp up time if you're getting used to the tools, such as Emacs or the Java ecosystem, but you don't have to worry about things like monads slowing you down. * It's a LISP! LISP is cool.
- sycr 15y agoInstead of looking for fashionable languages, why not look for a history of creativity and a passion for learning? And you can never, ever underestimate the value of good communication skills.
- gaius 15y agoIt's never easy to hire smart people.
- ams6110 15y agoThis is the real issue, not languages. Anyone who is smart and has a solid conceptual background in software development can pick up a new language quickly. Rather than picking a language to attract smart developers, attract the smart developers by presenting them with an interesting challenge and let them pick the language.
- VagisaurusHex 15y agoscientific Python!
- amorphid 15y agoFocusing on being a better coder and communicator is your best bet. It'd be more interesting to solve advanced problems and only know PHP than to pick up another language and never have really solves problems anyone cares about. If you still want pick up a new language, in my work as a recruiter in San Francisco I see a shortage of web developers who are good with Ruby.
- Mikera 15y agoProbably Clojure - It's cool, has a webby angle, you can cherry-pick the good Java libraries and to quote Eric Raymond: "Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot."
- cppsnob 15y agoC. Understand the foundation and everything else becomes a lot easier to learn. And yes, you can do the web with it. Many still do.
- blackiron 15y agoPython is versatile, easy to learn and has lots of nice libraries. Check out Paul Graham's article about python and hiring smart people http://www.paulgraham.com/pypar.html http://www.paulgraham.com/pypar.html
- aDemoUzer 15y ago+1 for Python + Django combo
- 3pt14159 15y agoI'll actually answer your question. Ruby and Python are now too good at doing webby stuff in that there are not enough Ruby devs to meet the demand of companies without skyrocketing salaries. It is easy to hire good Ruby devs, provided you have $400k to spend per year, but that isn't your real question. Your real question is what languages will people really, really want to work for my company to use because nobody else is using them. I can only think of a couple: Common Lisp, Closure, Scheme, Smalltalk. There are others that are happy-fun languages but not necessarily I love you languages that few startups are using: Scala, server side CoffeeScript, Io, F#. But the problem you run into there is that many of these languages don't have as many webby aspects to them which is why fewer startups use them in the first place. I'd probably recommend Scheme because it has the best book of all time: http://www.amazon.com/How-Design-Programs-Introduction-Programming/dp/0262062186 http://www.amazon.com/How-Design-Programs-Introduction-Progr... That book can teach anyone how to code Scheme. Although all the languages I listed are awesome.
- Murkin 15y agoCan you perhaps point me to one of those $400K Ruby jobs ? Kidding aside, he wanted something with a strong existing application / infrastructure base. And while CLisp, Closure, etc are fun, we can all agree that starting 99% of web projects in them is probably a bad choice.
- 3pt14159 15y agoMaybe Murkin, but Ruby was a bad choice. It's all what you build on it, and part of the fun might just be building and understanding things better than just doing "require 'i18n'". Ruby is an amazing language, I love it, but so many things have been solved already it feels like it is a game of pick the package, rather than actual fun, at least in web development.
- thmzlt 15y agoI felt the same way when I tried to start a "real" web project in a different language, and I got back to Ruby because I was more interested in implementing my own ideas rather than re-implementing existing solutions. It means you should try to understand the libraries you're using instead of arbitrarily picking packages. Devise (https://github.com/plataformatec/devise https://github.com/plataformatec/devise) is a great example of that as they explicitly tell people not to use it unless they have a good understanding of the Rails framework.
- Bootvis 15y agoThe problem with this strategy is that your potential hires are more experienced in whatever language you choose so gauging their skill solely on this particular aspect is hard. If you really want to learn a new language I would go for one that fits your problem domain or what your friend use.
- jianshen 15y agoYour product vision and company culture is what will draw good talent in. Work on building out those principles and learn how to communicate them efficiently to prospective talent. Smart people tend to adapt (in much the same way you're trying to right now) and they will ultimately follow passion and vision over the convenience of knowing the same tools as you.
- diN0bot 15y agonode.js, google closure library
- agconway 15y agoThis dataists post of the popularity of programming languages is relavant, though the data may be a but outdated. http://www.dataists.com/2010/12/ranking-the-popularity-of-programming-langauges/ http://www.dataists.com/2010/12/ranking-the-popularity-of-pr... Thankfully, the good folks at Redmonk revisited this analysis recently. http://redmonk.com/sogrady/2011/09/06/dataists-anguage-rankings/ http://redmonk.com/sogrady/2011/09/06/dataists-anguage-ranki...
- RandallBrown 15y agoIf you want to work for a small startup, Ruby seems to be what most people are looking for. If you really want to show off your programming chops, learn something lower level like C++. Of course you said it should be "webby" so another option is something like C#, as long as you don't mind Windows.
- hello_moto 15y agoI'm going to make a bold statement that might not be well received around here. There is no smart people in what you think "webby" is. Smart people tend to be the master of their domain: data mining, capacity planning, operations, specific business domains, embedded magicians, security experts (the real ones, not the fake ones), OS masters, programming language linguist. Most people can write RoR, Django, CodeIgniter apps (or, known as the CRUD app). Very few people can do Business Analysis, Data Analytic, understand (and fix, improve, innovate) Healthcare, or bend Oracle as they wish so it worth for their bucks (surprisingly not a lot people can do this). You can hire a $100k Ruby developer that know Ruby inside out, but what are you going to do with that knowledge except to build a company around Ruby language? (improve VM, sell enterprise supports, etc). I don't think you'd hire this fellow to write a crud app. That would be a non optimal business decision. Node.js is the new hotness. Alpha-programmers will flock there for a while just like they did with RoR. So you're going to hire these programmers for 2-3 years, 4 max before they jump out. What are you going to do with Node.js other than to re-write pretty much almost everything that exist in another platforms already. New language/platform becomes popular, people (early adopters) flock to it, then the notable ones (the next early adopters) flock to it as well, then the rest. I don't mean to disrespect the people who improve new platforms but most problems have been solved. All they do is to re-implement that in another language. MVC, ORM, Caching, Routes are still what they are in other platforms.
- cppsnob 15y ago> I'm going to make a bold statement that might not be well received around here. There is no smart people in what you think "webby" is A large number of web programmers I've met do not have a degree, they know very little theory, and often do not understand the most fundamental concepts like memory allocation or semaphores. Though, I'm not sure I'd go as far as saying that that means there are no smart people. I've met a lot of smart people who fit the description I just laid out. Their problem is they just don't have the training or experience to make good technical decisions.
- hello_moto 15y agoPerhaps I should revise my remark. Web Developers are the new "average". This is what people will be judged upon as the entry point.
- zhemao 15y agoInstead of answering OP's question, most posters seem to be saying "learn language X because it is my favorite language and the best programming language ever!" Completely unhelpful, although not entirely unexpected. If you want to learn a language with a strong developer community and is well suited to building web applications, either Ruby or Python would be good. Personally, I prefer Python because I find the syntax to be clearer and easier to understand, but that's just my preference. For the most part, the specific language isn't that much of a problem. Good programmers generally know more than one language and can learn a new one fairly quickly. Therefore, you shouldn't limit your hiring to people who are highly experienced with one particular language.
- michaelochurch 15y agoI don't think there's "one" language for this purpose. Don't pick C++ or Java. If you need the Java libraries, consider Clojure or Scala. Don't pick C: it's a fine language, but too low-level for what you want to do. Javascript literacy is a must in web development. So learn it, but not only it. What's more important is that you choose a language that you are comfortable with. You can learn basic Python in a couple of weeks. Is Python a perfect language? No. Is it "good enough"? Generally, yes. (Switch to Scala if it's too slow or if you find dynamic typing doesn't suit your needs.) Then build a great demo. You're going to get more leverage, in terms of hiring smart people, out of having a great demo than having picked the right language.
- dennisgorelik 15y agoPick a startup first. Make sure you'd like to work for this startup with these people for years. Then pick development language that's most suitable for that startup.
- deleted 15y ago[deleted]
- neilk 15y agoI think these are terrible reasons for learning a new language. You are trying to do a Keynesian Beauty Contest[1] wherein you want to pick the language that other people think is the most beautiful. But then you are going to spend your precious, precious time on that language, and then maybe even dedicate >40 hours a week of your life to that language. So I think you should find the language that you love to program in first. If that's PHP, well, you're insane, but the heart knows no logic. You're not going to find a language you love by playing it safe and asking what other people are doing. That eliminates truly mind-stretching exercises (like learning Erlang or Haskell or Clojure). That said, if you are really looking for a language that is going to be super relevant to the next five years, you couldn't go wrong with JavaScript. Learn it in a deep way; become a master of closures and asynchrony, and try out important, opinionated libraries like jQuery, Underscore, or Backbone. If you are used to languages like PHP it should be a mind-stretcher too. [1] http://en.wikipedia.org/wiki/Keynesian_beauty_contest http://en.wikipedia.org/wiki/Keynesian_beauty_contest
- swalkergibson 15y agoWhy do you suppose it is difficult to hire smart PHP developers? Facebook seems to be doing just fine, and as far as I know, most of their codebase is still straight up PHP. Bottom line, build something that customers want. The customer cares that the solution solves their problem, not that your technology stack is bright and shiny. This is worth reading: http://pud.com/post/9582597828/why-must-you-laugh-at-my-back-end http://pud.com/post/9582597828/why-must-you-laugh-at-my-back...
- gtb 15y agoDo you want to do a startup to make money or win a IQ competition?