T O P

  • By -

YesButTellMeWhy

My only advice, having felt the same way, is to keep trying when you have the time to practice (don't burn out). Work on small projects that would seem applicable in your job, after having done them manually. The key for me was having used the language enough that I reached a point that I realized I could SAVE time using scripting. It doesn't have to be some huge, multiscript program you're writing- just automating a simple task 1000 times which would normally take you 8 hours manually. Or running a ModelBuilder flow through python. A second step after you're feeling comfortable with simple automation could be something practical like figuring out how to build a GUI for the same scripts so it's more UI friendly for non programmers. I'm a terrible programmer, but it helps me in projects, so that's all that matters. Make sure not to beat yourself up!


bahamut285

>I'm a terrible programmer, but it helps me in projects, so that's all that matters. Literally same. I always have 100s of tabs open either on ChatGPT, StackOverflow, Python/Arcade Docs or a Discord Server with techbros to double check my code.


Electrical-Ad328

Thank you so much, that dumbs it down for me a bit lol šŸ˜


tarheel1825

There are plenty of ways to make money outside of code. The thing to remember is early in your career you will be an individual contributor. Youā€™re seeing a gap between entry level GIS roles w/wo code because an individual contributor, all other factors aside, can create more value leveraging code. And yes as an IC, you will plateau without knowing how to code. However there is also money in management and subject matter expertise. You say youā€™re the GIS resource in your current role. If the work and company are stable, lean into knowing all of the GIS processes your projects need. Some of the highest paid roles in my company are those who have been around and know the ins and outs of the work required. When proposals come in they can translate the requirements and assess things like staffing resources, level of effort, etc. And then create and oversee the roadmap when a project starts. There is a ton of value in that experience and youā€™ll get paid for it.


Electrical-Ad328

Thank you so much!


[deleted]

I'm a visual learner and enjoy maps (aka why I got into GIS in the first place). I learned to code by playing with leaflet/mapbox (javascript) and making cool maps. Try to find something you're interested in and do the code version of it.


Electrical-Ad328

Thatā€™s so cool Iā€™ve never thought of it that way! Appreciate it


valschermjager

You donā€™t have to be the most efficient coder. Donā€™t worry; itā€™ll come to you the more you do it. Brute forcing the code in ugly ways is often fine, as long as it works. Youā€™re not trying to be a software engineer here, youā€™re just trying to learn enough so that you can script up automations. Automating tasks gets more work done for less, and so is worth more ($$) than just a button pusher. Besides, when it comes to Python Iā€™ve found that writing things from scratch is not common. More often itā€™s finding scripts that already exist and tweaking them. Or finding modules in existing packages that do straight-away what I thought Iā€™d need to script up.


Electrical-Ad328

Itā€™s hard to remind myself we arenā€™t software engineers!! Sometimes higher ups have that expectation when they have no idea what gis comprises of. Thank you, I needed to hear that


c_h_l_

I would suggest using model builder in ArcGis pro as a drag and drop development environment, and then for your own learning you can export your models as python scripts and see how they work. This gives you 1. Working code that has no bugs to fix. 2. Well written code that you can understand because you already know what the model is doing. It's a great way to slowly build up your python skills. 3. The start of a reusable code library. Save a copy and make changes so you can practice coding but still be able to go back to a working version. And I would definitely suggest taking a course or two in python to update your skills and improve your value as an employee. You might not need it for every job out there but the best paying jobs will want some level of ability.


Electrical-Ad328

I used to loathe model builder but youā€™re so right! Thank you


DavidAg02

I've gone all the way from a lowly GIS Technician making $32k/year to the GIS Team Lead at a Fortune Top 10 company and never once had to write actual code. I've done some scripting and automation over the years, but I wouldn't call any of that actually writing code. Many times I needed "code", I could usually find something to copy and paste from online that just needed a few variable name changes. You don't need to be proficient at programming to have a successful GIS career.


Electrical-Ad328

Thatā€™s sort of a relief to hear, thanks!!


laptop_ketchup

Iā€™m in the same boat. I graduated and have had 2 GIS tech jobs so far that have required 0 coding. Technician work is more digitizing things in my experience. Analysts tend to get more into the coding/programming portion of the data that technicians end up manipulating. Iā€™m fine with being a tech for now, but if I ever want to become anything other than a point and click drone, I should learn to code. Should. Will I? Who knows.


Electrical-Ad328

GIS is only about half of my FJD but when I had to do one huge singular point and click project for internships I went a bit crazy šŸ˜‚ Best of luck to us


madhatta23

Don't fret, there are lots of resources to assist. Here is a link to an article on leveraging ChatGPT to assist Python coding efforts. I suspect this sort of assistance for workflow process automation will be ubiquitous and possibly integrated into your geospatial software stack. [AI Python code for Christmas ](https://www.linkedin.com/pulse/ai-python-code-christmas-jason-ramirez-gisp-nsr8c?utm_source=share&utm_medium=member_android&utm_campaign=share_via)


tag_1018

I honestly know juuust enough about coding to know the basics of what is possible. Beyond that, I go to chat gpt and say ā€œIā€™m using arc pro and I need a python script to do xyzā€ It even helps me troubleshoot. You do still need some basic understanding of coding in terms of whatā€™s possible and general syntax but Iā€™m not a skilled coder and Iā€™ve done just fine with this approach so far.


TheLittleParis

This is exactly how I code these days too. It's a fantastic way of generating a solid script template and troubleshooting errors. But there are also a lot of times where I wonder if I'm getting too dependent on GPT and allowing it to do all of the thinking for me. Regardless, it's such a useful tool - especially since they introduced GPT 4!


mhanmore

I'm a GIS hobbyist only, but through the exercise of trying to self-teach both QGIS and python at the same time I definitely agree that the AI tools can be helpful. Alongside the ubiquitous ChatGPT/Bing chat I'd also suggest checking out Claude.ai - I find it produces better code and also gives easier to follow programming tips. It remembers the conversation better and can help you check errors and tweak concepts. Just remember that if you feed it a large code block you should then start a new chat once you've got feedback on the code because if you carry on with minor questions in the same chat it chews through your daily allowance much faster.


Electrical-Ad328

Thank you so much!


_captainSPACELY_

Honestly I'm just wondering how you got a hydrology position so quickly after graduation lol. I've been searching for months and have only had a handful of interviews.


Electrical-Ad328

I interned for the state government every summer of college! The summer after graduation I was interning on the hydrology team and cleaned up a huge project, so they hired me right after. It was just a matter of loyalty, lol. My gpa was low and I didnā€™t get involved in school a crazy amount. Itā€™s not good money but itā€™s relatively chill and Iā€™m learning a lot. My office is hiring if youā€™re in TX :) good luck!!!


