Feeds:
Posts
Comments

Archive for February, 2012

Anyone that has worked with me is tired of me suggested that everyone in business should know how to program.   This thought is met with a variety of rebuttals that have only a slight shred of a validity.

Everyone programs.  If you get out of bed in the morning and go through any sort of routine (everything is pretty much a routine) you are programming.   This is not semantics. Programming is nothing more than organizing things in such a way that they transform into other things.   Everyday life is programming, it’s just not the uber-formal (re: very restrictive) programming  we think computer programmers do.

When people reject my statement about everyone programs and should get better at what they are actually rejecting is the specific implementations of computer programming – the syntax, the formalities, the tools, the long hours in front of a headache inducing screen.

If you speak, write, draw or communicate at all you have learned a set of rules that you apply to various inputs and produce various outputs.   If you work in spreadsheets, at a cash register, with a paint brush, in a lecture haul, in a lab, on a stage, you are programming.   If you make yourself a sandwich, eat it and go for a jog, you are programming.  Everything you do is taking inputs and transforming it into outputs using various rules of a system.   The system is more or less formal, more or less open.

I don’t see there being any room for dispute on this observation or rather this definition or axiom.

With that basic assumption as a starting point let me make the case that honing your more formal, strict and, yes, traditional “computer” programming skill is a must do for anyone participating in modern society.  (yes, if you do not participate in modern society and do not wish to do so, you don’t need formal programming skill, but you will always be programming within the universe…)

Without getting too out there – our lives will never have fewer computers, fewer programs, fewer gadgets, fewer controllers monitoring, regulating, data exposing, recommending, and behaving on our behalf.   Cell phone penetration is near ubiquitous, every car has computers, trains run on computerized schedules, more than 50% of stocks are algorithmically trade, your money is banked electronically, the government spends your taxes electronically and so on.   So in some sense, to not be able to program formally leaves you without any knowledge of how these systems work or miswork.  Some will have the argument that “I don’t need to know how my car works to use it/benefit from it.”   This is true.  But computers and programming are so much more fundamental than your car.   To not be able to program is akin, at this point, to not being able to read or write.   You are 100% dependent on others in the world.  You can function without a working car.

Before you reject my claim outright consider the idea that learning to program is quite natural and dare I say, easy.   It requires no special knowledge or skill.  It requires only language acquisition skills and concentration which every human i’ve read about or know has these two basic capabilities (before we go on destroying them in college.)

Why do I make this claim of ease?

Programming languages and making programs that work rely on a very small language.  Very simple rules.   Very simple syntax.   Frustratingly simple!   The english language (or any spoken language) is so much more ridiculously complicated.

It does not surprise me that people think it’s hard.  It’s frustrating.  It’s the practice and the simplification of your thoughts into more simple languages and syntax that’s hard.   And so is writing a speech others will understand, or painting a masterpiece, or correctly building a financial accounting book, or pretty doing anything you do for a living that requires someone else to understand and use your output.

I firmly believe each persons ability to translate their lives into useful programs is a differentiator of those that have freedom and identity and those that do not.  Either you are programming and able to keep watch over the programs you use or you are programmed.

Sure, companies and people are busy at work making easier and easier tools to “program” but that doesn’t change the fundamental problem.   The programs you layer on top of other programs (web page builder guis to HTML to browser parsers to web servers…) the more chance of transcription problems (miscommunication), unnoticed malicious use and so forth.

Beyond the issue of freedom it is fun and invigorating to create, to mold your world.  This is the part that’s hard for adults.  Having spent probably from age 10 to whatever age we all are following rules (others programs) and being rewarded (program feedback loops) we all don’t really do a great job molding our world.  Kids are so good at experimenting (playing).   And playing is essential to really great programming.   Programming that will fill you up and make your life better is the kind that generates wonderfully unexpected but useful results.   It’s not always about getting it right or spitting out the answer (though for simple programs that might be the point).  It’s about creating, exploring, and finding connections in this world.

I can replace the word programmer (and programming) in this post with Artist, Mathematician, Reader, Writer, Actor, etc and it will be essentially the same piece with the same reasoning.   All of these “occupations” and their activities are programming – the only thing that differs are the implementations of language (syntax, medium, tools).

When people are rejecting my argument that everyone should learn to program, they are rejecting the notion of sitting down in front of a blinking cursor on a screen and having a piece of software say “error”.   Reject that!  I hate that too!  For me, correcting grammar in my posts or emails or journals is as painful! (but it doesn’t prevent me from wanting to write better or write at all, i *need* to to survive and be free!)

Don’t reject the notion that you shouldn’t be always trying to communicate or understand better – taking inputs from the world and transforming them into useful outputs.  To reject that is essentially rejecting everything.  (and that is now the annoying over-reaching philosophical close!)

Read Full Post »

If you haven’t read Cory Doctorow’s Makers you should.

A couple years after reading it I’m reminded of it daily.   The march of technology, culture, business, education towards a future in which large organizations simply can’t withstand the tide of individual creators creating on a small scale and networking upwards.

creative destruction, as it were, little tiny piece by piece.   all on the backs and hands of people who probably wont make a fortune on these creations.  They will get by enough.

I don’t know if it turns out that everyone gets what they need and this is the new economy capable of supporting 300+ million people.  It is the new culture.  and maybe we’ll do with less. or we’re have a larger and larger income gap.

artisans, craftmakers, app developers, youtube stars, self employed…

then again, we need infrastructure.  roads, info networks, cellular towers.  can a world of makers fully exist on top of a large commercial infrastructure?  the network is the thing and the network is still owned by huge, controlled, controlling organizations.  The pipes and search engines and the social networks, owned by perhaps 10-15 organizations.

Perhaps the rise of 3d printing will make it so that eventually makers can print the necessary network at a scale that removes the requirement of these big infrastructures.

Not sure.

hard to sort out.

i’m too busy making.

Read Full Post »