Can a Programming Language Make You Smarter?

Or can a language change the way you program? In an article in the Huffington Post, Aaron Contorer says it can. The language? Haskell. (Note: Contorer is the CEO of a company that provides Haskell tools and a Haskell IDE on a subscription basis.)

Haskell was named after Haskell Brooks Curry, an American logician primarily known for his work on combinatory logic. He seems to have been quite influential in the programming community: Brooks and Curry are also programming languages named after him, perhaps not surprisingly—combinatory logic is considered to be one basis for functional programming languages. It would be interesting, though, to know if he holds the “most programming languages named after” record.

What is a functional language? An explanation is far beyond my mathematical ability, but one quality of functional languages is that they don’t look kindly on the assignment of changeable variables. As Miran Lipovaca says in his charming book about learning Haskell, Learn You a Haskell for Great Good, “You … can’t set a variable to something and then set it to something else later. If you say that a is 5, you can’t say it’s something else later because you just said it was 5. What are you, some kind of liar?

Haskell was developed beginning in the 1980s by a committee with a particular interest in lazy evaluation, an evaluation strategy in which an expression isn’t evaluated until it’s needed. For the Haskell community, laziness is one of the most important attributes of the language. Says Simon Peyton-Jones, one of Haskell’s developers, “We were much more consistent about keeping the language pure. You could have a pure, strict, call by value language, but no one has managed to do that because the moment you have a strict call by value language, the temptation to add impurities (side effects) is overwhelming. So ‘laziness kept us pure’ is the slogan!”

Peyton-Jones also addresses a common criticism of the language—many people seem to find it hard to learn. Most C++ programmers, he says, are going to have to go through a major mental rewiring to learn Haskell. “If you’re to be a purely functional programming language, you have to put up with that pain.”

So is it worth the pain? Contorer’s Huffington article links to an interesting survey that indicates that Haskell was the favorite among surveyed programmers, and the language about which programmers were mostly likely to say “learning this language significantly changed how I use other languages” and “learning this language improved my ability as a programmer.” Another survey on Hammer Principle ranks Haskell #1 among languages “likely to have a strong influence on future languages.” But there isn’t universal agreement about the value of Haskell in today’s software landscape.

The online magazine Help Kids Code has a clear explanation of the attributes of Haskell. This article is an interesting description of using Haskell to produce a Fashion Week layout for the New York Times.

Personally, I find the idea of learning a programming language from a book entitled Learn You a Haskell for Great Good pretty irresistible. There are lots of other online resources. Haskell can be downloaded free from Haskell.org, which has loads of good material, such as links to local user groups. FPComplete includes many tools, tutorials, and an IDE.

I’m hoping that learning Haskell will give me at least some idea what combinatory logic is, and, yes, that will certainly make me feel smarter!

About the Author

Lani Carroll is a writer living in Colorado Springs. She loves Colorado microbrews, TCM, and those rare moments when she can find the perfect word without resorting to a thesaurus. She’s the only freelance writer east of the Rockies who doesn’t have a blog. She does, however, have chickens. She can be found at her Google+ Profile.

An Operating System for Adventurers

In 2002, Mark Shuttleworth became the second person to pay to be a space tourist. For the sum of $20 million, he hitched a ride on a Russian Soyuz spacecraft and spent eight days in the International Space Station. Shuttleworth could afford it: he was still in his 20s when he sold his first company, the Internet security company Thawte, for close to $600 million. He spent a year training for the flight, including seven months in Star City, Russia.

This is all very well, but what does it have to do with programming? Actually, Shuttleworth has been one of the most active figures in the promotion of open source software, particularly the free Linux distribution Ubuntu.

Shuttleworth was one of the contributors to the Debian OS, another Linux OS, in the 1990s, and in 2004 he funded the development of Ubuntu. He founded the Ubuntu Foundation the next year with an investment of $10 million. Ten years later Ubuntu is still dependent on cash infusions from Shuttleworth, and Shuttleworth still seems committed to providing them.

