When I was in middle school in central Pennsylvania, the local campus of our state university held a Sonia Kovalevsky Day fair. Named after the prolific Russian mathematician—the first woman to obtain a modern doctorate in mathematics—it was part of a nationwide effort to encourage young women to engage with math and science. Lured by the promise of games, pizza, prizes, and the chance to get away from school for the day, I decided to attend.
This was the late 1990s, and the craze of the moment was a virtual dancing baby on the popular TV show Ally McBeal. According to the educational program Channel One News, the baby was generated by something known as CGI. I, too, wanted to work on dancing babies—really, dancing anything generated by computers—and the list of activities and workshops on the Sonia Kovalevsky Day schedule seemed to promise I could.
As a middle schooler inclined toward writing, I was terrified of both math and science.
There was one problem: As a middle schooler inclined toward writing, I was terrified of both math and science. I was an early reader and a keen devourer of literature. At age five, when my family immigrated to America from Russia, I even wrote and illustrated my own autobiography. But when it came to STEM, I hit a brick wall. In middle school, I’d sit for hours solving algebra problems that made almost no intuitive sense to me. I was more interested in why an atom was called an “atom” than the particles it contained. The sessions at the Sonia Kovalevsky Day event were engaging and the presenters enthusiastic, but many of the workshops seemed geared toward young women who were already interested in math. I was increasingly convinced I’d come to the wrong place.
One of the advertised highlights of the day was a workshop on the Logo programming language, a general-purpose language created specifically to teach programming concepts in a simple format. As I struggled to piece together the requisite bits of code to make a turtle move across the screen or transform a line into a triangle, I started to feel like I might never understand the language of computers—no matter how many dancing babies it would allow me to create. I feared I would disappoint my entire family of Soviet-educated software developers, engineers, and electricians by becoming a mere writer.
Like all good stories, though, this one takes a turn. Today, I’m a machine learning engineer.
Given how much media attention AI and machine learning garner these days, people often ask for my advice on how to get into the field. But my honest answer is, I don’t know. My entry into software development was partly the result of happenstance and partly due to intellectual curiosity and a willingness to work hard to understand domains outside of my scope of work.
After the Sonia Kovalevsky Day fair, I didn’t consider computer science again for some time. In high school, I was determined to break into journalism, hoping to land a job at The Economist. Then, in 11th grade, after taking a class in career and resume preparation, I found myself thumbing through the U.S. Bureau of Labor Statistics’s Occupational Outlook Handbook, trying to get a read on what I could do as someone who enjoyed both English and analysis. The entries for software development—pages I flipped to by default, driven by the career choice most of my family members had made upon immigrating to the U.S.—included verbiage like, “Computer and information research scientists typically need at least a master’s degree in computer science or a related field.” When I looked up master’s degrees in computer science, the course topics seemed so filled with mathematical and engineering jargon as to be completely inaccessible to me. I discarded the idea.
Unbeknownst to me, I was building a base for the skills I’d be using later in my career.
In college, I opted to major in economics, reasoning that it was sufficiently technical to appease my family, yet enough of a social science to satisfy my need for understanding how human beings work. Then, two years into my studies, two professors in the econ department needed an undergrad to help with various department responsibilities, like grading. As one of my first tasks, they asked me to put together a conference website for a symposium. Fortunately, I already had some light programming experience from tinkering with HTML files on my GeoCities site (another ’90s throwback), and I developed my skills through trial and error. From there, I learned how to move bytes between computers, manipulate HTML, and embed tables and analyze data in Excel. Unbeknownst to me, I was building a base for the skills I’d be using later in my career: data visualization, analysis, and network programming.
After earning my degree, I accepted my first job in economics consulting, where my days revolved around filling out spreadsheets and writing reports—a far cry from software development. But during that time, a single event compelled me to dip my toes into the waters of more regimented programming. I was assigned to a project with a colleague who worked on more advanced statistics, and she showed me how to write SQL queries to look at data located in Access—effectively making a computer take care of the monotonous work I’d been doing by hand. Watching her write queries, I felt for the first time that I could learn to control computers; it wasn’t as inaccessible as I’d thought all those years ago. With my newfound SQL skills, I was able to seek out jobs involving more sophisticated analysis.
My first job in advanced analytics required me to work with Hadoop, a notoriously user-unfriendly tool for data analysts unless you also learn Unix. Developing these skills forced me to learn programming and the command line, even though I was still mostly working on SQL queries. Thankfully, I happened to sit near the very capable Unix sysadmin who was managing our Hadoop clusters. She helped me a great deal, and I also learned through osmosis and proximity, hearing about problems she was working on day after day. Soon, both through her instruction and my own interest in understanding the labyrinthine Hadoop ecosystem, I learned bash scripting, how to pipe, and how to programmatically work with files in remote servers—skills I still use every day.
This gradual, almost accidental pursuit of the knowledge to master the command line, SQL, and distributed systems set me on the path to build the layered, multifaceted skill set required to develop machine learning pipelines. From SQL and the command line I went on to learn basic regression, eventually laddering all the way up to deploying recommendation systems.
My career is proof that even if you firmly believe your life is headed in a specific direction, it will likely curve. I was sure I’d be a writer. Then, as an economics major who’d managed to land a rare job as an economist, I was certain economics was my future. Today, I do spend a lot of time writing, but rather than Economist articles, I write code and technical documentation.
I couldn’t have predicted this path if I’d tried. Much of what I did as I inched ever closer to the career I have today was simply dig deep into issues that were puzzling or confusing to me and try to understand how systems worked. I also happened to be in the right place at the right time many times over, working with smart people who were generous with their time and knowledge.
The same is true for the many people I know who entered the tech industry sideways, taking roles in data analysis, ops, and QA before becoming AI researchers, web developers, and data scientists. Just within my own social circle, I can name a person with a master’s degree in Spanish literature who now works on cloud infrastructure, a high school dropout who runs an IT support department, and an astronomer who’s now a data scientist. As software becomes ever more ubiquitous, people who might never have come into contact with the field have encountered it in unexpected ways—as IT support people in college computer labs, as Minecraft players customizing their own worlds, or as beleaguered supporters of spreadsheet-driven development thinking, “There’s got to be another way.”
When it comes to planning our careers, there are no absolutes.
That’s not to say getting into the tech industry is a breeze. In addition to all of the time I spent studying object-oriented programming and HTTP calls outside of work, I had to become familiar with hundreds of new pieces of technology, learn to code, absorb industry jargon, and interview for positions that required 10 years of experience in Hadoop when it had only been around for five.
In spite of all that, tech remains a porous field with countless entry points. If you have adjacent degrees or a solid bootcamp portfolio, as well as the willingness (and bandwidth, and time) to work at becoming an expert in the plethora of technologies used to build software, you can start by learning simpler ones, then work toward the more complex systems that make up the modern stack.
When it comes to planning our careers, there are no absolutes. There’s no way I could have guessed I’d end up spending my days writing code instead of books, and loving it. Despite the learning curve—and the persistent dearth of diversity, equity, and inclusion we must reckon with as an industry—tech can still be a permeable field, offering upward mobility and flexibility for a wide range of people. Even if the path to get there is a winding one that begins with an apprehension of computer science, a desire to be a journalist, and a dancing CGI baby.