The Nine Truths of Coding

I am sure some of you are wondering why I haven’t put in one line of code into this blog yet. It’s a very valid question and one I asked frequently a year ago, wishing more developers would incorporate code into their blogs but ultimately coding is more than coding. It’s about the basic fundamentals, using a tool to make something cool.

I’ll get to some coding soon but I truly believe the basic fundamentals are needed before you start going down the path of coding. Most importantly, it helps those who think coding is too hard. Of course it’s hard but so is learning to ride a bike as a child – and that didn’t necessarily stop you, did it? Think of all of the missed opportunities you could have in life had you chose to forego learning how to ride a bike.

So before you start writing off coding, here is my top nine truths of coding. I hope you enjoy (and please comment below or send me a message on the Twitters)! 🙂

  1. Coding is hard. I can’t stress this one enough and I explain coding as a rollercoaster. There are both highs and lows, the highs being higher than anything I’ve experienced in my professional career and the lows… well, they are low. Be prepared for both the highs and lows on top of any stress you may encounter – you’ll be a stronger, and better person in the long run but if you give yourself a lot of scrutiny those low moments will be brutal.

Rollercoaster

  1. Find a hero. I can’t stress this one enough – find someone you can go to for insight and who will provide unbiased advice. This person doesn’t have to be physically near you either; it could be someone from GitHub, Twitter or a meetup (see my previous post). Some may call this person, or persons their mentor(s) but this person is much more than that since they understand exactly what you’re going through. Latch onto these people and learn as much as you can from them.
  1. There’s more than one answer to every problem. As a geospatial professional this one wasn’t a new concept to me but I’ve seen other developers struggle with this one. There are so many libraries and tools you can tap into as a developer. Keep your mind open to new possibilities, even if you have a working application there may be a way to enhance usability or cut down on load time.
  1. Be prepared to learna lot. Something I eluded to in #3, there are so many different languages, libraries and toolsets. This is a really hard concept for someone who is new to development and just wants to get started. Don’t worry about being an ‘expert’ yet, in fact throw that idea out the window. Be ready to learn something new every day and build up your skillset.
  1. Break down e-v-e-r-y-t-h-i-n-g. Coding is awesome in that we can fix small pieces to make an entire application better. For example, if our problem is that we need to buy more milk, let’s break it down:
  • Q1: How much milk do we need? A1: We need a gallon of milk.
  • Q2: How much money do we need to buy a gallon of milk? A2: We need, at most, $3.00 on either a credit card or in cash.
  • Q3: How do we purchase the gallon of milk? A3: We will walk to the convenience store down the street.
  • Q4: What if the convenience store doesn’t have a gallon of milk to purchase? A4: We can walk an additional five blocks to a larger convenience store.

Some of these questions could be broken down even further (ie: What kind of milk?) but you get the point. Breakdown each problem into individual components, for both your sanity and your code’s sake. To get going on this respect, start by writing out some of the processes you plan to take. Eventually it’ll become second nature. Trust me on this one.

  1. Find a group of peers. While I would recommend finding a hero first, this is also of huge importance. When you experience a low point in your coding journey you will need your peers, who understand what you’re going through, to be by your side. Plus, you’ll be able to learn cool new things together.
  1. Get outside. A lot of people believe that developers sit at a desk all day. Yes, that happens and then we go crazy. If you are stationed at a desk all day, get up! Visit your coworkers, even if they aren’t fellow developers, go for a walk or grab a cup of coffee. The ‘experts’ agree, a change of scenery helps keep our creative juices going. I don’t have a link for this one but there has been a lot of momentum on this in the last month.
  1. Get rid of the BS, if you can. Sometimes it’s not possible to do this but get rid of any unneeded stress in your life – whether it be a task or person. If someone keeps blowing you off, they aren’t worth your time and they aren’t a good friend of yours. Remove/omit these things from your life and do it now, you’ll be much better off.
  1. Do something fun! I know, coding is already fun, right? But seriously, do something fun with your code, at minimum 2-3 hours a week. Whether that be doing a Twitter chat every week, finding a cool new library that does nothing relevant to the work you do (but could in time), grab a coffee/lunch/beer with a coworker to ‘talk shop’ or whatever it is that you find fun.
Advertisements

Which tool is the right one?

A tweet from Matt Kremer last month (listed below) sparked something greater with me that I wanted to share with others. Enjoy, and please comment on your own experiences, too!

Almost two years ago I was sitting with a colleague enjoying a cold beer and he mentioned something that has stuck with me ever since, “GIS is a tool, we use it to produce results but if we don’t understand what we need, it’s useless.

So incredibly true! As someone who has worked in many different sectors, I’ve applied GIS technology to many different departments, areas and projects.

Two years later, Matt’s tweet hit home yet again. As a developer – code isn’t the end goal, it’s a tool, like GIS is, to produce something great. Is it always the answer? No. But it could be.

What I’m getting at is – don’t think of the means to solve a problem, think about the end product (but remember that end product can change over time, too). Here’s a list of some of the questions I think to myself before initiating anything in my life:

  1. Why do this?
  2. What is the goal/purpose?
  3. Will I have help? Guidance? If yes, how much?
  4. What is the anticipated timeline?
  5. What do I expect to see when I’m done?

After answering some of these questions, we can better define the means, and which tools best suit our purpose and goals. Will we always use the right tool for the job? Not always but we can try our best to solve the problems that we face to find solutions – and I think that’s a pretty cool thing.

Lions, Tigers + Bears – Oh My!

My unofficial Lions, Tigers and Bears (oh my!) – aka Maptime, Github and Twitter – list based on an e-mail sent to a colleague interested in the GIS development and open source communities. Enjoy, all! 😛

  1. Lions (Maptime – MSP Chapter) – http://www.meetup.com/MaptimeMSP/

Meetings are generally once a month on weeknights for two hours. I usually grab some #geobeers with good folk before and after. Good stuff; ranging from introductory to advanced topics throughout the event. Your spouse and/or kids could definitely come, too if they have interest in cool maps/cartography/geogeek stuff. 🙂

 

  1. Tigers (Github) – github.com

For now just sign up and you can follow me if you want to see the ridiculousness that I do (forewarning – it’ll probably be obnoxious). Don’t worry about logistics on this yet, the biggest thing is to get on here and watch what people are doing, check out some cool things and other ridiculously fun things. Don’t worry about posting code if you aren’t comfortable, we’ll get there together.

  1. Bears (Twitter) twitter.com

Sign up!!! And follow some cool and knowledgeable people/groups such as:

  1. Mapbox @mapbox,
  2. NACIS @nacis (Cartography-based conference in Mpls this Oct),
  3. Gretchen Peterson @petersonGIS (Cartography genius),
  4. Visual Idiot @idiot (this one is for fun more than anything),
  5. LeafletJS @leafletJS,
  6. CodeNewbies @codenewbies (they also have a Twitter chat every Wed. night – HIGHLY recommended),
  7. Lyzi Diamond @lyzidiamond (a cool geo-dev/geogeek),
  8. Maptime MSP @maptimeMSP, and
  9. MN GIS/LIS @mngislis

Also, this week in particular is HUGE – two amazing conferences are happening the Esri Developer Summit and FOSS4GNA. So follow the following hashtags (I’ve been keeping these browser windows open all day and refresh when a few come in) – #foss4gna and #DevSummit.

Hey! And yeah, it’s been a while…

It’s been a while since my last post… 2013 to be exact (yikes). So, onto the quick list of updates already!!

  1. I’ve got a ‘new gig’… as in I started it shortly after my last post, so while it’s “old news” it’s also ‘new’ (sure, why not). I hung up my field boots for JavaScript libraries and couldn’t be happier.
  2. The last few months have been challenging but they have also been extremely rewarding (More on that in future posts).
  3. In 2014, I served as the Conference Chair for the Minnesota GIS/LIS Consortium‘s annual conference. I had the backing of an amazing team and we accomplished some really cool things. Expect some “recaps” or references in future posts.
  4. In January 2015 I was selected to serve a two-year term on the URISA Vanguard Committee focusing on students and young professionals in the geospatial and URISA communities.
  5. I also coach hockey in the winter, hike in the summer, skate wherever there is free ice and love talking with fellow colleagues after work hours. Expect future posts on these topics as I find a lot of my inspiration comes from these moments and carries over into my professional career.

hockeyOkay, you get the point… It’s been two years and life has happened.
Long story long… I hope to tell the tale of a geospatial developer; the up’s the down’s, the successes the failures, and everything in between. More soon!

Sinkholes, Meteorites and Tornadoes – Oh My!

One of the latest talking points in the United States are sinkholes as a result of the sinkhole incidents in Seffner, Florida last week and Monday. Sinkholes can be formed in many locations throughout the United States frequently linked to karst topography (Figure 1).

Karst TopographyFigure 1: Karst Topography/Limestone rock throughout the continental United States (United States Geological Survey, 1972)

Sinkholes often take thousands of years to form and can vary in size depending upon the localized conditions. They occur when a layer of rock underneath the ground is dissolved by acidic water (Figure 2).

SinkholePoster_Southwest-florida-water-management-district-620x486

