One doesn’t usually associate staring at a computer screen with self-reflection – except for, of course, when you’re staring at a glossy screen.
Surprisingly, I’ve recently noticed myself doing a great deal of both throughout my experience with computer science. Among the many things I have learned about problem solving, I have also found myself asking several personal questions that I have yet to find the answers to.
One such question pertains to my own skills and the role of uniqueness in my finding a place in the field.
As a computer scientist, I am replaceable. And that scares me.
My fears are grounded on a reflection of computer science’s fundamental ideas. Computer science ultimately boils down to algorithmic problem solving and the solutions computer scientists generate are often cleverly methodical and optimized. This cleverness is routinely associated with and expected of computer scientists, and while that makes for better products for the end user, it also brings up a startling notion: any two people who can come up with a similarly-clever solution are interchangeable.
In other words, in the world of computer science, where there are only a finite number of ingenious, algorithmic solutions, computer scientists – programmers, network administrators, back-end developers – are replaceable. So, if a computer scientist can’t meet the cut for ingenuity, he or she will be overtaken in a heartbeat.
In fact, UCLA computer science lecturer Paul Eggert hinted at this at a computer science department barbecue last week. According to Eggert, who spoke to a group of students including myself, computer science is less of a science than a service – people of other fields ask computer scientists to develop applications and tools for them, not the other way around. Eggert added that those who can’t pick up new skills quickly probably shouldn’t be pursuing computer science.
In other words, so long as there exists someone who can come up with similar, if not better, solutions than I can, I’m non-unique, and thus replaceable – the concern of any service-oriented occupation, be that a mechanic or a butler.
You can think of this situation like trying to compare two bakers’ apple pies. If both bakers are equally skilled in baking, follow similar recipes and can deliver the pie within the same amount of time, there would be virtually no way of telling which pie was better.
Similarly, getting a job in computer science means competing with countless others who are also clever and well qualified for the task at hand. But, what then differentiates one from someone else?
If my exposure to computer science has taught me anything so far, it’s that creativity is the name of the game.
Creativity is the lifeblood of innovation. Much like with any other field, it also has a place in computer science, helping people to come up with solutions to mind-boggling problems and develop more streamlined systems.
But creativity also involves risk-taking, usually manifesting in entities such as startup companies or research labs, both of which face the risk of failure in order to test and implement novel ideas. Hence, many computer scientists shy away from startups and research – about nine out of 10 startups fail per year, and researchers face the constant challenge of finding funding to support their efforts.
Despite all this, what I’ve come to find is that computer science rewards creativity, and that this creativity is what differentiates one computer scientist from another.
Take hackathons, for example, where thousands of students flock to a number of hackathons throughout the year, sacrificing their sleep and hygiene to develop new applications and learn new skills, among other things like hoarding free items. What’s to note is that prominent companies like Microsoft, Symantec and IBM also attend these hackathons.
These companies oftentimes offer students free access to their tools and applications, not just out of the goodness of their hearts, but because they are seeking out students who utilize their tools in innovative ways. In other words, these companies are headhunting for creativity, awarding and honing in on students’ novel ideas in order to identify ways to improve their own applications.
Interestingly, the students these companies identify aren’t always the most accomplished problem-solvers of the crowd. Often times, students don’t completely finish their projects by the end of a hackathon, either because of inability to solve a perplexing problem or because of time constraints, yet companies still sometimes award these unfinished solutions for exhibited creativity. Hence, it’s clear that in events like hackathons, problem solving is not the emphasis; rather, novelty is.
For example, someone who is an ingenious problem-solver can sit for 36 hours at a hackathon and come out having created nothing, whereas someone with less skill can wow scores of fellow attendees with a novel idea. Of course, this disparity is due to the fact that not everyone is capable of creative solutions, but that’s exactly what distinguishes one computer scientist from the next.
Certainly, these awardees’ projects cater to the demands and desires of hackathon-attending companies, but this doesn’t discount the fact that it still takes a creative mind to identify a problem and formulate a unique, attractive solution to it. After all, many students try to mold their projects to catch the eyes of these companies, but only few are successful.
Hence, my dilemma of replaceability is in some ways solved through understanding creativity and how to go about harnessing it. The challenge is, of course, in understanding how to couple creativity with cleverness to generate novel, robust solutions, but the fact of the matter is that while computer science is all about problem-solving, it isn’t just about how the problem is being solved, but also about what problem is being solved. Ultimately, it’s not problem-solving if there isn’t a problem to be solved, and half the battle is in identifying what out there is in need of a better solution.
In this regard, even if I am not unique in my problem-solving competitiveness, by retaining a sense of originality and exploiting it – by trying new things, failing, and trying again – I won’t be replaceable. If anything, that at least serves as a motivating sign.