How do you become an expert coder? It’s often suggested that you read good code — that by reading examples of good code, you internalize the right ways of doing things, and improve your own understanding and style. But where do you find good code? And how do you decide what’s good? In this talk, Saron Yitabarek describes her own journey toward code mastery, and what techniques she and a growing community use to improve. If you don’t yet know everything about coding (which means all of us), this talk introduces some ideas and techniques that you can (and probably should) adopt to improve how you see things.
I had to take lots of math courses before receiving my computer science degree. But in my day-to-day life, I’m probably more likely to use statistics — when reading the newspaper, analyzing data, or understanding Web application performance. Statistics is seen by many people as boring, but it’s both interesting (really!), and extremely useful. Crucial, even. In this talk, John Paul Ashenfelter describes why and how we can use statistics to describe data, and how this understanding can lead us to better decision making. If you ever thought that statistics was something you could or should ignore, this talk will hopefully convince you otherwise.
The computer industry is dominated by men. The question of how we can encourage more women to become software developers has been asked for many years — and in many cases, the blame has been placed at the feet of university CS programs, which don’t attract as many women as men. In this talk, Stephanie Hippo describes work done at Case Western Reserve University, aimed at building up the community of female CS students. Her story is instructive for anyone
There are plenty of people in the computer industry who didn’t major in computer science. But a very large number of them did, and thus CS education — at the high-school and university levels — has an important role to play in the computer industry. As things currently stand, those classes (and thus careers) don’t appeal to nearly as many people as they could. In particular, women and minorities are severely underrepresented. In this talk, Ashley Gavin describes the problem, and then the ways in which she has taught CS classes with a project-based curriculum, with a greater degree of success than traditional curricula.
Teaching and programming often have different goals, and thus need different tools. However, IPython (now known as “Jupyter“) provides a Web-based “notebook” that makes it easier to demonstrate and collaborate on code — something that’s good for instruction, and also for daily software development. In this talk, Jess Hamrick describes how and why she now uses Jupyter notebooks to teach programming (and Python programming in particular), and what she (and her students) have learned in the process.
For more than 25 years, versions of Lisp have been used in introductory computer-science classrooms — most notably by the famous Structure and Interpretation of Computer Programs (aka 6.001, to those of us who went to MIT in those days). Clojure is a modern Lisp, and this begs the question of whether it’s appropriate for use in modern classrooms with current computer-science students. In this talk, Elena Machkasova describes the reasons why Clojure both is and isn’t appropriate, and considers what can and should be done in order to make it a reasonable and even preferred option for CS instructors.
Ruby is famous for letting programmers do anything and everything. You can change the language, the syntax is extremely flexible, and there are many ways to do the same thing. This flexibility is great for experienced developers, but how does it work for new programmers? In this talk, Matthew Clark enumerates a number of reasons why Ruby is a good language to learn programming, and points to the features that make Ruby easy to understand and learn. As he says, we can talk about things without getting absorbed in the minutiae of where to put parentheses.
What do you need to know in order to be a Web developer? A great Web developer? In this talk, Kathy Sierra argues that the most important skill is being able to learn and assimilate new things quickly. New languages, new browsers, new paradigms, new considerations — you’ll always, for your entire career, need to learn new things. How can and should you learn quickly and well? And what does it mean to learn, or to become an expert?
When you mention the term “code review” to many developers, they assume that it’s a chance to criticize them, to tell them how their code stinks, or that it’s riddled with bugs. But code review can and should been seen as a chance for both participants in the process to learn from one another. In this talk, Derek Prior describes how a code-review session can become helpful and encouraging, rather than critical and frustrating. Sure, there might be conflicts — but if the developers focus on the code, rather than the personal issues, then the code and the developers participating in the code review can all benefit.
It’s very in vogue to say that everyone should learn to program. Code.org and other organizations are talking about how important (and useful) it is to learn to program. Is that true? Is that a good idea? Is it even possible? And of the people learning to code now, how many are going to be full-time professional engineers, and how many will simply be better-informed people? What does this mean for the people who are actually coding full time? In this talk Farrah Bostic reminds us that there programming is not just a profession, and that this isn’t necessarily a bad thing — for individuals, and society.