转眼间,做了一年多的项目结束了。修了两天的假,等着下一个项目的开始,或许这就是身为乙方的宿命。

倘若是在自己的办公室里完成项目,那么甲方和乙方的区别怕是不大。而作为一个在客户现场工作的乙方工程师,就不是一件容易的事。在客户现场面对的,不仅仅是技术问题,还要注意一系列的沟通,以及额外的政治影响等等。

时间一久吧,总会在思考两种工作模式的不同之处。两者的目标是一致的,只是一方永远都是要配合的。总在想,如果我是另外一方,会怎么去思考问题。也在思考着,如何来提升自己——因为很多时候自己是接触不到数据、最终用户等等的信息。

扯太远了,我就是来总结一下所思所想。

不要让 title 限制了你的职业生涯

大学学的是电子信息工程,刚毕业的时候,想找一些硬件方面的工作。可是因为学校和学历的原因,就找不到合适的机会。可尽管如此,在大学的时候,我仍然做了很多的网站开发的工作。

从前将自己定位成前端工程师,那时便觉得『运气』是一种特别值得玩味的事。它(运气)可以让你当上 CTO,走上人生巅峰,也能让你觉得生活是一种乐趣。

当我想做前端相关开发的时候,项目主要的都是 Java 相关的维护工作。慢慢地由于需要,将注意力放到了后台架构、搜索引擎这一类的事上。

当项目上用上了前沿的前端技术栈时,我在做 DevOps 的工作。关心项目中的一些琐事、杂事,也会羡慕别人可以无忧无虑地去做业务卡。

当其他人觉得我的主要工作前端的时候,在项目上主要做的是移动应用开发工作。从原先的混合应用,到编写一些简单的 Java、Objective-C 来实现混合应用插件,再到使用 React Native 升级 Growth 来练手。

这就是命吧,下一步是怎样的,便是一件有趣的事。

可后来吧,工作的时间漫漫的拉长,便也发现了作为一个工程师,我到底还是合格的——放到一个新的技术栈上,如与擅长的前端不同,学习会儿,也就勉强能跑几步了。这倒是与之前的定位,发生了一些微小的变化。

慢慢地,在我完成了《全栈应用开发:精益实践》一书后,我便将前端工程师视为是工作的需求(也就如今年初写的开源电子书《我的职业是前端工程师》一书所讲述的),而不是我的标签后,便发现可以做的事情有很多,可以拒绝的事情也有很多。

大抵只是因为我将 title、标签 视为工作上的标签。对,就是那种你觉得工作上的你是正经的你,业余的你是不正经的你。你可以去做自己喜欢的事,编写自己想写的代码——前提是,你加班没有那么多。

不过,我的真实 title 是一个咨询师,啊哈哈哈。

关注能力的成长

从后台到前端,再到移动端,要关心的东西很多,要学的东西很多。可说到底吧,有几种能力便还是不变的:

  • 快速学习
  • 索引知识
  • 解决问题
  • 沟通表达

快速学习

记得我在大四实习的时候,没有用过 Spring,亦没有深入了解过 JDBC 这一类的东西。可是,工作上是要用到的。于是吧,无论是谁,都得拼命的学一段日子。这时吧,只能买几本书,熬几个夜,喝几杯咖啡,几天也就得上手。压力这么一大吧,学习也就快了。

可这样一说,快速学习那可是基本的核心能力啊。它所指的,并非是我们能快速使用一个新的框架,而是我们能快速的使用一个新的框架来完成工作。因为当我们谈及快速学习的时候吧,我们多数是在以任务为驱动的学习。

解决问题

慢慢的,当我们习惯了堆砌的代码,就会发现工作中的高潮,就是解决一个个的疑难杂症。解决问题吧,无非就是: 先识别问题,再去解决问题(PS:很是奇怪)。

