Settings

Theme

How I left a 4 year career in finance and became a software engineer in 5 months

gulnara.svbtle.com

52 points by davj 12 years ago · 66 comments

Reader

pekk 12 years ago

Meanwhile, people with years of experience might have trouble getting hired at all. Resume directly in garbage, among other reasons, for not using the word "engineer." It's not about skill or merit, it's about image and connections.

AshFurrow 12 years ago

Here in Canada, you need to write an exam in order to legally call yourself an "engineer" – it's a protected term.

  • ArbitraryLimits 12 years ago

    In California the protected term is "Professional Engineer" - you have to pass accreditation to call yourself that. No civil engineer can find work without it but no one cares whether software engineers get it.

    By the way, as part of a cost-cutting measure many years ago, the state government standardized on a single certificate form for all professional certifications, which means the PE certificate looks exactly like the "Certified Hair Technician" certificate the barbers at Great Clips are required to display at their work area.

  • roel_v 12 years ago

    Why is it that any time anyone mentions 'engineer', some Canadian finds it neccessary to mention this? Yes yes we get it already, but the rest of the world isn't so hung up about it.

  • hnrandom 12 years ago

    No, you can call yourself whatever you want. A janitor can call himself a "custodial engineer". You're probably thinking of the "P. Eng." designation beside your name.

    • aristomc 12 years ago

      Ash is right, in Canada, you can't state that you're an "engineer" without being accredited by a provincial body, at least in Quebec it's pretty strict. However, it doesn't matter in the context of this article and it shouldn't detract from it either.

      Really great stuff and nice hear about a career move that made you happier :)

      • Pxtl 12 years ago

        Ontario is the same - the term "Engineer" implies a P.Eng and is therefore protected.

      • oijaf888 12 years ago

        What are locomotive/train engineers called in Canada? Like the guy driving the train.

        • kcbanner 12 years ago

          Conductor

          • oijaf888 12 years ago

            On passenger trains what are the people taking tickets called then? I've never heard the person driving the train to be called a conductor before since that's usually (at least in US terms) a demotion for them.

  • jonny_eh 12 years ago

    It's just an exam? What the hell did I do for 4 years to get an engineering degree?

    • DougWebb 12 years ago

      In most/all of the US states, you have to take an exam in order to call yourself a Professional Engineer, which is required for a lot of engineering professions and/or positions within an engineering organization.

      Your four years of schooling to get an engineering degree had plenty of exams, spread over the four years. At most you only had to study for one or two of them at a time. The Professional Engineering exam covers everything you were supposed to learn during those four years, all at once. You can't cram for a test like that; you have to actually know things. That's the whole point: did you absorb the knowledge completely, or did you just get by from test to test?

      It's done this way because, for most Professional Engineers, decisions have to be made which can cost people their lives if mistakes are made. You gotta know what you're doing before you're allowed to make those decisions.

      For most software engineering mistakes aren't nearly that critical, plus for most organizations doing software development preventing bugs to the same degree that a Civil Engineer prevents bridges from failing is too expensive and not worth it.

    • mbell 12 years ago

      Even in the US, it's more than that for anyone that actually needs a PE license. It's usually a test, then X years of experience, then another test. More similar to an electrician's licence than anything.

    • avenger123 12 years ago

      Exactly. Love to know this exam for sure. I'm sure the OP meant the ethics exam one takes after they've done their member in training work upon graduation.

  • benched 12 years ago

    Every damn time with this stupid observation. It's like an unconquerable memetic disease. The term 'Software Engineer' is a single term with its own commonly understood meaning. Commonly understood, except when someone wants to wax pedantic about that other specialized meaning of the word engineer. It is not meant to be part of a series like 'E.E', 'Mech.E.', 'Civ.E.', 'Software Eng.' It is not a case of people trying to specify which subtype of engineer that they are. It's a single term that just happens to be made of two words, and means the same thing as 'Software Developer' (regardless of individuals occasionally trying to post-rationalize it by giving it 'more rigorously architectural' connotations). You might as well argue that 'application windows' aren't windows, because you can't see through them, and they didn't evolve from the other kind of window. Engineering is a fine metaphor for much of what we do with code, data structures, data flows, transformations, and so on. Please, stop the madness.

kyro 12 years ago

Damn good job. Genuinely happy for you, I think more so because I can relate so closely.

I've made the very tough decision to not pursue a residency after medical school and to finally commit to jumping into the startup world. It's both really frightening and exciting to go in a completely different direction after dedicating 4 years of my life to rigorous education. I graduate in May, so I've been trying to absorb as much information and to develop as many skills as possible in preparation for the leap. I'm hoping to perhaps find some good opportunities during Startup School weekend.

So I really commend you for making the jump. And thanks for writing about it. It's encouraging and reassuring, especially since I've been told I'll end up homeless if I take this risk.

  • jasonz 12 years ago

    kyro - I want to congratulate you on your decision! I went through the same thing (graduated in 2011) and it was indeed very difficult at the time. Over time your friends and family will come around and realize you made the best decision for yourself. Work hard, find a great mentor, and enjoy the ride !

    • lucidrains 12 years ago

      Oh wow there's a couple of us? Are u in the bay area? We should get in touch as well and share stories and our ambitions!

  • lucidrains 12 years ago

    Hey kyro, me and someone else I know here are in the same boat! Get in touch!

  • md2be 12 years ago

    My cofounder's residency is making it impossible for her to continue with our healthcare startup. Write me.

welcomebrand 12 years ago

While I commend the drive to switch to career it is a little scary that it's apparently so easy to become a $100k engineer in 5 months in SF.

Reading HN from the other side of the pond in UK sometimes I get the feeling that there's more money than sense flying around the startup world and that this sort of switch to work in this startup ecosystem is why there are so many dreadfully poor app ideas that should never see the light of day being funded with millions of dollars of VC cash.

I may just have a slightly distorted view of startup world but is it really that easy to score a highly paid job with so little experience because they're so desperate for bodies who can write some code or is OP someone very talented who's just rolled with it and got very lucky?

davidbrear 12 years ago

