Minor pivot, big impact
How a non-traditional software engineer made her minor a career.
By Abigail Walker ’16
As jobs in computing and information technology continue to grow, it makes sense that engineers without a traditional computer science background are taking an interest. I’m one of those people. I entered Case as a biomedical engineering major but realized more than halfway through that I was more interested in computer science. It was too late to completely change course, so I partially shifted — to a minor in computer science. I graduated with a small foundation of knowledge that included an introduction to object-oriented programming, data structures, algorithms, and operating systems.
I didn’t have the time to take other fundamental computer science courses, such as databases, networking, and software design. Not surprisingly, I had trouble finding a job — despite my 4.0 GPA. At the few interviews I landed, I struggled with the traditional, code-on-the-spot software questions because of my limited programming experience and lack of confidence. But one company gave me a chance, opening the door to rapid learning and growth in the software industry.
Here’s what led to my success in a field I joined late and now love.
GAINING A CS FOUNDATION
My CS minor course of study included these classes, ranked in order of importance to my career:
• Intro to object-oriented programming (in Java)
• Data structures
• Operating systems
• Discrete mathematics
• Linear algebra
The course in object-oriented programming was most important because it helped to solidify my interest in computer science when I was still tentative. The concept of a Java class hierarchy finally clicked for me as I completed the classic “shape“ design problem (where concrete classes representing circles, triangles, squares, etc., descend from abstract parents like “shape,“ “rectangle,“ “oval,“ and so on). My junior mind was blown. I was proud of what I had finally understood, and I realized the design possibilities were endless. This course’s content is also what I most frequently utilize in my job today, where I work on designing a Java model for an electronic health record web application.
OTHER KEY SKILLS
Outside of computer science fundamentals, there were additional general engineering skills that helped me to succeed in a software career. These include critical thinking, continuous improvement, and above all, communication skills.
Oral communication skills are critical to quality interactions with managers and mentors, status reporting in scrum meetings, conversing with non-technical team members, and understanding their point of view.
Written communication is crucial for participating in code reviews, writing good documentation of software, and engaging in message-based discussions in today’s increasingly remote and digital environment.
Another aspect of good communication is understanding your audience — I meet many engineers who can describe a brilliant design strategy but fail to realize that the group they are speaking to may not understand the relevancy.
I feel that my own communication skills are the single most important factor in my growth as a computer science professional, and I consciously continue to work on them as I advance in the field.
A NURTURING ENVIRONMENT
Not every workplace is the same, and some cultures and teams foster a young developers’ success while others may stall it. I was lucky that my first job out of college was in a growth-friendly environment, with solid role models, kind mentors, and a caring manager.
Coworkers at my company always placed an emphasis on learning. I received frequent book recommendations, and senior developers hosted group lunch-and-learn presentations. All of this combined to expand my knowledge and keep me humble.
A strong education can help a young engineer land her first job more easily. But that same knowledge (and much more) can be gained on the job by an engineer who is motivated to learn on a team willing to foster that learning.
Abigail Walker is an application software engineer at Ontada in San Diego, California. Reach her at email@example.com. This article is excerpted from an essay she wrote for the blog of ACM.org.