Unfortunately, I'm getting "out-networked." I understand GPA isn't everything, but it's disappointing to hear that I have a slim chance at banking just because I'm not emailing/cold-calling 3 investment bankers a day. I'm working my ass off so I can get an internship where I work 100+ hours a week doing stuff I don't even know if I'll enjoy. Note: neither the 3 emails / cold-calls per day nor the 100+ hours a week is an exaggeration.
I've never looked into a software development internship. I'm consistently one of the top students in my EE programming classes, but I'm definitely not as good as the kids that have been programming since middle school. But at this point, I'm sick of recruiting for business internships and seriously considering switching.
I came into the business school thinking it would give me a broad array of choices, but it's funneled me to either investment banking or management consulting. I feel like I'm better suited for software development or a startup, but I'm afraid of risking a safe / prestigious job at an investment bank after I graduate.
I know it's "never too late," 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?
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?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.
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.
You don't have to know what you want to do with the rest of your life. But my advice to you is to pick something and go hard for it. Don't worry about whether you're making the right choice. Just make sure that whatever path you take, it's something you're going to learn and grow from. The only way you can lose is by not making an affirmative decision on your current direction. You're young as hell, there's plenty of time to pivot. How do you know when to pivot? When you have ceased to meet new people, learn new things about yourself, build new skills, and enjoy yourself.
I could be 8 years into some career job right now. Maybe I missed out on an opportunity to really press my claim in some particular direction. I don't think so though, because instead, I've lived in 8 different states, seen several different career paths, met fascinating people, built soft and hard skills, and learned an incredible amount about myself and what I value.
If you want to be a programmer, you can take some advanced level MOOC classes today. Overcommit yourself to it for a little bit, beyond your coursework. You can try to fix a bug in an open source product you use. You can volunteer your time for a startup in your area, and try to learn the ropes. Just start building. If you can make it clear that you're the type of person that will dive in head first to a tough problem and find a way to scrap together a solution, you will put yourself in demand in the tech world.
Good luck, and feel free to email me if you need any advice.
Also, don't forget that "working hard" is more of a signal than a legitimate ethic – a signal that you can be used. Try to take some time for yourself. Walk around and really look at the world. Think about the meaning behind things. In the time you spend doing this you'll acquire wisdom that will be essential later on.
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.
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.
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.
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.
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.
Best of luck with making your decision
If you fall and screw up, its ok.. get up and do it again. Time to grow up
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.
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.
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.
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.
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?
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.
http://www.collegeanswerz.com/i-graduated-high-school-now-wh...
http://www.collegeanswerz.com/the-process-of-exploring-your-...
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?
I'm a founder -- AMA!