Does Mark Cuban Want You to Die In Poverty?

A friend of mine asked me for the thoughts on this article and video…

What Mark Cuban Says will be the #1 Job Skill in 10 Years

The TL/DR is “creative thinking” therefore pursue a liberal arts degree, in lieu of other applied fields such as, pointedly, software engineering.

Which is probably suicide.

I’ve never quite understood the hero-worship over Mark Cuban. I get that he’s successful and made a lot of money in the tech bubble, but I think his key bit of acumen was getting diversified before the crash. After that, what? Basketball teams? Shark Tank? Okay. He probably doesn’t think much of me either, so whatever.

But, no, a liberal arts degree isn’t going to be any more valuable in 10 years than it is today. There’s nothing wrong with these skills for their own merits, but society and the economy is already telling us their value in an employment related context. And that value is not positively correlated in any respect to what college tuition costs.

Yes, in the coming years, we’ll have more data being produced, and more information being thrown at us. Just like if we compared today to ten years ago. But if anything, those societal changes have made knowing how to understand data, manipulate data, generate data even more of a valuable skill… The demand for software professionals (which is simply people who work with data) is vastly outstripping supply and will continue to do so for decades. The notion that because we have more data means we’ll need fewer data-literate professionals is, even on its surface, pure idiocy.

Meanwhile the job opportunities for liberal arts education majors seems often to come from service industry positions that have nothing to do with their degrees. These are exactly the places where automation is going to displace employment. And by, “displace” I mean totally erase. We are on the verge of possibly the biggest shift in employment demand since the invention of the steam engine, and hundreds of millions of people are going be underemployed due to technological innovation. If a graduate’s primary job skill is analyzing French literature, and they spent $100,000 and four years to get there, I’m going to go out on a limb and say they’re hosed.

There’s some sort of mythology around liberal arts degrees being more creative than applied fields. I don’t know where this thinking originated, but I’ll wager it didn’t come from anybody actually working on problems in any applied field. Problems in business and applied sciences not only require creative, critical thinking… They often have enormous consequences when creative solutions can’t be found on time and on budget.

Don’t believe me? Because, you know, Mark Cuban? Basketball? Maybe read these articles instead of listening to Mark…

Only 2% of employers are actively recruiting liberal arts degree holders. Compare that to the 27% that are recruiting engineering and computer information systems majors and 18% that are recruiting business majors.

It’s unclear whether liberal arts graduates are pursuing social service jobs because they’re more drawn to them, because they’re suited to a wider breadth of possible fields (which also contributes to a slow start salary-wise) or because that’s simply what’s left after all the other jobs are taken.

If you’re going to college, get a degree in building something. Business, “hard” science or engineering. These are problem solving degrees that require not just creative thinking, but creative problem solving. Those are the skills employers need.

Or, get a degree in, essentially, debt management. Because that’s probably the primary differentiable skill you’re going to acquire with an advanced liberal arts degree.

How Eclipse Killed GWT

I’ve had a love and hate relationship with Google Web Toolkit for a couple of years now. I built a modest size project using GWT back in 2010, which was definitely during a time of some GWT 2.x related growing pains, suffered through the uncertainty of Google abandoning GWT in favor of Dart, then watched the whole project get handed off as open source to for a long descent into obscurity.

I’m contemplating a larger project again, one with a significant web front-end. And GWT 3.0 is on the horizon, right? I went back to dear GWT to build a few small widgets, trying to see if maybe things were better now. Six widgets down this path, I’m throwing in the towel. And here’s why.

Eclipse.

I mean, don’t get me wrong. GWT seems to have the smell of death all over it on it’s own. As far as I can tell there still isn’t any kind of proper date data type, even an emulation of the Java standard library classes. Google, the biological parent, has essentially kicked the kid to the curb. Looking at GWT questions on StackOverflow is like staring into room full of starving lonely people. If I had to get a question answered there or even in the hoary old googlegroups thread, I’d probably need antidepressants.

But GWT still worked, did basically what was advertised, and it was familiar.

Except. Eclipse.

I’ve got a long relationship with Eclipse as well, going way back to when it was an IBM product called “VisualAge for Java” that (I think) was originally written in SmallTalk of all things. I ran a good sized team building desktop front-end applications in Java in the early 2000’s. This one application has forever convinced me that nobody should be writing desktop applications of any complexity in any language running a VM. Simple typing in Eclipse is an exercise in torment. What do you imagine you do, every second of every minute, all day as a developer in an IDE? Typing. If your IDE sucks at that, nothing else matters. I find myself wondering what the people actually working on Eclipse itself think about it, but I suspect this is one of those situations where when you’re so close to the problem you don’t realize how bad it is (Hint: VERY bad). I’m sure somebody loves it. But I’m sure they’ve never actually worked with anything else. Including a manual typewriter, because even that would be less frustrating than writing code in Eclipse’s text editor.

And if Eclipse on its own wasn’t enough to make me want to torture small forest creatures, GWT on Eclipse was driving me really insane. The build process was slow, buggy and complicated. For projects that didn’t need a backend, I could still never get a configuration to launch without Jetty. Occasionally I’d screw up something in my project settings that would prevent me from being able to launch debug configurations, and I’d recourse to creating an entirely new GWT project and bring all the source into that. It was lunacy of the sort that made you beg for makefiles.

I explored other options… I could never get GWT working right in IntelliJ even if the text editor there was a little more sensible, and when it came time for widget #7, the despair was palpable and I realized I was finally, utterly, completely, done.

Widget #7 wound up coming to life with nothing more than a shell prompt, BBEditTranscrypt and the Developer Tools in Google Chrome. And I couldn’t be happier.

Goodbye old friend.

Increasing Performance with svgwrite

I’ve been working for quite some time on a Python project that generates a large-ish number of SVG files using Manfred Moitzi’s svgwrite package, which is pretty awesome.

However, I noticed that the runtime of this particular project was increasingly obnoxious, and only getting worse as the number of SVGs grew. So, out came cprofile, and sure enough, the bulk of the execution time was going through a tree of functions like check_svg_attribute_value, _check_svg_value and others seemingly related to validating the SVG during serialization.

The fix was pretty simple…

dwg = svgwrite.Drawing(size=(‘100px’,’100px’), debug=False)

Turns out that debug parameter is True by default, and setting it explicitly to False cut my execution time by almost 90%. Most of the remainder I’m sure is just I/O… (Mumbling as he ignores the rest of the profiler output.)