I’ll start by answering the question: A product vision sets the direction of the product, product-line, or company.
Visions are tricky things. When we talk about “vision” and “visionaries” there’s an element of the ethereal. There’s a feeling of the visionary seeing into the future, and bringing that vision of the future into the present. As Apple CEO Tim Cook has said, “We make products people didn’t know they wanted and now can’t live without.”
The vision is the yard-stick (or meter-stick!) with which we determine when something is “good enough.” Consider 2½ examples:
Coders love talking about the technology they use, the hardware they work with, the projects they work on, the problems they solve.
When it comes to the arts, you’ll hear us talk about music (especially when it’s focus-friendly music: lyrics or no lyrics, a continuous playlist or separate albums). You’ll hear us talk of books read, movies seen. You’ll hear us revel in the beauty of minimalist industrial design or express appreciation for beautiful graphic design. We’ll show off our stylish mechanical keyboards or our geek-chic glasses. …
Alishah Novin is a director of engineering with a decades’ long
career in software, and the author of the Techless Teaching
series. Here’s his best advice for progressing in a tech career.
This isn’t about reading fiction, and it’s not about reading technical manuals. This is about learning the evolving practices and methodologies of your career.
“I’m a huge advocate of managers and leaders providing that opportunity to their team members. But you can’t count on someone to roadmap your career for you.”
If your path is leadership, you should be reading about management, growth and leadership strategies, culture building…
Goal: Break down Machine Learning to simple rules that show how computers “learn.”
Series: This is the sixth article in #TechlessTeaching, a series about teaching computer science without relying on iPads, computers, and tech toys.
Years ago in college, I took a course on the Philosophy of A.I. and Machine Learning. This course had me thinking about computers in ways I’d never thought of them before—not as abstract, magical black boxes, but as mechanical devices using simple rules. Understanding how these simple rules lead to complex processes is the key to understanding machine learning.
In this article I want to…
This article is the fifth in the #TechlessTeaching series, which encourages educators to take a tech-less approach to teaching students about computers and software engineering. When you skip the iPads, computers, and tech toys, you eliminate distractions, and the students focus on the principles. If you haven’t read the introduction, I recommend starting there.
Goal: Show how difficult problems can have simple solutions, and explore game theory with simple models.
The Prisoner’s Dilemma is a classic problem in Game Theory. There have been various versions of it in popular culture, but the basic version goes something like this:
2 people…
This article is the fourth in the #TechlessTeaching series, which encourages educators to take a tech-less approach to teaching students about computers and software engineering. When you skip the iPads, computers, and tech toys, you eliminate distractions, and the students focus on the principles. If you haven’t read the introduction, I recommend starting there.
Goal: Understand linked lists and see how sorting algorithms work. Get a better understanding of how much more efficient computers are than people.
There are some standard problems every aspiring Software Engineer or Computer Scientist comes across in college. They’re part of the foundation of structures…
This article is the third in the #TechlessTeaching series, which encourages educators to take a tech-less approach to teaching students about computers and software engineering. When you skip the iPads, computers, and tech toys, you eliminate distractions, and the students focus on the principles. If you haven’t read the introduction, I recommend starting there.
Goal: Help students identify problematic assumptions that cause code crashes.
It’s common to say programmers provide instructions to computers — a more accurate statement would be that programmers provide a workflow. While instructions typically are step by step and always follow the same order, a workflow…
This article is the second in the #TechlessTeaching series, which encourages educators to take a tech-less approach to teaching students about computers and software engineering. When you skip the iPads, computers, and tech toys, you eliminate distractions, and the students focus on the principles. If you haven’t read the introduction, I recommend starting there.
Goal: Learn how to take a Computational Thinking approach and how thinking like a computer can help break problems into simple pieces.
In the last article, I focused on simplifying computers and tried to relate it to the intuition students have about the natural world. The…
This article is the first in the #TechlessTeaching series, which encourages educators to take a tech-less approach to teaching students about computers and software engineering. When you skip the iPads, computers, and tech toys, you eliminate distractions, and the students focus on the principles. If you haven’t read the introduction, I recommend starting there.
The first two articles of the series focus on establishing a framework and foundation for future concepts. Each article begins with a goal.
Goal: Help children understand what computers are by simplifying how computers work.
I’ve seen many 3rd-5th grade lesson plans that incorporate “computational thinking”…
For some years I’ve worked with children of various ages teaching technical and computer engineering concepts. In this time I’ve realized that technology, despite being so integrated into our lives, is paradoxically really hard to teach. I’ve also seen the divide between schools that have easy access to technology and those that don’t. These two observations drove me to challenge myself to take a different approach.
Over a series of articles, you’ll read what is a completely tech-less approach that establishes a strong technical foundation with students. It’s less about coding and more about building an understanding of what computers…
Coder, Coffee-Drinker, Wearer of Waistcoats