A lot of questions and doubt flooded my mind when I accepted my current position two years ago. Coding was something that scared me despite incorporating it into various aspects of my life since I was young. Plus, it has always been one of those arenas that have scared off many geospatial professionals because of the learning curve associated with it. But, why?
Is it the code we inherit? The fear of not living up to a predecessor? The fear of failing? All of the above?
It doesn’t matter if you have never touched code or if you code daily; there is the constant fear of being able to “do the thing” and exceed the expectations handed to you. Nothing is impossible but we have deadlines to meet and sometimes despite what management, a user, or a stakeholder ‘needs’ there isn’t an easy fix. So how do you keep the happy medium between what you can, and are capable of, and what is needed?
- Take a breath, you got this! 🙂
- Use your resources: Use fellow colleagues (in the office and/or social media), StackOverflow, and library documentation (e.g. ArcGIS for Developers, jQuery API, Leaflet API, Mapbox API, etc.)
- Be ready to think outside the box. Just because someone says something isn’t possible, doesn’t make it true. There is always a way. You might have to really state your case, especially if you are going against the grain, but start by thinking in new, innovative ways.
- Determine your time frame: If there is something you know will have a greater return on investment or is needed, try to incorporate it but communicate all of your concerns or potential roadblocks with your stakeholders before proceeding.
- Next, break down the problem as much as you can. From my previous post #5: 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.
- Set many small, realistic milestones based on these steps and determine what you need in order to accomplish them. It is important to set three or four small milestones instead of one large one to help you achieve your goals.
- Reward yourself when you hit those milestones by treating yourself (video).
- Lastly, but most importantly, don’t dwell on the milestones you don’t meet. We’re human – we need breaks (vacations, sick time and lunches) and some things simply aren’t feasible in the time frame we’ve been given. Keep note of these moments for the future but don’t let them overtake your thoughts.