By Susan Tan (Alumna, Hackbright Academy)
As a code challenge for BloomReach, I wrote a program in Python that took in 500,000 lines of input and distributed half a million unique wine bottles to 99,999 people, each with their own top 10 wine list. It’s a max flow problem. I completed this puzzle in 55 lines of Python code and with only 10 weeks of training at Hackbright Academy.
Most employers would not believe that it’s even possible to train a beginner programmer to become a software engineer in 10 weeks. But the vast majority of the graduating class at Hackbright Academy are already employed as full-time software engineers at rising startups like Eventbrite, SurveyMonkey, Get Satisfaction, RealGravity and Invitae. Results are in.
I’m proud of each and every one of my classmates. They are brave and intelligent women who have left their previous jobs in publishing, biology, teaching, HR recruiting, finance, and mechanical engineering in order to pursue their dreams of being a software engineer.
I’m one of the handful of Hackbright Academy alumni still looking for her first software engineering job (and her very first job out of college!). And in the process of interviewing, I’ve talked to so many startups and larger companies and have gotten to meet many dozens of engineers. I’ve gotten to know many perspectives, philosophies of life, and have listened to many words of wisdom from senior engineers about the startup life and how to choose the tech companies with the best fit. Just about every new startup is a tech startup that needs software engineers. Every industry needs software engineers.
Coding is the most versatile technical skill.
One of the most frequent questions I get asked by employers is why I’m transitioning over from electrical engineering over to software engineering. The simple answer is that most electrical engineering jobs already involve at least 50-70% programming. At my last electrical engineering internship that I completed between college graduation and enrolling at Hackbright Academy, I was tasked with building a test fixture that will used to do accelerated life testing of various flexible cables on a diagnostic life sciences machine.
My project involved programming Arduinos to talk to the motor driver, which then controlled the sequence of steps that the stepper motor takes to move the cable back-and-forth at variable speeds. I discovered that I liked the programming aspects a lot more than the electronics or the mechanical aspects of my project. The code problems was where the deeper intellectual challenges were. And considering that software is now eating up the world and revolutionizing every industry as we know it, I knew this was the right moment in time to transition into software engineering.
This was the fork in the road for me.
I didn’t have extensive programming experience; I did not take the computer science courses that a CS major would’ve taken in order to be ready for software engineering jobs. My undergraduate degree was in General Engineering, which involved coursework in all the different engineering disciplines.
I had two choices: I could’ve started applying to graduates schools for a masters in computer science or, alternatively, there was this new education startup called Hackbright Academy in San Francisco. It is an all-female web development class that turns beginner programmers into employable junior software engineers. The former option would take about two years to complete, including a year just waiting for the graduate school committees to make their final decisions. I also did not want to take the academia route and be a research professor in computer science. The latter option, Hackbright Academy, would take 10 weeks and would launch me into the software industry much faster. I chose the latter option and made the huge trans-continental move from New York City to San Francisco.
Hackbright Academy is a very fast-paced program.
In just two weeks, the class covered an entire semester of Intro to Computer Science that is typically taught at the university level. The first five weeks is pair programming, where the keyboard and mouse are shared and close collaboration and communication happens. The last five weeks involves working on a final project of the student’s choice.
In the third week of Hackbright, my programming partner and I were staring at 100 lines of code in confusion as we got stuck in making a functional Markov text generator. We were trying to build a text generator that translated input text into seemingly alternative original text. We were getting confused and stumbling over the massive code that we wrote.
Then, the instructor Christian came over, sat down with us, started on an empty file, and demonstrated how to write the text generator in just under 20 lines of code. My mind was blown. That was simplicity, clarity, and elegance in action – to be able to shrink 100 lines of code into under 20 lines. That was one of the most important code-philosophy epiphanies at Hackbright Academy.
One of my college professors used to ask at the end of every class lecture, after doing Q+A, “Are you all metaphysically happy?” Now, I can honestly answer yes, I am now, as a software engineer.
Women 2.0 readers: How can we increase the number of women in engineering?
About the guest blogger: Susan Tan is a recent alumnus of Hackbright Academy (fall 2012 class). She is also a recent college graduate of Harvey Mudd College with a B.S. in General Engineering. She is excited to pursue a career in backend software engineering and spends her free weekends working on difficult code challenges. Follow her on Twitter at @SusanTanHMC.