The civil war currently taking place in Syria has cost many lives, and has created a huge number of refugees. Many of these refugees are now living in a refugee camp at Za’atari, in neighboring Jordan. Under circumstances that range from difficult to grave, is it reasonable to think that young people can get an education, let alone a technical education that’ll enable them to create high-tech devices and applications? In this talk, Karen E. Fisher and Katya Yefimova describe their efforts to do just that — teaching, facilitating, and encouraging these young refugees to create new things, to collaborate with their peers, and to create things that can help themselves and others.
If you’re teaching people how to program in C++, then the odds are good that you’re doing so by starting with C, and then building on top of that. This, argues Kate Gregory, makes for lots of problems. It means that you only get to the interesting parts of C++ long after the first day of the class. It reflects the history and evolution of the language, rather than the way in which people use (and should use) it today. And it means that you teach your students to deal with things in a way that is good for C, but bad for C++. If you teach programming, in any language, then this talk offers a fascinating perspective on what and how to do so.
Here’s something that you’ve probably heard before: If we introduce technology into classrooms, then students will learn more, better, and more effectively. But the reality is different; just throwing technology at the problem doesn’t help. Which raises the question: What kinds of designs do make for real educational differences? In which classes, and in which ways, can we really use technology to improve learning? In this talk, Lisa Maurer describes work that she and Pearson are doing to research and improve UI/UX design to improve learning outcomes.
When people start to learn about functional programming, they often encounter the term “monad.” And then they try to understand what monads are, and get frustrated and/or confused. In this talk, Pawel Szulc tries to address this fear and confusion regarding monads by asking what they are — and more importantly, what questions we should ask in order ot understand them more easily. If you’ve ever wondered what monads are, or why you should care about them, then this talk should be quite helpful.
Developers often complain that designers don’t understand software — and that their lack of understanding leads to all sorts of problems. If only designers would start to program, they would finally understand what’s involved, and it would be so much easier to speak and work with them. In this talk, Alexandra Leisse turns the tables, saying that it would also behoove developers to learn to design. If only developers would learn, understand, and internalize design principles, it would be easier to work with them — and most importantly, the users of the software would benefit greatly. She dismisses several myths about design, such as that designers are born, not made, and offers numerous suggestions for how developers can increase their understanding of design, and their sensitivity to the user experience. If you’re a software designer who is either dismissive of design or in awe of it, this talk should provoke you into learning more about it, for everyone’s benefit.
Developers often talk about the people using our code… but it’s not always in the most positive way. Successful teams think about their users, and the ways in which our users (and customers) will use the products we’re creating. . In this talk, Louisa Barrett talks about how we can and should think creatively, like a designer — not necessarily thinking as an artist, but as someone who wants to help our customers to achieve their needs, and use our products in the most effective ways.
Have you ever made a major development mistake? Of course you have. Such mistakes are typical, and even to be expected, among all developers. The key thing isn’t to avoid making mistakes, but to learn from the ones you make. In this talk, Kerri Miller describes some of the mistakes she has made — and what she has learned from those mistakes, and how they have made her a better developer. If you’re ever expecting to make mistakes at work, then this talk will help you to put it all in context, and consider new ways in which to approach your mistakes.
Many programmers get degrees in computer science, and then go on to work at high-tech companies. But the odds of you arriving at your first job (or any subsequent job) knowing everything that you need to do your work are pretty slim; you’re going to need to learn many different technologies in order to be a productive team member. Companies thus expect that you’ll need to learn, and allocate training budgets for developers. But even if you’re not taking a formal class, you’ll need to learn, on the job, many of the things that you’ll need. In this talk, Allison Lacker describes what she learned, and how she learned it, while working on a Django project at Eventbrite. What attitudes, habits, and interactions with her coworkers helped her to succeed? And what roadblocks did she hit along the way? All of us need to keep learning, and this talk describes one way that we can do this.
Many of us define ourselves as “full-stack Web developers.” And we often think that this a great definition, as well as something to be desired. But is this really a desirable description, either for ourselves, or for the people we want to hire? What does it mean when we say that everyone needs to be a generalist, and that specialists are less desirable? In this talk, Elea Chang describes the downside of having everyone aim to be a generalist — on individuals, and on the organizations in which they work.
Are you smart? If you’re a programmer, then you have probably been described as “smart” at times during your school or work career. But what does it mean to be smart? And how does this affect how you approach problems, and how you learn new things? In this talk, Allison Kaptur describes two different attitudes toward intelligence and learning: Are people born smart, or are they smart as the result of hard work? How you view yourself, how you view intelligence, and how you attack problems, are all affected by how you think about intelligence. This talk describes ways that developers can challenge themselves, help others, and work so that everyone can learn and grow as effectively as possible.