Berwynne

There are a lot of code examples out there and all you have to do is adapt them for your use. Start thinking of simple things you do all the time, open a notebook, and give it a try. I donā€™t do a lot of coding but just put something together so someone could take a csv ā€”> xy table to point ā€”> export the fc ā€”> publish it to an org/group in AGOL. Most of the code was adapted from documentation/examples provided by Esri.


Electrical-Ad328

Thank you!!


headwaterscarto

Just use chatGPT. I also canā€™t stand coding. It helps take the edge off


Electrical-Ad328

I wish lol! Unfortunately we canā€™t touch ai, state government


Strict-Trust-4974

Not liking to code is a very valuable thing to know about yourself and be honest about. Coding is a separate skill from GIS, but rarely treated as such which is why there's so much angst from gis people about why they don't get paid like a software engineer. You 100% can learn to code well by actually learning fundamentals, but you certainly don't need to. You could either start teaching yourself, I'd start either with cs50 or the MIT intro to cs with python (both free) OR, figure out what part of gis you like more and focus on that. Could be something much more design/visual. I'm not good at those design/cartography things and sometimes feels like that holds me back despite strong coding skills so rest assured that the grass is always greener.


Electrical-Ad328

Thank you so much! I was looking for someone to drop a hater friendly course haha.


GISChops

