Saturday, March 23, 2013

Robots, software and hope

Hey there, Kiddo

You don't want to go to ballet class.  I am secretly glad.  I endorse and aggressively support your passions, but I don't see it having a high yield or a great shelf life.  Does every little girl who practices ballet go on to be a successful ballerina?  Much less than everyone who takes a guitar lesson becomes a musician.  I want you to have a future, and I know that it starts now.  I am worried though that you want to quit for the wrong reasons.  You might be abdicating hard work.  That would be an epic fail.  It would be an even greater epic fail on my part to support it.

Your mother is making (great) progress in teaching you to read.  Not like my mother did where she could not tell the difference between memorization and actual reading.  My daughter reads new stuff.  You.  You are learning to read.  Literacy is big.  Computer literacy might be bigger.

Here are things that I am finding:

  • RobotC - Is real-world useful.  I learned logo in 6th grade and it was pretty much wasted.  So in one room in one school I could learn to make one particular software do something.  I couldn't take it with me when I moved (and my psycho mom, justly terrified of my psycho dad, spent years and years and years moving every 3 $#@$#@ months, so I have moved ~78 times in my life and only 3 times in the last decade.  You need to have something to take with you.  You need something that has real world substance.  If I try and throw you into RobotC right now you are likely to bounce right off because it is pretty complex.  You might.  (note to self: build experiment here, test)
  • Karel++ - Is a logo-like introduction that gives some C/Java language familiarity.  Robomind.  AgentSheets.  Toontalk.
  • HacketyHack, Scratch.
  • csunplugged.org, code academy
  • ...
I'm going about this the wrong way.  

I know MatLab.  I have used it throughout my Bachelors and Masters in Mechanical Engineering.  I am pretty good at it.  I can't use it at home because I can't afford to pay off $5000/year license.  That kills me.  I am very unhappy with it.  I should have been able to make re-sellable software from day 1.  I have thought about Python/SciPy/NumPy/MatPlotLib but it is going to take some ramp-up and doesn't have the extensive libraries that MatLab has.  Right now it looks like the language to learn is, surprisingly enough, "R".  It is the favorite of stats students and has tons (and tons) of libraries.  It is open source, but it is the ugliest thing in the world to learn to program.  It is a mishmash of styles and rules.  It is the Millennium Falcon: a hunk of junk that can make the Kessel run in less than 12 parsecs (whatever that means).

The right tool for you will:
  • allow you to do something ridiculously simple with ease that a 4 year old can get.  You are a freaky smart 4 year old, so lets make this requirement mean that the software is something that an 8 year old can get and start there.
  • teach you the basics of programming, not just drafting or pretty pictures.
  • Stage you for a real language.  By "real" I mean that a real language can
    • program a microcontroller for Arduino, Microchip, or a big seller for Parallax.  If you can't build a PlasmaCAM or ARC Flashlight with it, then it is not powerful enough.
    • is open source or free to use for you day 1.  If you want to make and sell a game as a 5 year old, then I want you to be empowered to do it.  You shouldn't be charged $5000 US to do it.
    • will run on the beater computer that I have at home, and doesn't require the latest iDongle that costs a months pay (or more) to buy.
    • can make pretty/arty/beautiful stuff.  Can make good reliable daily-use software.  Can make things that you would want to make.  This means solid data access, good operating system independence (or flexibility, or not frozen to one and only one OS)
    • Being able to have GUI elements would make this a slam dunk
I should solicit all of my programming friends and ask them for input, and then record it (with some level of anonymization) about what the requirements should be for a language that can be effectively and quickly taught to my 4 year old, but can be the tool of choice for world-class programmers.  Things to do.

I have to get some good jogging music on, and another cup of coffee, and go assemble your new(er) bunk bed so that both you and your sister are able to sleep in your bedroom.  That way, once I get my weight/snoring/apnea issue under control, I can sleep again in the same room as my wife.  

I hope for you that you can have a good future.  I look now at the girls that I grew up with who were interested in "fashion" or such.  They are for the most part nothing they hoped to be.  They became nothing.  I don't want that for you.  I want to equip you with the basic tools so that you can be something.  Anything?  I want you to be something good.  I want your life to be a benefit to those around you.  I want you to make a difference for the better in your family, in your community, and in the world.  In ten thousand years, when our nations are dust, and our constructions are dust, and our words are dust - I want the echoes of the lives we lived to endure.  The only way that they can do that is as a shock wave in human lives - something very good that is carried forward in time.  All the inclinations of the fallen man are dust and have nothing.  In ten thousand years you will not be able to find a few cells stacked together of them.  Know God.  Love God.  Obey God.  Honor God.  Honor God with heart, mind, soul, and strength.  You have an exceptional mind so you have an exceptional responsibility to honor God with it.  In doing this, and doing it well, you can have the fingerprints that transform the world for the better for later on.

Assuming we live so long.  Assuming we can make it there.  I love you.  I love your amazing mathmommy too.  Just in case I'm not next to you, my spirit is next to you.  You get to see a piece of me in these words - it is a very limited medium so there is a limited vision, but it is infinitely more that no vision.  Even when you have no vision, there are those who love you, who through that love are with you.  Not in a Richard Bach sense, but in a "god-sense".  Big ideas too large for letters, or words.  In the sense of the Great Divorce.  Who knew that the narrow pipe of human communication had so many ideas it was incapable of transporting.  

Gotta go.  Love you so.

No comments: