How do I get into software engineering as a maths graduate

Watch this thread
Vesniep
Badges: 15
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#1
Report Thread starter 3 years ago
#1
I am a finalist student studying mathematics in Cambridge.
My programming experience is limited to MATLAB in which I have done all of my computational projects for my course.
I have thought of applying to computer science and software engineering masters but most of the good ones require CS background knowledge. I also considered starting from scratch and apply to undergraduate level CS or engineering... perhaps in a uni that exempts me from all maths modules. But that's a rather expensive approach. Instead I could just take online courses and focus on improving my programming skills after I graduate. However, that seems to be a very uncertain path and I would like to find something to do in the meanwhile. The best scenario is get training through a job, but it can be hard getting employed when you have little experience.
0
reply
Vesniep
Badges: 15
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#2
Report Thread starter 3 years ago
#2
bump
0
reply
username738914
Badges: 21
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#3
Report 3 years ago
#3
learn CS fundamentals (algo+DS, OO design, recursion etc) + make a few projects in general purpose languages (JS, Python, Java, C++, etc) + practice leetcode problems + network with alum/current students/upper years/PhDs with intern/full time offers for referrals + apply and pass technical interviews.

not that hard, lots of cambridge mathmos did the above to get into top SWE jobs.
Last edited by username738914; 3 years ago
3
reply
nutz99
Badges: 19
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#4
Report 3 years ago
#4
(Original post by Vesniep)
I am a finalist student studying mathematics in Cambridge.
My programming experience is limited to MATLAB in which I have done all of my computational projects for my course.
I have thought of applying to computer science and software engineering masters but most of the good ones require CS background knowledge. I also considered starting from scratch and apply to undergraduate level CS or engineering... perhaps in a uni that exempts me from all maths modules. But that's a rather expensive approach. Instead I could just take online courses and focus on improving my programming skills after I graduate. However, that seems to be a very uncertain path and I would like to find something to do in the meanwhile. The best scenario is get training through a job, but it can be hard getting employed when you have little experience.
Have you looked at conversion courses which are specifically for those who haven't done CS. Like these:
http://www.bristol.ac.uk/study/postg...tent=pg-course
https://www.birmingham.ac.uk/postgra...paign=courseid[6103]&utm_medium=courselisting&utm_content=button
https://www.cardiff.ac.uk/study/post.../computing-msc
0
reply
Molseh
Badges: 19
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#5
Report 3 years ago
#5
(Original post by Vesniep)
I am a finalist student studying mathematics in Cambridge.
My programming experience is limited to MATLAB in which I have done all of my computational projects for my course.
I have thought of applying to computer science and software engineering masters but most of the good ones require CS background knowledge. I also considered starting from scratch and apply to undergraduate level CS or engineering... perhaps in a uni that exempts me from all maths modules. But that's a rather expensive approach. Instead I could just take online courses and focus on improving my programming skills after I graduate. However, that seems to be a very uncertain path and I would like to find something to do in the meanwhile. The best scenario is get training through a job, but it can be hard getting employed when you have little experience.
In your situation I would probably just self teach if you cannot find a Masters program you like and rule out a BSc straight away as an expensive inefficient solution.

I would reccommend a course like this for starters. From there you will gain a wide insight into CS and can decide what area/language you would like to delve deeper into. After that there are lots of coding courses and resources available online. r/learnprogramming is a good place to follow too.

In my opinion your Cambridge Maths degree should get you in the door for dev applications, from there it is just about proving your knowledge in coding tests and interviews.
2
reply
yt7777
Badges: 18
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#6
Report 3 years ago
#6
Conversion MSc is a good option. Imperial accept "Any degree subject" for the below course.

https://www.imperial.ac.uk/study/pg/...uting-science/
0
reply
winterscoming
Badges: 19
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#7
Report 3 years ago
#7
(Original post by Vesniep)
I am a finalist student studying mathematics in Cambridge.
My programming experience is limited to MATLAB in which I have done all of my computational projects for my course.
I have thought of applying to computer science and software engineering masters but most of the good ones require CS background knowledge. I also considered starting from scratch and apply to undergraduate level CS or engineering... perhaps in a uni that exempts me from all maths modules. But that's a rather expensive approach. Instead I could just take online courses and focus on improving my programming skills after I graduate. However, that seems to be a very uncertain path and I would like to find something to do in the meanwhile. The best scenario is get training through a job, but it can be hard getting employed when you have little experience.
Employers hiring graduates wouldn't expect you to have commercial experience if you can demonstrate that you've got the right analytical, technical and problem solving skills; realistically speaking the time and effort it would take you to do by yourself in your own time is going to be the much the same as a CS Masters, and maybe faster in terms of calendar time. (Usually 1000 hours or slightly more - so it depends how you slice that up)

As others have mentioned, start out with the core topics on a course like the one Molseh linked above -- Harvard's CS50 is one of the best free intro CS courses that I've ever seen.

Beyond that, there are a few other core skills which are pretty much universal across nearly all software engineering jobs so there are some other important topics which would be helpful to gain exposure to (At the very least, enough exposure to feel confident in explaining the basic concepts about in an interview, but ideally putting them into practice as well on your own personal project/s)
- A thorough in-depth understanding of at least one modern, popular, general-purpose programming language (C#, Python, C++, Java, etc.) - I.e. the advanced features of the language as well as a bit of under-the-hood stuff.
- Learn some common software engineering tools like "Git" (I'd suggest creating a GitHub account to host your personal projects).
- Be confident in the IDE and debugger for your chosen programming language. (Learning a debugger takes 15-20 minutes, and saves hours/days of hair-pulling frustration)
- "Defensive" programming (Avoidance of errors and proper handling of "edge cases" or exceptional cases like a user unplugging their network cable)
- Code quality (Writing code which humans can easily understand - consistency, structure, naming, logical separation of code into different units)
- Object-oriented programming concepts (abstraction, encapsulation, "GRASP" principles, "SOLID" principles)
- Functional programming concepts (Immutability, "lazy" evaluation, higher-order functions)
- Automated 'unit testing' (writing code whose purpose is to automatically test other code - there are tools which help this - it helps take the repetition out of software testing, so employers really value this because in the long-run it helps save time and helps programmers avoid breaking old code by accident)
- Databases, data modelling, database normalisation and SQL (Most businesses are dependent upon databases for pretty much everything they do).
- Threads, Concurrency, Asynchrony and Parallelism
- Also, be confident in using your O/S on the command-line, and maybe look at becoming comfortable with *nix

Ultimately it will all boil down to practice - if you can pinpoint an idea for a personal project, then that can be something to focus on as you're learning, as well as a way to showcase your ability; try to aim for something equivalent in scope and complexity to a good undergrad CompSci final year project. (It would usually be a good idea to choose a technology that gives you the ability to build something interesting and useful on top of it - e.g. a Web framework, Game engine, Arduino, etc)

Another thing you could do might be to get involved in some Open Source projects - these can be great for building up a bit of experience in working with an existing, established project, collaborating with other programmers to contribute code to new features, diagnose and fix bugs, and have some first-hand experience in the often overwhelming and difficult task of looking at somebody else's huge codebase and trying to understand what on earth is going on and how it all works (Everything you'd experience in a commercial environment, albeit within your own spare time and without deadlines).
- https://www.firsttimersonly.com/


Lastly, if you're at all interested in the kind of wisdom which many Software engineers gain from years of experience, then I would recommend this book (it might seem 'old' from its publication date, but it's still very relevant to 2019) -- A book full of a lot of practical advice on being a 'better' programmer: https://www.amazon.co.uk/Code-Comple.../dp/0735619670
Last edited by winterscoming; 3 years ago
1
reply
Zarek
Badges: 21
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#8
Report 3 years ago
#8
MSc route is a good option and I think there are many good course where you would have little problem persuading them you are of the calibre with a maths degree from Oxford combined with some aptitude and interest. A friend with an Engineering degree did this and now happily writes code all day. You might even find some employers who would take you on on this basis and train and fund your studies.
0
reply
Vesniep
Badges: 15
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#9
Report Thread starter 3 years ago
#9
(Original post by yt7777)
Conversion MSc is a good option. Imperial accept "Any degree subject" for the below course.

https://www.imperial.ac.uk/study/pg/...uting-science/
Thanks for that. The only problem is that the minimum requirement is a first, which might be hard to get.
I can get a high 2.1 but not sure about a first. Bristol might be better in that regard (they need a 65% 2.1).
0
reply
Vesniep
Badges: 15
Rep:
? You'll earn badges for being active around the site. Rep gems come when your posts are rated by other community members.
#10
Report Thread starter 3 years ago
#10
(Original post by Molseh)
In your situation I would probably just self teach if you cannot find a Masters program you like and rule out a BSc straight away as an expensive inefficient solution.

I would reccommend a course like this for starters. From there you will gain a wide insight into CS and can decide what area/language you would like to delve deeper into. After that there are lots of coding courses and resources available online. r/learnprogramming is a good place to follow too.

In my opinion your Cambridge Maths degree should get you in the door for dev applications, from there it is just about proving your knowledge in coding tests and interviews.
It is good for applications indeed I can confirm. I just need to improve my coding skills.
The course and the subreddit should come in handy.
Going for a masters degree is probably the way to go, while utilizing summer's plenty free time to familiarize with the basics.
0
reply
X

Quick Reply

Attached files
Write a reply...
Reply
new posts
Back
to top
Latest

How are you feeling about your results?

They're better than I expected (22)
33.33%
They're exactly what I expected (20)
30.3%
They're lower than I expected (24)
36.36%

Watched Threads

View All