Linux has been used primarily in servers in versions distributed by companies like Red Hat, but Ubuntu has set its sights on the desktop market. Shuttleworth says he wants “to profoundly change the economics of software” and that operating systems should “be like oxygen.” So far Ubuntu isn’t making much of a dent in the desktop market; all the Linux distributions combined are found on only about one percent of PCs. Ubuntu is finding more dramatic successes elsewhere: cloud servers.

Shuttleworth says six or seven of the world’s biggest telcos currently have Ubuntu OpenStack clouds in operation. According to Wired.co.uk, Ubuntu’s server software and the OpenStack cloud infrastructure platform are successful enough that the company would be profitable if it scaled back and eliminated its desktop business, but Shuttleworth is determined to soldier on, especially since he has a vision of a single platform for phones, tablets, and the cloud. Ubuntu is certainly interestingly positioned, with its cloud prominence putting it at the center of the data-analytics movement. According to Shuttleworth, many companies have turned to Ubuntu for their internal cloud computing systems in order to keep costs down.

Ubuntu is also famous as being the OS of choice at Google. Employees can choose the system they prefer, but Goobuntu, as it’s called, is clearly the cool OS. Thomas Bushnell, the tech lead of the group that manages and distributes Linux to Google’s corporate desktops, says, “You’d be a fool to use anything but Linux.” He thinks the Linux software package program provided by Ubuntu is light-years ahead of its rivals.

Ubuntu may soon find new markets. BusinessKorea is reporting that with support of Windows XP ending next April, many businesses are discussing a replacement, and Ubuntu is a name that’s coming up often. Ubuntu is easy to install and offers Google’s Chrome, Mozilla’s Firefox, and its own browser. Ubuntu has native support for Korean, and the fact that it’s free certainly doesn’t hurt.

Ubuntu can be found at ubuntu.com. Instructions for building a cloud with Ubuntu are here.

Lani Carroll lives in Colorado Springs with her bees, chickens, and horses. She can be found at her Google+ Profile.

A Programming Language for Connoisseurs: R

Which languages should a programmer know? There’s a surprising degree of consensus. C. C++. C#.  But how about visiting an entirely different part of the alphabet? How about learning R?

R was released in 1996. It’s open-source software that was developed by statistics professors Ross Ihaka and Robert Gentleman of the University of Auckland in New Zealand. They wanted a programming language that would be easy for their statistics students to use. R immediately attracted a large following. Now it’s a big player not just in academia, but in big business too.

R is one of that comparatively new breed, open-source software that’s being embraced by business giants. R’s open-source status means interesting packages are always being written for it. For social scientists, R has packages for social network analysis. It has packages for analyzing language. And, probably needless to say, there are packages for biology and physics. Finance is a big user of R, and there are lots of finance packages, such as derivatives analysis packages.

In a survey conducted a couple of months ago by KDNuggets, R was the most popular language for data analytics, data science, and data mining. R was the preferred language of 61% of readers, having grown 16% in popularity in the past year.

Google is a big user. It utilizes R to understand advertising trends and for analyzing search patterns. Google Developers has even released a series of instructional videos for R developers.

Is R a competitor for the giants? SAS is a statistical analysis language that was invented in the 60s and that’s the cornerstone of SAS Institute. SAS’s statistical muscle makes it a natural for big data. But in an interview in TechRepublic, data scientist David Smith of Revolution Analytics questions whether older languages are really suitable for today’s data needs.

He says, “SAS is one of the legacy systems from the 1970s with an enormous user base, so it is a major big data ‘incumbent.’ SAS is widely used, but the analytics it delivers originated in a different era that pre-dated parallel processing, server clusters, and Hadoop. Consequently, SAS is not suited for many modern and emerging big data requirements.” Smith says R was specifically developed to work with big data that’s being parallel processed, and “what might take you one whole week to do with SAS, can take just half a day with R.”

How do R’s developers feel about its success? Mr. Ihaka says, “R is a real demonstration of the power of collaboration, and I don’t think you could construct something like this any other way. We could have chosen to be commercial, and we would have sold five copies of the software.”

 

R is a favorite for generating the Mandelbrot setAnd graphs.

Computerworld has a fabulous introduction to R with links to all kinds of interesting goodies.

Want R? It’s easy to download. There’s also a popular IDE for R, R Studio.

 

