Why I Am at the Flatiron School

| Comments

Sometime around the middle of last year I realized that I wasn’t satisfied with my job. I was working at a large alternative asset manager, helping structure hedge fund investment products and doing legal due diligence on hedge funds. It was my first job after graduating college, and I took the position to dip my toes in the corporate waters and explore careers in finance or law - two paths that college seniors from top schools seem to gravitate towards, despite knowing, at least for me, very little about what it means to actually work in finance or law.

While my experience in finance was great - I learned a lot about what it means to be in a professional services field, how to work well with others and how a global business leader operates - it never really felt like it was the place for me. I considered law out of college because I love reading and writing, but I soon realized that corporate law is not quite like the reading and writing that I enjoyed doing at my college newspaper. I had not contemplated a career in technology, in large part because in college I got swept up in the finance-or-consulting bifurcation of the professional services world. In the years since graduating college, I’ve seen how quickly the Internet has changed and how dynamic the space is. I’m convinced that we’re just beginning to see how technology will change industries and professions (see quote by Alan Kay), and I figured that the Flatiron School was the best way to jumpstart my journey into the wide and ever-expanding world of technology.

The Internet?! Is that thing still around?

–Homer Simpson

Growing up, I never really did much with technology. The only formal learning I had done before Flatiron was a Programming 1 class my sophomore year of high school where we learned Q-BASIC. My parents were engineers and my brother was studying enginnering, so I decided to be the black sheep of the family and pursue economics and public policy in college. I worked as a journalist and editor at my college newspaper, and the little exposure I got to coding or programming was via the econometrics and macroeconomic policy classes I took, where we worked with Stata and mapping software like ArcGIS. However, I had little inclination that I would want to learn how to code and explore programming; I had naively thought programming to be the province of engineers who couldn’t communicate well or for those stuck in the computer lab for hours on end. I enjoyed journalism and working at the newspaper because it enabled me to be creative when I designed layouts and graphics for the paper yet also intellectually rigorous when I was editing, reporting and writing. In no way did I imagine that I would come to appreciate the technology world as I do now for much the same reasons - the remarkable complementarity between creative inspiration and analytical rigor that is necessary to be successful in the tech sphere.

After college, I went into finance, thinking that I would aim to go to law school or business school after a few years on the job. The position I took was in a hybrid legal and product development group at a large alternative asset manager, which I felt would enable me to get the most exposure quickly to both the corporate law and finance aspects of the business. In that respect, my two-and-a-half years there were successful. I learned that I didn’t want to be a lawyer, and that while I’m still not fully decided on whether to attend business school, I came to realize that technology was a better path for me. I enjoyed working with data and thinking about how problems could be solved or processes improved using technology. Thinking back, its funny how I joined the firm expecting to explore a binary path of going either to law school or business school (or both via a joint JD-MBA program), and left the firm to go back to school, just a very different program than what I had anticipated.

I started learning how to code by teaching myself how to write basic macros in Excel using VBA (Visual Basic for Applications). At my firm, I periodically came across business problems and processes that I thought to be slow, outmoded and way too manual. So I started building models to address issues like client reporting and product pricing. These models enabled me to learn more advanced Excel techniques, and a natural extension of that skill set led me to start writing macros. I bought a book on VBA coding early last year and spent a weekend trying to automate a data parsing problem that I had encountered when building a client reporting model. Although the macro I ended up writing worked, I wrote it using a brute force method; in retrospect, it wasn’t elegantly written, it ran too slowly and it definitely could have used some code refactoring. But, it got the job done. As that model and macro helped speed up tangible business processes at work, I came to realize the impact I could have by exploring the application of technology to business, and I started to explore building a technology skill set.

If I had asked people what they wanted, they would have said ‘Faster horses.’

–Henry Ford

In the spring of last year, as I was continuing to build out Excel models at the firm, working on models that evaluated hedge fund liquidity parameters, analyzed pricing plans across financial products and created client reports, I started to learn how to code. My brother was spending more and more time building his start-up Leaguevine, and in talking with him about his plan to join The Iron Yard, a start-up incubator in Greenville, SC, I realized that exploring technology was useful for more than just work, but could be a skill set I build throughout my life. And hearing my brother’s passion for start-ups and the pretty cool things you could do with technology, I began to see how technology is an amazing tool to pursue passion projects.

So I created a personal “lesson plan” to learn how to code. I caught up on the Code Year program at Codecademy, went to a few classes at General Assembly and generally tried to learn what people were talking about when they dropped references like Ruby on Rails, LAMP or Postgres. I honestly kept a running list of all the words and phrases that I had heard about that I wanted to remind myself to look into - an exercise in futility, I soon found out, as the list kept growing larger and larger and each subject I tried to look into had 10 more subjects I didn’t know embedded in them. It was like going on a Wikipedia page to learn something and getting lost in an endless rabbit hole of links just to grasp what that first page is talking about.

Having my brother to chat with and bounce ideas off of was invaluable. If you’re starting to explore technology without a technical background like myself, I would definitely recommend finding someone that you can chat with easily about this stuff. It was pretty intimidating for me going off and exploring on my own - I can’t imagine what it would have been like if I didn’t have my brother to help me along the way. There were some real frustrating times when I was trying to get my environment set-up (I was using a PC running off Windows Vista, so my advice would be to not do that), and I would spend a few hours on the phone with my brother just to run into a ton of error messages. He would encourage me to just keep moving through the frustration, which I may have succumbed to if I didn’t have his help. I feel blessed in this way too - my immediate family all has a technology background (my parents both have graduate degrees in engineering), and my Mom actually went from anthropology into computer science when she was younger, so she knew what I was going through. I also have some great friends here in New York that are involved in start-ups or are developers and are always willing to chat about their experiences and provide helpful advice. I’m super thankful to them (you know who you are) for patiently answering my annoying questions and generally serving as sounding boards for me as I ventured onto a new career path.

