It's tough not to know that Edmonton and Alberta are in a recession. Young people are worried. Yesterday I was at AMA and the agent said to me "Yeah computers- that's all that's the only thing that's going to be left!"
Oil and gas doesn't exactly look like the industry of the future at the moment. The big news is technology and the common thread that weaves it all together is software talent.
There is a big software component to almost everything at the moment- electric cars, self driving cars, smart homes. A recent survey showed that in Alberta over have of technology businesses have a software component.
So how do you get kids on board with all this and get them engaged on a path to the future. Ironically, the ease of use of today's technology actually makes it harder to learn how it works. Simply using todays technology isn't going to take kids where they need to go.
When I grew up, computer users had to know way more to get something done. Finding a game to play and getting it running was a real challenge and we did things that kids today wouldn't believe, like spending two or three days typing in a game using code from magazines. Usually we made a bunch of mistakes and had to go back and try to figure out where the problem was and retype a section.
Nowadays it's click, poof! You are playing an online game in five seconds with absolutely no idea of how it works.
What the folks at Raspberry Pi are set out to do and what we are doing at Nimble Programmer is to give kids the raw computing experience they need to begin to understand how all these systems of the future actually work. To do this we go against the grain of systems that are super easy to use.
What we do is make it more difficult on purpose- for example by forcing kids to get into real, full-blown Linux OS. In Linux kids are going to be confused, they are going to make mistakes, they are going to get stuck. But that's all part of the plan.
Pretty soon they will become aware of some of the things an operating system actually does. And that's just the start. Think about these sorts of questions - What do you need to have on your computer to actually start to write a program? And where would you get something like that? And what would be the next step?
So lets say we managed to get all that set up. Lets start to think about those games we play everyday in a non-trivial way. One of the things all games have is sound. How is sound produced? What does low level code to make sounds actually look like? How could you change that code and what happens to the sound. "Oh wait, wouldn't it be cool if..."
Thinking at this level is a lot different than installing silly sound app on your iPhone. It's the kind of process needed to understand what's going on in the complex systems we have today and that are being built for the future.
Soon kids start to realize that software is the key to making these things happen. Case in point, the self-driving Tesla. The new Tesla Model 3 will be released with the hardware to drive itself. So all the cameras, actuators, radars, etc that engineers think are needed to self drive will be installed. But the car won't self drive at this point because Tesla hasn't figured out how to make the software for it to all work yet! That's a lot of programming work and Tesla just isn't there yet.
Software is big business now and its going to get even bigger in the future. We'll need programmers for the software in our house, our eyeglasses, for drone delivery fleets, robot powered fast food joints, etc, etc. For our part, we're trying to help kids be part of that generation of developers.
Will software be the last industry left? I'm not actually that pessimistic about all the other industries- they'll be plenty of those left I think. But I do know software is and will continue to be the backbone of most new technology.