advice for working in Software with a math BS?

<p>I am currently a senior mathematics undergrad at UT Austin scheduled to graduate this spring. I've had a passion for making software so I think I may want to eventually be a software engineer or something close. I have enjoyed math for a little bit but it hasn't been what I wanted and since I'm about done with my math degree, I'm just going to finish it. How would I go about wanting to get into industry and possibly (eventually) being a software engineer? </p>

<p>I have only a 3.1 GPA so getting into a decent grad school is out of the question. I really don't feel like going back for a bachelor's of CS so I was thinking of maybe going to a (possibly lesser competitive) masters grad program in Software Engineering. I was considering a CS masters but I'm thinking that I'd be interested in a smaller percentage of my classes (the software classes) since the hardware and theory has not worked well for me. It is very possible I will get rejected by every software engineering M.S. program I apply to so I'm thinking that if that happens, I'll try to get a job as a computer programmer, possibly for a company that does some on the job training. I could also try to take more cs courses at a local CC while working and apply to some M.S. Software Engineering programs again later if needed. If work is going well, maybe I don't need to go to grad school and I work my way up to a software engineer with work experience. Maybe I can work my way up with this plan. How does this sound? I'm just unsure how to build myself up between work experience vs grad school and how hard/easy it will be to get started with any computer programming work with a BS in mathematics. Any thoughts?</p>

<p>I'll list the CS courses I'll be graduating with: intro to programming (python), data structures (python), programming in C++, programming in Java, elements of web programming, elements of computer networks, computer organization and assembly language.</p>

<p>Thanks!</p>

<p>Most programmers I’ve worked with don’t have CS degrees, but they do have some kind of STEM degree. </p>

<p>I think you’ll have enough programming classes to get an entry-level job. It may not pay much, but view it as an apprenticeship. After you’ve worked a couple of years, you’ll be set.</p>

<p>Some schools offer software engineering certificates to people who have Bachelor’s Degrees in a field other than CS. Google “software engineering certificate” if you’re interested. You don’t need a Masters.</p>

<p>

</p>

<p>This is actually a decent list of course work for a non-CS major, and may be sufficient for entry level software jobs (though they may look at CS majors first), though you may have to do more intense self-education on the job in some areas where CS majors may have covered the topics in their course work. You may want to see if you can squeeze in the operating systems course and/or the algorithms and complexity course.</p>

<p>

</p>

<p>I see mostly, but not exclusively, CS degree holders (including variants like computer engineering, EECS, ECE, etc.). Non-CS STEM degree holders appear to be mainly physics, math/statistics, or engineering; biology degree holders seem to be absent. There are the occasional H/SS degree holders (with CS self-education) as well and a few who self-educated but have no degree.</p>

<p>Come to think of it, I can’t recall any programmer I’ve worked with who had biology degree except for a guy at Boeing who had a Ph.D. in Fisheries and was a team lead for a group of programmers. His hook was his knowledge of statistics. He may have been the best lead I ever worked with.</p>

<p>I’d say outside of CS, most of the programmers I’ve worked with had degrees in math and various engineering degrees. </p>

<p>I also used to work with lots of programmers who didn’t even have college degrees, though I rarely see that anymore. I’m hearing that you can get programming jobs at start-ups without a degree.I can believe it, but I haven’t personally been seeing that. </p>

<p>There are many job descriptions out there that you may enjoy. Having a passion for making software can take on many forms. Do you like to model systems and tweak algorithms to make them work better? Maybe a job as an analyst, which involves coding what you create, would be satisfying for you. Software is such a vast field, that it deserves a bit of exploration beyond going where most of the demand currently lies. Some niches may also be interesting.</p>

<p>You guys are awesome! Thanks for the responses and keep them coming :slight_smile: I am very grateful to receive help because my current university doesn’t let me meet with CS advisors because I’m not a CS major (I’ve tried) so the only people I can talk to about this are my cs professors who all (so far) have Physics PhD’s and not CS.</p>

<p>I forgot to mention that I will be graduating with two certificates: one titled “Elements of Computing” which is purely from CS courses and one other certificate titled “Scientific Computation” which comes from a combination of math/CS/engineering courses.</p>

