从GISer到互联网前端工程师,JUST DO IT

本文首发于个人博客与个人微信公众号

更多经验分享欢迎围观本人 Live「从 giser 到前端开发经理之路」

我与GIS的结缘

2010年,我考上了西北农林科技大学,原第一志愿是机械相关的专业,服从调剂后,就被调配到了资环学院的地理信息系统专业,当时我是完全不知道地理信息系统是干什么的,更不清楚毕业能做什么工作,查了百科,专业的介绍更加懵逼了。

大一也没学什么专业课,尴尬的是回家,亲朋好友问所学专业,只能说是画地图的,后来学习遥感后,就说做遥感、GPS导航的。然后村里的老大爷听到就纷纷点头说,高科技啊,有前途!

一直到上大三,我才真正知道GIS毕业能做什么工作,大概有这么个方向:GIS相关软件使用相关岗位(包括数据处理,技术支持)、销售岗位(卖软件或者其他影像销售)、遥感相关从业技术人员(国内只有国企、事业单位)、测绘相关、IT方向;

面对就业方向我是如何选择的

GIS相关软件使用相关岗位

性格不合适,读书的时候,有点高傲,认为软件使用没什么技术含量,并且觉得数据处理,数据矢量化什么的,是干苦力活的,所以不会考虑这个就业方向;

销售岗位

还是性格原因,不感兴趣,并且从来没有销售本领,像女生表白都没什么技术,何况推荐物品给别人;认为好的产品,做点广告你会自觉过来买,在人旁边唠叨推荐,我就觉得心烦。这也是为什么只去那些没有推荐员的衣服店里买衣服的原因~

遥感相关从业技术人员

个人并不打算考公务员,所以进国企事业单位没多考虑,并且在学校里边学习遥感相关的东西,也就是用Erdas处理影像,简单的成像识别,一些书本上的概念原理;本科学不到什么,想从事遥感技术方向的工作也比较困难。

测绘相关

实习的时候就体验过了,自己不适合做这行,感谢测绘人员对GIS基础数据的共享!

IT行业

和性格爱好有关,喜欢玩电脑,这里的玩电脑并不是说玩游戏,大学四年,我玩的游戏只有NBA2K,打打三国战绩,拳皇,游戏上浪费的时间很少(很庆幸);然而我喜欢整的是软件安装破解,重装系统,网站搭建推广什么的。GIS520社区就是大三暑假的时候整的。尴尬的是,到了大四,我能从事IT行业相关工作也没什么技术,能胜任选择的确实只有数据处理相关的技术支持岗位。但我当时的内心是做编程开发,兴趣是从搭建GIS520产生的,于是我就开始自学一些编程技术。

(以上仅是当初个人想法)

转折点—实习

大三其实有准备考研,我选择考研的目的是担心找不到好工作,想从事编程行业,但是白纸一张,作为资源环境学院的地信专业,非常不重视计算机编程方向,软件系统原理,编程思想等课堂为0,然而在大一大二的我并没有觉悟到,一心想玩了(高中老师说的,上大学就可以好好玩了)。其实是怪自己,觉悟不高,另外环境氛围问题,我们学校的地信专业,IT编程方向就业氛围就不好,不能从学长学姐那里得到经验。

考研复习没坚持到最后,我就看编程书去了(考研不考编程),然后遇到了秋招,一家地信公司来我们学校招聘开发工程师,很幸运,人生第一次面试,还表现的很挫,也都能面试通过。最后去北京实习了不到两个月。

实习过程是懵逼的,很多东西上手不懂,有点混,但是自己也努力的去搞明白,学基础。

因为表现不好,在实习几周后,又一次被经理叫去聊天,问我是否对技术支持感兴趣,谈谈现在工作的看法。我表现的自卑,也说明自己目前技术不行,但是很不喜欢软件相关使用工作。然后就一直默默的干到实习结束,记得是清明准备放假,找个理由就回学校玩了。

虽然实习没能给公司贡献什么,但是实习的机会却使得我找到了方向,我清楚自己需要学习什么,从事WebGIS开发方向所需要掌握的技术,回学校后我就有空就一直学习。技术的学习方向并没有学长学姐可以请假,我是自己摸索的,当时找方向是这样的,查看招聘岗位要求的技能,就记下来,总结出来,然后就学习相关的技术。

GIS软件开发工程师

毕业了,我就去了实习的公司报道,当时有个好处就是,实习过的学生,毕业可以直接转正,所以,报道后就是正式入职员工了,GIS传统软件行业做WebGIS方向岗位有的也叫GIS软件开发工程师。

