
Guidebook to Technical Skills
Maybe you have an interview coming up, and you want to brush up on your programming. Or maybe your internship is starting soon, and you want to make sure your Excel skills are up-to-par. Or maybe you even just enjoy learning new skills for fun (so weird, an actuary learning something new?). Regardless, you’re interested in learning new technical skills. This document should help you understand what the most important technical skills for actuaries are, and should give you an idea of where you can start learning. Keep reading!
Why Learn Technical Skills?
Technical skills are some of the most important skills you can have as an actuary. Especially early on in their careers, actuaries spend a lot of time working on the computer and coding. Beginning to develop your skills in college will give you a huge advantage once you start working.
Also, solid technical skills can really stand out on a resume, and interviewers love asking questions about them. If you can demonstrate your programming ability, you can really impress recruiters, and put yourself in a great position to obtain internships and full-time roles!
When Should I Start Learning?
Just like taking exams, it’s never too early to start learning technical skills. If you wait until you’re already looking for an internship, you’ll need to balance your learning with exam studying, schoolwork, and interviewing. Better to start early, to make your life easier later.
What Skills are Most Important for Actuaries?
While the exact programing languages and software programs actuaries use vary company by company and role by role, there are a few skills (like Excel and VBA) that are necessary for (just about[1]) any actuarial role. Below is a list of technical skills in their order of importance. While different actuaries may list the skills in slightly different orders, I think this list is a good estimate of what order to learn the skills.
-
Excel
-
VBA
-
SQL
-
R/SAS
-
Python
-
C++
[1] I was prohibited from using VBA for my project over the summer
Excel - Excelling at Spreadsheets
Excel is Microsoft’s Spreadsheet program. Excel is really good at sorting and filtering data, creating formatting and charts, and doing basic analysis. The major advantages of Excel are that it’s easy to learn, has a wide array of applications, and helps you visualize what’s going on.
A great place to begin learning Excel is The Infinite Actuary’s Skills course. The Skills Course gives a high level overview of many of the most important technical skills actuaries use. There are also a number of great websites, such as Udemy and Coursera that have lots of good (and cheap) courses to learn technical skills in general, and Excel in particular. Finally, ACTEX has an Excel and VBA seminar that uses examples relevant to the actuarial profession. If you are interested, please let us know, because there are significant group discounts available.
VBA - Making Excel Usable
Who loves copying and pasting the same data over and over again? If you answered yes (why in the world would you?) you’re definitely in the wrong profession. Actuaries always need to look for smarter and more efficient ways of doing things. One of the best ways an intern or entry-level actuary can provide value to his/her team is by automating repetitive processes.
VBA stands for Visual Basic for Applications, and is the programming language behind Microsoft Office applications. Actuaries use it constantly within Excel. VBA allows you to make Excel a much more powerful tool by writing Macros to automate tasks (no more silly copying and pasting!) and Custom Functions that Excel doesn’t provide you. VBA is a very easy language to debug, and has a lot of nice features for beginning programmers. The Skills Course includes a section on VBA, and Udemy also has some good courses. The ACTEX seminar also contains a VBA component.
SQL - When Excel Can’t Handle It
If Excel is so easy to learn, why not just use it for everything? Firstly, Excel only 1,048,576 rows and 16,384 columns[2]. While this may seem like a lot, many actuarial models require more than 1,048,576 data records. But even if you don’t run out of space, if you get anywhere close to the end of Excel, you’re already using it wrong. Excel is great for small amount of data, but slows down significantly for large amounts of data.
To solve this issue, most companies use a Database to hold their data. Databases (usually) don’t have the same powerful analysis and graphing functionality that Excel has, but they are much better at storing and processing large amounts of data. SQL, which stands for Structured Query Language, is the programming language[3] to get data into and out of databases. Compared to other programming languages, SQL is easy to learn. The Skills Course has a section on SQL. Another excellent resource is W3schools.com (make sure to include the “s,” W3school.com is a biblical prophecy site). W3schools.com is great because the code is run directly on the website; there’s no need to download a database management system or any data. Finally, Professor Richard Holowczak puts all of his class notes on his website (holowczak.com). There are lots of good tutorials on the website, especially the one on SQL.
​
[2] That’s actually quite a few columns
[3] Technically, SQL is a language standard, not a language, but I’m not nit-picky
R/SAS - How Else R you Going to Model
While SQL is great for processing large amounts of data and performing simple calculations, it’s not great for more advanced analysis. R and SAS are two statistical modeling languages. I don’t know very much about SAS, except that it’s very expensive (I think there’s a way to use a “mini SAS” on the Baruch computers). The major advantage of R is that it’s free! R Studio is a very widely used development environment for programming in R.
The Skills Course has always had a section on SAS. Since the SOA’s new Predictive Modeling exam will be conducted in R, The Skills Course has added a section on R. Udemy and Coursera also have courses on R. I don’t really know R very well, so, unfortunately, I can’t offer much more advice about how to learn it.
Python - The Language of the Future Actuary?
R is a great language for doing statistical analysis, such as regression analysis and data plotting. However, it’s not a very robust language; some things can be tricky to do in R. While Python itself is not a “statistical” programming language, there are many modules[4] that are designed for data science; pandas is great for manipulating and reshaping data, while matplotlib is good for plotting. Also, because Python is an Object Oriented Language, it can be used for building more sophisticated classes[5]. This makes it superior to R in terms of code reusability and dividing up projects (if you lost me after I said “Object Oriented,” don’t worry, you’ll take MTH 3300 at some point). Currently, not many actuaries use Python for their work. However, its combination of robustness and data science applications might make Python a very valuable tool for future actuaries as predictive modeling and big data become more pervasive in the industry.
Over the summer, my project involved coding in Python. Since I knew (almost) no Python going into the summer, I’ve learned of a number of great resources for learning Python. A great starting point is a free online PDF called “Learn Python the Hard Way.” When you go to the website, they try to get you to buy it, but if you scroll to the bottom of the page, there’s the link to the free version. Next, if you’re interested in learning more about pandas, the University of Michigan posted an excellent course on Coursera. I have also used courses on Udemy that dig deeper into matplotlib and the Object Orientedness of Python. I also recently discovered a new website called Lynda, which seems to have a lot of mini-courses for data science applications of Python (it also has SQL and R courses). Finally, Kaggle is a data science competition website where aspiring data scientists can watch tutorials and compete to solve real world problems. I have never used this website, but our previous treasurer, Jia Wu, used it to improve his technical skills.
​
[4] Essentially, bundles of code that someone else has programmed and you can download to use
[5] VBA and R are also Objected Oriented, in a sense
C++ - Finally an Adult Language
C++ is not widely used for day-to-day actuarial work (although some proprietary actuarial software are based on C++). However, C++ is a super-powerful language, so if a model needed to process lots of data using complex functions very quickly, it might be built in C++. C++ is also Object Oriented, and is used widely by software developers. It’s also one of the toughest languages to learn, so, if you learn C++, nothing will seem bad by comparison. I have taken C++ courses on Udemy. Lynda also had a few, though I haven’t done any of them.
[6] This comment reflects Professor Matic’s view, not my own. Also, it’s just a joke and is not meant to be offensive to users of other languages
​
What About Classes at Baruch?
Just like the exams, in order to develop your technical skills, you’ll probably have to do a lot of the work on your own time. However, Baruch does offer a number of classes through the MTH and CIS departments that help with some of the skills I listed above. If you want help planning your schedule or deciding which professors to take, please reach out. Below is a list of some of Baruch’s technical skills courses, along with a description.
Math Classes for Programming
Python/C++
MTH 3300-Introduction to Programming in Python (this course used to be taught in C++
​
MTH 4300-More advanced Object Oriented topics in C++
R/SAS
MTH 3040-Introduction to R for Actuaries (only in the Winter)
CIS Classes for Programming
Pre Req Needed to take any CIS Class !
CIS 2200-Introduction to Computer Information Systems (Excel/VBA/Access)
Python/C++
CIS 3100-Introduction to Programming in C++ (might not be able to be taken if student
received credit for MTH 3300[7])
CIS 3120-Python for Business Analytics
CIS 4100-More advanced Object Oriented topics in C++ (cannot be taken if student received
credit for MTH 4300)
Excel/VBA
CIS 3367-Spreadsheet Design and Analysis in Excel
SQL
CIS 3400-Database Management Systems (covers an introduction to SQL)
R/SAS
CIS 3920-Data Mining (either taught in R or SAS)
CIS 4400-Advanced Database Management
[7] Since MTH 3300 used to be in C++, a student could not take both MTH 3300 and CIS 3100. I don’t know what the rule is now since MTH 3300 is now in Python. Please consult academic advisement for more information
Links
Please find below a list of links to all the resources that I mentioned.