How to become a GIS Developer?
- Published on
Article Number : 14
Recently, many mapping engineers and urban planners want to closely witness the developments in the field of GIS. Of course, the most important factor that causes this is our lecturers and job opportunities in this field.
Of course, engineers from other areas may also want to transition to GIS, but map engineering is perfectly suited for these jobs. You may wonder why. First of all, topographical engineers learn many things in their first year of university, such as planar geometry operations, district calculations, basic assignments, and area finding with the surveying course. Afterwards, they acquire information about spherical geometry and learn transformations between coordinate systems with differential geometry and geodesy lessons.
In their last years, they become well-prepared for the GIS field with subjects such as GIS and Photogrammetry and Geodetic Astronomy. Of course, there are many other career areas, but the power of GIS has reached very high levels in both zoning, cadastre, and land consolidation works. Additionally, having knowledge about GPS technology and coordinates puts them one step ahead compared to other professions.
Everything looks very promising up to this point. But will topographical engineers work towards becoming GIS specialists or will they continue as GIS software developers? Deciding which route to take in this distinction is something that will completely change your future. However, don’t think that you have made the decision, because even though these two business areas go hand in hand, one is in a relationship of consuming what is produced in the kitchen while the other is the kitchen of the business. Will you be a cook or a customer? I chose to be a cook. I struggled with the challenging part because producing is more sacred to me.
When you want to become a GIS expert, the things you will learn will be very different. When you want to become a software developer, you will embark on a different adventure. I cannot make a suggestion for GIS experts, but the things I will explain are very valuable for those who choose the software side. Please heed my suggestions and choose your path accordingly. First of all, you need to ask yourself the following questions.
- Am I eager to produce something new?
- Can I sit in front of the computer for hours and write code?
- When I encounter an error, do I look at the internet or ask someone who knows?
- Do I want to improve my English?
- Can I follow the developments abroad?
- Will I learn while following current technologies?
- Is my aim to make money or create a useful product?
These were the first questions that came to my mind, and you have the answer to these questions.
If I explain it in order, you have to love to produce. When you create something new, you find yourself wrapped in a different kind of happiness. You spend so much time creating something that seems simple (especially in the beginning) that hours have flown by like water. You can’t even give your dear friends the value they deserve..
Sometimes, you witness such difficult moments that no matter what you do, the code doesn’t work. At this very moment, if you search for your problem in English, you are on the right track, but if you ask a friend who knows the subject, it will make you lazy. There are so many English resources that there are many users who are experiencing the same problem as you. As your English improves, it allows you to learn current technologies at the same time with your colleagues abroad. You may have to work for small wages at first, but that is entirely up to you. As far as I can see, the person determines his own salary. Do not worry about money at the beginning of your professional life. On the contrary, it will be better to have a job that will teach you the job well. Once you realize this, you should now have an idea of what you need to learn.
First, decide on which path you will dance
- Desktop Software
- Web Based Software
- Mobile Software
- Databases and Spatial Queries
Desktop software is still the preferred choice by many companies.Because these companies cannot find web-based software completely consistent.Maybe they are a little right, but remember that you can do everything you can do on the desktop, on the web, and even sign international projects.Much more is developing on the web side.If you wonder why I praise the web side so much, it may be that I am closely following the developments in this field.Therefore, I am right to praise it.The technologies I recommend in desktop software are as far as I know and are as follows.
- You can use mapxtreme with C#
- With C# you can use the kernel of Map info
- You can use Qgis with Python
- You can use ArcObject with C#
- You can use Arcgis with Arcpy
- Python
- Javascript with ElectronJS
These are just my best guesses. If you are going to develop GIS software on the web side, you will need to know the JavaScript language very well. Because the thing that adds life to the web is JavaScript; the rest is just a kick in the behind. The technologies you need to know in this field are as follows:
- Learn HTML
- Master at least one of CSS and some CSS libraries (Bootstrap, Google Material Design, Ant design or MetroCSS)
- Javascript ES5 and ES6
- Node JS
- At least one of these frameworks and libraries is React JS, Angular or Vue JS
- Map libraries Leaflet, Openlayers, Mapbox or CesiumJS
- Auxiliary libraries are as follows; Turf, Proj4, GDAL
- Geoserver or Mapserver
When you enter the javascript world, there is no interruption of helper libraries.However, your abilities increase as much.In fact, you will start a crazy adventure with nodejs. I chose this field and I have a lot of knowledge in other fields, but I put more emphasis on the side I enjoy.Apart from that,
if you want to develop mobile software, many people either use a special SDK or develop it using Webview and web information.Java has many libraries, so it will definitely do your job on the android side.Recently, software developed with Flutter can both work natively and produce apps for IOS and Android platforms. Therefore, learning Flutter will be very useful for you. In databases, the databases you need to learn are as follows.
- Oracle
- PostgreSQL ve Postgis
- MySQL
- SqlServer
- Mongo DB
- Elastic search
- SQL lite
This is my priority.There will be others who will praise you different technologies, but many of them use them.Here are the things you need to do, if you want to learn fast, I want you to know that this is not very healthy.Apart from that, if you go step by step, you can do much better.Thus, I have answered the questions that will come to your mind first.
What if you encounter failures, for example, you get fired in the second month of your first business life, or if you get in a funny situation because you deleted the districts of a big city from the database, do not care. However, do not forget that you have to go through three stages of your code while working.
- First develop and test on your computer
- Then send it to your test server and continue the tests there.
- When you are sure, deliver it to your users on your Live server.
And use technology and services like Github, Gitlab, Bitbucket or Tortoise SVN while doing these.Version control is important and you record what you are doing at what time.You can reversibly switch between stages.You record the development stages by versioning.You collaborate with different people.After all, the future is not only within companies and offices, but also as a freelancer in your favorite place or home.
If you have any other questions, you can leave a comment. I hope I have been able to answer the questions you have in mind, even if a bit.
I wish you healthy days …