1. Write children's books - because I love reading good books to my children, and if successful, the revenue scales and they have great recurring revenue potential (much better than adult books, I think).
2. Try to bring software development education to underprivileged kids in some way that eventually scales and has real career potential. There is part of me that feels this has potential, because the opportunity for self-development is so high, and the cash costs of the tools low. There is part of me that worries it is futile, because I suspect software development jobs actually require more deep and diverse basic knowledge of math and reading than I could hope for in underprivileged environments.
I did #2 for a time on the south side of Chicago while I was in graduate school. We founded a non-profit; begged, borrowed, and stole computers; and wrangled a lease for $1. Paid for internet and power out of my and my co-founders pockets.
It turns out the educational systems in areas like that are, ah, pretty bad. We ended up teaching more basic logical thinking and occasional math (arithmetic) than real programming. Still, we got the kids to make HTML/CSS websites, a few picked up some basic JavaScript, others made Arduino robots. We offered a safe, educational space for free or as close to free as we could.
It was very rewarding, but also one of the most brutal experiences of my life (earning <$30K and working as a graduate student didn't help, of course!). I'd do it again, but only if I had the cash to back me, preferably my own because grant funding is/was thin, the labor required is enormous, and volunteers are flaky.
I still keep in touch with one of our students, though. I like to think we really helped him, at least.
For #2 I have thought considerably about this as well. It seems to boil down to two things:
1. Lack of awareness. In many of these environments "software engineering" doesn't really mean anything to anyone, especially if few households own computers in the first place. Growing up in Detroit, my Dad lugged in our first (huge, ancient) PC when I was in the 4th or 5th grade - if I had simply been pointed in the right direction, I could've started my learning much earlier. I remember lots of kids in our middle school getting super interested in HTML/CSS, but only having access to PCs for an hour or two after school.
2. Learning ability. Obviously not to say there aren't any smart underprivileged people, but it is not often made clear that one's ability to learn is, in itself, a powerful asset. I believe this is the strongest factor in one's ability to program outside of personality inclinations, and that anyone can increase this capacity (within whatever local spectrum their personality and lifestyle allows).
As for 2, I think that's where the life experience of the parents weighs heavily.
For example, I'm deeply saddened when reading about scam private universities, because they prey upon people who value the ideal of "education" and really want to succeed, but don't have the people around them with enough experience of higher education to distinguish the good schools from the scams.
Couldn't agree more. Also, again from "Hoop Dreams", it was as though the basketball players believed that having entered college was going to transform their career prospects in itself, regardless of what they learned. If you see college as some sort of mysterious potion, then you might think any college will transform you. You don't see that college is at best a tool for developing skills that are relevant to building a career.
I agree with 1. My wife and I just re-watched "Hoop Dreams", which she had never seen. There is a moment where Arthur Agee goes on a recruiting visit to a 2 year college, and is shown offering 4 different generic career ideas to 4 different adults in quick succession. ("Architect", "Business", "Communications", etc). Its like he is guessing at what a career might be, he doesn't have a frame of reference. So, I think the lack of awareness in underprivileged environments may apply to high level career paths in general, not just SD.
Regarding 2, I also agree. I think right now, the school (and possibly home) environments are so sub-optimal that we really have no idea what most underprivileged kids are capable of. But that problem is vastly larger and more intractable than the "could we teach kids pragmatic SD skills" problem.
As much as I want to believe that some kind of pragmatic software development curriculum could offer a scalable career direction for some of these kids, its not clear to me that it would really solve either of these problems. So, I continue to think about it occasionally, but not pursue it.
Also, I once tried calling underprivileged schools in my city (St. Louis), asking about opportunities to tutor kids in CS/computers. In each case, I got blown off, or referred to the city-wide magnet school, which teaches a tiny fraction of the most gifted students, many of them from the county.
For #1, I've heard that children's books is a flooded market and that getting published is nearly impossible. There's always room for something great -- just a heads-up when I read "the revenue scales".
I'm friends with a hugely successful children's books author -- top 50 selling in the English language -- and related to a pretty successful new author.
It's hard work, not just the writing, which is way harder than it looks, but the marketing, which nobody really does for you, at all. You have to do tons of reaching out to schools, trade fairs, and magazines, pay your own travel expenses, and develop a whole extended entertaining workshop presentation to sell 20-50 people at a time, of any age, on buying your books. Unless your book is called Harry Potter, you are eking out sales in person a lot of the time, and wondering who you have to sleep with to get your book reviewed. Even a rave review from the NYTimes really doesn't do much to sales. I hear about seemingly successful books all the time that, when I look them up on Amazon, have maybe 8 reviews.
Teaching math, reading, and thinking is far more fundamental than programming. Entry level programming is very simple to learn if the fundamentals are known, and the fundamentals are more broadly useful than training people to walk through a Node tutorial
I was thinking about #2 - would it be plausible to get ultra-cheap laptops, and run virtual machines in ec2?
According to this, you can get a high-end gaming rig going for fifty cents an hour; can we get a nice programming environment set up for the kids, too, running off Chromebooks or cheap Dells?
2. Try to bring software development education to underprivileged kids in some way that eventually scales and has real career potential. There is part of me that feels this has potential, because the opportunity for self-development is so high, and the cash costs of the tools low. There is part of me that worries it is futile, because I suspect software development jobs actually require more deep and diverse basic knowledge of math and reading than I could hope for in underprivileged environments.