
Ask HN: How to safely switch to programming? - ac1294
I&#x27;m a third year undergrad majoring in business, engineering, and math at a top public school. I have worked extremely hard to get a perfect GPA, and I thought that would have positioned me well for an investment banking internship this upcoming summer.<p>Unfortunately, I&#x27;m getting &quot;out-networked.&quot; I understand GPA isn&#x27;t everything, but it&#x27;s disappointing to hear that I have a slim chance at banking just because I&#x27;m not emailing&#x2F;cold-calling 3 investment bankers a day. I&#x27;m working my ass off so I can get an internship where I work 100+ hours a week doing stuff I don&#x27;t even know if I&#x27;ll enjoy. Note: neither the 3 emails &#x2F; cold-calls per day nor the 100+ hours a week is an exaggeration.<p>I&#x27;ve never looked into a software development internship. I&#x27;m consistently one of the top students in my EE programming classes, but I&#x27;m definitely not as good as the kids that have been programming since middle school. But at this point, I&#x27;m sick of recruiting for business internships and seriously considering switching.<p>I came into the business school thinking it would give me a broad array of choices, but it&#x27;s funneled me to either investment banking or management consulting. I feel like I&#x27;m better suited for software development or a startup, but I&#x27;m afraid of risking a safe &#x2F; prestigious job at an investment bank after I graduate.<p>I know it&#x27;s &quot;never too late,&quot; but I feel like my software dev prospects are nowhere near my banking prospects with about 1.5 years to graduation. What should I do?
======
glimcat
Software development jobs tend not to care what you majored in if you can
demonstrate competency and experience. Your average CS senior is a VERY junior
programmer.

Also "math / engineering" is usually good enough to bypass the HR "must have
degree" wall at companies where that pertains - at least to the point that you
have the same chance anyone does to pitch them on interviewing you.

Things you can do that beat "switch majors" in terms of improving employment
prospects:

    
    
        * Summer internships
        * Part-time gig
        * Write code, publish it on Github
        * Write a tutorial article
        * Create and market a software product
    

You also have to ask yourself, what are your goals for this? Are you looking
for a comfortable W-2, or to spend some time working at startups, or to start
a business of your own within a few years of graduating?

~~~
ac1294
As pathetic as it sounds, I don't really know what my goal is. I guess I want
to find an internship this summer that is enjoyable and offers solid exit
opportunities for full-time recruiting. I know this is a lot to ask for, but I
want to highlight the fact that I work very hard -- I'm not some kid that
thinks he's smart and deserves a perfect job.

The biggest problem is I know absolutely nothing about the recruiting process,
job requirements, internship duties, etc. for programming roles. Since the
start of 2013, I've worked a bit on my coding and published very small
projects on GitHub, but I haven't done much else in terms of seeking an
internship.

I'm most worried about switching my focus entirely from banking to programming
and missing out on a banking internship. If I don't do investment banking this
summer, I basically have no chance at a full-time investment banking position.
And although I've made it sound like I absolutely hate banking already, there
is a chance I could enjoy the internship and the full-time position.

I'm pretty sure I would like a programming role more, but again, I don't know
where to start for recruiting. And I'm afraid that working for a small tech
firm this summer may not help much when I look for a full-time job after
college.

~~~
svec
You're being too hard on yourself here: it is _not_ pathetic to not have 100%
concrete goals when you're not even out of college yet.

College, and much of your 20's and even 30's, is the time where you figure
stuff out. Try business/banking - don't like it? Try web development. Don't
like it? Switch to something else. And then when you're 47 years old you'll
realize that you want to change again - and you'll do it too.

Of course that's far easier said than done; I'm not trying to tell you
switching is easy, it's not, but I am trying to tell you that you're not
locked in to any one path.

I've interviewed and hired quite a bit, and I can tell you that any
programming internship is a good internship. Having some real world experience
is good, even if I've never heard of the company you interned at.

------
patio11
Six months working in industry is worth approximately 10 years playing on
middle school hobby projects from the perspective of calculating your worth to
a potential employer. I wouldn't worry too much even if you're not #1 in your
CS classes.

------
kika
There's no such thing as "software development". It's like "math" \- a very
broad term. If you're getting good scores at engineering and math, you
definitely could switch to development, you just need to ask yourself what
exactly do you want to do? Code a complicated web app, write a network stack
for realtime OS, implement complex 3D graphics algorithm on current 3D
hardware, write embedded code for the next "Tea kettle with SNMP monitoring"
project on Kickstarter or something else? These are quite different skills,
these projects go at a very different paces, require different approaches and
so on. You can do very well financially on each and every of them, but you
need to like what you do, programmers rarely can get away with 9-to-5 thinking
about code and 5-to-9 thinking about women, sports or beer. If you're a good
programmer you're thinking about efficient priority queue implementation even
when you watch superbowl.

------
dasil003
Let me give you a bit of tangential advice that I don't see anyone else
mentioning.

You're on a good track. Stick it out. It's hard to get into banking/finance,
so do that first while you have the chance just to see if you find something
you like there. The software / product development world doesn't give a shit
about credentials, so if that's where your passion lies you can also go there
later.

But here's the advice: don't let them put the golden handcuffs on you. If you
get out of school making $100k it's real easy to start wearing Armani and
lease a BMW, and before you know it there's no job outside of finance that
will pay your bills. Instead: buy off the discount rack, get a Honda, and save
like crazy. If you end up hating your job, 5 years could be enough to build a
nest egg to allow you to bootstrap your own startup.

------
dkersten
Just a few observations (without ever having experienced this - didn't go to
business school and was never interested in investment banking, so don't know
the industry):

 _just because I 'm not emailing/cold-calling 3 investment bankers a day_

Then email 3 investment bankers a day. You should be able to do this without
spending more than a few minutes on each one.

Create a template once and then personalise it as needed. In my current
startup, we've emailed many hundreds of people over the past four weeks. It
doesn't have to take a lot of time. It absolutely can be done without being
such a chore to eat too much into your other time. Also, if you cannot do
three a day then do two or even one. Or even one every two days. Anything is
better than none a day.

 _I feel like I 'm better suited for <..snip..> a startup, but I'm afraid of
risking a safe / prestigious job ..._

Unfortunately, in my opinion, startup and risk aversion do not mix well.
Startups are risky - that's simply the reality of it. If you are risk averse,
then startups absolutely are not for you.

Founding a startup is a hell of a lot of risk (its still worth it IMHO though)
and being one of the first few employees, while not quite as risky, is still a
lot of risk because you don't know if your job will still be there in a few
months or a year.

Personally, I think the startup experience is worth it. I can't see myself
working anywhere else now. But its definitely not for everyone, so consider it
carefully.

\---

Having said that, you can absolutely get into software development, but if you
want to have lots of options you will want to build a network here too. Life
is all about networking. I don't think its quite as drastic as having to email
three people a day though - I'd start by attending lots of programming user
group meetups and conferences - that's where a large portion of my network
came from.

I know people who have never studied at all who are doing great - the key to
their success is that they have good strong github profiles: you will have a
degree from a good school, if you can also create a portfolio of projects
(personal or open source) then you will be in a really good place. Its not
necessary, but its very helpful. If you can get a summer internship, that also
helps a lot. Basically, anything that demonstrates experience writing code
(outside of uni projects...) is a very good thing.

------
w_t_payne
Don't focus on the competition. Finding your first job is always super tough.
I know it seemed impossible when I was in your situation. (I felt so
desperate!), but somehow things work out in the end. In the current economic
climate, it might take a while, though: don't be upset if you don't get a
career job immediately; it can take a year or two sometimes.

You have the grades, so stick with your current course. You do not need a
computer science degree to build a career as a software developer. Practical
hands-on experience counts more than qualifications.

I believe that a multi-skilled / cross-disciplinary software engineer can
expect to earn more money over the course of their career than a straight-up
developer. The skills shortage (and therefore the demand) always seems to lie
in-between disciplines.

Software development skills + math + business gives you a possible (eventual)
avenue into quantitative development in the financial industry, which can be a
lucrative career path should you chose to pursue it. (Be prepared to spend a
significant amount of time (10 years?) building up skills prior to making the
move, though).

Once you have finished your degree, you might consider doing a software-
oriented masters degree, or spend 2-3 years with a small company picking up
the basics. Your multi-disciplinary skill-set should stand you in good stead.
If you cannot find a company willing to hire you, start one! Even if it does
not work out, that experience will be golden. If you don't have any ideas, ask
in this thread. I have a ton that I am never going to pursue. I am sure that
others will pitch in as well.

------
GrinningFool
Well, that depends.

Can you visualize the storage of an array?