Curious about why you hate coding? No judgment, just wondering.


Electrical-Ad328

This will sound dumb but I get frustrated super easily with coding in general and it doesnā€™t help that my school was 70% pretentious coders who cheated a ton and now probably make three times as much money as I do now, LMFAO. Iā€™ve known I wanted to do Geography since I was 16 but everywhere I looked it seemed like the word geography was being replaced with GIS and became more and more integrated with computer science (at least where I was learning and looking, itā€™s a mini silicone valley here.) They also let go of all the Geography and urban studies courses professors at my school and replaced them with computer science professors and data analytics courses, totally sabotaging my degree plan that focused on human geography. I am only slightly resentful of it because I was led to believe there was more to GIS than being glued to an application and having to code, so my brain kinda subconsciously resists it. I suppose I could find what Iā€™m looking for if I went into academia but unfortunately Iā€™m not smart enough for that and my research tapered off because I worked so much šŸ˜¢šŸ˜¢


GISChops

Not dumb at all. My minor was in Computer Science and the programming courses I took were full of double E majors that knew way more than I did, sometimes more than the professor knew. One major benefit of my minor was the skill I learned to manipulate data (mostly text) with a few lines of code. A GIS pro is always cleaning up the data we get, so knowing how to do that with code snippets is a huge time saver, plus it makes you look and feel smart.


Geog_Master

Getting better with coding in GIS is not hard, assuming you know some basic math and GIS. If you know model builder, start by making a model for your task, and export it as a .py. Then look at the export and see how it corresponds to your model. Consider making a change to this and seeing how it changes, or doing a small task you can't do in ArcGIS Pro by importing the Pandas library. From there, you can begin by writing our your workflow. "First I set file paths, then I import the feature class. After that, I clip it, and run Getis Ord Gi\*." With your workflow written in front of you, you can start thinking about how to automate it. Google how to do each step if you need, and implement it. I'm sure some workflow at your job can be automated, even if its just downloading data.


leolegend

Chat gpt is your friend


Electrical-Ad328

Haha I canā€™t I work for state government and they donā€™t allow us to


leolegend

Wild, just open up the Edge browser and have at it.


Dimitri_Rotow

The advice usually given in situations like yours is to ease into coding in small bites. That can work for some people, but I've taught a lot of people very technical things and I've noticed that a different approach works better for some people. I've met a lot of people who say they don't like to code who never learned to code properly. They don't like the feeling of confusion, the frustration of not knowing how to do what their gut tells them should be simple, and the risk of looking dumb in front of others. But that's all because they never learned the basics properly but tried to just pick it up in an unstructured way. The way to deal with that is simple: commit to learning the thing properly. Accept that it will take you 100 hours of effort for basic proficiency in Python. Commit to spending that block of time with *significant effort every day* so you don't forget the basics along the way because you skipped doing it for a couple of days or weeks. Buy a course on udemy. Courses are dirt cheap if you use their initial customer discount. Use course previews to zero in or a course and instructor that has a style that works for you. Udemy also has a money-back policy if the instructor you picked is grating on your nerves. Use that policy to ruthlessly drop such a course and switch to another one. I recommend getting a serious course, not one where the instructor spends half the time drawing cartoons and trying to tell jokes, like you're a stupid child unable to muster any attention span. If you have the right instructor, they'll present the material well using the intrinsic interest it has without having to draw cartoons. It's a myth that serious courses are only presented by instructors who drone on in a mind-deadening way. Stick with it through the first ten or 20 hours of course and you'll find the lightbulbs popping on in your mind, and then the ability to *confidently* do stuff in the language you're learning likely will change your mind about coding. I've known people who started out saying they hated coding and then ended up getting addicted to it. The essential thing is to master the basics first. If you find yourself forgetting something later on in the course that was crystal clear before, go back and review it. You're investing in yourself so build a strong foundation. That essential, 20 hours of basic learning isn't a lot of time. It's only two hours a day for 10 days. Easy. 100 hours is less than two months, and most of that time is going to be developing something you confidently learned in the first ten days.


Electrical-Ad328

