What to Do to Become a GIS Developer?
Recently, many mapping engineers and urban planners want to witness the developments in the field of GIS closely.Of course, the most important factor that causes this is our lecturers and job opportunities in this field.
Of course, other engineering areas may want to turn to GIS, but map engineering is perfect for these jobs. Of course, you're wondering why. First of all, topographical engineers learn many things in the first year of the university, such as planar geometry operations, district calculations, basic assignments, and area finding with the surveying course. Afterwards, they collect information about spherical geometry and learn the transformations between coordinate systems with differential geometry and geodesy lessons.
In their last years, they are literally growing up for the GIS field with subjects such as GIS and Photogrammetry and Geodetic Astronomy.Of course, there are many other business areas, but the power of GIS has reached very high levels in both zoning, cadastre and land consolidation works.Apart from that, having knowledge about GPS technology and coordinates puts them one step ahead compared to other professions.
Everything looks very good up to here.But will topographical engineers work to become 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, do not 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 for the hard-looking 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 go 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.
1. Am I eager to produce something new?
2. Can I sit in front of the computer for hours and write code?
3. When I encounter an error, do I look at the internet or ask someone who knows?
4. Do I want to improve my English?
5. Can I follow the developments abroad?
6. Will I learn while following current technologies?
7. Is my aim to make money or create a useful product?
These were the first questions that came to my mind.Because 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 like water. You can't even give your dear friends the value they deserve.
Sometimes you witness such difficult moments that whatever 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 expense, it will make you lazy.There are so many English resources that there are many users who are having your problem.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 which wire you will dance on
1. Desktop Software
2. Web Based Software (my priority)
3. Mobile Software
4. 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.
1-You can use mapxtreme with C #
2-With C # you can use the kernel of Map info
3- You can use Qgis with Python
4-You can use ArcObject with C #
5-You can use Arcgis with Arcpy
2-Master at least one of CSS and some CSS libraries (Bootstrap, Google Material Design, Ant design or MetroCSS)
4- Node JS
5-At least one of these frameworks and libraries is React JS, Angular or Vue JS
6- Map libraries Leaflet, Openlayers, Mapbox or CesiumJS
7- Auxiliary libraries are as follows; Turf, Proj4, GDAL
8-Geoserver or Mapserver
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.
2-PostgreSQL ve Postgis
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.
1- First develop and test on your computer
2-Then send it to your test server and continue the tests there.
3- 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 ...