Can you look at this basic construct and build its state in your mind?

    
    
        for (i = 0; i < 10; i++) 
          print i
    
    

(I'm assuming you have some familiarity with the structure based on your
statements.)

Can you walk through it in your head, and understand what it will print, when,
and why? Not because you were told what it would do at some point, or because
you ran it - but because because you can 'see' it? Do you take some amount of
pleasure in doing the above?

If the honest answer is "no" then you'll never be more than a mediocre
programmer. There is a lot of work for such programmers out there, and I'm
sure you'll find employment - but I suspect the only thing you'll be happy
with is the paycheck. You'll also never progress beyond mid-level at best,
unless at a large corporation where seniority counts more than ability.

If the answer is "yes", then I think changing over has a very good chance of
leading you to an enjoyable, lucrative career path. And you're starting off
far ahead of most of the 'coders' entering the work force since the late 90s
and early 00s.

------
kephra
I would advise to bolster your banking value:

Add machine learning and data mining to your skills. Play around with MQL4,
and show them your chart. Get hired as a quant and earn tons of money.

~~~
eru
The road into investment banking via math and software development is probably
easier than via a straight up vanilla banking job.

------
akst
Don't worry if you haven't been programming as long as the other students, if
you invest enough time you'll likely by pass the other students who have been
being programming since middle school. A lot of these people are likely
amateurs, and I'm willing to bet they've only done a bit of Basic programming
here and there. I'm sure there are exceptions to that, but that's just my
experience. I switched into my degree from an arts degree with no programming
experience, and a year later I'm one of the better students in my classes.

Best of luck with making your decision

------
nolite
No job or career is safe. Stop clinging to this antiquated notion that you can
get somewhere and chill for the rest of your life. It sounds like you want
money. Whatever you do, you're going to have to hustle for it. So stop
following the crowds (meaning, whatever you're not personally driven by - be
it IB, Consulting, or even startups) and jump in and make your own direction.

If you fall and screw up, its ok.. get up and do it again. Time to grow up

------
ktran03
Based on my experience, and now putting myself in your position, I would just
finish the engineering/business/math degree, and then pursue a career in
software when you graduate.

I did my degree in mechanical engineer (mechatronics), and didn't have too
much trouble finding employment in software. I graduated with no internship or
professional experience. My graduating semester, I realized software 'was it',
so I just strapped down and built a product (made no money) and released it
(ios/rails/AWS). A few more months studying mobile development obsessively, I
landed my first paying gig. It's been about a year since, and I couldn't be
happier with my decision and progression.

But to be fair, my major heavily involved programming various
robots/devices/languages since 1st year, so I had lots of programming
experience upon graduation. But I imagine you are in a similar situation, or
could be if you wanted to.

Since this is HN, I wouldn't be surprised if you have a curiosity/enthusiasm
with trying your hand at the startup lottery. There's no better background to
have than CS/Engineering for this.

So my advice is: find a sector from software you find interesting, build
something and ship it.

------
vijucat
Software development is not an easy gig, either:

a) those of us who are good at it have spent years and years at it

b)the field keeps evolving at a rapid pace. Yesterday, it was Java and XML and
SQL. Today, it's Ruby, cloud, and Docker. It's a pain in the ass to keep up
unless you are genuinely interested, or carefully find an evergreen niche, or
a gig at Google which will compensate for not staying sharp.

c) remote jobs are on the increase. I am the happy employer of an IT person in
India who wants a non-traditional job (he wants to work only half a day), but
has 10+ years of experience, is fairly intelligent (has a mathematical
conjecture to his name), has worked in Lisp, has a degree in AI, and works for
$833 per month. All the brouhaha about the H-1B visa is direly misplaced; the
tournament is on the other court : outsourcing via remote employment. There
are a ridiculous number of job sites that advertise remote jobs, and a good
number of employers are able to get themselves to trust remote employees
enough to reap the cost benefits. In IT, you compete with the world,
literally. In traditional banking and other "locale specific" / seat-warmer-
is-a-must jobs, you probably only compete with the rest of the folks in your
city.

d) The barriers to entry to a programming job are falling every single day.
Previously, having a degree was a must. Now, you could be a dropout with great
self-taught Ruby on Rails skills, and you're in. This is a positive IMHO;
people in programming are much more ready to break convention and I'm proud to
be part of such an industry. I have tried to help a couple of waiters and
electronics salesmen transition to a programming career, too. But it means
that the field is that much more competitive, too.

