One of my favorite classes to teach is programming. There are plenty of exercises to do in class and I can run the debugger so that students can see exactly how each step affects the calculation. The students, however, usually come into the class just trying to cross it off their list of required courses in order to move into their sophomore year.
Problem: Programming is not something you can just cross off a list. It’s a required skill in every STEM field. The major tech industries are built around people whose laptops are extra appendages to their bodies. Even if you are not planning to go into a tech industry but you still want to be in some STEM field, being able to manipulate a computer the same way Professor McGonagall manipulates her cat is essential. And because of that, I’ve had to get more creative with my approach to teaching programming, or else my influence over the classroom will decay faster than lithium radioactivity.
For some reason, though, many people approach computers as if they were wearing blast suits and preparing to dismantle a bomb. I know because that was me. When it came to computers, I wanted to throw up all over myself. My first project involved C++ programming….which I had to teach myself. To that point, the only skill I had on my resume related to computers was Microsoft. (Just a piece of advice: If you’re still bragging about your Microsoft skills on your resume or your LinkedIn page, people will think you’re scraping the bottom of the barrel for skills.) Needless to say, every day of that internship, I went in to work on the verge of a panic attack.
Ah, the good old days.
But it really was a great experience. During that time, I learned a skill that laid the foundation for the next seven years of my career (and counting). Since then, I’ve learned to program in a few other languages and received an advanced degree based on that research. My approach to programming took a complete 180: the thing I swore I would never partake in became the focal point of my career.
I’m still not a star programmer. Some of the code I write looks like Sybil and Rain Man got together and had a baby, and that byproduct is doing the programming. But my goal is to build up those programming muscles as much as possible.
Two words: Big Data.
In today’s technological age, sorting through billions of data points to find trends and similarities allows techies to classify information and predict important outcomes such as the fluctuations in the stock market or, more importantly, if the Cubs will win another World Series. And it gives me ideas for class projects. 🙂
But in all seriousness, big data and machine learning are the new “big thing.” Predicting climate change, projecting business profits, categorizing cancer markers – big data and machine learning, baby. This all seems deceptively easy (because, let’s face it, a lot of this has been done or is currently being done), especially today when everything seems to just happen automatically. But sorting through data that’s arranged in the most helter-skelter way with no apparent pattern in sight (which, FYI, is the whole heart of programming) is like trying to find the perfect pair of blue suede pumps in the DSW clearance section: maybe you’ll find what you’re looking for after you’ve searched through every last box and deceived yourself into thinking that you’ll fit into a size 8 (even though you’re a size 9).
But most likely, you’ll have to go to another store (or two or three) on the other side of town to find what you’re looking for; however, even after all that, you may still have to compromise: settle for a purple suede pump in a size 9 to go with a different outfit or buy that blue suede pump in a size 8.5 that will go with your original outfit but be unnecessarily painful. (Let’s face it though: the entrance is the most important part of the evening. Once you get through the initial pleasantries and everyone’s noticed your perfect outfit, the shoes can be switched out with something more comfortable. Provided you had the foresight to bring an extra pair.)
There is actually a bridge between machine learning and my love of shoes, but you would have to navigate the cobwebs inside my head to see it. (Again, Rain Man and Sybil’s love child.)
Why the summary on the societal impact of big data and machine learning? It’s not so much to promote this challenging but stimulating field as much as it’s about accepting challenges. Marie Curie said that the way of progress is neither swift nor easy. In our automated society, it’s easy to lose sight of that axiom of wisdom and get discouraged when we first try something and it doesn’t work right away. I believe it was ASAP Science (my absolute favorite YouTube channel) who first tweeted, “If at first you don’t succeed, try two more times so that your failure is statistically significant.”
Usually it takes more than two or three iterations to see the desired results (I’m sure the cool dudes at ASAP Science know this). The oft-cited example is Edison’s 1000 trials before finally creating his incandescent lightbulb (which only burned for about 20 minutes).
We need to redefine our idea of success. In Carol Dweck’s book Mindset, she describes the difference between fixed and growth mindsets. A fixed mindset is one that believes a person is born with certain talents and only those people can be successful in that particular area. A growth mindset believes that anyone can be successful in any area in which they choose to devote time and effort. Even those that have certain inclinations towards a particular skill need to further develop those skills (which requires more effort than people realize) if they want to continue to be successful in that area.
Developing the attitude of trying, screwing up, and repeating until your conditions are met (sorry, programming just sneaks into the conversation) is really more than half the battle. And the best way to do that: face situations that challenge you in all possible areas. The scary part about challenges is that they have a tendency to tear us down a bit (or a lot). They force us to be brutally honest with ourselves by pointing out our weaknesses and restructuring our priorities. Eventually we run out of pride and start to develop more of a devil-may-care attitude, the kind of attitude that gives us the freedom to take risks…for the fun of it. Imagine that!
The cycle of trying and screwing up is the way of both science and life. But ironically, those screw-up moments are not really failures; they’re setbacks. And even though they don’t achieve the desired results, they give us a better insight into the problems we face and a better approach to designing a solution. That is hardly failure.
To again quote the great Marie Curie: “We must have perseverance and above all confidence in ourselves. We must believe that we are gifted for something, and that this thing, at whatever cost, must be attained.”
Well said, Professor Curie.
Peace, Prosperity, and Organic Photovoltaics,
Chic Geek and Chemistry Freak