Code Like Crazy

Feb 20, 2014 | Education, GIS, Rambling, Training

A mentee came across my “mentoring coordinator” desk.  The mentee was looking for a mentor who would help with programming skills and career paths.  While I am in no way qualified to help with either of these questions, it has me thinking.

My first thought is that the programming language choice doesn’t matter.  A solid base in object oriented fundamentals would be more important than choosing a language.  They’re ever-changing and the next best thing is around the corner, and the older stuff is  constantly undergoing revision or threatening to become extinct.  (Ahem, VBA, I love you…but…I wish I’d never met you.)  That leads me to training sites such as and  Lynda doesn’t have anything specifically GIS, but their fundamental courses are excellent and teach JavaScript, perfect for the next step into GIS related training through GeospatialTraining.  There are always other courses through universities or your favorite web training system.  Some searching may be required, but there are tons of virtual courses out there on programming.  Better yet, there are in person training places such as, you know, the hosts of this blog.  (And, by the way, I found this link while writing and it is a very good read.)

My next bought is that different places have different language specifications.  Often because they do different things (duh…web, server, desktop applications).  Since I really can’t talk about career planning, I can’t imagine how to find out what programming language your next job would desire.  Based on my own experience, though, I would recommend picking an open source language because those have seemed more stable over my years of experience.  The rest of my story is strictly a narrative, but maybe someone else will see the crazy path I took and find it useful.

So, personally, my paths of coding language choices has been forked and has several roundabouts and even a few dead ends.  My first exposure to programming did not go very well as it was a hurried introduction to C++.  I was running away screaming.  Then, in order to be accepted into a program, I had to take a programming course. Luckily, the second time it took.  I had a much more relaxed introduction with C++ that I loved.  It was so awesome that I almost changed career paths and went to programming full time.  Although I look back on the choice to stick with the spatial route now and then, I’m glad I’m spatial.  (Yes, you are supposed to read that special.)  But that well-taught introductory course paved the way for me to dabble in Perl, Avenue, VBA, Python, JavaScript, and, yes, I’m old enough to have even played around in AML.  Best of all, when I received my first job I was able to say I knew how to program.  I was even lucky enough to be able to jump from C++ to C#.

Every once in a while I get frustrated because, let me tell you, for ArcObjects, Visual Studio Express doesn’t work so well! If you can’t tell, I learned that the hard way.  I had a piece of code functioning in Visual Studio, switched it to express and nothing.  I rewrote the whole thing, checked all the logic and then finally realized it was just that I was using Express.  That put me off coding for a while.  Especially because the help for Express couldn’t tell me why I was having such a hard time.  Everything should have worked, but it sure didn’t.  So, hiatus.

Speaking of hiatus, I think it is incredibly important in learning to program to set attainable goals.  It should be logical to anyone who has had any programming experience that they need to make a change and then debug.  But…well…every once in a while I forget this and bite of way more than I can chew.  Thus, I’ll code like crazy for a spell and then nothing for a long while.  Goals.  Small ones. They’re good.

Back to the story.  There’s the fun fact that I can only use Avenue on an XP machine since ArcView 3.x doesn’t like Windows 7.  That’s pretty useless.  And, just when I thought Esri had a great training solution to switch from ArcView 3.2 to the impressive ArcGIS Desktop, which I partially did, I am now running into ArcGIS’s threat to do away with VBA for years now.  Great.  Now I have two piece of useless code.

The moral of these stories is that finding a language you can write without any expensive IDE and software ‘s flakey support and keep small goals.  You can always branch out later.

Shout out: This weekend (February 21-23, 2014) Code For America is doing “Code Across” with events many, many places.  There are some GeoGeeks involved (I’m excited Lyzi Diamond is in Lexington, Kentucky) and it is just awesome.  So check it out.

Side note: if you are interested in signing up for a mentoring, I recommend two options: URISA’s Mentoring program through the Vanguard Cabinet and ASPRS’s Mentoring program through the Young Professionals Council.  Both are seeking mentors, mentees, and mentoring coordinators.  I am actively involved in both so please feel free to complain directly to me if you don’t hear from us in a timely manner.  So far, though, I have heard great stories and also had excellent experiences.  It is always a tremendous amount of fun to have a conversation that doesn’t start with an explanation of what you do!

You may also like

Advertising and the Great Tweet

Business. It's complicated. One of the more complicated things I've done has been advertising. How do you advertise a small GIS Consulting Shop? Ads on "The Internet"? Magazine? Direct Mailings? Word of mouth? The answer is "word of mouth". That and Conferences. That...

FOSS4G Nashville Updates

wiki: OK - Updates. When this conference first started a few years back it was a wild hope that I could start a community building event here in the Southeastern US. Every year I was always amazed that people...

FOSS4G Nashville Nov 30-Dec 2nd 2022

FOSS4G Nashville Nov 30-Dec 2nd 2022

It's happening. The big plan for the FOSS4G style meetings I've held around here has been "grow this beyond me". At the TN GIS conference this year I was approached by Two people from Vanderbilt and this now gets a little bit bigger and better. So we're headed to...