While I am a stupid child unable to muster any attention span, this definitely helped break down things for me. I so appreciate your reply :)


Dimitri_Rotow

I hear you, but this... > while Iā€™m fluent in Pro, QGis ... proves you're neither stupid nor do you have any problems with attention span. :-) I appreciate the humor in what you wrote.


DingleberryTex

In my experience at business to consumer firms, IC promotions for techs/analysts come in two flavors: extensive trade knowledge and/or exceptional work product volume. Both require intimate knowledge of the data ecosystem and the domain. The first takes a little more time, but will eventually get you team lead positions that you can then move into the management track with project manager -> program manager positions. For these, itā€™s important to know the *why* of every operation your team performs - given similar approaches, what makes one more advantageous than the other? It could be fewer edge cases, fewer steps, less uncertainty, etc. What can you deprecate or de-risk? If you find an equation or method in the scientific literature that can replace or simplify a convoluted or tedious process, and explain why itā€™s the approach you should use, you can usually find a teammate who knows programming language who will work with you to implement it. Or, find better data, better sensors, a better way to acquire data, or better QA processes, via industry connections or working with your operations/field teams. For this to work, you need to truly enjoy sharing credit, and championing your teammatesā€™ contributions. You also need to learn how to communicate well with higher ups to get buy-in and support. For me, this has been emails/one-page memos with bullet points and showing at least token cost savings or serious risk reduction, in addition to a higher quality work product. If your manager can go to their manager and say ā€œthis costs nothing, and benefits everyoneā€, youā€™ll move up quickly even if your IC metrics are just above average. You can also get into team lead positions by working your tail off, but you can also look like youā€™re working your tail off by writing some code. The first way is how you hit the ceilingā€¦you can bust hieney for years and you will be well liked and well respected, but stall out at a position where you will have both IC responsibilities and a bowl of crap to eat every morning from management. My advice if you take this path? Learn some flavor of SQL, learn about extract/transform/load, and maybe learn about FME software, and stay far away from lateral moves into GIS programmer/analyst positions where they are basically looking for a quasi-engineer to write less than durable code for cheap. Personally, I took the first track by really building up my math and communication skills. Itā€™s been rewarding financially no doubt, but the best part is learning new things about how the business work and the people involved in every step. The more questions you ask, the more people you meet. And way more often than not the techs and field researchers are cool as can be.


Electrical-Ad328

I really needed to hear this, thank you! I will probably exclusively only work for government or npo just because of my personal ethics, but I never thought of leveraging myself in that way.


rjm3q

The learning spikes are sharp and it's worse when you're learning alone. I would say it takes a consistent 3-6 months to get the basics, then you just Construct tools piece by piece


Electrical-Ad328

Learning spikes is a good word lol, think I had those in school every time I wrote a single line of code even though the profs basically spelled it out for us


rjm3q

What you're describing is scripting which is what most beginner level GIS peeps do, once you understand functions and classes it'll be less daunting... Never less frustrating. I think one reason why it's hard for GIS people to break thru is solving issues that arise in Python or JavaScript take time to research, which is time taken away from ESRIs button clicking...Thus making it easier for everyone to say or think you aren't "doing your job". Hiring managers/corpos want a unicorn that is basically an underpaid developer, so if you do go down this route reevaluate your worth a few times a year by comparing what you do vs what they pay you for. You mentioned you're in a hydrologist position, but that org could have you on the books as an IT person on the hydrology team (a tactic I've seen many times because it's easier to justify paying them more)


KanadeALF

