The One App You Need On Your Resume If You Want a Job At Google
HughPickens.com writes Jim Edwards writes at Business Insider that Google is so large and has such a massive need for talent that if you have the right skills, Google is really enthusiastic to hear from you — especially if you know how to use MatLab, a fourth-generation programming language that allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages, including C, C++, Java, Fortran and Python. The key is that data is produced visually or graphically, rather than in a spreadsheet. According to Jonathan Rosenberg , Google's former senior vice president for product management, being a master of statistics is probably your best way into Google right now and if you want to work at Google, make sure you can use MatLab. Big data — how to create it, manipulate it, and put it to good use — is one of those areas in which Google is really enthusiastic about. The sexy job in the next ten years will be statisticians. When every business has free and ubiquitous data, the ability to understand it and extract value from it becomes the complimentary scarce factor. It leads to intelligence, and the intelligent business is the successful business, regardless of its size. Rosenberg says that "my quote about statistics that I didn't use but often do is, 'Data is the sword of the 21st century, those who wield it the samurai.'"
Doesn't Jonathan Rosenberg know that 99% of the statistics is wrong, including this one?
hilarious
Ugh, this reads like a job ad.
When I moved from Matlab to Python three years ago, I saw a massive speed increase of my methods. Also I no longer have to decide whether or not to shell out more cash for the statistics package, it's all there!
Looking back at my old Matlab code also makes me cringe a bit about the syntax of that language.
Every experiment which ends in a big bang is a good experiment.
I used Matlab extensively in upper level mathematics courses as an undergrad from 1993 to 1995. I was surprised people don't know much about it or that Wolfram Alpha comes from the same company and even accepts Matlab syntax.
Data is the sword of the 21st century, those who wield it well, the Samurai.
So, data is a weapon used against us?
And those that wield it are our new feudal lords?
At least we know how Googles Senior management really feels about things.
MatLab is an old, crufty, feature-creeped script engine that I try to hold myself away from as much as I can. As a researcher and academic (got up to post-doc), Matlab is indeed ubiquitous in academia, but it's mostly due to entrenched positions. I see fewer and fewer people using Matlab these days, and that's a good thing.
Matlab is by all means not a fourth-generation programming language: it is procedural just like Fortran, which it supplanted in academia, but it does not have type-checking as C, it does not have OO support as C++, it does not do away with semicolons as end-of-line markers like Python; true, it has some advance features like OO and some functional programming, but (almost) nobody uses them, and most Matlab code is a horrible cruft made by self-not-so-well-taught academics. There is nothing in Matlab you cannot do better in Python with scipy, numpy, matplotlib and pandas. Or with declarative PLs like Modelica.
Matlab is also known for outrageous prices, leveraging on the fact their customer base are universities with big pockets and small administrative brains, and large corporations: they split their code base in many small chunks, and for each you need to pay more and more: as the saying goes, In Matlab you cannot do shit unless you buy a licence for the Toilet Paper toolbox.
Long story short: Matlab is the Perl of academia.
Victims of 9/11: <3000. Traffic in the US: >30,000/y
Really, calling it an app is like calling a Ferrari Enzo a bicycle. Matlab is a tool that is used for data analysis; when it is described as an "app" in the modern sense it is being classified with angry birds and other such smartphone rubbish.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
Python has obsolesced Matlab. There are even Matlab to Python cross-compilers and packages that allow Matlab to work like a Python library.
Long story short: Matlab is the Perl of academia.
I disagree. I have been in a variety of academic or academic-associated roles in the past couple decades and I can tell you from my experience that
Perl is the Perl of academia. Matlab is mostly used for undergrad instruction; researchers roll their own solutions mostly in Perl, with occasional ventures into Python, Java, Ruby, or C++ as needed.
Although you are certainly correct on Matlab having outrageous prices. In my current position if I wanted to buy a license myself my government/academic discount still places the cost at over $2k. Thankfully everyone working under me does their coding in languages whose code can be manipulated and run for free.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
You're right about that. However, Data scientist is a sexy job to the MBAs right now.
They're using their grammar skills there.
What about a free clone of Matlab, Octave? Is that good enough? The language itself is just as terrible and, I guess the graphics are not as convenient but I have not encountered anything that can be done in Matlab that cannot be reproduced readily in Octave. It also seems that my engineering friends use Matlab as a cutch for poor programming skills (`So, do we start this loop at 1 or 0? Lets try and see ... ' --- I heard that a couple of days ago from my collleague).
Agree. I use Python with open source packages like scipy, numpy, matplotlib and others, to achieve almost the same thing as Matlab.
Also the language (Python) is much cleaner.
If Pandora's box is destined to be opened, *I* want to be the one to open it.
Surely Google needs custodians, too. Or security. Or gardeners.
Granted, most of this can be contracted out. But if I were cleaning toilets I could still say, "I work at Google" and not "I work for Generic Contracting Services LLC."
--Jim (me)
Google is so large and has such a massive need for talent that if you have the right skills, Google is really enthusiastic to hear from you
Well color me shocked. Is the army looking for people who can accurately fire rifles and follow orders? What about the FAA and air traffic controllers?
Whoever wrote that and whichever (copy) editor let it through need to reevaluate their life choices.
What bugged me about Matlab are the things that should be easy, but aren't. Subplots? Sure, easy enough. What about subplots with a different colour map for each plot? Nope. You can do it, but it's a third party extension. There are lots of little niggles like this, particularly around visualisation, that are annoying when you're paying thousands of dollars for a product. Particularly when they're all doable in Matplotlib without any effort...
We were told at the start of a physics degree, that they never cared how good our initial knowledge of physics was. Physics can always be taught, but mathematics is much more fundamental and important to understand. The same goes for this. You can always learn a new tool, but if you don't know what to do with it then you're out of luck. I fail to see why Google wouldn't hire a competent statistician (of which there are very few) if they only knew Python or R.
As an aside, I thought most stats schools use R almost exclusively these days (some are moving to Python)? Matlab is the engineering pet.
This is probably more an ad for Matlab than for Google. People in Google, like in other companies, much more often use Python and Java than Matlab, and rightly so - Matlab the wrong tool for the job, pretty much for any job. Python is a much better tool for data analysis, for example. Only the academic world is locked into Matlab, for some reason, but even that is changing fast, with Matlab so badly disadvantaged. Show good data analysis skills in any language, preferably Python, and the current job market is your oyster.
I work at a scientific institute and the license costs of Matlab quickly explode if you need something beyond basic functionality. Since we work on the public's money, we haven't bought into Matlab.
Almost by itself, all scientists and engineers standardized on Python and NumPy/SciPy/Matplotlib. There's a couple of people using Octave, the open source Matlab alternative, but that's very limited right now.
8 of 13 people found this answer helpful. Did you?
I know several really capable people that left Google, because of bureaucracy, corporate greed, incompetence, and general lack of vision. Google has become an ordinary large enterprise. And they do not even pay that well.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Octave is a hugely better option. I once used 128 instances of Octave on a cluster to run something that the computer center only had 5 matlab licenses for. Running matlab on a cluster is just stupid.
Oh, and if you care, Octave is as compatible with matlab as matlab is with itself. Every time you upgrade matlab you have to deal with broken things. Octave is not bug-for-bug compatible with matlab; it's better. Hugely better.
1) By the time you learn it, it won't be hot anymore.
2) It's all about experience. Don't take my word for it, look at the job ads. Learn something all you want, if you don't have five years experience in it, your knowledge is useless.
3) These articles about what's "hot" are just standard corporate propaganda. IT employers always want people chasing their tails, studying everything, just so they have a larger labor pool.
4) Don't get constantly distracted trying to learn what is supposedly "hot" at the moment, just learn anything useful, and be very good at it. Being very good at anything useful is far more valuable than a superficial knowledge of the latest fad.
5) These articles don't tell you anything more than they tell everybody else in the world. Learning whatever is not going to give you any competitive advantage.
All JMHO, of course.
Disclosure: I worked in IT for over 30 years. I have held several jobs, at several companies. I have been through the hiring process a lot.
Any compiler, let alone language, has quirks that can encourage bad behavior in bad programmers.
H-1b
Publishing this just while we have a poll on favorite clickbaits, how appropriate!
I've used Matlab for 10 years. I do not enjoy its syntax, but it's fast at what it does (matrix math) and has a huge library of tools built in that are also quite fast. It's also very cheap for academics, which is why it has such a stronghold there. People who say "switch to C or Python" for huge immediate speedups rarely know what they are talking about - they only projects I know of that tried that found that their code (again, matrix heavy) ran slower, not faster. With a lot of optimizing and the right libraries, yes, it is possible. But for most Matlab users their time is mostly spent developing, so that would be a poor tradeoff.
It's much more pleasurable to write or read python (or lisp (or smalltalk)) code, but you lose the kitchen sink. Here's a quick example: printf. Yes, it's ugly. And takes a little while to learn. But, it's very good at formatting text, and has all the options you need, want, or will ever want. Well, matlab is a language filled with printf style functions for every kind of data visualization you could want.
That said, TFA sounds like a load of crap. Anybody in google want to share what really goes on? I'm sure it depends a lot on which group you are in - machine vision and AI surely use a lot of matlab, whereas search probably never heard of it.
"Data is the sword of the 21st century, those who wield it the samurai."
That's the douchiest way of saying "knowledge is power" that I have ever heard.
"Data Scientist" being, of course, a rebranding of the term "Data Analyst".
See: http://abandonmatlab.wordpress.com/
Speaking from experience as an ex-physics undergrad who still kept up with a few friends who went on into physics MScs and PhDs, I was surprised to hear that the most popular language at the time was Fortran (and usually not the 95 version...). A few lucky ones could use C++ or Python or even Fortran 95.
Matlab was used for undergrad lab courses (with the professors distributing old copies of the software gratis, not really mentioning whether it was legal or not!) and was... okay at it. Doing plots could get tricky with error bars and the language had a lot of idiosyncrasies, but it worked and since all provided code was in Matlab you didn't have much of a choice in the matter. The funny bit was that the lab techs and professors were not aware that Matlab had derivative functions, so they asked people to do it all manually (and still wanted them to do that when I told them about it, though I personally kept on using them!).
It's convenient. It's by no means perfect, but it seems to be one of the prime examples of the "worse is better" phenomenon.
Ezekiel 23:20
Maybe you could get a Bangladeshi visa and just spend a couple years going to college there?
The presence or absence of semi-colons is not really an important factor in choosing a language. Yes, there's shitty MATLAB code out there by self-taught people. But if those people were self-taught in Python, then they'd be producing shitty Pyhton code instead. You can't judge a language by the code quality of its inexperienced users. You can write crap in anything.
I've work with both MATLAB and Python and I see MATLAB has having various advantages. It has excellent syntax for matrix manipulations--much nicer than numpy. It has huge collection of highly optmised functions that generally work very quickly. I do a lot of image processing and when I ported my MATLAB code to Python it generally ran much slower. I spent ages on Googling and talking to people in forums. I couldn't get it to run faster. In MATLAB it just worked quickly with no extra effort on my part.
With MATLAB you get a huge collection of algorithms at your fingertips. They're generally very well tested and the syntax is consistent throughout. The documentation is excellent, too. Python, on the other hand, is a network of libraries which often have rather different syntax to each other. It's common for version updates to lead to regressions.
soylentnews.org
They don't want MatLab experts, they want people who are experts with statistics. Who cares if you use Python, R, MatLab, whatever? They're just looking for big data number crunchers with statistics expertise and would not be picky. (Of course, the way things are now, someone with a PhD in statistics who put Octave on a resume would probably be turned down by HR.)
And when did MatLab become an "app"? I want to vomit - is there an app for that?
and SQL and Prolog. You are right, that's some funny shit
What about R? Its name is synonymous to data mining and statistics...
I don't know what Rosenberg's angle is, but MATLAB knowledge is not required, nor is it a big advantage. Google's preferred programming languages are C++, Python, and Java. If you're into big data, machine learning, or statistics, your best bet is probably to learn NumPy and Matplotlib, not MATLAB (however, if you do know MATLAB, switching over to Python isn't all that difficult).
"Data Analyst" being, of course, a rebranding of the term "Statistician".
A match made in hell!
Hey KID! Yeah you, get the fuck off my lawn!
My favorite for this is an oldie but goodie. Macsyma or now Maxima. Best of all, it is free.
Moreover, it should be the algorithms and techniques which are and should be important. Most of us can cobble together a program with a GUI. I spent a lot of time studying things like Kalman Filters, and have concluded that there is no such thing as one size fits all or that it is possible or even desirable to parametrize additional features and forecast enhancements. There are a lot of formulations which lead to implementation differences which spill all over the code.
Recently, I was reading Mandelbrot's work on chaos. It seems that the biggest critiques of new formations for modeling chaos are that it is not easy to standardize the representations of the models.
Boo-hoo, mommy, my math and philosophical formulations break down and reality is really strange.
I'm surprised no one mentioned scilab (http://www.scilab.org/) as a matlab alternative.
all of whom are just working to create lies for sales to sell more ad spaces to other companies.
Sleep your way to a whiter smile...date a dentist!
Oh, but it is. You just need to know how to refer to it properly.
Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
It's very good until you need to use it outside of the matlab ecosystem which happens quite frequently because of the cost of matlab and the sluggishness of tne runtime environment. You end up having to rewrite most of your work.
Statistics and Logistics were a major part of my CS degree way back in the late 80's, more so than writing programs. If you think the only place statistics are used in tech companies is in marketing material then I have to conclude you have never worked as a corporate plumber and have no idea what they do. The core reason developers have always attracted good salaries at large corporations is that they can sift through mountains of data and tell the managers something about their business that they didn't know.
I'm not that far from retirement but that job will disappear in the near future, the technology in IBM's Watson will "democratise" data analysis in the same way the PC has "democratised" programming. Experts will have a "conversation" with the computer in which man and machine will both "learn" something, Google style search engines will look as quaint as a "ready reckoner" book of maths tables. And yes, Watson relies heavily on statistics, it doesn't actually give you an "answer" it gives a range of answers with an associated probability. Sounds kinda flakey but the fact that it can beat the world's top trivia buffs in an open ended problem domain is old news.
When it won the Jeopardy championship a few years ago it needed 2 tons of air-conditioning alone and was an exclusive toy for IBM devs. Today it fits on a "pizza box" server and IBM have recently opened the API to the public.
Disclaimer: Worked for IBM in the 90's, not shilling, just my personal opinion that "cognitive computing" may turn out to be more significant to human history than anything else that's happened since WW2.
And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
so the "Dept. of Don't Be Evil" can plot their evilness growth curve.
Table-ized A.I.
I've used Matlab academically for about half a year now, and that most anybody (but for scientists and mathematicians operating solely on huge numeric matrices, maybe) uses it is rather shocking to me. The only good thing I can really say about Matlab is that it's made me a better programmer in _other_ languages. Sometimes when you're forced to do something so horribly wrong, the right way of doing it leaps out at you. It's like being forced to ride a unicycle, and suddenly realizing why the motorcycle was invented. Not to say that it doesn't have some very advanced features; it's not a simple beast by any means and -can- do some amazing stuff, but it seems to do them so.. weirdly, and often ridiculously slowly, that it's got that crufty feeling of legacy software with stuff just stapled on all over it.
I'm hopeful about http://www.julialang.org/ the Julia language project and think it's worth at least keeping an eye on in the future.
"The core reason developers have always attracted good salaries at large corporations is that they can sift through mountains of data and tell the managers something about their business that they didn't know."
Keep telling yourself that. I've been a "developer" as you call it for close to 20 years, and when I interview someone I could give zero shits if they studied stats. I don't even ask because that has nothing to do with being a good developer. All I care about is:
1. Can they write good, clean, efficient code?
2. Do they understand the APIs and languages I need them to?
3. Are they a good personality fit for the company?
4. Can they solve the problems I need them to?
That's pretty much it. Stats knowledge is neither here nor there. If I need a developer I hire a developer, if I need a statistician I hire a statistician.
+1, as a Google employee I'm very surprised to see this. Very few people use Matlab (though I know someone who knows someone who does, so I suppose it's not unheard of). It's less common than R or Python (+NumPy, Pandas, etc.). And of course all of those are for just playing around--big data is petabytes which simply doesn't fit on a single machine... If the only language you know is Matlab you better have some other amazing expertise to draw one.
I've worked in Matlab (doing DSP), but it's one butt ugly language. It's like FORTRAN with braces, and "global" only works sort of half. And its symbolic manipulation feels like an afterthought. Even Javascript is a better language. And for statistics, why not use R?
Pro tip: if you want to try your hand at Matlab: it's horribly expensive, but there are free clones available: Octave (http://en.wikipedia.org/wiki/GNU_Octave) and Scilab (http://en.wikipedia.org/wiki/Scilab). I prefer the latter, but be sure to check the list of differences with Matlab.
I became a consultant recently (applications of machine learning to big data). After 15+ years of working almost exclusively in Matlab, I switched to javascript/nodejs to get a 'real' programming language under my belt, a language relevant to the web. The fact was, unless I was in academia or a big company, I could not afford Matlab.
Which is interesting, as there is now a slight class barrier for entry to Google ie. you have to have gone to an institution that could afford the licencing.
And no ... Octave, Scilab, etc. are not good alternatives, though Python is (sadly, it's dead slow). Promising is Julia, but it is very very young.
"Consensus" in science is _always_ a political construct.
Your notion of "Watson will do it all", while it probably has an element of truth in it, sounds like the old stories (before I was born) that in the near future programmers won't be needed anymore because computers will program themselves.
The Matlab language has evolved in a questionable way, software licenses are problematic and harming portability, but the biggest deal after having seen it used at various places, is that Matlab code becomes unmaintainable very fast (this is even more true with Simulink, but I won't digress).
Matlab is 100% good for one thing: accessing already existing Matlab code; which happens when dealing with research papers because students have been fed with free Matlab licenses since a young age.
Matlab is also good for early prototyping, because of the toolbox and the interactivity (it's like the Excel of R&D).
But for that, today you get the same with other platforms/languages; Octave and Scilab are good, but have the same "engineering" issues ; Python for example (could be true about R/Julia/...) will get you "further" in no time.
My advice to anybody: keep the number of Matlab SLOC low, rewrite Matlab code to something else (with appropriate docs) whenever you have figured out your algorithm!
The quote 'Data is the sword of the 21st century, those who wield it the samurai.' is a bad metaphor. I'll let the cracked authors explain why.
http://www.cracked.com/article...
Samurai Were Actually Embarrassed of Their Swords
Oh, come on. This, at least, just has to be bullshit. A quick Google image search of "samurai" returns a gazillion results, 99 percent of which depict the famed warriors with sword in hand. There are drawings about them using swords. There are photos. Hell, pajamas, katanas, and weird hairstyles were their whole thing: Samurai damn well lived by the sword. What else did they have?
Actually ...
Yes, the samurai did have an ancient tradition centered around a weapon. However, it sure as shit wasn't the sword. In fact, ignore every movie and video game about samurai, because they only carried swords as awkward last resort weapons.
Kyuba no michi, "the way of the horse and bow," was there centuries before any semblance of Bushido. It's exactly what it says on the tin: Samurai were all about flinging arrows at peasants from horseback. It makes sense, really -- they were professional soldiers, and in that line of business you quickly learn that only idiots fight the enemy at stabbing distance. Bows were revered over swords to the extent that many Japanese nobles actually downplayed their swordsmanship. After all, pointing out how great your sword skills were was basically announcing that you're a terrible archer. And saying "I'm a terrible archer" was more or less like saying "I'm neither a man nor a warrior."
The introduction of firearms in the 16th century finally killed the samurai supremacy as mounted archers. As they left the battlefield and settled for a new life as bureaucrats and officials, their formerly reviled swords started taking on actual importance as elaborate status symbols. And because bows weren't really an option anymore, the sword became the go-to weapon of the honorable, sword-wielding, bushido following and completely fictional samurai they retroactively invented to feel better about their crummy desk jobs.
Maybe it's an unintentionally good metaphor. Big data is the new useless but symbolic catchphrase that you use to make your company look modern.
"Follow me" the wise man said, but he walked behind.
While that works to have some developers like that, you at some point need developers that can look at the program as a whole and figure out that with a minor refactoring you can delete 40% of your code, because it is essentially redundant.
High end developers are not needed for a lot of things, but having a couple on staff can make the other developers a lot more productive.
Work bio at MMWD
You might have noted I wrote, "OO support as C++", where I meant "well thought-out OO support". There is OO in Matlab, but it's just like claiming Fortran has OO support. Technically true, but added as an afterthought, and most code out there does not use it.
Why yes you could write without them, but then you would get an echo on every assignment on the prompt. No sane person would do that in production code. In practice, all statements in M-files need to be semicolon-terminated.
FYI I was on Matlab/Simulink several years (before moving to Scilab, Octave and C++), and I actually held a course in Matlab for undergrads at a Max Planck Institute when I worked in Germany.
Victims of 9/11: <3000. Traffic in the US: >30,000/y