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

  第一年入职,被安排维护和拓展一套基于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. 2019-07-31【机器学习】无监督学习之降维PCA算法实例 (鸢尾花)

    样本 代码: import matplotlib.pyplot as plt from sklearn.decomposition import PCA from sklearn.datasets i ...

  2. 【Java】【常用类】Object 基类 源码学习

    源码总览: 有好些都是native本地方法,背后是C++写的 没有关于构造器的描述,默认编译器提供的无参构造 https://blog.csdn.net/dmw412724/article/detai ...

  3. Qt发送一次信号触发两次槽函数的原因

    在手动为控件编写槽函数的时候,如果将槽函数名字按如下格式编辑,则不需要再次进行手动关联 void on_pushButton_1_clicked(); void on_radioButton_clic ...

  4. 杭电1080 J - Human Gene Functions

    题目大意: 两个字符串,可以再中间任何插入空格,然后让这两个串匹配,字符与字符之间的匹配有各自的分数,求最大分数 最长公共子序列模型. dp[i][j]表示当考虑吧串1的第i个字符和串2的第j个字符时 ...

  5. H - Tempter of the Bone DFS

    小明做了一个很久很久的梦,醒来后他竟发现自己和朋友在一个摇摇欲坠的大棋盘上,他们必须得想尽一切办法逃离这里.经过长时间的打探,小明发现,自己所在的棋盘格子上有个机关,上面写着“你只有一次机会,出发后t ...

  6. 深入理解Java线程状态转移

    目录 前言 状态转移图 1.0 新建态到就绪态 1.1 就绪态到运行态 1.2 运行态到就绪态 1.2.1 时间片用完 1.2.2 t1.yield() .Thread.yield(); 1.3 运行 ...

  7. Python - 批量获取文件夹的大小输出为文件格式化保存

    很多时候,查看一个文件夹下的每个文件大小可以轻易的做到,因为文件后面就是文件尺寸,但是如果需要查看一个文件夹下面所有的文件夹对应的尺寸,就发现需要把鼠标放到对应的文件夹上,稍等片刻才会出结果. 有时候 ...

  8. Os-Hax: 1 靶机记录

    靶机地址:172.16.1.197 Kali地址:172.16.1.108 1 信息搜集 靶机首页 相关信息查看 端口扫描: 开放22和80 目录扫描: 访问http://172.16.1.197/c ...

  9. 容易忽略的CSS3属性

    flex布局模型 1. flex-direction: row |  row-reverse | column | column-reverse flex-direction 属性决定主轴的方向(即项 ...

  10. react: typescript jest && enzyme

    Install Jest 1.install jest dependencies jest @types/jest ts-jest -D 2.jest.config.js module.exports ...