Coding All-in-One For Dummies
Book image
Explore Book Buy On Amazon
The options for learning how to code never seem to end, and advanced degrees typically appeal to a particular group of people. While not necessary for either learning to code or obtaining a coding job, an advanced degree can help accelerate your learning and differentiate you from other job candidates. Here are the two types of advanced degree programs:
  • Master’s degree: A technical degree that allows you to explore and specialize in a particular area of computer science such as artificial intelligence, security, database systems, or machine learning. Based on the course load, the degree typically takes one or two years of full-time, in-person instruction to complete. Upon completion, the degree can be a way for a student who pursued a nontechnical major to transition into the field and pursue a coding job. Alternatively, some students use the master’s degree experience as a way to gauge their interest in or improve their candidacy for a PhD program.

A growing number of part-time online master’s degree programs are becoming available. For example, Stanford and Johns Hopkins both offer a master’s degree in Computer Science with a concentration in one of ten topics as part of an online part-time degree that takes on average three to five years to complete. Similarly, Northwestern University offers a master’s degree in Predictive Analytics, an online part-time program in big data that teaches students SQL, NoSQL, Python, and R.

  • Doctorate degree: A program typically for people interested in conducting research into a specialized topic. PhD candidates can take six to eight years to earn their degree, so it’s not the most timely way to learn how to code. PhD graduates, especially those with cutting-edge research topics, differentiate themselves in the market and generally work on the toughest problems in computer science.

For example, Google’s core search algorithm is technically challenging in a number of ways — it takes your search request, compares it against billions of indexed web pages, and returns a result in less than a second. Teams of PhD computer scientists work to write algorithms that predict what you’re going to search for, index more data (such as from social networks), and return results to you five to ten milliseconds faster than before.

Students who enroll and drop out of PhD programs early have often done enough coursework to earn a master’s degree, usually at no cost to the student because PhD programs are typically funded by the school.

Graduate school computer science curriculum for coding

The master’s degree school curriculum for computer science usually consists of 10 to 12 computer science and math classes. You start with a few foundational classes, and then specialize by focusing on a specific computer science topic. The PhD curriculum follows the same path, except after completing the coursework, you propose a previously unexplored topic to further research, spend three to five years conducting original research, and then present and defend your results before other professors appointed to evaluate your work.

This table is a sample curriculum to earn a master’s degree in CS with a concentration in Machine Learning from Columbia University. Multiple courses can be used to meet the degree requirements, and the courses offered vary by semester.

Columbia University MS in Computer Science
Course Number Course Name Course Description
W4118 Operating Systems I Design and implementation of operating systems including topics such as process management and synchronization
W4231 Analysis of Algorithms I Design and analysis of efficient algorithms including sorting and searching
W4705 Natural Language Processing Natural language extraction, summarization, and analysis of emotional speech
W4252 Computational Learning Theory Computational and statistical possibilities and limitations of learning
W4771 Machine Learning Machine learning with classification, regression, and inference models
W4111 Intro to Databases Understanding of how to design and build relational databases
W4246 Algorithms for Data Science Methods for organizing, sorting, and searching data
W4772 Advanced Machine Learning Advanced machine learning tools with applications in perception and behavior modeling
E6232 Analysis of Algorithms II Graduate course on design and analysis of efficient approximation algorithms for optimization problems
E6998 Advanced Topic in Machine Learning Graduate course covers current research on Bayesian networks, inference, Markov models, and regression
The curriculum, which in this case consists of ten classes, begins with three foundational classes, and then quickly focuses on an area of concentration. Concentrations vary across programs, but generally include the following:
  • Security: Assigning user permissions and preventing unauthorized access, such as preventing users from accessing your credit card details on an e-commerce site
  • Machine learning: Finding patterns in data, and making future predictions, such as predicting what movie you should watch next based on the movies you’ve already seen and liked
  • Network systems: Protocols, principles, and algorithms for how computers communicate with each other, such as setting up wireless networks that work well for hundreds of thousands of users
  • Computer vision: Duplicating the ability of the human eye to process and analyze images, such as counting the number of people who enter or exit a store based on a program analyzing a live video feed
  • Natural language processing: Automating the analysis of text and speech, such as using voice commands to convert speech to text

Performing research in coding

Students are encouraged in master’s degree programs and required in PhD programs to conduct original research. Research topics vary from the theoretical, such as estimating how long an algorithm will take to find a solution, to the practical, such optimizing a delivery route given a set of points.

Sometimes this academic research is commercialized to create products and companies worth hundreds of millions to billions of dollars. For example, in 2003 university researchers created an algorithm called Farecast that analyzed 12,000 airline ticket prices. Later, it could analyze billions of ticket prices in real time, and predict whether the price of your airline ticket would increase, decrease, or stay the same. Microsoft purchased the technology for $100 million and incorporated it into its Bing search engine.

In another example, Shazam was based on an academic paper that analyzed how to identify an audio recording based on a short, low-quality sample, usually an audio recording from a mobile phone. Today, Shazam lets a user record a short snippet of a song, identifies the song title, and offers the song for purchase.

The company has raised over $100 million in funding for operations and is privately valued at over $1 billion. Both products were based on published research papers that identified a problem that could be addressed with technology and presented a technology solution that solved existing constraints with high accuracy.

Your own research may not lead to the creation of a billion-dollar company, but it should advance, even incrementally, a solution for a computer science problem or help eliminate an existing constraint.

About This Article

This article is from the book:

About the book author:

Nikhil Abraham is the CFO of Udacity, an education company that teaches technology skills that help launch or advance a career. Prior to joining Udacity, Nik worked at Codecademy where he taught beginning coders across a variety of professions. He is also author of Coding For Dummies and Getting a Coding Job For Dummies.

This article can be found in the category: