Tuesday, November 3, 2015

CodeSchool Goals, or: Being Real

"In 20+ years of professional coding, I've never seen someone go from novice to full-fledged programmer in a matter of weeks, yet that seems to be what coding academies are promising, alongside instant employment, a salary big enough to afford a Tesla and the ability to change lives." -Stephen Nichols

The whole article is strongly dismissive of code schools.  The writer is a veteran programmer who cites a long history of teaching and programming.  His larger point is that code is like a foreign language where the natives (computers) have zero tolerance for ambiguity.  Teach yourself using free resources, he says. At best, he says, code schools are a way of uncovering people who have a native talent but simply lack exposure.

So why am I going to code school, and going in debt to do so?

The short answer is: mentorship and the gap between novice and journeyman.

I'm not new to technical fields.  I know from experience that when you're new to a field it's both intensely confusing and a target rich environment.  There is such a wealth new material that, at first, everything is fodder for the brain.  New words, new ideas, new paradigms.  Lots of the new things are confusing, though, and it can be hard to fit the pieces together into a new shapes.  That's ok, though, since the first task is just to get enough pieces together to figure out where you're headed.

What do you do when you've hoovered up all the loose bits, though?  After six months of self-directed learning using code academy and a few good books, that's where I'm at.  I can write a simple program, I can apply for-loops and iterators.  That's as far as the beginners materials go, though.  How do I make the jump to professional-level, though?  How do I take those simple pieces and make something useful?  Or better, salable?  There are specs, but learning to translate technical jargon is a skill in itself.

I could break the code.  I know I'm good at solving puzzles.  How long would it take, and what bad habits would I learn in the process, though?  From what I've read, there's more to coding than writing code.  No one produces code in solitude.  Programs are too big and too complex.  Working with others means making your code readable, compatible, and interoperative.  That's not something I can learn on my own.

Perhaps more important is the mentorship aspect of the school I chose.  The few months I'll have will be short, but in all my graduate program I never had the chance to work closely with an experienced researcher.  At GoCode, I'll have a chance to interact in a small-group setting with instructors who really know the business.

So no, I don't believe I'll be a full-fledged software engineer at the end of three months.  I do, however, think I will have crossed the gap from novice to journeyman.  I will have learned some essential web development tools, and the means of employing them in a production-level setting.

I'm playing a long-term game.  I know very well that expertise is not acquired overnight.  This is the start of a life-long journey.  Maybe, in ten years, I'll be able to say I'm a good programmer.

No comments:

Post a Comment