Steve Oney on the Importance of Hands-On Learning, Accessibility, and How Foundational Skills can Translate to any Web Tool
In “Practical JavaScript: From Scratch to React,” learners build a diverse knowledge base that can be used to solve any web development challenge
It’s one thing to be able to code, but the ability to create professional, scalable web applications requires a deeper understanding of the fundamentals behind web languages and frameworks. Teaching these core competencies and providing ample opportunities to apply those lessons is the foundation of the new course series, “Practical JavaScript: From Scratch to React.”
Steve Oney, associate professor of information at the University of Michigan School of Information, wants his learners to acquire and hone problem-solving skills they can use with a variety of web technologies and frameworks. Oney’s four-course series features “Let’s Build” exercises, in which learners get hands-on experience as they progress toward becoming confident and effective software architects.
Professor Oney answered questions about what he hopes learners take from the course series, why designing with accessibility in mind makes for better web development, and what it was like to build his first web application — with a textbook.
-
SeriesPractical JavaScript: From Scratch to React
Create full-stack, interactive, accessible web applications using JavaScript, HTML, CSS, React, and Node.js.
-
What makes "Practical JavaScript: From Scratch to React" different from other online web application courses?
-
One of the main things I tried to emphasize in this course series is giving as many opportunities for practice and hands-on learning as possible. I think the best way to solidify your knowledge is by applying what you’ve learned to actual problems, and in this course series, we will have in-video questions, questions embedded in the course readings, practice problems, and assessments, all designed to give learners a solid grasp of the material.
-
Many people can follow coding tutorials, but building applications from scratch is a different challenge. How are the skills needed to build software different from the ability to write code?
-
I think many coding tutorials are helpful in that they give concrete examples, but it’s also important to try to generalize those specific examples so people can more broadly understand concepts. In this course series, I try to strike a balance between both by combining higher-level conceptual explanations with tutorial-like “let’s build” examples. I think this ultimately builds a stronger understanding of what we cover and makes it easier to learn some new concepts and skills that are not directly covered in this course series.
-
By the end of the course series, what types of projects or problems do you hope learners will feel confident tackling on their own?
-
Of course, I’m not able to cover everything, but my hope is that after taking this course series, learners build a better understanding of architectures, problem-solving approaches, and considerations that will allow them to solve nearly any kind of web development problem. There are going to be specific libraries and tools that I’m not able to cover (e.g., for game development, scientific computing, computational art), but my hope is to teach the core competencies that make it easy to take the wide range of domain and background knowledge that learners have and use web development to solve problems that are important to them.
-
Accessibility is a major focus throughout this course series. What is the benefit of incorporating accessibility into the design process at the start of a project?
-
Making accessible applications is the right thing to do on multiple levels. First, it helps ensure more people can use and benefit from what you’re building. Second, accounting for accessibility often results in better architectures that are more flexible and can be used in a wider variety of ways. Often, it doesn’t take much extra work to make something accessible as long as accessibility is taken into consideration from the beginning. There are considerable benefits to it.
My hope is that after taking this course series, learners build a better understanding of architectures, problem-solving approaches, and considerations that will allow them to solve nearly any kind of web development problem.
-
What was the very first web application you ever built, and what do you remember about that experience?
-
It has been quite a while, but the first thing I remember developing was a Tetris clone (though full disclosure, I don’t remember if this was a Win32 or a web application, since I was learning both around the same time). The main thing I remember is how rewarding it felt when I was able to get small things to work. At that point, there were not many resources for learning how to do projects. There was no StackOverflow, AI, etc., and my main resource was a large textbook, so I had to sort of teach myself as I went along, which was a great way to learn but took a lot of persistence and patience.
-
Web development technology changes quickly. How do you stay up to date on the latest technologies?
-
Web development tools do change quickly; some of the most dominant libraries from 10 years ago are largely irrelevant for new projects. So in this course series I emphasize building more foundational skills and concepts rather than just teaching the libraries or frameworks that are most popular now (though I do some of that too). Once you understand those core concepts, it is much easier to understand new libraries, which will come and go.