识别问题。通过复现、Debug 找到出现问题的地方,然后再找寻到出现问题的地方,再去追根溯底。这一步往往是最难的地方,为此,你需要掌握好各式各样的调试工具,前端开发中的 Chrome 调试,后台开发中的实时 Debug、日志记录,移动开发中的抓包工具。还要去了解各个系统的组成,如典型的编码问题,一般都不是应用程序的问题。因此,你要从 Chrome 发出的请求开发,再查看 HTTP 服务器(如 Nginx)接收到的请求,随后便是应用容器(如 Tomcat)转的语法,最后才到应用程序的地方。

解决问题。多数时候,我们所要解决的问题,都是别人遇到的。因此,解决问题的第一原则是使用搜索,多数时候只需要搜索错误提示,就能找到答案。而为了使用好搜索,你还需要找到合适的上网方式。

在解决问题的过程中,最重要的不是解决问题本身,而是诸如问题有没有解、有没有解决问题的必要(即最优解)。如你做了一个混合应用,那么性能问题接近于『无解』。而如果你们的应用不会有性能问题,那么就没有理由去重写应用,以解决性能问题。

索引知识

人呐,不会一直年轻,也总会有个伴侣的(@花仲马),哪怕是基友喝上门。很多时候,总需要处理一系列的琐事,需要花费时间去照料家庭,家人。哪怕能我一样不加班,时间也远远不够用的。有些技术细节,只能看个大概,又有很多技术细节,与其他框架是相似的。

上手一个新的领域,总会找个人资料、找本书了解、找相关资料探索,随后再找一个 Awesome List,在这个列表里,找到这个领域的一些流行趋势。一步步探索的过程中,我们便在不断地构建这个领域的索引,慢慢地便能识别相关的问题。

因而,当你觉得你对这个领域很了解时,实际上是因为你有了这个领域的索引。

沟通表达

对于我而言,这方面仍然有相当大的提升空间,只是当前它可能还不在第一优先级上。虽然只是花费了一两个月的时间,读了一两本相关的书,确也发现有所提升。

作为一个程序员的日常沟通,大概就是业务人员和程序员吧,沟通的要点吧,便是知道对方要表达的东西,再表达清楚自己心里的想法。

可作为一个普通的人,是得多和人打交通。与大多数程序员相比吧,在我司还是不错的,至少你要不断地和人沟通,日常的聊天、与客户的沟通、与开发人员的沟通等等。

做一个自己的产品

大抵,只要是一个有追求的程序员,都会想去做自己的产品。无论你是在腾讯、阿里大公司里,又或者是在哪个小公司里,只要你不是老板,那么做出来的东西可就算不上你的成就了。于是乎,有热忱的程序员都会去创造自己的轮子,有一个自己拿得出手的东西。

造轮子、写博客、做 APP,总能让我看到代码之外的,不一样的东西。用某句高大上的话来说,就是看到世界的运行法则。

博客,算是我的第一比较正式的作品,我学习了大量的 SEO 技巧。

Growth,用户过 10万的作品,尝试了大量的用户,代码维护。如何宣传,获取更多的用户

『玩点什么』,作为职业生涯里的第三个作品,运用了更丰富、尝试着如何去保留用户。

你就好比是一个更大的试验田,可以轻松地尝试自己的想法。工作的时候,往往很少有这样的机会;业务上的任务,是由业务人员与客户沟通过来的,

在学校找一个女朋友

考虑到,你们那么单纯:

  • 工作的,还是去学校找个女程序员~~~,啊哈哈哈。
  • 还在学校的,快找学妹下手~~。

算了,只要不上婚恋网站就行~~。

完结,撒花~