入职后,我被安排到了事业部;我心里认为是因为技术不行,被调部门了,不过我工作还是做WebGIS相关的开发工作,就觉得无所谓了。最后部门合并了,原来实习的部门合并到了事业部,最终都是一样的。

工作,入职就是做项目的,WebGIS项目开发,主要技术就是JavaScript/CSS/HTML,后端Java,数据库MySQL或者Oracle。这样学习方向就定的范围就更小了,先学好这些工作就轻松了。

工作的前两个月是比较困难的,记得当初和ZhangDK(一个同事)每天下班后都留在公司上晚自习,坚持了一两个月吧。慢慢的熟悉公司相关的技术,框架源码的阅读,项目做多了,也就熟悉了,待在公司里边做开发,做什么系统都可以了。

随着老员工的离职,我们就变成了老员工~

忧患意识-前端开发工程师的蜕变

做WebGIS开发工作,大部分是前端开发工作,然后自己就会关注前端领域的发展,发现互联网前端方向技术更替的很快,当时node.js、angularjs、前端自动化编程,grunt、gulp等技术流行开来,前端领域炙手可热,自己就时刻了解最新情况,然后再跟进学习技术。

我是从node.js下手开始的,原因是node.js能做后端开发,还是JavaScript语法,学会了自己就可以随意搭建网站或者一下demo应用,更好的学习前端开发。因为做开发的,前端后端你都得会,从前端到后端的交互等;当时因为Java技术不够深,其实使用Java搭建网站后台也是可以的,但是你要做很多工作,比如选择SSH框架,自己封装接口,写Controller等一套东西,学习Java后端这一套东西,花费的学习成本可不少。加上前端全家桶,你是没多少精力的。

node.js上手后,我就入门了Vue.js,angular.js等前端框架,通过gulp,webpack等工具构建环境,开发一些demo应用,了解框架的使用技术等,最后公司里边有项目用了angularjs1.x和有H5 app使用了ionic开发。我也是轻松上手的,当时顿时觉得受用很大。

然而前端技术更替没有停止,angular1.x的缺点导致Vue.js框架的流行开来,还有组件式编程的React的出现,React Native的出现等,带动了前端领域进军App,以及全端的方向发展。

去年我也学习了React,并且了解入门了React Native。发现前端能做的东西很多,只要你敢想象。

然而新公司使用了ng2开发web系统,nativescript开发app,两者对我来说都是全新的。我入职的时候花一周时间上手ng2,并且能指导其他新员工以及实习生做开发。这就是我前面积累的发挥。对于我熟悉使用ES6,以及学过TypeScript来说,ng2上手只需要一周时间,当然高级部分以及精通是需要花时间学习研究的。不过工作上,做系统,做功能,一般的就够了。如果你没有其他技术经验的积累,你可以去试试ng2上手的难度和实际~

我要说的是,前端技术在更替,并且会一直在变。如果你从事前端领域,你要保持一颗好奇接受新技术的心,也就是不停学习的心。当然,不要以为什么框架都懂了,你就牛逼了,最重要的还是基础,以及你从事方向的深入研究。框架就是工具,你学习使用和精通使用工具后,生产工具的原理,如何生产工具你也是要去研究掌握的。因为更多的工具会更具市场需求生产出来,作为程序猿,要想未来不被淘汰,你要作为工具生产者或者是了解工具生产过程的人,而不是仅仅是一个每年都可以用毕业生更换的螺丝钉!!!

总结

最后说一下为什么我离开了GIS行业。

我是从事WebGIS开发方向,也就是使用Java编程语言(不精通),然后用前端技术做GIS相关的Web开发,简单的地图js库调用实现一些功能,这样的工作不能长久,因为没机会接触核心的,比如ArcGIS JavaScript API这种库的开发才是方向。不然你的工作随时可以被未来毕业生替代。

另一个方面,比较尴尬的是GIS行业的前端技术和互联网前端相差如天地。并且开发的系统不注重体验,因为都是给当官的人用的,你看啊,是政府相关的网站哪个不是又丑又难用的。优化前端的体验等用到的技术也是要学习的,如果你学习了没机会用,那你可能就考虑一下转行了。

现实一点,个人认为传统软件行业的公司前景不好或者寿命不长,我不能把自己的技术和前途作为筹码赌博。并且薪酬和互联网差别会越来越大,也是因为技术栈差距越来越大。

未来前端会占领App市场~也就是前端开发工程师你要懂PC端,还要懂App端的开发,目前很多公司已经有要求了。现在我的工作就是,使用NativeScript开发App,一般作为前端的组长带领前端团队开发Web端的项目。我也是学习的过程,工作的过程也是学习的过程,那你就会有所成长!

更多经验分享欢迎围观本人 Live「从 giser 到前端开发经理之路」

推荐文章