从从参加工作到现在,已经接近三年了。在这不长不短的时间里,我的职业规划犹如正余弦函数一样变化,一直游离在前端和后端之间。

  第一年入职,被安排维护和拓展一套基于JAVA实现的地图瓦片生产工艺程序,不算复杂,基本上也涉及到了一些JAVA的特性,例如文件IO、多线程处理文件、Servlet实现、RPC等等。这些也是以前在学校里自己做小项目没有涉及到的内容,还算有所收获。当慢慢熟悉这些业务代码,开始雄心勃勃的想要做一些拓展优化的时候,突然一纸调令让我投入到前端矢量地图渲染中去。还在做着成为服务端大佬的白日梦的我一下子被推到了前端WebGL领域。

  第二年,从Mapboxgl开始,以前的我对于javascript仅仅停留在jquery和一些简单的ui库上,并没有太深入的了解,这会一开始就要深度介入前端和基于计算机图形学的WebGL中去,着实是令人苦手。不过好在我被WebGL实现的地图渲染具有的前瞻性所吸引,内心觉得,做一名前端工程师也不错。于是硬生生的啃下了一套WebGL教程,把mapbox-gl-js的源码从头到尾撸了一遍,最终推出了一套基于Mapbox实现的矢量地图渲染方案,然而这套矢量地图的安全性和客户端性能上无法达到领导的要求,也没有给我们太多资源和时间去优化,辛苦一年的WebGL旅程也开始虎头蛇尾的不了了之了。

  这个时候风云变幻,组织架构出现了调整,我也被调整到了数据部门,开始为生产人员开发数据生产平台,大概花了两三个月的功夫,和一位python同事共同开发了一套数据生产平台,这个平台最有意思的一点在于,前后端都是由我一个人完成的,前端是基于vue和Element UI,后台是基于Spring Boot实现。这个时候,我的职业生涯出现了迷雾,为什么跌跌撞撞又回到了研究生时代,我咋又前后端一起挑了,说好的前端图形渲染工程师呢?算了,既然又开始做后台了,不如趁此机会拓展一下技术栈,多找一些后台的框架用一用,什么Quartz处理定时任务啊,什么消息队列缓存请求呀,什么数据库入库SQL优化啊,尽量都摸了一下。做完这个之后,我想,这下我可以安安心心的做一个数据平台的后台开发工程师,着重于大数据的管理和处理效率,也可以关注一下平台大规模应用瓶颈的研究。然而,生活总是充满意外。不过这个时候我已经习惯了,我并不意外,随着平台开发的进行,一些新的工作出现了,比如说基于前端d3框架的渲染和交互式响应,开发实现一个富客户端的前端数据编辑应用。好吧,撸起袖子干吧。框架学的很快,功能实现的很多,处理bug也愈发熟练了,可是,我已经完全迷失方向了,我最终会成为一个什么样的程序员呢?服务端?WebGL?前端?

  真的很迷茫,靠着仅剩的一点对于职业规划的自律要求,我从未停止过思索:我现在干的这些事,我能收获什么?我还想干什么?我有没有机会去干?

  屈原有一句话怎么说来着,“路漫漫其修远兮,吾将上下而求索”。三年时光如白驹过隙,我没有在我理想的职业生涯上有所前进,这是我自己的问题,如果我不能解决这个问题,那可能我的职业生涯也就这样了。今天写下这乱七八糟的回顾,也是对我的一种激励,希望我能以此文为诫,早日走上正途。

【GISER&&规划】我这二三年的更多相关文章

  1. 我的屌丝giser成长记-研二篇

    之前有提到过的,本来按照计划中,研一结束就该去深圳中科院研究所实习的,之前跟里面师兄说好了的,奈何导师又接到一个新的科研研究项目,跟学院的几个其他老师一起合作的,主要是关于土地流转系统,而且是一个挺大 ...

  2. ros局部路径规划-DWA学习

    ROS的路径规划器分为全局路径和局部路径规划,其中局部路径规划器使用的最广的为dwa,个人理解为: 首先全局路径规划会生成一条大致的全局路径,局部路径规划器会把全局路径给分段,然后根据分段的全局路径的 ...

  3. zabbix监控规划及实施

    一.规划监控拓扑 二.主机分组 例:交换机.Nginx.Tomcat.MySQL 三.监控对象识别: 1.使用SNMP监控交换机 a.交换机开启snmp config -t snmp-server c ...

  4. Make a plan, and stand for it!

    我发现博主本人善于事前做计划,事后做总结.但是不善于坚持自己的计划.就拿10.1这个假期来讲,放假前看多许多的攻略,计划了很多条的自驾出行的路线,但是好像一条也没坚持,最后选择了一条临时的线路,而且临 ...

  5. 目标决定人生——没有目标就失去一切 (没有目标的奋斗是浪费青春,比如交了钱却不去参加考试、让时间白白溜走。根据目标与定位来选择最合适的企业。人生要算总账)good

    没有目标就失去一切 刚毕业那会儿,幼稚得可笑,老跟同学打电话,明面上聊聊近况,暗地里比较.你要比我工资多一百块,心里特不平衡,凭什么呀,在学校那会儿公认的我比你强.你要带个头衔,而我啥也不是,普通员工 ...

  6. 如果做好测试PM【转载】

    本文来源于:https://yq.aliyun.com/articles/14578?spm=5176.100238.yqhn2.14.Lcie4Y   摘要今年整体带了几个项目.我本人不是专业的PM ...

  7. c#设计模式-观察者模式

    Observer 与 Subject 互为耦合,但是这种耦合的双方都依赖于抽象,而不依赖于具体. 一.观察者模式 目的 我们都知道解决一个问题有N种解决方式,但在面向对象的设计中如何能做到“高内聚,低 ...

  8. qDebug 学习小结

    在qtcentre中看到有网友问这样一个问题: Why this doesn't work? qDebug() << "Test" << std::endl ...

  9. rsyslog+LogAnalyzer 日志收集

    Linux 之rsyslog+LogAnalyzer 日志收集系统 一.LogAnalyzer介绍 LogAnalyzer工具提供了一个易于使用,功能强大的前端,用于搜索,查看和分析网络活动数据,包括 ...

随机推荐

  1. Linux常用命令02(远程管理)

    01 关机/重启 序号 命令 对应英文 作用 01 shutdown 选项 时间 shutdown 关机/重新启动 1.1 shutdown shutdown 命令可以 安全 关闭 或者 重新启动系统 ...

  2. 跨平台开源密码管理器 KeePassXC

    简介 KeePassXC 是一个开源的跨平台密码管理器.基于 KeePass 二次开发. KeePassXC 可以安全地在本地存储您的密码,配合浏览器插件KeePassXC-Browser可辅助登录. ...

  3. 使用SVG内置API计算图形或点经过transform之后的新坐标

    一个应用场景是,点击一条路径,显示该路径的控制点.因为有transform变形( 平移.缩放.倾斜.旋转等变换),所以获取变形后的新坐标需要计算. 纯数学的方法,就是用2D变换矩阵的一些公式去运算,过 ...

  4. 给我Python几十行代码,我还你一个微信聊天助手

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 故事胶片 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  5. C - Long Beautiful Integer codeforces 1269C 构造

    题解: 这里的m一定是等于n的,n为数最大为n个9,这n个9一定满足条件,根据题目意思,前k个一定是和原序列前k个相等,因此如果说我们构造出来的大于等于原序列,直接输出就可以了,否则,由于后m-k个一 ...

  6. POJ 跳蚤

    Z城市居住着很多只跳蚤.在Z城市周六生活频道有一个娱乐节目.一只跳蚤将被请上一个高空钢丝的正中央.钢丝很长,可以看作是无限长.节目主持人会给该跳蚤发一张卡片.卡片上写有N+1个自然数.其中最后一个是M ...

  7. 原创hadoop2.6.4 namenode HA+Federation集群高可用部署

    今天下午刚刚搭建了一个高可用hadoop集群,整理如下,希望大家能够喜欢.   namenode HA:得有两个节点,构成一个namenode HA集群 namenode Federation:可以有 ...

  8. 使用HTMLTestRunner生成报告

    使用HTMLTestRunner生成报告 unittest本身并不具备这个功能,需要使用HTMLTestRunner库 使用步骤: 首先需要下载.py文件:http://tungwaiyip.info ...

  9. 对JavaScript中原型及原型链的理解

    什么是原型:  1,我们所创建的每一个函数,解析器都会向该函数对象添加一个属性prototype,这个属性指向一个对象,这个对象就是我们所谓的原型对象 2,如果我们将函数作为普通函数调用时,proto ...

  10. 【FishFX】花式撩骚,打造TypeScript易用框架。

    · 栗子入手 假设有以下foo数组,数组中每个对象都拥有id,name两个属性,现在需要查找id > 0的对象数量. const foo: Array<{ id: number, name ...