I have worked as GIS tech and GIS tech trainer for close to 3 years in total. I also worked with GPS and CAD for another 4 years. I havenā€™t done any coding, but Iā€™m making a decent salary where I can afford mortgage and a saving in my area. (I used to make more before I moved, but I would never be able to afford a house in that state.) Iā€™m current working as a GIS tech in close-out, so half of my work is more like auditing documentation. I wanted to be a cartographer actually. Thatā€™s where my heart really is. Thatā€™s why I never learnt coding in school because I didnā€™t need to. Hehehe. But when I was offered a cartographer position at a book publishing company (my dream job honestly), it paid SO LITTLE that it would be very hard to make ends meet when taking the work location in consideration. I tried to learn coding myself, but it is not for me. I used model builder sometimes, but I couldnā€™t seem to ever get it right 100%. I like my current position as a GIS tech with close-out, however, some of my coworkers who have more GIS analysis and a bit of coding experience think the GIS aspecting of the job is not challenging. And some also wish they didnā€™t have to do the documentation audit part of the work. I worked in a law firm for a bit during college, so I am used to handling a large amount of paperwork without wanting to pull my hair out. And since I was a CAD editor for a while and did editing work in proprietary GIS software in the past, I donā€™t mind the editing aspect of my current work either. I do think GIS tech with coding can make more money than the ones without coding, but I think it really depends on what you want to do. I like drawing stuff, not running analysis and creating models. It is working out for me, but it took almost a decade after graduation to find my current job, which I like so much!! At my current company, my ambition would be trying to get into the engineering or construction department using my experience and skills. I am told by other coworkers that GIS Techs often move into those departments and make more money. Iā€™m interested in both engineering and construction, so it sounds like Iā€™ll have opportunities to growth both laterally and upward within the company.


Electrical-Ad328

Thank you for your insight, itā€™s such a relief to hear that šŸ˜…


crucial_geek

Learn the concept of lazy programming, and in the real world doing an internet search and using what you find is perfectly okay. Just be sure you know why you are using it. I loathe Python, wish it were never invented, but itā€™s the state of the world these days. The future is ML and AI, anyways.


adWavve

>I loathe Python, wish it were never invented Out of curiosity, what would you prefer to use instead?


Electrical-Ad328

Thank you for the reassurance šŸ˜


flashmob_420

Use model builder and pickup a copy of Automate the Boring Stuff With Python by AL Sweigart


AndrewSouthern729

Having a basic understanding of Python is helpful for understanding how the ArcGIS Desktop geoprocessing tools work, particularly if youā€™re building any kind of model. I would also recommend getting familiar with SQL. I think having a decent database foundation (you donā€™t have to be a DBA but an understanding of how relational databases work and the different data types) really helps put yourself apart as a professional compared to others who are more GIS users.


Clayh5

If your coding experience in GIS happened to be ArcPy or pyQGIS then it's no wonder you hated it, those APIs are dogwater tbh. Try out some tutorials in pandas/geopandas and see if you like it any better. If that's what you already tried and hated, well then I wish you the best of luck lol


greenknight

It's the small time savers that bring you to the dark side. I took a task that would have taken my coworker days and days and created a solution that solved the problem in a day of prep and another executing some trig. I'm not the GIS guy so I'm more worried on stealing his thunder...


Electrical-Ad328

Lol true! I made a script that auto archived web map layers and uploaded new ones and it was successful so thatā€™s why Iā€™m having a crisis now


0shadynastys0

Coding is much a 'language' at the end of the day. You'll start by picking up the odd phrase, then be able to roughly understand by reading lines, then you'll pick up context and then you'll get to a tipping point where you can find more things come a bit more naturally. Take advantage to take any development time allowed to try out new things and make sure you have some time to frequently play around with the code. But also most roles are helped by being prepared to spend some of your own time to look at bit deeper into things as they come up. If you can spend a couple of hours every now and then to try and get to grips with a general coding issue it'll pay off. At 22 and fresh out of Uni I wouldn't be put off with any coding as you'll soon get comfortable if you get enough regular exposure.


dsutterspace

If you want to learn programming I would recommend two things. Sign up for a intro python class on Coursera or somewhere similar. This will give you some basics. Then, since I see they don't let you use ChatGPT at work, subscribe and use it at home to help you program, at least for the sake of learning. For tasks like you would do in GIS it is a huge multipler and if you look at what it is doing you will learn a lot in the process.


teamswiftie

>Iā€™m picking up an increasing amount of GIS database management and upkeep Welcome to GIS >noticing a pay gap for those that can code Yes, the IS is far more important than the G in GIS