3

I will graduate in 1 semester and I have realized towards the end of my B.S. in mathematical sciences that I would like to develop software. I know there's no degree requirement to do this.

I have taken 20 math classes, bu have only taken 4 official computer science classes (2 in Java, 1 in C++, 1 in discrete math) and will have the opportunity to take up to 2 more before I graduate such as "data structures and algorithms" (a java class). I have also taken graph theory through the math department.

I have brainstormed. I could apply to masters degree programs in computer science (or PhD programs, then leave with a masters) or I could try to self teach myself the programming languages and gaps in my knowledge. Or I could take the additional couple of years to finish a double undergraduate major in computer science at my school. I could also try for an internship for Summer 2014, regardless.

So I could:

  1. Self study and try for an entry level position. No explicit or implicit cost if I succeed. But if I fail to get a job, there's the time wasted that I could have been in school.

  2. Finish a double major in CS (would take an additional 2 years). This would have an opportunity cost as well as an explicit cost.

  3. Apply to graduate school in CS. This would have an opportunity cost and most likely an explicit cost.

  • 5
    Want to be a runner? Run. Want to be a writer? Write. Want to be a software developer? Develop software. – JeffE Sep 26 '13 at 1:18
  • 2
    That doesn't tell me anything that I did not already know. – user2521987 Sep 26 '13 at 1:24
  • 2
    So, then, I don't understand the question. What does becoming a software developer have to do with college? Now, if you were asking about learning some computer science... – JeffE Sep 26 '13 at 2:37
  • 1
    Building on Jeff's answer: Want to be a chemist? Get some vials and mix stuff. Chances are, though, you won't get far in that profession. Unless you actually study chemistry... The question should be: Do you want to be a good software developer? If so, you're going to have to study Computer Science. – Pedro Sep 27 '13 at 15:17
  • 7
    "or PhD programs, then leave with a masters" don't do that!!! – StrongBad Sep 27 '13 at 18:32
5

My answer is coming from the experience of graduating with a B.S. in Mathematics (with a Physics minor) and then work as a programmer.

I had comparable programming experience before graduating and had actually planned on taking a second major in CS before dropping in in favor of Physics. I quickly realized that I would only find work in a programming position. It was quite a shock to work on a enterprise class application with hundreds of classes and a complicated architecture. I was incredibly lucky to find a position that was willing to train me up to speed.

I have found that sometimes I will use my math background to come up with an algorithm easily that other programmers will be stunned by. Other times I will feel critically behind the curve, especially when asked to design/architecture a new project.

I have filled in some of these gaps by supplementing my education through MOOCs, reading tons of books and forums (although I have only now started contributing), and picking my coworkers brains. I have had a goal of improving my skills with software patterns, and adding a new language/technology every year. However, keeping up with my mathematical skills (especially linear algebra and statistics) has opened many doors.

Also, improving "soft skills" like communication, networking, and organization is very important. In a lot of positions the goal in training is for you to generate business for the company.

Getting the lingo right away is critical. Once you know what can be done it is simply a matter of finding out how.

After three years as a junior programmer I am starting to look at Masters programs and I feel much more prepared and my job will be partially reimbursing me for classes. In addition I have a much better sense of what programs will benefit my career and how. For the type of work I am interested in I am looking into CS programs but also Systems Engineering, Computer Engineering, and Statistics.

That being said, I was incredibly fortunate to find a position that nurtured my abilities. To be clear, my supervisors were expecting a year before I contributed in a meaningful way, a lot of places will not take that bet on anyone. In order to get where I am I worked hard, usually 50 hrs at work and an additional 10 hrs of outside research.

  • 1
    +1 for I will use my math background to come up with an algorithm easily that other programmers will be stunned by. I had the exactly the same experience. – scaaahu Jan 10 '14 at 2:52
4

What do understand by 'software developer'?

If you want to write the source code for casual games on smart phones, you don't need any knowledge from university at all. I am pretty sure that many software developers do not care at all about your university degree if you can provide practical prove of ability.

The more complex and "professional" the project gets, the more a university degree (in sciences or engineering) is expected or even required. But then your desired level operation is more "bird view" than anything you could learn in university classes. Whether you are an excellent computer scientist, mathematician or physicist does not matter, as long as you are excellent. In particular, mathematical skills are all but mandatory and essential for large-scale and high-performance computation.

So, what kind of mathematician are you? It makes a difference whether you are an algebraic topologist, or into combinatorial or numerical algorithms. Furthermore, there are universities where CS programs are extremely mathematical, or, conversely, math programs contain a lot of theoretical computer science.

At least if you are a computational mathematician, it does not matter at all whether your master is CS, math or physics. These theory stuff on software engineering (development models) is more humanities rather than science. Spend some bucks for SE books if you feel like missing these topics.

PS: "2 in Java, 1 in C++" - nobody gives a ... cares what languages you encountered in these classes. University won't help you to become a Java or C++ pro, you will have to do that by yourself, as will you have to do with a lot of other languages in professional software development. What have these classes really been about?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.