<p>I noticed not one person (yet) has recommended doing a masters of Software Engineering. My biggest concern initially was the concept of me working in a field (possibly considered) indirectly related to my degree (with just a BS Mathematics) and that my skills would basically be a subset of a CS student such that I am essentially everything they are but worse. But, from reading your all responses, it’s looking like maybe that won’t be the case. Maybe my problem solving skills from my math degree can have their use and I can just take enough CS courses at a CC (specifically only useful CS courses) and I’ll be right up there and I can just work my way up with job experience. I was also uncomfortable with the idea of me having a BS from the best public school in the state of Texas followed up with a Masters from a tiny university that not many people have heard of due to it being tough to get into a good SWEN program without a CS bachelors. I’d rather be done with my education at a good school rather than starting at a good school and finishing at a bad one, you know?</p>

<p>I may try applying for jobs to see what I can get upon graduating and if I’m not having success, I could try taking possibly 4 CS courses this summer at my CC and then continue to apply for jobs. I’ll look into an algorithms course. For operating systems, I can get confused on which one(s) are/is important to take because I have seen courses just titled “Operating Systems” that have computer architecture as a pre-req (something I don’t have) and I’ve seen courses like “Unix Operating Systems I and II” that just have introductory programming as a pre-req.</p>

<p>You should definitely be able to find a job in Austin with the CS classes you have taken, unless you completely failed to learn the material. As simba9 said, the pay may not be great at first, but the tech industry is mostly a meritocracy, so if you do good work that won’t last long.</p>

<p>Many Austin tech companies do some kind of “boot camp” intensive program to prepare college students and recent graduates for internships or entry-level jobs, including my own. PM me and I’ll send you the details. It can be a great way to get your foot in the door at a good company.</p>

<p>I suggest learning some form of SQL (Microsoft T-SQL and MySQL are probably the most marketable) if you can. That seems to be the most important gap in what you have learned so far. I’ve found that math majors often excel at it, perhaps because they are more accustomed to thinking in set theory. And a programmer who knows how to work with the database will float to the top of the resume stack in many organizations.</p>

<p>

</p>

<p>Will you be taking computer organization and architecture (429), which is a prerequisite for operating systems (439)?</p>

<p>Thank you. It may be possible for me to take a Database course at my university this spring if I choose to not take the Assembly Language course at my CC. I can’t get in computer architecture this spring :/</p>

<p>Hey guys sorry for the double post but what do you think about the idea of going back for a CS bachelors after I have my math bachelors? I am considering this if I don’t feel marketable enough with just a math BS and if a CS/SE M.S. is more than needed</p>

<p>A second Bachelor’s is rarely a good investment. You would have to investigate it, but it is not unlikely that a MS will be more directed and take similar amount of time as a second BS. Graduate courses, as opposed to upper division UG courses, will get you farther along, and may not be significantly harder, since they will be normalized for international UG degree holders, all with differing standards and traditions.</p>

<p>

</p>

<p>Precisely. Most of the time you either do not need a 2nd bachelors and can simply enter a graduate program directly, or you can satisfy prerequisites for the desired graduate degree by doing post-bacc studies instead of an entire second degree. The genuine need for a second baccalaurate is mostly limited to those who have done very pre-professional studies for their first bachelors.</p>

<p>Thank you guys! I thought I’d at the very least look into the requirements of a CS Bachelors at a different university regardless of whether or not I choose to do so in the end in an effort to be more informed about my decision(s). I have looked into one particular university and it looks like my whole core curriculum would transfer, along with all of my math classes satisfying all of the math requirements and then a chunk of the CS courses would transfer too. They’ll basically only require that I complete the last 30 hrs of my degree at their university so I could possibly just enroll in 15 CS hrs the Fall semester and 15 CS hrs the spring semester and have my B.S. CS done in just two semesters. If I choose to do this option, I’d meet with some advisors before I start to verify that this is going to work for sure. The problem with me getting into grad school right now is I don’t have computer architecture or operating systems and I won’t be graduating with them. I am taking assembly languages this spring. Most CS grad schools in my state just admit for the Fall semester and that’d force me to wait another year to get into CS grad school because I’d need enough time to pick up the pre-reqs. It looks like I’m not getting into a software engineering grad program for Fall 2015 anymore :/</p>

<p>With all this said, does a CS bachelors sound reasonable if it’d only take me two semesters to get it?</p>

<p>If it’s only the two semesters, it could well be worth it. In essence, you’re getting the second degree as a bonus for what is otherwise a CS post-bacc curriculum. Win-win!</p>

<p>Just make sure you understand the financial aid implications thoroughly before you commit to that approach!</p>