Lani Carroll lives in Colorado Springs with her bees, chickens, and horses. She can be found at her Google+ Profile.

Do You Need Math for a Career in IT?

“I keep saying that the sexy job in the next 10 years will be statisticians,” said Hal Varian, chief economist at Google. “And I’m not kidding.”

It’s true, nothing is hotter right now than statistics. Reading about the new importance of statistics made me wonder—how important is statistics in IT? How important is math in general? Does the average programmer benefit from knowing calculus?

According to Python expert Al Sweigart, the average programmer needs very little math to get by. He lists a few exceptions, and his exceptions are interesting. Games involving 3D require some trigonometry and linear algebra. Games that involve physics, like Angry Birds, require some knowledge of physics equations (who knew?) For cryptography, some knowledge of prime numbers comes in handy. Sweigart says there are libraries with all these functions, so even if you’re a games programmer you can use the libraries rather than learning the math.

The importance of math in programming is an evergreen topic on programmer forums. The consensus—if it can be called a consensus—seems to be that the kind of logical thinking that math requires is critical in programming too, but that learning any particular math discipline probably isn’t necessary. But if you want to be a Mozart among programmers, math probably isn’t optional.

For the Mozarts of the computing world, the white-hot field right now is data science, and data science definitely requires math. The problem, for anyone interested in becoming a data scientist, is that no one seems to know exactly how to get there. Harvard Business Review described data science as “The Sexiest Job of the 21st Century,” but at the time the article appeared, in October of 2012, there was no university in the U.S. offering a degree in this sexiest of jobs. The term “data scientist” was coined as recently as 2008, and just what constitutes training for a data scientist still seems to be something of a black box.

Even if the attributes of data scientists aren’t set in stone, one thing is certain—no math field is too esoteric for data science. Data scientists come from backgrounds like astrophysics and systems biology, and an article in InformationWeek speculates that marine biologists and baseball statisticians would make great data scientists: all fields that hardly go easy on the math.

How do you go from being an astrophysicist to being a data scientist? Currently there are only a few bridges between a doctoral degree and a data scientist career, such as the Insight Data Fellows Program. Douglas Mason, who now works as a data scientist at Twitter, describes some the essentials for making the transition in an Insight blog, and a lot of the essentials involve math. Statistics, including regression types. Recursive programming. Calculating expectation values in combinatorics problems (I didn’t have even the vaguest idea what this meant before I googled it, and I can’t say I understand it much better now).

A few firms, such as Mu Sigma, are offering data scientists as consultants, but data scientists are still difficult—and expensive—to find. For any geniuses out there who love computer science and love math, data science is career field worth checking out, though how to study for it is still anyone’s guess.

What do you think? What role should math play in a career in IT?

 

Lani Carroll lives in Colorado Springs with her bees, chickens, and horses. She can be found at her Google+ Profile.

Five Companies That Are Changing Recruiting

 

Anyone who works in software is accustomed to getting calls from recruiters. It used to be pretty simple. If you coded in JavaScript, for instance, you’d get calls every time someone in town was looking for a JavaScript developer. What did the recruiter know about you? That you coded in JavaScript, and not much else.

Today recruiting has morphed into something entirely different. The recruiter who calls you may know a great deal about you. New theories and techniques abound for matching a job to the perfect employee, and the recruiter may have insider information—such as the manga sites you visit—that leads her to believe that you’re uniquely suited for that new JavaScript position. Here are some of the companies that are changing the face of recruiting.

1. Gild. Gild mines web activity to build profiles of programmers. It looks for open source code posted by individuals and evaluates it. How elegant is it? How effective? It also looks at how often it’s been adopted by other programmers, and it looks for activity on forums for coders that indicates unusual acumen. Gild employs algorithms that, in classic big data fashion, associate the ability to code well with all kinds of other factors. Some strange things seem to be linked to coding ability; for instance, Vivienne Ming of Gild says that many great coders seem to have an affinity for one particular Japanese manga site.

2. RemarkableHire. RemarkableHire aggregates online activity that indicates people are passionate about technology. It crawls sites such as GitHub and Stack Overflow and evaluates activity there. For instance, how well does the potential candidate seem to know specific languages? RemarkableHire also looks at the number of followers a candidate has and the reputations of the followers.

