Why should you learn how to build web apps? My interview with Nicole Zuckerman
Curious about building web apps? I interviewed recent programmers about their experiences learning to code and where they are now. First up: Nicole Zuckerman, recent graduate of Hackbright Academy in San Francisco.
Hi Nicole — what's your background?
I've got a BA and MA in English Literature and Women's Studies. I worked in publishing for around 5 years (college textbooks), going from a proofreader to an accuracy checker for math textbooks (up to/including calculus), then became a project manager, and ultimately a program director for a workflow of publishing books. Basically, entirely non-technical, except for the fact that when I was a project manager I coded manuscript in something resembling html/xml... which was probably my favorite part of that job, even though it seems super boring to me now when I can, instead, make computers do things!
What inspired you to learn programming?
I have generally felt, for most of my adult life, that geeks of a feather tend to flock together. I knew a bunch of friends who were software developers, and when I would gripe about how non-inspiring my work was, they would say "You love language and you love logic, I think you'd love what I do" but I never believed I could. I thought you had to be wicked smart, and have been doing it since you were in footie pajamas, and I fit neither of those categories.
But when my desire for stability lost out, finally, to my need for a job that I enjoyed, I finally decided I would at least give it a shot. I'd apply to a school, I'd play with it a little, and if I was terrible at it or hated it, then at least I'd know. So I tried some exercises on Codecademy, and found that it was okay although I didn't get why you would bother with these things, and I applied to Hackbright.
Honestly, the interview I had probably played a fairly large role into my desire to go for it. I was given a puzzle of sorts, a problem with a set of limitations, and described how I would solve it. Then we made the problem harder, more restrictions, etc, and talked about how I could solve it better. That kind of problem-solving was really fun for me, and something I didn't realize you could have a job doing — figuring out how bubble sort (the algorithm) works without ever having heard of such a thing. When I got in, I was elated, and determined to do this for my career.
Tell me a little bit about the Hackbright Academy experience!
I was convinced I was the worst in the class during the first half of the course, the least prepared. I'd never heard of these concepts before doing the pre-work; things like for loops and Object-Oriented Programming were entirely alien to me. Some people get these things right away, and some take time to process the implications before getting it; I was in the latter category, but once I understood the why of a thing, I really got it in a fundamental way. It turns out I was as well prepared as anyone else in the class was, and that I was doing great, though I always have the highest expectations of myself and you'll never be able to convince me that I'm killing it.
I believe that if I'd done any other program, I wouldn't be nearly as strong in my understanding as I am right now. The all-female student base meant I didn't assume that anyone else innately had more knowledge than I did, so I had to just roll up my sleeves and get things done myself. I am so glad I chose Hackbright.
Probably the thing that tied everything together, for me, and made me feel like I could actually do this as a job, was the project component, the second half of the course. Instead of making these toy projects that seemed arbitrary and limited, I decided what the problem was, the use case, the solution, and implemented it from start to finish. This part, for me, made the prospect of a career in this stuff real. To be honest, I had little interest in the front end of things, and without prodding from instructors and designers I know, I would probably not have styled a darned thing on my project. I was way more interested in the back end; how do I handle data? What does it mean? How do I make sense of these arbitrary collections of signals? That part fascinated me. It still does.
Anything cool you've built or would like to mention?
I don't feel like I've built anything particularly mind-blowing, but it's worth it to me to list out the things I've accomplished, so I can properly appreciate what I've done in the short 2 years and change I've been working on this stuff. So I'll list them here, for myself as much as for anyone else:
Hackbright project: An in-browser implementation of Android'd 'Swipe' keyboard. Instead of typing discreet taps on a screen like you would a real life keyboard, Putting your finger down over a letter, moving it over the keyboard across countless letters to your next chosen letter, etc. I describe it as "Wiggle wiggle wiggle, Word!" and honestly, the fact that I made it work (even if my accuracy wasn't as high as I'd want it) is still kinda like magic.
At Eventbrite, I spent a hackathon working with another engineer to see if we could automatically run full end-to-end tests concurrently, headless, whenever someone committed and pushed to our main test branch. We didn't quite finish it, but the fact that this stuff was pretty much entirely non-pythonic and mostly about understanding deeper command-line and computer-related things, made me pretty proud of myself anyway.
I just recently helped run a tutorial at Pycon about web security, which was a topic I never would have thought I'd understand well, a year ago. I am still not amazing at it, but I know a lot of the common pitfalls, and I have developed a fine appreciation for the hilarity of the mistakes that make it through to the public. It turns out that most of the time the secret to having a safe web-app is to trust Django to do the right thing, and not get in its way. Who knew?
At Sosh, I recently wrote the entire back end for an iPad application, in 3 weeks. It's entirely for the merchants who work with us, to make their lives easier and make Sosh incalculably valuable to them, and I was pretty pleased with the fact that I did it all by myself, in my first month after joining the company.
Overall, are you happy with deciding to learn how to program?
Deciding to learn to program was hands-down one of the best decisions I've made. It was a terrifying risk at the time, setting my previous career aside for this huge unknown; would I like it? would I be good at it? would I know enough to be useful? It turns out, I got exactly the right combination of answers out of it: I love it, I know enough to be useful, and although I'm not as skilled as I want to be, I'm learning all the time, and I'll get there — there's joy in that, too. This was a decision that sparked a monumental change in my life, and it worked out shockingly well. I couldn't be happier that I took the chance.
Thanks Nicole! Hackbright Academy is a great resource for those that are looking for a complete software engineering education. Learn more about Hackbright Academy here.