说说程序员的核心能力:第一个三年:后台、前端、移动应用,第二个三年呢?相关推荐

  1. 程序员编程艺术第一~三十八章集锦与总结,及Github地址、PDF下载

    程序员编程艺术第1~38章集锦与总结,及Github.PDF下载 前言 熟悉本blog的朋友大都知道,在2010年刚开始写本博客之际,我整理过一个微软面试100题,后来我为这100题开始发帖讨论,写答 ...

  2. 程序员编程艺术第一 三十八章集锦与总结,及Github地址 PDF下载

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 程序员编 ...

  3. 聊聊程序员的核心能力

    随着互联网和移动互联网的快速发展,各类应用软件(app)如雨后春笋般涌现,许多应用程序甚至成为超级app,一些活跃用户过亿的应用程序成为国民app,这些app的兴起与程序员这个群体密不可分.快速发展的 ...

  4. 程序员编程艺术第一 十章集锦与总结 教你如何编程 持续更新中

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 程序员编 ...

  5. 程序员编程艺术第一~十章集锦与总结(教你如何编程)--持续更新中

    程序员编程艺术第一~十章集锦与总结--面试.算法.编程 作者:July.编程艺术室. 出处:http://blog.csdn.net/v_JULY_v . 围绕"面试"." ...

  6. 功不唐捐—— 程序员职场第一课 后记

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! < ...

  7. 功不唐捐——《程序员职场第一课》后记

    <程序员职场第一课>主要讨论刚刚步入社会的职场新人需要具备的几项技能,从沟通直到正确处理职场上的各种关系.虽然我对出版社有相关承诺,但是写作也曾因不同原因几次中断.参观2010年全国图书订 ...

  8. 35 岁程序员,年后第一天被辞退

    @TOC35 岁程序员,年后第一天被辞退 2019年02月13日 11:42:17 CSDN程序人生 阅读数:7905 640?wx_fmt=gif 640?wx_fmt=jpeg 今天是大年初九,这 ...

  9. 程序员职场第一课 配套课程大纲 免费视频 免费PPT下载地址 包括全部21讲

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 以下是& ...

  10. 《程序员职场第一课》配套课程大纲、免费视频、免费PPT下载地址(包括全部21讲)

    以下是<程序员职场第一课>21讲的详细信息,希望对大家有所帮助!谢谢! 单元名称 课程名称 相关地址 结构与内容 故事 导论 导论: 走入社会的准备 免费视频:http://t.cn/hB ...

最新文章

  1. EventBus的粘性事件原理
  2. 现金流量表的内容和结构
  3. HALCON基于形状匹配详解
  4. 转:基于TLS1.3的微信安全通信协议mmtls介绍
  5. CENTOS 7 踢用户_CentOS服务器及MySQL数据库性能测试-乐搏软件测试
  6. 6-7 使用函数输出水仙花数_自学C++基础教程(输入输出2)
  7. 【图像融合】简单加权融合
  8. Java多线程系列--“JUC锁”07之 LockSupport
  9. linux tcp 缓冲区 参数,Linux TCP 缓冲区参数调优
  10. Manjaro - KDE - i3wm - PloyBar 使用配置全指南
  11. mysql 获得年月函数_mysql之日期函数
  12. 职场新人如何高效办公?这10款软件帮到你!
  13. CMake基础教程(32)文件搜索指令FILE
  14. Linux基础知识(5)-压缩与关机命令
  15. 基于Ocean Connect云平台的照明控制系统设计
  16. Axure教程:用中继器制作调查问卷/考试试卷
  17. Andrew Ng机器学习课程笔记--week9(下)(推荐系统协同过滤)
  18. 色彩理论之彩虹CMYK值
  19. 2020年精彩文章回顾
  20. 增删改查--基本思路

热门文章

  1. CocosEditor-java加载图片出错cocos2d: fullPathForFilename: No file found at main.plist. Possible missing fi
  2. Windows Server 2012打开端口
  3. textarea不显示边框_飞利浦256P1FR显示器评测:QHD分辨率微窄边设计
  4. 英伟达,老版本显卡查询接口
  5. IDEA在terminal使用mvn命令
  6. JDBC的七个步骤:
  7. 让input框只输入英文
  8. matlab语音合成技术,matlab语音合成
  9. Elasticsearch API查询
  10. C++类static成员函数的调用