I have a BS in mathematics. After doing a summer research program, I realized that I love programming and that I want to pursue it. I have only taken a handful of programming classes: Java I, Java II, C++, and Data Structures and Algorithms. I have two options:
1. Apply straight to graduate school in computer science.
Pros: Saves time, can be working within a couple of years
Cons: Will likely not get into one of my dream schools (Stanford, Harvard, etc.) or get funding with such little in my background. Would probably have to take prerequisite courses at a masters program for lack of background.
2. Take an extra 1.5 years and finish a computer science BS, and then apply to a graduate program.
Pros: Will have a better chance of getting into a top masters program and get funded. My background in CS will be stronger and I'll know more programming concepts. Graduate school will be easier due to better background. Will have the opportunity to do summer research and internships before graduate school.
Cons: Will go into up to 9k in debt (currently I am debt free) to finish degree. Will take an additional 1.5 years, which has an opportunity cost of approximately 75k in missed potential earnings.
My end goals are to get into a top CS program with funding (top 20 school) and then to get a cool job in the industry.
If you want to work at Facebook or the like you have to maximize your chances of success. $9,000 in debt in the long run would be a drop in the bucket to do so. But if in your most lucid realistic moments you can't be confident that even a BS in CS would get you into an elite program or that a spot at such a program would turn into a great job, you would do well to take the risk-averse route. It's all about how reasonably confident you are that you can show the skill to make those jumps and how much risk you're willing to take to get the dream job. (I trust you've already done the research yourself to be confident about your $9,000 figure and that you wouldn't get into an elite CS program without a BS in CS. Cue the people complaining about your debt figure, or about what it takes to get into a program, etc.)
Maybe things have changed in the years since I graduated, but it used to be that a BS in math by itself was enough to get your foot in the door at a pretty decent starting pay. Then you get all your advanced training on the job. Call me crazy, but getting paid to learn and experiment sounds a lot better than racking up debt to do so.
I can't recommend grad school enough. If you're on the fence, speak with the head of the grad program you are looking into and ask their opinion. When it comes to requisite experience, a BS usually only counts for 2 years, a MS counts for 4.
I can't recommend grad school enough. If you're on the fence, speak with the head of the grad program you are looking into and ask their opinion. When it comes to requisite experience, a BS usually only counts for 2 years, a MS counts for 4.
Not sure where you get that from. In my experience, when it comes to Computer Science, especially programming, skill and experience have always trumped education, unless you want to teach. Getting published carries a lot more value that getting degrees.
Most of the top programmers I know never even went to college. They are just amazing programmers.
Not sure where you get that from. When it comes to Computer Science, especially programming, skill and experience have always trumped education, unless you want to teach.
Most of the top programmers I know never even went to college. They are just amazing programmers.
Of course that's true. It also wasn't the question. The question is "I have little CS experience and I want to know which education option is better for me".
My point was that if he wants the most bang for his buck, grad school is always the better option. They usually come accompanied with better internship or co-op opportunities as well, which translates to better work experience. My undegrad school pumped out 400 CS undergrads a year, and only a tiny fraction of that went to a graduate program. That's a lot of competition.
Taking into account your own position, it sounds like a BS may be better for you if you only obtained one degree. I would still recommend grad school, however, because it will give you a leg up in very specific ways. Because while Valarin is technically correct, the first people reviewing your resume are going to be HR people with no experience in your field who are only looking for keywords, education and experience. The same goes for future promotions or applying to higher level positions that have to go through HR.
Realize the OP has a degree in Math already with several programming classes. Depending on what exactly he wants to get into, he may very well already have enough education to get in the door. In a few years, that experience will be far more valuable than a couple extra years of college.
At least try sending out a few resumes along with the college applications, you never know what might happen. With a lot of companies your current education with a decent GPA can quite possibly start you at 35k-40k or more a year.
To the OP: Could you share a bit more about what your specific career goals are? A cool job in the programming industry is incredibly vague. Are there specific types of applications you want to develop? Are there specific companies you want to work for? These things probably have more to do with what path you should take than you current educational status.
You want to "earn good money" that means #1 is out of the deal. Whereas #2 and #3 become stronger. The question first off is how do you become a more competent programmer and what more languages do you need to pick up such as SQL. The second is of course business. This means internships, certainly, but having your own wee little business to make some scratch also makes you more attractive on the upward mobility path for being an "entrepreneur."
If you can read, write, do math, and speak well and play nice with others you can advance rather quickly.
The thing to ask yourself is also things such as MBA or Six Sigma black belt and the like that can sometimes be more useful and paid for by your own company.
There are companies out there that will pay to train you, and the higher you go the more opportunities come.
On the business end, you might want to get some more sales and management experience with people to coincide with increasing your programming skills such as leading a special project or teaching people how to program and ect.
Talk to people about things they've done/started and move into similar directions.
Because for some peoples statistics degrees or the like can open more doors than say the CS among others, but that also depends on what jobs you're going for in the future and what the company wants.
Private Mod Note
():
Rollback Post to RevisionRollBack
Ambition must be made to counteract ambition.
Individualities may form communities, but it is institutions alone that can create a nation.
Nothing succeeds like the appearance of success.
Here is my principle: Taxes shall be levied according to ability to pay. That is the only American principle.
Not sure where you get that from. In my experience, when it comes to Computer Science, especially programming, skill and experience have always trumped education, unless you want to teach. Getting published carries a lot more value that getting degrees.
Most of the top programmers I know never even went to college. They are just amazing programmers.
Realize the OP has a degree in Math already with several programming classes. Depending on what exactly he wants to get into, he may very well already have enough education to get in the door. In a few years, that experience will be far more valuable than a couple extra years of college.
At least try sending out a few resumes along with the college applications, you never know what might happen. With a lot of companies your current education with a decent GPA can quite possibly start you at 35k-40k or more a year.
To the OP: Could you share a bit more about what your specific career goals are? A cool job in the programming industry is incredibly vague. Are there specific types of applications you want to develop? Are there specific companies you want to work for? These things probably have more to do with what path you should take than you current educational status.
Sorry for not making my career goals clear in the OP.
I would like to work for one of my dream tech companies that I have admired my whole life such as Intel, AMD, nvidia, Valve, or Crytek.
I would like to develop game engines like the Source Engine, Cry engine, PhysX for game companies or develop graphics software for say nvidia, or API's for microsoft.
I tried grad school in CS and quit because it was a waste of time. Teach yourself C++ and CUDA and you can easily get a job doing something cool with nvidia tech, if not working for NVidia itself.
The only reason to go to grad school in CS as someone said is if you want to teach and not make any money (but admittedly have a pretty cushy job).
I tried grad school in CS and quit because it was a waste of time. Teach yourself C++ and CUDA and you can easily get a job doing something cool with nvidia tech, if not working for NVidia itself.
The only reason to go to grad school in CS as someone said is if you want to teach and not make any money (but admittedly have a pretty cushy job).
When turning management, people can also get an MBA which is a terminal degree. Often that can be paid for by the business you work for, which leaves the option to turn academic or consultant more open.
Private Mod Note
():
Rollback Post to RevisionRollBack
Ambition must be made to counteract ambition.
Individualities may form communities, but it is institutions alone that can create a nation.
Nothing succeeds like the appearance of success.
Here is my principle: Taxes shall be levied according to ability to pay. That is the only American principle.
Situations like that are extremely common. I recommend looking at both the dates of the articles and the credentials of their authors in order to determine which one is "right". In this case, the article declaring the MS in CS to be a poor choice is both more current and more specific (since it's written exclusively about CS by a person that does CS hiring), so I would tend to give it much more weight.
On topic, my general understanding is that two bachelor's degrees are generally not worth the extra time and money, and may even be taken as a bad sign (for example, implying that you have trouble setting goals or evaluating options). That's based on my experience as a graduate student in the life sciences and a job-seeker in the business/ consulting field.
I got an undergrad degree in CS, and then spent 2 years in the Master's program at Notre Dame. I withdrew and got a good job in software, and after a couple of years finished my Master's at night at a state school (UWM).
If you did well in mathematics, and you enjoy programming, I think you have everything it takes to do well in CS. I would recommend that you go ahead and finish an undergrad CS degree. As a dual-degree applicant you will be more attractive than an off-major applicant to a graduate program.
As long as you manage it properly, 9K is a very small amount of debt, and you can defer repayment until you finish graduate school.
The best advice I can give regarding grad schools is to talk to the admissions people in person. If you show up and chat, then you can be a dynamic interesting person they want to have on board, instead of another sheet of paper in the inbox.
I think one question that remains to be asked; have you applied to a couple hundred different positions that you'd be interested in working for with your current qualifications in the field in which you want to go into?
Private Mod Note
():
Rollback Post to RevisionRollBack
Ambition must be made to counteract ambition.
Individualities may form communities, but it is institutions alone that can create a nation.
Nothing succeeds like the appearance of success.
Here is my principle: Taxes shall be levied according to ability to pay. That is the only American principle.
Sorry to necro this thread, but I found it and felt compelled to contribute.
I'm a Software Architect, and have been in the dev industry almost a decade. I only have my BS in CS, but I've been able to climb up to an Architecture position. I've also been heavily involved with recruiting at my employer; doing resume reviews, phone screens, and onsite interviews.
There's a few things I think are worth calling out about the industry, how education correlates, and most importantly, what you need to do to find a job:
Get an internship. The number of years of school being equivalent to years of experience is total BS unless you're going into an academic field. Nothing in school prepares you for dealing with huge dev organizations with massive code bases, and often times lots of legacy systems that are convoluted but need to be integrated with. Find an internship at a company known for having solid internships and learn what the real world is like. It'll make it far easier to find a job after school.
Take your MS seriously. A 3.5 on a BS is perfectly reasonable, but some employers may fault you for a 3.5 on an MS. The main reason for this is that your MS is totally focused on your career skills, whereas your BS can be full of, well, BS from generals and such.
Learn how to talk technically to non-technical people. One of the toughest things you'll have to deal with in the real world is talking to business owners, project managers, and interviewers who may be non-technical, or at least far less technical than other developers. If you can start to get a handle on being able to explain complex things in an abstract and consumable way, while still being able to drill into the details well, you'll have a leg up.
There is huge demand for developers in the US, particularly ones educated here. There's plenty of offshore developers, but there's a lot of schools that teach development as a trade without teaching the fundamentals, which typically produces mediocre developers. The US has its fair share of schools like this too, but companies have a much easier time picking these out from a list: basically any for-profit school falls into this category. With that said, rest assured that if you go to a solid accredited school you stand an excellent chance of finding a job, and that can't be said for as many degrees as one would hope these days.
Read books that aren't part of your curriculum; ones that are more industry focused. While the fundamentals are important, applying them is too. Books like The Pragmatic Programmer and Clean Code will help prepare you for some of the challenges of working in an organization that has massive code and customer bases, and has processes for doing development. It's also worth reading about things like Agile, test driven development, and continuous integration. Knowing this stuff will make you far more marketable (if you put it on your resume) and counters the shock of stepping into an organization if you're familiar with industry wide concepts like those.
Keep your resume short; 1 full page. You have little to no experience, so don't overstate things. Figure out how to convey technical depth with concise statements; it'll give interviewers something to drill into when they talk to you. Don't put things like "Microsoft Word, Powerpoint, and Excel experience" or "Well versed with Photoshop"; nobody cares. Furthermore, don't lie or embellish the truth. If you worked on a team project that used Hibernate, but someone else actually did the work, don't call it out as one of your skills if you're not familiar with it. I can't tell you how many people I've caught on crap like this, and outright called them out on it ("So you aren't actually experienced with Hibernate. Why did you list it as one of your skills?" makes candidates squirm, but teaches them a lesson too), so be prepared to speak about anything you write down.
Work on open source projects, especially ones you don't run if possible. This will give you some great exposure to team efforts, release cycles, and delivering to others. It'll also get much more seasoned people looking at your code and giving you feedback when you try to commit that code back. When I went to school (Jesus I'm getting old...) we didn't have things like GitHub and Google Code. There was plenty of open source, but the social infrastructure that exists for it now wasn't around back then. Use it to your advantage, and put it on your resume; it'll look awesome.
Pick a language to try to hone your skills with, particularly C#, Java, or Objective C. It's ideal to be relatively strong with one language than marginally experienced with many. Those three cover a lot of ground; C# and Java are hugely popular, while Objective C gets you into the iOS dev arena, which many companies are doing a lot of work with now to establish their mobile presence.
Learn the tools, especially an IDE like Eclipse or Visual Studio. You'll be far more efficient of a developer if you know an IDE well, and it'll give you a big leg up when you get into the industry. You should still make some effort to understand the command line tooling, but if you're using a basic text editor to do your development you're doing it wrong. Learning a version control system like Subversion or Git is also quite useful, and will be required for the open source work I mentioned.
Hopefully this advice helps. I know it seems like a lot, but I promise you that these things will have a large and positive impact on your ability to start your career and succeed early.
1. Apply straight to graduate school in computer science.
Pros: Saves time, can be working within a couple of years
Cons: Will likely not get into one of my dream schools (Stanford, Harvard, etc.) or get funding with such little in my background. Would probably have to take prerequisite courses at a masters program for lack of background.
2. Take an extra 1.5 years and finish a computer science BS, and then apply to a graduate program.
Pros: Will have a better chance of getting into a top masters program and get funded. My background in CS will be stronger and I'll know more programming concepts. Graduate school will be easier due to better background. Will have the opportunity to do summer research and internships before graduate school.
Cons: Will go into up to 9k in debt (currently I am debt free) to finish degree. Will take an additional 1.5 years, which has an opportunity cost of approximately 75k in missed potential earnings.
My end goals are to get into a top CS program with funding (top 20 school) and then to get a cool job in the industry.
TerribleBad at Magic since 1998.A Vorthos Guide to Magic Story | Twitter | Tumblr
[Primer] Krenko | Azor | Kess | Zacama | Kumena | Sram | The Ur-Dragon | Edgar Markov | Daretti | Marath
Not sure where you get that from. In my experience, when it comes to Computer Science, especially programming, skill and experience have always trumped education, unless you want to teach. Getting published carries a lot more value that getting degrees.
Most of the top programmers I know never even went to college. They are just amazing programmers.
To the OP, what are your career goals?
Of course that's true. It also wasn't the question. The question is "I have little CS experience and I want to know which education option is better for me".
My point was that if he wants the most bang for his buck, grad school is always the better option. They usually come accompanied with better internship or co-op opportunities as well, which translates to better work experience. My undegrad school pumped out 400 CS undergrads a year, and only a tiny fraction of that went to a graduate program. That's a lot of competition.
OP: I would recommend you read this: http://www.forbes.com/sites/quora/2013/05/09/how-different-is-a-b-s-in-computer-science-from-an-m-s-when-it-comes-to-recruiting/
Taking into account your own position, it sounds like a BS may be better for you if you only obtained one degree. I would still recommend grad school, however, because it will give you a leg up in very specific ways. Because while Valarin is technically correct, the first people reviewing your resume are going to be HR people with no experience in your field who are only looking for keywords, education and experience. The same goes for future promotions or applying to higher level positions that have to go through HR.
TerribleBad at Magic since 1998.A Vorthos Guide to Magic Story | Twitter | Tumblr
[Primer] Krenko | Azor | Kess | Zacama | Kumena | Sram | The Ur-Dragon | Edgar Markov | Daretti | Marath
At least try sending out a few resumes along with the college applications, you never know what might happen. With a lot of companies your current education with a decent GPA can quite possibly start you at 35k-40k or more a year.
To the OP: Could you share a bit more about what your specific career goals are? A cool job in the programming industry is incredibly vague. Are there specific types of applications you want to develop? Are there specific companies you want to work for? These things probably have more to do with what path you should take than you current educational status.
1. Academic
2. Business
3. Programming
You want to "earn good money" that means #1 is out of the deal. Whereas #2 and #3 become stronger. The question first off is how do you become a more competent programmer and what more languages do you need to pick up such as SQL. The second is of course business. This means internships, certainly, but having your own wee little business to make some scratch also makes you more attractive on the upward mobility path for being an "entrepreneur."
If you can read, write, do math, and speak well and play nice with others you can advance rather quickly.
The thing to ask yourself is also things such as MBA or Six Sigma black belt and the like that can sometimes be more useful and paid for by your own company.
There are companies out there that will pay to train you, and the higher you go the more opportunities come.
On the business end, you might want to get some more sales and management experience with people to coincide with increasing your programming skills such as leading a special project or teaching people how to program and ect.
Talk to people about things they've done/started and move into similar directions.
Because for some peoples statistics degrees or the like can open more doors than say the CS among others, but that also depends on what jobs you're going for in the future and what the company wants.
Ambition must be made to counteract ambition.
Individualities may form communities, but it is institutions alone that can create a nation.
Nothing succeeds like the appearance of success.
Here is my principle: Taxes shall be levied according to ability to pay. That is the only American principle.
Sorry for not making my career goals clear in the OP.
I would like to work for one of my dream tech companies that I have admired my whole life such as Intel, AMD, nvidia, Valve, or Crytek.
I would like to develop game engines like the Source Engine, Cry engine, PhysX for game companies or develop graphics software for say nvidia, or API's for microsoft.
Basically:
-Game engines
-3D Computer Graphics
-Physics Engines
-Software Drivers
at a top tech company.
Java/HTML/PHP for business programming (a much more likely path, not to step on your dreams).
Though I'll put it in a small font.
Please stop hijacking my reply box.
That's in contradiction from this article, also by Forbes
http://www.forbes.com/sites/jacquelynsmith/2011/06/06/the-best-and-worst-masters-degrees-for-jobs/2/
OK, I definitely want one of these jobs, these would be my dream jobs:
www.nvidia.com/page/job_descriptions.html#W5
It seems like they prefer MS degrees, and a couple of them they like math majors, which I already have down.
The only reason to go to grad school in CS as someone said is if you want to teach and not make any money (but admittedly have a pretty cushy job).
When turning management, people can also get an MBA which is a terminal degree. Often that can be paid for by the business you work for, which leaves the option to turn academic or consultant more open.
Ambition must be made to counteract ambition.
Individualities may form communities, but it is institutions alone that can create a nation.
Nothing succeeds like the appearance of success.
Here is my principle: Taxes shall be levied according to ability to pay. That is the only American principle.
Situations like that are extremely common. I recommend looking at both the dates of the articles and the credentials of their authors in order to determine which one is "right". In this case, the article declaring the MS in CS to be a poor choice is both more current and more specific (since it's written exclusively about CS by a person that does CS hiring), so I would tend to give it much more weight.
On topic, my general understanding is that two bachelor's degrees are generally not worth the extra time and money, and may even be taken as a bad sign (for example, implying that you have trouble setting goals or evaluating options). That's based on my experience as a graduate student in the life sciences and a job-seeker in the business/ consulting field.
If you did well in mathematics, and you enjoy programming, I think you have everything it takes to do well in CS. I would recommend that you go ahead and finish an undergrad CS degree. As a dual-degree applicant you will be more attractive than an off-major applicant to a graduate program.
As long as you manage it properly, 9K is a very small amount of debt, and you can defer repayment until you finish graduate school.
The best advice I can give regarding grad schools is to talk to the admissions people in person. If you show up and chat, then you can be a dynamic interesting person they want to have on board, instead of another sheet of paper in the inbox.
Check out Odds//Ends - My articles on Quirky Cards and Oddball Builds
Long-time PucaTrade member and sometime author. Send me cards!
Currently playing Knight of the Reliquary - Retreat to Coralhelm Combo
Ambition must be made to counteract ambition.
Individualities may form communities, but it is institutions alone that can create a nation.
Nothing succeeds like the appearance of success.
Here is my principle: Taxes shall be levied according to ability to pay. That is the only American principle.
I'm a Software Architect, and have been in the dev industry almost a decade. I only have my BS in CS, but I've been able to climb up to an Architecture position. I've also been heavily involved with recruiting at my employer; doing resume reviews, phone screens, and onsite interviews.
There's a few things I think are worth calling out about the industry, how education correlates, and most importantly, what you need to do to find a job:
Hopefully this advice helps. I know it seems like a lot, but I promise you that these things will have a large and positive impact on your ability to start your career and succeed early.
Want to be a better Magic player? Read the rulings forum and check out the comprehensive rules!