3. Knack. Not a recruiting firm per se, but another interesting wrinkle in tech hiring today. Knack produces video games that analyze a player’s behavior and then use that analysis to evaluate the suitability of the player for specific jobs. Bain & Company and New York University Medical Center have pilot programs under way using Knack. Knack hopes that as it continues to gather data its appraisals of the job suitability of candidates will become more accurate and it will become a major exchange for matching employees with specific jobs. Knack CEO Guy Halfteck says, “We are trying to level the playing field, and make success less dependent on your resume, what school you attended, or where you grew up. It should be more dependent on your innate abilities.”

4. TalentBin. TalentBin has a database of 500 million social profiles aggregated from sites like Facebook and Google+. It’s even gotten data from the U.S. Patent Database and the PubMed Life Sciences Publication Directory. It offers employers a comprehensive profile of candidates and employs algorithms to search for hard-to-find technical abilities.

5. Entelo. Entelo highlights programmers who are unusually active on job search sites and therefore probably actively looking for new jobs. Sudden bursts of activity on LinkedIn are probably going to get the attention of Entelo’s search algorithms. “We wanted to create something that would be an intermediary between people looking for talent, and the places where the best people hang out,” says Entelo cofounder Jon Bischke.

Social networks provide a vast store of talent, but they aren’t necessarily easy to navigate: participants use pseudonyms and don’t always provide enough information to make their real-life identities obvious. But if Gild and Entelo and their new algorithms have their way, no one is going to be able to hide his or her talent under a bushel for much longer.

Lani Carroll lives in Colorado Springs with her bees, chickens, and horses. She can be found at her Google+ Profile.

Kaggle–the Future of Computing?

When I first read about Kaggle I had to know more. Kaggle is only a few years old, but it’s already one of the most interesting developments in data science in recent years, and one that’s sure to be influential.

Kaggle was founded in 2010 by Anthony Goldbloom. Back in 2008, Goldbloom was working as an intern at The Economist. When he was assigned a story on predictive modeling he was surprised at how many people told him it was difficult to make sense of their data.

Goldbloom taught himself to code and launched Kaggle from his bedroom with a contest: $1000 to whomever could come closest to determining how countries would vote in the Eurovision Song Contest. Then Allstate offered $6000 to anyone who could create an algorithm for calculating bodily-injury payments in certain types of accidents. More companies came up with challenges, and more data experts joined Kaggle.

Now the procedures are well established. A company proposes a problem, and Kaggle users take a shot at it. NASA, MasterCard, Allstate, and Facebook have all posted problems. Compensation has ranged from T-shirts to $250,000. There was a recent competition, posted by Heritage Provider Network, for which the compensation was $3 million. Facebook ran a contest with the prize being a data scientist position at Facebook. For those interested in applying sometime, this was the contest:

This competition tests your text skills on a large dataset from the Stack Exchange sites. The task is to predict the tags (a.k.a. keywords, topics, summaries), given only the question text and its title. The dataset contains content from disparate stack exchange sites, containing a mix of both technical and non-technical questions.

Kaggle has over 100,000 data-scientist users, and it’s a fairly exclusive group. Kaggle users come from all over the world, and what they have in common is their advanced degrees—over 80% of the top performers have master’s degrees, and 35% have Ph.D.’s. Kaggle has forums that give these rarified intellectuals opportunities to work together and exchange ideas.

To make Kaggle even more interesting—and even more of a challenge to traditional ways of working—it’s just introduced a new service, Kaggle Connect. Through Kaggle Connect, employers can hire data scientists for specific projects from among Kaggle’s top 500 participants. A very interesting employment model—companies now have access to proven top talent from around the world. Kaggle charges a subscription fee, then matches a data scientist to the company based on expertise. Kaggle provides a set of tool it calls Workbench, which takes raw datasets and turns them into instantly usable ones.

Employers such as American Express and the New York Times have begun listing a Kaggle score as a qualification in their data scientist help wanted ads. This may be indicative of a new trend: valuing actual skills rather than “paper” skills. Is this the brave new labor market, where expertise is measurable and really makes a difference?