When you learn how to program, you do the opposite of knowing everything all the time. You’ll feel stupid for most of it because you’re always at the edge of your knowledge.

–Avi Flombaum

The biggest challenge for me in starting to code was to not get overwhelmed. My first question, as is common for many newbies, was “What language should I learn?” I quickly realized that I didn’t really even know what I was asking. What is a computer language? How does it differ from a framework, or a library? How do web applications differ from other applications? What is the Internet? Seriously, when I started out, I just needed someone to explain to me, at a high-level, what happens when I type in “http://www.google.com” into my web browser (a whole lot, apparently). From there, I learned the difference between front-end and back-end web development, how frameworks provide scaffolding that makes it easier to quickly build applications and how languages have evolved over time and have become more “higher-level.”

After establishing a baseline of understanding with respect to web development and coding, I learned HTML, CSS and Javascript/jQuery through the Codecademy modules and a collection of other web resources. For my server-side language, I decided to first learn Python, which was what my brother and his co-founder used to start Leaguevine. In my interview with Avi for Flatiron, he mentioned that its more important to newbies to find a language that makes sense for them to explore than to obsess over what’s the “best” language to start with. Each language has pros and cons, and focusing solely on language choice overlooks the fact that coding is about more than just the language. In fact, the Flatiron website communicates this pretty well:

The language you learn matters least. Programming is about abstractions and expressions: the mechanics of code are universal and exist in all modern languages, whether it’s Python, Ruby, or Javascript. We teach Ruby because we love it. Thinking that your choice of language matters — especially as a beginner — is like thinking that you can only write poetry in English. The beauty of poetry is in rhyme and meter, in metaphor and simile, in cadence and rhythm, not in the King’s English. We teach Ruby and the Ruby ecosystem (which includes Rails) but you’re really learning how to think, how to break problems down, how to express yourself, how to abstract ideas, and how to work together. We just do that through Ruby.

–The Flatiron School

My favorite part of that is: “Thinking that your choice of language matters - especially as a beginner - is like thinking that you can only write poetry in English.”

For me, my brother knew Python, so that was good enough for me - this way, I could ask him for help if I got stuck, which was quite often. I started doing Python modules in Codecademy, working on Learn Python The Hard Way and exploring Django by going through The Django Book. I built a simple blog site and a few other basic extentions like a contact list and a new vocab word list. None of it was particularly good, but it allowed me to tinker, play around and generally build confidence in working with code.

I found it pretty cool to fire up my localhost server, make a few changes in code, then refresh my browser to see the effects. That immediate feedback and gratification was encouraging for me. When I first got my site up and running on my localhost and could browse through a few pages, I definitely fist-pumped the air a few times. Despite that, progress was slow, and it took me way too long to fix bugs and errors. I didn’t really understand why certain bugs were appearing, and I tended to copy-paste code that I found on Stack Overflow that I hoped would fix the problem rather than really delving deep to understand the root cause. For example, in my Django app, I was having difficulty getting my CSS stylesheets and Javascript to load. I would write out some basic stylings, but they would never appear in my browser. I struggled with this issue for a few days, and eventually was able to find a solution with the help of a developer that I met at a hackathon last fall. At the end of the day, the solution was simple, but the process to finding that solution was frustrating. I thought, “It would have been more efficient to be working alongside someone that I could talk with about this issue. I would have not only fixed the bug much faster, I would have also learned more about why the problem was emerging in the first place.” This was when it dwelled on me that a more community-based, immersive approach to learning technology would be most beneficial for me (not to mention way more fun).

A friend of a friend turned me on to The Flatiron School, and I began to explore going down the immersive technology education route that Flatiron offers. A part of me didn’t want to consider the program; “I can learn this stuff on my own, why do I have to pay for this education?” I thought, pridefully. However, the more I considered potential career paths, I realized that if I allowed my prideful self have its way - wanting to learn all of this on my own and thus maintain the notion of being a wholly indepedent, self-taught programmer - I would never fully learn the skill set. Instead of actually learning how to code, the desire to be fully self-sufficient in my education would have kept me from learning. I applied to the Flatiron School in early November last year, focusing on how I came to realize that I wanted to learn this skill set and how I had demonstrated a structured, analytical thought process in the past through my work at the newspaper and in my job. After an interview with Avi, I was fortunate enough to be accepted in December.

You can’t connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something — your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.

–Steve Jobs

After hearing that I was accepted, I spent a lot of time talking with friends and family about my decision. To attend the program, I would have to leave a well-paying job and jump to a school that had just started earlier in the summer. I feel that I was on a good trajectory at my firm; I had been performing well and all indications were that my colleagues enjoyed working with me. Leaving a job that I had grown used to over the previous 2.5 years and leaving co-workers that I valued and respected were not easy decisions to make. Ultimately, however, I realized that if I were going to ever make a career change like the one I had at hand, now was the time to do it. I had worked long enough to save up some money to be self-sufficient, but not so long to feel that there would be large career transition costs. I don’t have a family to support, my parents and brother are all doing well on their own and I don’t live particularly lavishly. All signs pointed to taking the leap and pursuing a different path.

And while its only been 6 days into the Flatiron program. I’m feeling pretty good about my decision. The class has been moving at a brisk pace; I’ve found it challenging but manageable. The 11 weeks ahead will undoubtedly be filled with long nights, frustrating hours spent debugging code and countless error messages, but I wouldn’t have it any other way.