3

Don’t think this question has been asked before; I’ve just come across a question on how much math one has to know for a career in GIS. As a geography student I’m wondering how much computer science I’d need to know if I’m planning on being a GIS analyst, particularly as nearly any answer I read on here quickly delves into how to solve something through programming and it’s beyond me. Furthermore, I’ve noticed both on here and offline that most get into the GIS line of work through computer science rather than geography. I’m nearing the end of my undergrad and will be doing an MSc in GIS and remote sensing but I have also been told by a career advisor to look into a conversion course in computer science before I do the Masters to give me an edge.

However, I am apprehensive of a few things, the main reasons for my qualms being:

Aptitude. I’m wondering if I, as just a French/geography student, am cut out for computer science. More specifically, how much math is involved? While I am not averse to it (and have been using light statistics and quantitative methods increasingly in geography for my final year) it’s probably not my strongest suite. What other skills are crucial? Does computer science require more abstract of concrete thinking, as I think I might slightly lean towards the former?

The actual point? Though it’s a more applied Masters, I’ll be doing a little programming for the course. Would doing an entire year of computer science be an addition to me, not only in preparation for the Masters but also long-term, keeping in mind that it’s not only more fees but also will take a lot of effort? It’s known to be one of the most intense post-grads in the university. It is, after all, teaching the bulk of a three-year Bachelor’s in one year. I’m wondering if it will pay off. If it would be beneficial, I'm willing to spend an extra year in education.

To give an idea of what the course will entail, here’s the list of modules: • Introduction to computer systems (both semester 1 and 2) • Algorithms and data structures (both semester 1 and 2) • DatabasesStructured programmingDiscrete structuresWeb information processingSoftware testingMultimedia technologySoftware engineering and software processingOperating systems

closed as primarily opinion-based by Dan C, Jason Scheirer, whuber Apr 9 '15 at 18:38

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Knowing a bit about computers and how they work will be helpful to you, since you will spend most of your time with one. Having a bit of background knowledge can help you troubleshoot error without having to seek out the IT guy. I am currently finishing up my Masters, and from my experiences alone, database knowledge and back end programming is something I would suggest focusing on, especially is you want to focus on RS. Python, SQL, R, and Matlab (last 2 for RS) would be a good place to start, programming wise. Knowing HTML and other web scripting languages is always helpful too. – Lou Apr 9 '15 at 14:42
  • 2
    Let me put it this way: If the thought of doing any programming gives you nightmares, you're not likely to get (and keep) a job as a GIS Analyst. But taking an accelerated program in CompSci will only make you a programmer if you fall in love with programming (and even if you somehow pass without it, you will be setting yourself up to be miserable and faking it 8-10 hours a day for the rest of your GIS career). In the end, only you can make this decision, which makes GSE the wrong place to ask the question (though it would be appropriate over in the chat room) – Vince Apr 9 '15 at 14:50
  • 1
    I've made this a wiki to overcome the reasonable points that this is too subjective/opinion based. – Ian Turton Apr 9 '15 at 15:10
  • @Vince: wouldn't say that programming intrinsically scares me, just have no idea what programming will be like. So when I see it used as solution on here...I get put off because it's something I have no experience with (though I increasingly wish I did...). – Milo Apr 9 '15 at 17:56
  • 2
    This question in its current form is too personal and localized to be appropriate for an SE site. (The tentative nature of current responses, with their "it depends," "IMO," "I believe," and so on bear out this impression.) It might fit our format if it were edited to focus on a general question that admits objectively supportable reasoned answers. – whuber Apr 9 '15 at 18:39
6

There's a terminology thing that bother me here: when a lot of people talk about "computer science" they really mean "software development" (or if they're fancy, "software engineering"). You're mostly talking about software development. Computer science is to software development what mechanical engineering is to being a mechanic. The application of computer science to the real world to make and maintain software products.

How many times have I implemented the quick sort algorithm? Maybe about a dozen, but it was always on a whiteboard during an interview for a software engineering position or during a CS course final. Every programming language's standard library already has one there ready for you to use. I never learned how to debug a failing system, analyze log files, or configure a database in a computer science course, and I do that far more often.

The barrier to entry to software development is very close to zero at this point. The tools are free, and there is plenty of help online in tutorials, documentation, and Stack Overflow. It's a matter of putting in the time and being tenacious. Computer science classes can help, but you could also teach yourself most of what you need to know.

Think of it this way: being able to implement your vision in software, rather than having to wait for someone else to implement it, is incredibly empowering. The person who is good at clicking buttons to do something is easier to replace than the person who makes the buttons they press. It's better to be a tool maker than a tool user, you're one rung higher in the food chain.

I'd argue that the most good you can do for the world is learn how to develop software and apply your knowledge of geography to the software you write.

If you're planning on making static print maps, you probably don't need to know how to code. If you do anything else, from putting interactive features up on the web to doing sophisticated analysis tasks, learn to code.

  • 2
    It's better to be a tool maker than a tool user, you're one rung higher in the food chain. :D – Alex Tereshenkov Apr 9 '15 at 17:40
5

There is a need for experts both in geography and computer science. Yet imo it is possible to perform spatial analysis and answer tough geographical questions without having a solid background in computer science (further CS). When I say CS, I don't mean some quick scripting of a GIS workflow with Python (kind of questions you could find here). I mean something like developing analysis algorithms and data structures for handling geodata (Dijkstra's algorithm used in GIS routing is a good example).