Just enough to be dangerous...

  • jonny_eh 12 years ago

    What are you saying? We should stop training and hiring new programmers?

    • noir_lord 12 years ago

      I think in his condescending way he is implying that 5 months is just enough time to teach someone enough programming to be dangerous.

      The hard part is I think he might have a point, there is a lot more to been a professional software engineer than I think can reasonably be taught in 5 months (even if you spend that 5 months learning 20 hours a day 7 days a week).

      Of course this is all entirely my own opinion, I've seen evidence neither one way or the other to back it up but if I where hiring a software engineer (lets say a web developer because that's mostly what I do these days so the most likely hire I'd make in the near time).

      This is at least what I'd expect of someone calling themselves a software engineer :-

      At least two programming languages (I don't really care what they are a good programmer can be competent in any of the major web languages fairly quickly).

      A solid grasp of HTML, CSS and Javascript (I don't care if you have to google some of this stuff but you should understand the DOM, the CSS selector model and enough Javascript to write a jQuery plugin)

      A solid of grasp of relational databases including the following (primary keys, normalization, key constraints, indexes - I'd also expect but not require they'd understand some of the internals and how a query planner works) and a solid grasp of SQL.

      A solid understanding of DBAL's, ORM's.

      Solid grasp of common design patters (active record, repositories/entity, unit of work)

      Solid grasp of MVC and the pro's and cons

      Good understanding of either Windows or Linux.

      Good understanding of source control.

      Good understanding of why comments are important.

      Good understanding of unit testing/integration testing.

      To use an analogy (I deal with lots of business people, analogies help) You could teach someone to lay bricks to a good standard in 5 months, You could not teach them to be a safe civil engineer.

      • oijaf888 12 years ago

        Your list seems very targeted towards website development and not so much towards a lot of other parts of software engineering. I doubt many software engineers who focus on embedded systems would know much JS or those who focus on trading software, etc.

        • noir_lord 12 years ago

          I specifically say in my post "lets say a web developer".

          That is where my area is, I've no idea what I'd want for an embedded developer but I suspect the list is no less complex.

          • DerpDerpDerp 12 years ago

            You'd need to know a lot more about data structures, memory management, hardware in general, and probably be at least passingly familiar with the concepts of verified software and the mathematics underpinning computer science to work on embedded systems.

      • csomar 12 years ago

        Let's see

        - Two programming languages: JavaScript and a Server Side languages (rails) in 5 months is not impossible.

        - HTML/CSS/JS: A couple weeks.

        - Databases: A couple days.

        - Linux: Learn the commands on the go on these 5 months.

        - Git: A night for the basic add/commit/push/pull. Maybe a couple more nights for branching.

        - Unit Testing: A couple days at most.

        To use an analogy (I deal with lots of business people, analogies help) You could teach someone to lay bricks to a good standard in 5 months, You could not teach them to be a safe civil engineer.

        Not really. The average student takes 36 months. A more enthusiastic and invested one can perform better than the average in 5-6 months (in my opinion). Don't forget that the guy has industry experience even if it's not related to the field in question.

        • noir_lord 12 years ago

          The "guy" is a girl.

          A couple of days to learn SQL, triggers, views, tables, database theory...oh dear god.

          Unit testing a couple of days.

          I'm sorry I'll give people the benefit of the doubt usually but haha I don't want to live on this planet anymore.

      • March_Hare 12 years ago

        I agree excluding the HTML, CSS and Javascript bit. Lots of great engineers out there that don't ever deal in this bit of software.

henrik_w 12 years ago

Congratulations! It is nice to find your calling (if that's what it is for you). I've been programming professionally for over 20 years, and I still love it for a lot of reasons. Mostly because I get to create every day, and the programs I create provide real value to lots of people. Still quite a thrill! I've listed more reasons in "Why I Love Coding" http://henrikwarne.com/2012/06/02/why-i-love-coding/

tenpoundhammer 12 years ago

This is interesting, I immediately thought wow this couldn't possibly give you enough training to be a software developer. However, now I'm wondering if most of my college education was worthless.

Seriously maybe this program condensed all the necessary experience into 5 months, while the traditional academic path is poor at creating career coders in 4 years. I would totally believe it. There should be some head to head competitions.

jonmb 12 years ago

My fiancee and I are both studying computer science at a large university. She's graduating in late 2014, I'll be in early 2015.

In terms of employment as a developer, sometimes I wonder if we would have been better off attending one of these San Fran developer schools. I wonder though how much of the fundamentals do they learn? Do they ever hear the words "Big-Oh"? Do they know what a binary tree is?

And then I wonder -- does it matter? They're getting $90k offers. Perhaps these things don't matter as much, at least for web development.

So I suppose this is one of the benefits of a traditional path: you're well prepared for many types of development, not just web. The web is pretty cool though. :)

--

Question: if one wanted to teach themselves at home, is there an online curriculum that covers the same topics as these schools do?

  • kyro 12 years ago

    There is no shortage of online classes for teaching how to code, from Udacity to Coursera to Codecademy to OCW, but what these lack, which I believe to be the most important part of learning effectively, is interaction with teachers, mentors, and other classmates. At times I'm surprised no one seems to be attacking that part of online education.

    • jonmb 12 years ago

      Right, I know of Udacity and Treehouse and those other services, but I don't believe (just from checking them out) that they go into the same kind of hands-on training that a 10 week, in-person 12 hour/day course would.

  • nicolethenerd 12 years ago

    It's not a full online curriculum, but the pre-work for the Flatiron school (http://prework.flatironschool.com/) is a pretty solid introduction to the basics.

kingnight 12 years ago

My initial reaction to this was to pick it apart, but really, that would be stupid of me since it doesn't deserve it. There is value in the piece and it was a nice story. Congrats as well.

  • avenger123 12 years ago

    Agreed. Do what makes you happy (or at least the least unhappy :) ). Lucky for the OP he found out what that was.

joshanthony 12 years ago

There's a lot of comments here that are like "you can't be an Engineer, I spent years getting there. It's not that simple. Grumble grumble grumble... etc..."

We should be welcoming him into our field! But instead we're too focused on the terminology he used.

I think it's fantastic that the author is now in software and programming. Software development is one of the most affordable ways to change the world. All you need is a laptop and an internet connection :D

swayvil 12 years ago

Congratulations on the new job. I'm sure that sitting in front of a computer all day like some kind of fleshy office appliance was getting really old - oh, wait.

  • jmduke 12 years ago

    When your biggest complaint about your full-time employment is that you are too sedentary, you are in a much better place than millions of other people.

    • Apocryphon 12 years ago

      Not to mention that we are living in an age of rapid innovation, including standing desks.

      • rafski 12 years ago

        Benedictine Monks used standing desks for their tedious book rewriting.

late2part 12 years ago

I got news for you son. 4 years is not a career.

I'm happy you're doing something worthwhile now, and glad you made the switch.

kiddz 12 years ago

Nice post Gulnara :) As one of the first people you interviewed back when you had the webcast, I think it's also clear that you have an infectious personality that now pairs well with your new skills. Quite brave too, to not stay in SF and come back to DC when your transitioning into a cs career. Kudos, some more.

ninjakeyboard 12 years ago

I did the same thing - I moved from international business into technology on transportation systems overnight actually - I learned on the job in big enterprise. Now I'm a full on scala/akka developer and don't regret the change one bit.

To me the greatest joy is actually working on my own projects.

myk7 12 years ago

Are there any other good in-person programs like this around SF that anyone could recommend? This one sounds great, except that I am a male which is not allowed apparently.

marincounty 12 years ago

Why is the $12,000 "Coder" school only for females? It does remind me of the store keepers who sold miners overpriced goods for their dream? I have a feeling, if these women are hired; it has more to do with companies wanting the hidden benefits of a female's presence in the office?

This term Coder has always irritated me. I'm surprised it's not on Tee Shirts yet? "I'm a Coder", or better yet, "I'm a Koder". All very cute.

Right now--I guess in San Francisco--you can go to one if these schools, and land a cute job as a Coder--at 90K?

I wonder if these people will be employed when the bubble ends though?

kcbanner 12 years ago

In Canada, you can't call yourself an Engineer unless you are a professional engineer.

truthteller 12 years ago

must be nice to live in a country with such a strong demand for new programmers. interest from 20 companies and a 90k starting salary. even when you adjust for the cost of living that seems crazily high...

ausjke 12 years ago

sounds like a good article for hackbright, is there something similar existing for guys?

curiouslearn 12 years ago

Really nice story.

a3voices 12 years ago

>Once I realized that I enjoy staring at hundreds lines of code trying to figure out where the bug is

I agree it's fun at first, but once you do it for a few years on a daily basis, it gets old. I suppose most things in life are like this though. Maintaining enthusiasm about work is difficult, for me at least.

  • javajosh 12 years ago

    Enjoying the myriad little mysteries we call "bugs" is key to being a good programmer. Bugs that we create are opportunities to understand the system better - it's a signal that there is behavior we don't understand.

    • tieTYT 12 years ago

      > Enjoying the myriad little mysteries we call "bugs" is key to being a good programmer.

      I disagree. I hate bugs and I do everything I can to prevent them from ever occurring. To me I find it fun to get better and better at preventing bugs.

      • Danieru 12 years ago

        I do not think javajosh would disagree with you on that. I think he was suggesting treating bugs as opportunities for learning, in fact I think this feeds into your point.

        • henrik_w 12 years ago

          Absolutely agree - bugs are definitely learning opportunities. I wrote a whole blog post about this - "4 Reasons Why Bugs Are Good For You":

          1. Each bug can teach you something

          2. You start to write code that is easier to debug if you have done a lot of debugging, because you know what you want to see to help the debugging effort.

          3. Both you and the customer are happy when you find and fix a bug.

          4. Solving problems is fun.

          http://henrikwarne.com/2012/10/21/4-reasons-why-bugs-are-goo...

        • javajosh 12 years ago

          Yes indeed. Thanks for pointing that out.

      • javajosh 12 years ago

        Heh, don't get me wrong: if I never wrote a bug again I'd be happy (more than happy!) But when I do write a bug, it meant that either I had a momentary lapse of memory or coordination (like a mispelling) or, and this is important, that I don't understand how part of the machine works sufficiently - either a dependency or my own code. What makes this particularly interesting is that there are many perspectives on a code base. You can look at it's static structure, it's dynamic structure, it's distributed structure, it resource allocation, as a collection of signals, you can look at it from a maintainability perspective, extensibility, how easy it is to partition work across team, how easy it is to grasp. You can look at a piece of software as a collection of artifacts, etc.(Indeed, it seems like the list of ways you can examine a codebase is monotonically increasing year after year! :)

        To bring it back to bugs, a bug can exist in any of these "views" of the system, and sometimes (often) simultaneously in several of them. That's what makes them such a rich signal for our own ignorance.

        (Quick editorial: I think that's why rails, Play and meteor have gone/are going in the right direction of removing, sometimes dramatically, some of the ways you have to view your system, and incredibly tight tool integration. People just don't - can't - keep so many views of the system in their head at once. We can't think about the build and low-level plumbing, for example; we need a "synchronization" abstraction. We want the build to just work. We want design- and run-time tools that are easy to update, configure and run. And so on. Meteor is the bees knees, for that reason. Although, ironically, I find my Meteor code to be incredibly bug ridden. Writing JavaScript against new libraries is fairly painful if you're used to learning through IntelliSense!)

  • yxhuvud 12 years ago

    That may get old, but what doesn't get old for me is the journey to discover how something can be improved, in structure (to avoid staring at hundreds of lines) or performance.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection