Looking for a Job? Learn Ruby, Python and be a Team Player (infographic)
blog.infochimps.com
blog.infochimps.com
How do you decide if someone is an "average team player" or an "above average team player"? Hard overall, impossible from a LinkedIn profile. Unless of course, they base their decision from what the people have entered themselves. But then again, who would put "I'm an average team player"?
That being said, considering the similar setup for comparison, it's interesting that "good communication skills" rates so poorly comparatively to "team player". It's not completely surprising I guess for software development (though I might disagree), but it also means I might want to update my profile/resume…
On another note, even though I rarely take part in the "programmer/developer/engineer" discussions, I find the "Python/PHP/Java… engineer" titles to be odd. These people are probably "software engineers", but "Python/PHP/Java… developers". The specific language doesn't mean much to your ability to engineer software. (unless maybe, you actually work on the language itself)
I, like you, assume they did a cross questionaire (Do you prefer Alice or Bob? Do you think Alice is a better team player than Bob? Do you think Alice has a better work ethic than Bob? etc)
But while this does not tell us much about the fact that "better team players" get chosen more, it does teel that "people who appear more like team players" get chosen more.
Since most of what one puts in resume/cv is _trying to appear something_ the information that appearing a good rails dev is less useful than appearing like a good "team player" has some (arguable) value.
That makes me wonder about two things:
1. Is Mixtent wrong?
2. Do companies really see Ruby on a resume and say "nope! next?"
Hiring decisions aren't typically made in the same way. If you have a Rails app, you need a Ruby developer. Granted, anyone can learn Rails, but I've worked with really talented people who were in the process of learning the Rails framework, and it's not something I'd like to pay for again.
Their raw data may or may not be accurate, it's impossible to say because they fail to present the raw data or detail their methodology.
Their interpretation of the results is at best simplistic and incomplete, and their post title is absolutely wrong.
It is easy to shoot these superficial programmers down, even from a cursory browse of a resume.
It's not that Ruby signals that you're a superficial programmer; it's that there are fewer superficial Python devs, and more superficial Ruby devs.
For the most part, your choices of programming language are a terrible way to differentiate or market yourself. You are far better off being clever about picking your application domain.
I don't like Python; I'm a Ruby developer (actually, I don't know why I stopped calling myself a C dev). But I'll freely admit: most Python programmers know Python because they spend their real day job programming.
Given that another big influence was ability to be a team-player then I can see how ruby guys are perceived lower on the list.
I don't give a crap if you know $TRENDY_WEB_LANG. We don't write anything in either Python or Ruby, and likely never will.
"It's not the language that matters when looking for a job, it's important that you convince me you know what you're talking about. Show me something I didn't know, then convince me it's worth knowing. Demonstrate you know big 'O' notation (and maybe even tell me how little 'o' and \omega are different). Draw me a binary search tree. Show me how a skip list works. Fill in a multithreaded producer / consumer skeleton and get it correct, then make it fast. Explain how UTF-8 works from first principles (i.e. what's wrong with ASCII? How would you fix it? Now how do you optimise the answer?)
Python and Ruby are both trendy right now, and interesting in their own right, but we don't write anything in either language and likely never will. The underlying technical/CS understanding is not only more important, but common to almost all problems."
You generally don't get a job by just learning a language. That's no different than looking for a journalist gig after you've written for a few months. There's much more to do.
Sometimes you need to see the forest from the trees!
I can come up with a lot of plausible reasons why you're more likely to find "good" engineers focusing on Python or Java, and why Ruby developers might be more cross-disciplined, and none of them are because the engineers are defined by the language.
This "study" is laughably poor in presentation, and their interpretation of the results they got is almost certainly unforgivably flawed.
You want a job? Learn how a splay tree performs better than a binary search tree, and what that says about worst-case algorithmic complexity. Grok the difference between training versus inference, and how a well-trained model can completely fail in practice. Learn how programming can be functional, imperative, or logic-based, and then mess around with Haskell, C, and Prolog. Then use Python to see how all three can blend into one dialect (okay maybe not logic-based).
Good companies don't look for languages on your resume--they want people who know their stuff. List comprehensions or decorators don't matter--you have to demonstrate an ability to learn anything, whether it's syntactic sugar or obscure data structures with specific use cases.
I think I have actually lost knowledge instead of gaining it after reading this infographic.
On the other hand, when I was searching for a new position some 7 to 8 months ago, the few python places here seemed to have unrealistic expectations of their applicants.
Choice quote (paraphrased) from a .NET dev: "who cares what the code looks like, you should be gone by the time anyone would look at it."
Also: Any potential client that would rank an engineer's quality based on his programming language alone, is a client to stay away from. These would be the execs who read a magazine in a flight and suddenly think they know how programming works.
So who cares if your language (assuming you are a one language person, which is a different topic onto itself) is perceived as "bad"? There are many world-class engineers that code in shitty languages, or languages that are full of shitty programmers. Programming language alone proves nothing.
I think all of this is just some more skippable junk being added to the web.
For the sake of argument, let's assume that yes, you are perceived to be a better programmer based on your language. What happens after that very first impression? Can you show yourself to be an incompetent ass after stating your flashy language? What if you smell bad? What if you have an annoying voice, or an obnoxious laugh?
Junk, I tell you! This is useless junk.
"learn Python, win over your peers".
"don't be a dick, win over your peers".
"learn ruby, convince your peers you're good at CSS too."
"work at facebook/google and be popular."
Mixtent is a popularity contest. My bet is, if you asked someone on the street with no knowledge of programming "who is a better engineer". Split by name it would be random 50/50. But if you included where they worked, then the Facebook or Google person would win.
It is interesting though.
I figure being a team player will probably never change.
I don't use Rails, though. But I do write and use Ruby for hundreds of everyday data and text manipulation tasks. Its also great fun for sucking data from a database and slicing and dicing it into a dozen different formats really quickly.
I love its natural language constructs. They're incredibly productive.
Python is like that, too but I find myself drawn to Ruby. It is fun in itself and it does make drudge-programming fun again.