As a geographer, you are a SME in your area of expertise - it could be physical geography or urban planning, for instance. Knowing your subject is crucial for solving spatial problems and neither GIS professionals nor "CS person" could answer those questions without learning how the world works. Likewise, a geographer needs expertise from IT people who could develop required techniques and methodologies as well as GIS professionals who could operate the software properly and build reliable analysis workflows. So, it is all about cooperation and interchange of knowledge.

I've seen people who are true experts in geography (such as geology), masters in GIS (know Esri/open-source/databases/Remote Sensing/GPS/x), and can write super-fast algorithm for finding out at what distance zillions of points are located from each other in the evening. However, most of us seem to focus either on geography and/or GIS or computer science, not both. This is because it is hard to maintain the competence in both fields and assignments you'll get at work are typically fairly focused.

I strongly believe that as a geographer, you can take advantage of learning GIS to be able to use GIS as a tool when doing your research and your work. This is like learning Excel for an accountant - you can do a lot with the calculator, but it gets tough without some software. For GIS people, learning some concepts of computer science is very important. This is why most of the GIS/geomatics programs include (or really should) IT-related courses such as basics of algorithm analysis, programming, and software development. However, as a GIS person, you can get a lot of your work done by using some of the IT skills you learned without obtaining deep knowledge in how computers work.

Job wise, it seems as aside from geographers, companies are looking mainly for GIS Analysts and GIS Developers. Analysts are required to have general competence in geography (as it is important to understand the world the features of which you are analyzing) and developers are required to understand the least necessary parts of geography (just so you know that the world is kind of round) and computer science (which you cannot avoid when developing a software or an application).

Last words. If you can learn programming and CS things, do that. It is never unwise to have those skills as being able to develop something new and improve existing software will be in demand for a good time. Try learning about computer science on yourself first, though. There are plenty of online courses out there. If you are into it, if you like it, if you feel that you have enough persistence and analytical skills, then get a second degree or certificate in CS. You will just become more attractive for employers and will feel more comfortable when solving geographical problems with GIS (for instance, you will be able to choose a more appropriate technique as you understand efficiency of algorithms). If you realize after spending some time learning the CS that it is not really you thing, it is also fine. Develop your skills in GIS and learn only those parts of CS that are useful for your work.

3

I think it depends on your career goals and interests... if you are interested in performing geographic analysis (technician and analyst positions), you may be fine with your strictly 'geo' background. However, if you have an interest in writing applications, designing data structures, managing servers and infrastructure, then having CS/Engr. background/knowledge will certainly help.

  • I am definitely more interested in using GIS (or RS - we'll see if I like it) in an applied way in projects rather than being a GIS developer. I think the career advisor was more recommending the CS course to diversify my skill set, in case I was going to use my GIS skills in a more specialized field. – Milo Apr 9 '15 at 17:59
3

Well, I hate having to give this kind of answer, but, it depends... What I mean is, GIS is really just a tool that is applied in a lot of different ways, to a lot of varying degrees if complexity, for a wide variety of project types.

For example, if your goal is to get a general GIS job working for some organization where you would be the main/only GIS professional, especially for a smaller organization that may not have much of an IT/Computer/Technology department, then you will be expected to be able to mange all of the necessary aspects of a GIS program. Therefore, in that situation, in addition to cartographic skils, you would definitely want a decent core understanding of building and managing a database, at least some familiarity with a relevant programming language (I'd choose Python as it's popular in GIS right now), and at least some familiarity with web/HTML/Javascript/CSS basics.

However, if your goal is to get a job with a large company that has a GIS department with a number of people in it, you may not necessarily need that as much. Larger organizations will often encourage specialization for each person, so they may have a specific person dedicated as the main DBA (Database Administrator), another as the Web Programmer, another as the python coder, and others as basic analysts. At least where I am there are often generic GIS jobs offered, but there are equally frequently specialized positions offered such as just wanting a GIS technician (no advanced comp-sci knowledge needed) or wanting specifically a web-programmer (who would need to know a lot about the web-programming side, but may only need familiarity with basic DBA concepts).

If you do decide to get some more advanced computer training though, some additional things to consider. First, look at what GIS programs you will be using, and make sure whatever computer training you are paying for covers relevant concepts. For example, if you are going to be using ArcGIS Desktop software, but the programming portion of the computer course is only covering C++ and not even mentioning python, that may not be as worth the time, effort, and money. Depending on what you need to know, there are also a lot of websites out there that offer a lot of info on various technical concepts pretty cheaply and often for free. For example, for just getting familiarity with the basics of web programming, W3Schools has some good basic tutorials. Combine that basic familiarity with new web-platforms like arcgis.com and others, and you don't necessarily have to have the most in-depth formal computer training to get some maps on the web looking pretty good.

But, I'd identify what aspects of GIS interest you most, and then go from there. Additionally, as far as having an "edge" in getting a job, also consider what industries interest you and consider looking at some training in those as well or instead. For example, if you are looking to be a basic GIS technician for a land surveyor, then having some surveying background may help equally or more than having computer knowledge. Similarly, if you are looking at going into the emerging geo-medicine research type field, you may look at getting a bit more background with statistics and/or medicine. Just some thoughts, hope they help...

  • They certainly did, thanks. I'll be sure to ask the program director what programming language we'll be looking at, as I think it may be python but I'm not 100%. I'll have to look into what fields I might be most interested in because really, though the career advisor has said that more and more students that are interested in a GIS career are approaching him, he has no resources to give them as its a diverse field but there's little information on options. – Milo Apr 9 '15 at 18:09

Not the answer you're looking for? Browse other questions tagged or ask your own question.