Sorry to sound negative; I really don't want to encourage you to get into this
field unless you are genuinely passionate about it.

------
Bahamut
Software development is a pretty safe job these days - I would even dare say
more attractive IMO. I would even say that getting a good software engineering
job isn't all that difficult - getting a first position in anything is
difficult anywhere regardless, and software development doesn't care about
your degrees. The only thing employers really care about is whether you can
write code with the capacity of improving to the point where you can write
good code.

I've been in a somewhat similar situation, although later in my life (left a
top 15 math grad program, unsure about what to transition into). If you want
to get into software development, just start learning it! It doesn't matter if
you're not initially at the top - you should have confidence in your ability
to learn quick, and your solid logic/problem solving skills, which are musts
in software engineering.

You have a massive advantage over me - I deferred answering this question
until I left my PhD program, and took about 1 1/2 years to answer it fully.
Less than a year of working in web development, I transitioned from being a
junior dev to a senior dev. You can easily set yourself on a faster path since
you have time on your side.

Also, keep in mind that there are many companies out there that you likely
don't know about. Most companies that recruit from colleges are big. That's
not the case most of the time in the real world though - the big companies are
just the ones who have the resources to recruit from colleges themselves. The
majority are looking locally for talent. Networking is the name of the game,
so going to meetup groups (especially meetup.com) for what you're interested
in is an easy way to net a payoff in getting interviews, especially if you can
sell your credentials to people - if you have to fly to cities & have the $ to
do so, it would be well worth the investment.

Just my two cents anyhow.

------
laughfactory
Your conclusion is probably true. Though I didn't go to a "top public school,"
I followed a similar path and had a similar concern at about the same point in
my path through college. I should've chosen otherwise, but instead I chose to
finish my economics degree and find a job working for a bank. I can assure you
that there are plenty of good jobs working for banks all across the country.
Sure, they may not be the elite positions in investment banking on Wall
Street, but lets be honest, most people who work in banking and finance don't
work on Wall Street. So if you continue to pursue you existing path, you'll
find there is plenty of opportunity in banking. Depending on the role and the
area, entry-level pay runs between $40-$50k. After a couple years experience
you can generally get $60k. It's not the mountains of riches you dream of
while in college, but it's a good living.

That said, I've discovered on "the outside" (of college) that I don't really
like being the analytics guy, the banker. I'd much rather build products, make
things, have skills which enable me to _do_. Often, work in banking (be it
sales or analytics or underwriting or finance or whatever) can feel pretty
disconnected from the real world. For instance, I've worked in risk
management, and now in credit administration, and while I'm very good at what
I do, it doesn't excite me the way building products for the web does.

The key, in your position, is to determine what drives you. Do you like being
the analytics/numbers/finance guy who is a whiz with spreadsheets, analytics,
finance/accounting, etc? Or deep down do you harbor the desire to make things:
software, web apps, mobile apps, etc.

At this point, put aside concerns about making tons of money or being
"successful" after graduation. Thinking about those things will just muddy
your thinking. And the truth is that there's good money to be made in either
arena.

Think about whether you want to analyze or build and I think you'll have the
answer to your question.

In my case, I've often wished I would've made the transition no matter the
cost, so that I could be working in software development now. Since I didn't I
now have to pursue a long-game of developing the skill-set on my own and
eventually slowly working my way into the field.

It sounds like you expect all banking positions to pay a ton, be on Wall
Street, require 100+ hours a week (and 3 emails/cold-calls a day), etc. This
is certainly not the case in any of the non-Wall Street positions I've worked.
I've always worked no more than 40 hours a week, received decent benefits,
good salary, paid bank holidays, competent co-workers, etc.

I'm sure positions like you describe exist, I just don't think they're
indicative of the vast majority of the banking and finance industry. Broaden
your perspective and you might like what you find.

If not then yes, commit to change gears. Particularly if you really enjoy the
software development stuff (like I always have). Don't focus on whether you do
well at it, but instead on whether it is rewarding to you. If it's not
rewarding to you (software development related classes) then you'll hate
working as a software developer. However, if you find the programming you do
in those classes rewarding then definitely make the switch, because the
banking/finance world can be a very frustrating place for someone who'd rather
be making things with code. You have some semi-technical skill-sets which may
or may not get any respect, there can be a lot of egos run rampant, and banks
are notoriously slow to adapt and innovate.

