Do you love solving puzzles? Maybe it’s a clue that coding is right for you.
“A lot of people treat computer science like solving puzzles,” says Paul Gries, an associate professor, teaching stream, in the department of computer science at the University of Toronto. “You get a bit of dopamine rush when you expect to fix a bug or finish a feature.”
In Toronto, the opportunities to learn how to program are more widespread than ever. BrainStation, HackerYou and Lighthouse Labs are just three of the city’s private career colleges offering short intensives, known as “boot camps,” in digital skills from user experience design to web development or data science.
So if you’re curious about how to create the next competitor to your favourite app, or want to help build the neighbourhood of the future (think Sidewalk Labs), should you consider a computer science degree?
U of T's Nina Haikara spoke to Gries, a co-instructor of a free online course on the fundamentals of programming, about the field, undergraduate curriculum and coding boot camps.
In your experience, students either know they want to study computer science or there are those who discover computer science along the way. What attracts these students? Is it problem-solving?
People get involved and interested in computer science because so many problems are solvable through computer science.
Let's say you are studying in chemistry and you really like the chemistry, but it turns out that some of the problems are not tractable for a human to solve, and so you need to build a computational model in order to be able to investigate more, deeper chemistry. And this happens in every discipline – linguistics, sociology – there's always data to analyze.
It's also really fun thinking about the people who are going to be using your software. You want to have a good eye for design, make it easy to use, and make it responsive in various ways. A lot of people really enjoy the human-computer interaction element as well.
Paul Gries, an associate professor, teaching stream, explains computer coding concepts on CBC’s The National
So what do undergraduates in computer science learn?
Students learn the underlying theory behind why particular approaches to algorithms and data management are less memory intensive or faster – astoundingly faster – than other approaches.
Starting in second-year, students learn how to organize information in a program and maintain that information in a way that is robust, manageable, efficient and easy to change. Without breaking [it].
How fundamental is mathematics to the foundations of computer science?
Math is a part of our theory courses because we want students to have a really good understanding of where and why particular choices of the way you organize data are going to impact the efficiency of your program. Certain kinds of math are fundamental to computer science. For example, linear algebra is incredibly important for computer graphics and computer vision, and is useful for machine learning. Probability and statistics are also quite important.
Which core programming languages do students learn?
How many programming languages are there?
Thousands. There's probably 30 or 40 that are used in the widespread sense.
Which core languages would a coding boot camp program teach?
Often they would be teaching the same languages as universities. Boot camps will show you the techniques that people use in order to build professional applications. But they won't go heavily into why that particular data structure [is] better than others.
In order to be a large-scale software designer you’ll need additional education – but a lot of people learn through self-study rather than going through a formal program. If you want to be a software architect, designing immense systems with millions of lines of code and tens of thousands of users distributed across three or four or five continents, then you're probably going to need more software engineering knowledge.
Say someone is looking at a career change. Should they go back to do a computer science degree, or should they look into a coding boot camp?
It really depends on their time frame, their resources and whether they're interested in immersing themselves in an academic environment again. Boot camps are really short and intense, so you get through it, you get out, and then hopefully you are marketable and can land a job.
In the academic environment, the process is typically slower because there are a few years to get through if you want a degree. But on the other hand, I think, you get a much deeper and broader sense of what computer science is.
Would exposure to a weekend coding program or boot camp be beneficial to anyone thinking about computer science?
I think so. Everything you can do to investigate and try out programming before you commit yourself to a degree is a great thing.