Lani Carroll lives in Colorado Springs with her bees, chickens, and horses. She can be found at her Google+ Profile.

 

 

Consulting—Is It a Good Career Choice?

Is consulting for you? It’s a strange business. When times are hard, consultants are generally the first people to be shown the door. When times are good? Consultants ordinarily make more money than regular employees, and they often have the most glamorous jobs. But it really can be hair-raising. In 2009, consulting in general shrank by 9.1%.
And about that pay … consultants who work for consulting companies only get a portion of what the client pays for their services, with the consulting company retaining the rest. Consultants who work completely independently generally command higher salaries, but they have much higher expenses. There’s health insurance, and there’s the expense of downtime looking for a new contract.
If you’re working as a consultant flying solo you also pay lots of other expenses. Self-employment tax. Office supplies. Advertising. There’s all that time you’d be paid for if you were an employee, but that you probably won’t get paid for if you’re working for yourself: travel time, conferences and classes, vacations and sick time. Then there’s the time spent keeping track of billable hours, and actually billing them. It may all be worth it, though. Freelancers ordinarily report high degrees of job satisfaction.
But for anyone deciding on a career, there’s also the sticky question of job security. How long will consulting as we know it today remain a viable career? Consulting, like most jobs, is morphing into entirely novel and previously unseen kinds of employment. The Deloitte CIO column in the Wall Street Journal identifies a whole new consulting subculture, what it calls “open source talent,” or online communities open to anyone who wants to join.
Included in this new category are groups like Kaggle, an online group of data experts, and Topcoder, a similar group of software developers. These aren’t just obscure eccentrics. Both these groups are used by big-name companies like GE and Facebook. They represent an entirely new direction: consultants who address bits and pieces of a company’s software needs.
Judith Pennington of Deloitte says the time is ripe for developments like this. Certifications and widely accepted processes make it easier for employees to evaluate the credentials of individuals halfway around the world.
This type of group is especially useful for a company that wants to try out new cutting-edge technologies without committing full-time staff, so a group like this also provides an interesting employment possibility for the kind of IT aficionado who loves mastering the latest skills.
Does this kind of development have any implications for the future of consulting in general? In the short run, some consulting niches are still hale and hearty. David Hoff of Cloud Sherpas says his company is growing 40% annually.
But his fellow cloud consultant, Jeffrey Kaplan of THINKstrategies, sees traditional consulting under threat. “Just as you’ve seen in the past decade software and systems disrupted and decimated by the advent of SaaS and cloud, the same forces are at work undercutting the perceived value and, therefore, the demand for traditional consulting,” he says. He predicts that companies will be looking for projects of shorter duration and lower cost. Hmm, sounds a bit like the open source talent model. But maybe that’s good for consultants—they’re used to ups and downs.

 

Lani Carroll lives in Colorado Springs with her bees, chickens, and horses. She can be found at her Google+ Profile.

IT Careers That Will Stand the Test of Time

It certainly isn’t a pleasant memory. Tech had been riding high for years. Fears about the millennium bug meant that any programmer with a pulse could find employment. Most programmers with a pulse, however, weren’t looking for work—they were probably already employed at an improbable salary by some high-flying tech company.
Then it all fell apart. There were no computer problems with the date rollover to 2000, and all the programmers hired to take care of Y2K problems were suddenly superfluous. Many of high-flying tech companies crashed. Outsourcing became popular. Jobs that had seemed entirely stable simply vaporized. Corporations that seemed entirely stable simply vaporized. The US software industry lost 16% of its jobs between March 2001 and March 2004 .
Tech is one of the few bright spots in the economy today, but we live in a world where it’s difficult to feel secure about the economic future, especially when memories of the 2000 dot-com crash are so fresh. And unnervingly, most experts agree that the world economy is undergoing a fundamental sea change. It’s difficult to predict how much, and in just what ways, it will be transformed over the course of the next couple of decades. An article in Forbes posits that traditional employment is an outdated concept and that jobs as we know them are going to soon almost disappear.
IT seems to be in a better position than many career fields to weather the storms. IT jobs are becoming more and more portable. IT specialists work remotely all over the world without leaving their kitchens, and being able to work anywhere represents lots of opportunity. And IT is still one of the drivers of innovation. Clouds, iPhones, and Big Data today, and who knows what’s coming next?
These might be some of the best IT careers for tomorrow’s IT experts:
1. Business architecture. One aspect of IT that seems destined to flourish in the future is integrating IT with the business needs of companies. Business architects help determine what business systems will most benefit from IT, and just what kind IT applications will be most suitable. A business architect should have deep knowledge both of business processes and technology.
2. Analytics. Everyone’s drowning in data, and surprisingly enough all that data might be useful. Slice and dice it just right, and it could actually provide very useful consumer information, the kind of information businesses are dying to have. The advisory firm Gartner predicts that there will be 4.4 million Big Data jobs by 2015, and that because of a lack of qualified people only one-third of the jobs will be filled.
3. Project management. This old-fashioned career continues to prosper. IT projects can be incredibly complex, and the demand for skilled project managers grows every year. Project management is becoming better defined—it used to be a job that many people more or less fell into, but now more and more companies demand certification.
4. Consulting. What could better typify the trend toward non-traditional employment than consulting? Jobs that last only the life of a project are obviously more economical for an employer, and consulting seems very likely to continue to grow. And it can provide lots of benefits for the consultant. An opportunity to travel, a chance to work in many industries, good money—for anyone who’s ready to embrace an independent career path, this could be the way to go.

Lani Carroll lives in Colorado Springs with her bees, chickens, and horses. She can be found at her Google+ Profile.

Top Five Hot IT Careers for 2014

IT continues to be one of the strongest job categories in the country. While many career fields are still stagnant, IT continues to roll along at a blistering pace. There’s no letup in sight: according to a Computerworld survey, 32% of IT shops plan to add more staff next year (Link). What jobs are going to be most in demand? Here are a few that are certain to shine in 2014.

1. Programming/application development. This perennial favorite is still highly marketable. As any programmer knows, though, this category is awfully broad. What specific skills are employers looking for? According to the monthly stats at Job Tractor (http://jobstractor.com/monthly-stats), Java and PHP continue to rule the roost, and since they’ve been among the top languages for a while now it’s likely they’ll continue their dominance into 2014. This doesn’t necessarily mean that jobs based on other skill sets pay any less or are more difficult find. Computerworld says that the unemployment rate for software developers in general is a very healthy 1.8%.

2. Mobile app development. Java plays a starring role in another sought-after skill, mobile app developer. The demand is so high that at least one university reports that students are being stalked outside classrooms by employers (Link). To all appearances, this career isn’t going to lose steam any time soon. Smartphone user numbers are projected to be five times as high in ten years as they are now.

3. Database administration. With all that big data out there, demand is growing for someone to manage it. Then there are the complexities of cloud storage—it’s exploding in popularity, and companies want to take advantage of it, but they want their data to remain secure too. Database administration was a bit of a sleepy backwater for years, but new technology has brought it to the forefront of in-demand careers again (Link).

4. Cloud architect. This is still the Wild West phase of cloud hiring, and what companies are looking for in cloud architects varies from company to company (Link). Mostly, however, they want expertise in virtualization and experience in public, private, and hybrid clouds, as well as deep knowledge of areas such as SaaS. Skill in all aspects of risk management is another critically important asset. Just what the parameters are for a cloud architect position are probably going change, but it certainly looks as if this is going to be an important career in 2014 and probably for years to come.

5. Business intelligence and analytics. We’re swamped with data, and the demand for experts to analyze all this information is growing. And it’s not easy to find the expertise. According to Computerworld, analytics is ranked second among the most difficult skills to find (http://www.computerworld.com/s/article/9242548/8_hot_IT_skills_for_2014?taxonomyId=14&pageNumber=4). This is another career field where the need to get the most out of big data is driving new concepts and technology, and at the same time traditional concerns, such as ensuring data integrity, need to addressed. As marketing departments clamor for more and more information, preferably in a form they can translate to sales, analytics will likely remain a skill where demand outstrips availability.

Lani Carroll lives in Colorado Springs with her bees, chickens, and horses. She can be found at her Google+ Profile.