Figure 2: The Making of a Sinkhole (Southwest Florida Water Management District)

Normally before a sinkhole splits the ground, the ground begins to slump and we can notice these characteristics. However some areas do not slump before the ground splits so while we can sometimes notice sinkhole characteristics before the ground gives way, that is not necessarily always the case. Characteristics that may indicate a sinkhole is imminent can include:

  • Surface water or stormwater runoff disappears into the hole/depression,
  • The hole/depression appears after a heavy rain event or after the ground thaws from winter, and
  • The hole/depression reappears after being filled.

Just as the meteorite incident in Russia late last month or tornadoes in the spring and summer seasons have sparked human interest, sinkholes have recently entered the radar of many Americans and people around the globe. But it is important to remember that no matter where we live hazards will as well. Whether we reside in California where faults, tsunamis and landslides are the main hazards or we live in Minnesota where tornadoes and blizzards are the main threats. We cannot simply move to an area and expect it to be safe nor can we expect complete devastation. We must understand and educate on the risks in our local area we reside in and prepare ourselves and our families. While we cannot always predict or prevent a disaster from occurring we can respond more effectively if we are educated and prepared of the risks to the community.

Directional Passions

I recently finished reading the book From Here To There by Kris Harzinksi (Amazon). As a cartographer, looking at hand drawn maps has always been a fascination of mine and the collection compiled by Harzinski is no exception. His book has: direction maps, found maps, fictional maps, artful maps, maps of unusual places and explanatory maps. Some of my favorites are: Fellow Passenger Becomes Friend (34), Quastolia (96-7), and Shared Notepad (114-5).

From Here To There Cover

Each of these maps, different in their own way, are based on the cartographer’s intent and knowledge of an area. Each shows the individuality of its cartographer and their thought process on a piece of paper. Some maps are incredibly detailed while others very simplistic. When looking through the maps compiled by Harzinski I see more than a map and try and think in the cartographer’s shoes. “Why was this map drawn this way? What was s/he thinking? Feeling? Intending?

For me it goes back to one of the first maps I ever drew – before MapQuest or any web mapping tool was available to the public. It was a map with detailed directions from my school to my house to anyone who would be visiting from my school. This project is one of my earliest memories that sticks in my mind – ten years before I knew I would have a career in Geography – a sixth grade geography assignment that changed my life. To this day, those directions are the same directions I give to anyone visiting my parents house.

What is your directional passion?

Innovation

The wheel, the printing press, refrigeration, the automobile, the printing press, the light bulb, the computer and the internet. Imagine how different our lives would be today without the list above and if their inventors stopped their efforts before arriving at the inventions we continue to use to this day. Thomas Edison once said, “I have not failed 1,000 times. I have successfully discovered 1,000 ways to not make a light bulb.

In the Emergency Management, GIS and Social Media fields innovation is key – finding tricks of the trade that have been used and manipulating them to find solutions that work and increase production. Yet many in each of these fields get lost in the crowd. Why? As Robert Atkinson once said to his son, “When you don’t have to complete for eyeballs, you don’t have an incentive to be innovative. At a real fundamental level, you don’t have to be innovative.” When pressures don’t surround us, many of us don’t see the need to be innovative.

I can definitely relate to Atkinson’s words. In my high school days I was a goalie for my school’s ice hockey team. We were one of the top teams in the state my junior year and were undefeated headed into the playoffs. I was the only goalie on our team and while I did work hard throughout the season I didn’t have another goalie pushing me and if I got injured there was no one there to back me up – I was it. In the section championship against our rival school we headed to overtime, where you guessed it, we ended up losing the game.

Fast forward one year later to my senior season – we had a good backup goalie join our team, who helped push me to be a better goalie. I was a better goalie with her presence at our practices and on the bench watching our games. She made me skate harder in practice, sweat more and, with the hardships of the previous season, push harder than I ever had since she could replace me at any moment if I made a mistake. In the same game against the same opponent we lost to just a year earlier we were down a goal with a minute left in regulation time. In what seemed like a near-repeat of the previous year, my team came back with an equalizer and scored another goal a few minutes into the overtime session to send us to state where we eventually took home the state title for the first time in our school’s history.

Could I, or anyone of my teammates, given up after our section championship that year? Definitely. Just as Emergency Managers or GIS professionals can continue to do the same monotonous work every day but just doing the work will not give you the same results – it is the innovation and entrepreneurship of an individual and/or team that allows for success. The answers may not appear as you hope they will and while it seems all hope is lost – keep going. The greatest moments in life don’t come easy – hard work, dedication and most importantly, YOU will get you there. Keep pushing and never look back.