That said, if you can find meaning in the banking line of work, it's not a
"bad" gig per se, it's just not quite as satisfying personally as programming
is.

~~~
ac1294
Thanks for the advice. It seems as our paths are very similar.

To be honest, my biggest interests are in statistics, programming, and finance
(in that order). The most natural intersection seemed to be working at a
proprietary trading firm. Unfortunately, I applied to over 25 prop shops with
no success. I haven't heard of a single alumni from my school in trading; they
typically only hire out of MIT, Harvard, Stanford, UPenn, etc.

After no luck with trading, I figured banking would be the next best option
with numbers and finance.

Just out of curiosity, do you program in your free time? Do you think you'll
eventually make the transition from banking to software development?

~~~
stephenbez
ac1294: Could you put your email address or some way to contact you in your
profile? I want to send you a message.

~~~
ac1294
Done

------
RomanPushkin
I think there's a huge difference between programming and solving your
problem. You just want to earn money, right? So just start thinking about your
SaaS application. Something people may need, something easy. And try
implementing it.

The best for you would be using HTML + CSS + JavaScript. You can use node.js
on server side, it's on JavaScript. I think in 6 months you'll be able to
build things you want.

If you want to switch to programming to earn money by working for someone, I'm
afraid I have bad news for you. You have to spend a lot of time, cos others
probably may have much better experience than you. And you will never earn
enough. Salary is salary.

To be short: build your simple project, start learning with practice, not
theory. Don't think about being software developer for hire.

------
gohwell
Investment banks rely heavily on technology. That said, there's a lot roles in
their tech department that are not programming positions. There's business
analyst who interface with the business gathering requirements, project
managers who guide the dev team and make sure they don't go off track, and
functional analysts who convert business requirements into use cases. Theres
QA engineers that manage the testing and releases of these systems. These are
all technical jobs, that require candidates to who can learn and understand
how large systems operate but don't necessarily need to program. It helps but
not necessary.

------
olegious
There are more jobs in tech than only software development. Have you
considered other positions? Product management is one option, especially of
you have both- the business background and a knowledge of development.

------
bereft_orange
If you don't have an idea for a project (I totally didn't), find an open
source project that you like, start contributing to it and get to the point
where you can get accepted as a core developer / maintainer. It can be a great
way to show that you have chops (and you end up doing many things that are
important dev skills, like code reviews, API design, handling a legacy
codebase, etc.). Plus, it's fun and can be a good way to meet people.

------
adamzerner
I wrote these for high school students, but I think they'll be useful to you
too:

[http://www.collegeanswerz.com/i-graduated-high-school-now-
wh...](http://www.collegeanswerz.com/i-graduated-high-school-now-what)

[http://www.collegeanswerz.com/the-process-of-exploring-
your-...](http://www.collegeanswerz.com/the-process-of-exploring-your-
interests)

------
seferphier
I hope you would seriously think hard about what you want in life.

You sound to me that you are a smart, bright and hardworking person. But for
once in your life, you found yourself out-competed and out-networked and you
are trying to "pivot" to another career. There is nothing wrong with that.
Think hard about what you want. Are you switching to another career because it
is prestigious?

------
erikb
I think if you can work your ass off you already have an edge compared to most
software guys. Not everybody needs to work at Facebook.

------
shawndrost
[http://hackreactor.com](http://hackreactor.com)

I'm a founder -- AMA!

------
dorfuss
Hey, I'm 27, some time ago graduaded in cultural anthropology and 2 months ago
started studying CS :) It's never too late to get involved into someting you
feel passionate about. Good luck!

------
dav-id
Perhaps you should look into the investment banking divisions who are more
algo focussed or those companies who provide services to those firms. That way
you will have the best of both worlds

------
rajacombinator
For a young college grad who doesn't know what to do with themselves, banking
and consulting are great options if you can get them.

------
smegel
So why not go into EE? Its one of your majors after all, and less likely to be
outsourced to India.

------
slosh
get [http://teamtreehouse.com](http://teamtreehouse.com) few months of
learning and you'll be able to make more money than a lot of 40 - 50 year old
regional presidents at most companies.

------
pranavpiyush
Consider dropbox.com/bizops :) get in touch if interested...

------
umren
Just start to write code. Alot.

------
adultSwim
Talk to a professor.

------
michaelochurch
Why was this thread deleted?

~~~
jk4930
I assume your post got killed for the more explicit words you used. There were
some of them. Anyway, I enjoy your writings. :)

