不同技术栈的程序员日常
技术相关的岗位
我们来说一下互联网行业的技术岗。
现在几乎所有的软件都已经互联网化了,就算没有互联网化的,它以后也会互联网化,所以我们就不单纯地去说软件开发这个行业了。
开发岗
首先就是开发岗,这个就包括了,前端开发、后端开发和移动开发。
前端开发和后端开发,主要是 B/S 结构里的。B/S 结构就是 Browser-Server 结构。而前端指的就是浏览器这个端;后端指的就是服务器这个端。
前端
前端主要做的事情,就是把从服务器端读取到的数据展现给用户,然后通过各种 UI 控件和用户互动,再将新的数据送回服务器端。具体的技术包括 HTML、CSS、JavaScript,还可能有一些嵌入浏览器运行的组件,比如 Flash 、 WebGL 。
后端
后端则主要送数据给前端,一般有两种方式,以前用的比较多的是,将数据在服务器端先渲染完,然后将输出的结果发送给前端;现在用的比较多的方式是将纯数据通过 Json 或者 xml 等格式发送给前端,在浏览器中通过 JS 来进行渲染。
所以以前很多后端的工程师往往也懂一些前端的知识,比如我认识的很多 PHP 程序员,他们不但懂 MySQL 和 Apache,还懂 HTML 、 CSS 、 JS 和 PS。这种前后端都懂的工程师,也叫全栈工程师。
后端可以用各种语言开发,国内用的比较多的包括 Java、PHP ,还有相对小众一些的 Python 、 Ruby 、 Go。其实 C 也是可以写后端的,不过现在已经很少有公司直接用它写了。
后来有了 NodeJS ,JavaScript 也能跑到后端了,所以很多前端工程师也有了后端开发的能力,他们也占了全栈工程师的很大一部分。
客户端
相对于 B/S 结构,还有 C/S 结构,就是 Client-Server 。C/S 结构下不用浏览器来展现数据和交互,而是用客户端,一般是 Mac/Win/Linux 三大平台。
移动端
手机大潮起来以后,不管是 B/S 结构还是 C/S 结构,全部移动化了。B/S 结构对应的就是适配手机浏览器的移动网页、以及嵌入在微信、微博里边的 H5 页面; C/S 结构就是 APP ,一般覆盖 iOS 和 Android 两个主流平台。
除了这些标准开发岗,而还有一些新兴或者相对小众的开发方向,比如人工智能/算法工程师、做智能硬件的硬件开发工程师、给企业做解决方案的企业软件工程师。
其他岗位
软件并不是开发出来就完了的,在上线或者发布之前,我们还需要「测试工程师」来进行测试;而上线以后,还需要「运维工程师」来管理和优化服务器集群。现在服务器都虚拟化和容器化了,运维工程师中也出现了懂开发的分支,叫做 DevOps。
中高级岗位
不管是开发岗还是测试、运维岗,都有其对应的中高级岗位。开发一般是技术经理;运维一般是架构师;测试一般是测试总监。技术总监、CTO 就是更高一级的职位了。
以上的职位分类我们参考了招聘网站的分类,不一定准确,可能会有很多岗位没覆盖到,不少公司也会有自己独特的岗位设置。
程序员访谈
为了帮大家更深入的了解程序员们的日常,我们访谈了不同城市、不同岗位、处于不同职业阶段的程序员,并将其整理和汇总到了下边。
访谈的内容只做了简单的标点和文字修正,以提供原汁原味的感受。
访谈一·后端工程师的日常(Java/福州公司)
受访人
@一条死云,今年22岁,在福州一家做财政厅业务相关的公司担任Java后端开发。
平时每天的上班时间和下班时间分别是?
早上 9 点上班, 晚上 6 点下班
最近一周有加班么?加班的天数是?一般加到多晚?
最近一周加班三天,工作日加班到晚上8点30左右,周末一天加班一整天,晚上不加。
能否按小时描述一下你的「典型的一天」?
我是住在公司提供的宿舍,所以:
- 早上8:40起床,
- 9点到公司食堂吃早饭,
- 9:30左右开始正式上班,
- 到11:30会稍微休息一会,然后浏览一些技术博客、运动相关的东西。
- 12点在公司的食堂吃午饭,
- 12:30到一13:30回宿舍休息,14点左右再回到工位上开始上班。刚开始到位置上,如果任务赶的话直接开始敲代码,如果任务不赶,会拿30分钟到1一个小时看一下公司的前端框架。
- 期间会在公司的休闲室休息一会,然后到18.00下班。
- 18:00 去健身房锻炼一个小时
- 19:30 训练结束回到宿舍,洗澡,准备晚饭。
- 20:00 吃完饭,这时候追两集动漫,看看视频,刷刷微博
- 到22:00 因为自我感觉基础非常薄弱,这个时候通常会学一点东西。
在上边描述的日常中,你最想吐槽的是什么?
毕业之后一直在负责维护一个公司比较旧版本的项目,所以经常出现一些非常奇怪的需求。还有一些非常老旧的代码,找不到之前的author,也不知道如何调试。
在上边描述的日常中,你最满意的是什么?
很自由,我可以在正常的上班时间之内自己支配。
在现在这个职位上,你遇到的最大的技术挑战是什么?怎么解决的?
在熟悉公司新开发的一套框架上。因为文档不齐全,而且前端相对薄弱,所以一直不知道如何去下手。
后面为了能够快速熟悉起来,我就找带我的小哥要了一个很简单的任务,直接进行下手,然后直接在开发中对遇到的问题
进行跟踪调试,开发完这个模块花了一个礼拜,虽然进度很慢..但是现在对这个框架已经有点熟悉了。
在现在这个职位上,你遇到的最大的非技术挑战是什么?怎么解决的?
刚毕业因为对薪酬不满意,在纠结了很久之后向经理提出了提薪的申请(经理说毕业生对薪资不满意可以申请),申请完经理也不知道为什么就没有回复我。在这之后我很经常在想,是要留在这家公司(传统IT,活少钱少)先利用时间学习,还是直接裸辞去北上广深杭找一家规模小点的互联网公司先学习一段时间。解决:和家人朋友商量之后决定,现在先在现在这家公司积累一些经验,然后明年再去大城市发展。
你是怎么度过从新人到熟手的阶段的?公司有安排培训么?如果有,你觉得其中对你最有用的内容是什么?
其实现在还是一个新人。公司曾在我们实习的时候安排了一个月的培训,主要是对公司在使用中的框架(Spring MyBatis)等进行培训。我觉得最有用的还是给我们上课的大牛给我们的一些学习方法,以及工作方法。
你对即将入职这个岗位的新人,有什么建议?(做什么、不要做什么)
要做:我是一个非985/211大学的学生,等我有职业规划的想法的时候已经是大三下学期了,所以我感觉自己起步非常非常慢,技术也很差。所以我想说的是,如果想走技术这条路,那一定不要呆在懒惰区,而且对基础的东西要更重视,同时也要关注新的技术。
不要做:对自己的规划模棱俩可.不知道自己为什么要做技术相关的工作。
你在这些年的工作中,有没有遇到特别好的工具、资料、书籍之类,想要推荐给大家?一两样也行哦
①Java的Jrebel 热部署插件,可以节省很多时间
②Xrebel 开发的时候可以直接看到SQL语句,花费的时间,以及一些错误信息。
访谈二·后端工程师的日常(Java/北京/D轮知名创业公司)
受访人
@ScienJus ,今年 23 岁,北京土著,后端产品研发工程师。
平时每天的上班时间和下班时间分别是?
前公司一般是 11 点上班,现在是 10 点,下班时间我一般工作外也会待在公司做些别的,大概平均也得 9、10 点吧。
最近一周有加班么?加班的天数是?一般加到多晚?
属于比较忙的组,之前一直封闭开发,差不多 11、10、6 吧(也就持续一两周)。
能否按小时描述一下你的「典型的一天」?
一般来说是:
- 9:00 起床
- 10:00 打车到公司
- 上午主要是整理性质,会开站会,整理下今天要做的事(不光工作,翻翻邮件、订阅的博客、Github 之类的)
- 12:00 在食堂吃饭,然后出去散散步,没有午睡的习惯
- 下午基本都在工作
- 7:00 在食堂吃晚饭
- 之后如果工作还比较忙就接着弄工作,否则会按照优先级选一些个人的事去做(Side Project、知识积累、阅读)
- 9:00~10:00 下班回家。到家基本上就只是放松了,看看日剧、追番
- 偶尔有很感兴趣的事驱动的时候(比如 Side Project 灵感很多的时候),会熬夜做,大概到 3:00 为底线
在上边描述的日常中,你最想吐槽的是什么?
在最近一条推特中吐槽过:
目前在新公司还有两个比较严重的问题:
- 对任务的估时准确度不高,很多时候要么过忙,要么被严重 Block。
- 对任务的优先级分配有问题,我希望能静下心做一些重要且不紧急的事情,但是实际上大部分时间都在帮别人解决一些小问题。
之前订阅过一年付费的 Todoist,觉得自己对任务管理已经挺有把握了,但是来了新公司还是不太适应,准备买 Things3 重新靠 GTD 帮助我改善现状。
在上边描述的日常中,你最满意的是什么?
上家公司是技术很好的小团队( 好到什么程度呢?后端 + 平台 15 人左右,能维护一套微服务,并且自研容器编排 ),但是很遗憾的是业务本身没有太大量级,对后端来说历练还太小。
来新公司主要是为了技术挑战,业务上的压力肯定是有的,就看自己能不能抓住机会了。
在现在这个职位上,你遇到的最大的技术挑战是什么?怎么解决的?
技术挑战可能不会太多,我认为很多业务场景都是有取巧的解决方案的(取巧可能形容有误,非贬义,类似于分库分表即使不需要太多技术也可以 Hard Coding 实现,并且能有效解决问题)。而中小型公司的平台方案一般又都是追随开源的,所以我也选择尽量追随开源社区。
在现在这个职位上,你遇到的最大的非技术挑战是什么?怎么解决的?
我比较不擅长编程以外的任何事,最不擅长的就是与人相处。讨厌漫长的会议,讨厌一些混日子的同事。
你是怎么度过从新人到熟手的阶段的?公司有安排培训么?如果有,你觉得其中对你最有用的内容是什么?
呆的都是中小型公司,没参与过什么培训,个人感觉比较幸运的主要还是多逛开源社区吧,很多时候公司交给我去做的事都是因为我之前有过了解(哪怕只是简单了解,也比大部分人强很多),这样慢慢的就能成为良性循环。
你对即将入职这个岗位的新人,有什么建议?(做什么、不要做什么)
不要盲目崇拜自己公司的技术,很多时候技术会因为架构师的喜好、成本、甚至一些和技术无关的因素而决定。即使去用了,也要明白这些技术有哪些优点、哪些缺点、如何改进。这样你至少迈出了第一步:不会因为最开始运气不好去了一家不好的公司或是部门而陷入技术上的恶性循环。
其次就是无论前端也好、后端也好,多去了解了解新技术,即使作为一个后端我也会偶尔和 Android 同事聊聊 Kotlin,和前端同事聊聊 React、Vue,你会发现只需花费非常低的成本就能学到一门可以弥补你短板的新技术,让你之前很多看似做不到的想法都可以轻松实现。
你在这些年的工作中,有没有遇到特别好的工具、资料、书籍之类,想要推荐给大家?一两样也行哦。
如果买了 Mac,一定要好好用,先装上 iTerm、Zsh、Homebrew,在适当买一些付费软件,比如 GTD 工具、笔记工具等。我有一个习惯就是喜欢通过看一个人的开发环境来评估他的技术水平,因为如果一个经常敲代码、对工作效率有追求的人,一定会尝试用软件改善自己的开发环境。
访谈三·前端工程师的日常(前端/北京/人工智能创业公司)
受访人
梁杰,24岁,在北京一家做人工智能平台的创业公司工作。
平时每天的上班时间和下班时间分别是?
9点上班,18点下班
最近一周有加班么?加班的天数是?一般加到多晚?
因为是新公司,业务压力还没有那么大,所以目前没有加班。
能否按小时描述一下你的「典型的一天」?
- 7点起床,
- 7点半出门(再晚五号线就上不去了),
- 9点到公司开始工作,
- 11点半吃午饭,
- 14点继续工作到18点下班,
- 19点半左右到家。
- 偶尔下午会开会,不过时间不会太长,一般在半个小时以内
在上边描述的日常中,你最想吐槽的是什么?
毫无疑问是交通。北京的五号线人实在太多了,几乎从7点到10点都是高峰期,挤得要死,到公司之后心情很差。如果遇上雾霾天,会更难受
在上边描述的日常中,你最满意的是什么?
公司氛围不错,创业公司没有那么多乱七八糟的内耗,大家都能专心在工作上,老板也很亲切。另外技术上没太多限制,可以用自己喜欢的东西,只要完成目标。
在现在这个职位上,你遇到的最大的技术挑战是什么?怎么解决的?
最大的技术挑战就是重复性的工作太多,只是不断使用已经熟练的技术,没有压力也没有太多动力尝试新东西。我能想到的解决方法就是多看书,先在理论上学会新东西,然后再找机会用在新项目中。当然,很可能没有实际使用的机会,但是学了总比不学强。
在现在这个职位上,你遇到的最大的非技术挑战是什么?怎么解决的?
最大的非技术挑战是沟通。虽然创业公司人数不多,但是有同事是远程工作,所以很多问题需要在线上沟通,感觉效率偏低,没有那么顺畅。解决方法其实也没啥,就是适应,尽量在一次沟通中把问题描述清楚,把自己需要对方处理的地方明确出来,减少整体的沟通次数。
你是怎么度过从新人到熟手的阶段的?公司有安排培训么?如果有,你觉得其中对你最有用的内容是什么?
公司没有安排培训。我过渡的方式就是多写代码,这可能是最简单也是最实用的方式。刚开始写前端的时候什么都不懂,我就自己跟着教程写网站,不断添加功能。在这个阶段你会遇到很多很多问题,这很正常,卡住了就去搜解决方案,解决问题的过程就是成长的过程。做完一个项目之后,可以再做一两个去巩固技术,心里有底之后再做东西就不害怕了。
你对即将入职这个岗位的新人,有什么建议?(做什么、不要做什么)
多写代码,大部分工作内容其实没太多技术含量,唯手熟尔;多读书,读好书,读英文原版书;多参加活动,开拓眼界,也多认识一些朋友,找工作时候内推永远比投简历靠谱。少抱怨,单纯的抱怨并不能解决问题,同事和老板不是你爸妈,没义务开导你,如果你确实遇到了问题,更好的方式是尝试找出解决方案并反馈给老板。少做低效的事,能看书就别看文章,能看文章就别看视频,能自己搜问题就别问人,能打字就别发语音,能不废话就不废话(你看这条我自己都没做到)
你在这些年的工作中,有没有遇到特别好的工具、资料、书籍之类,想要推荐给大家?一两样也行哦。
技术角度,推荐几本书:
- 《You Don’t Know JS》系列书,GitHub上有作者开放的免费版可以看;
- 《Speaking JavaScript》从实现原理角度讲解JS,进阶必备;
- 《精通CSS(第二版)》名字很俗但是一本入门好书;
- 《CSS Secrets》CSS进阶书籍,让你看看CSS到底有多少种用法。
另外,我个人不推荐犀牛书和高级程序设计,或许在当年这两本算是JS圣经,但现在已经有了很多更好的书,比如我推荐的那两本,所以如果你相信我,就不要再看犀牛和高程了。
非技术角度,能推荐的就太多了,只推荐三个吧:
- 第一个是吴军博士写的所有书,通俗易懂,看完之后会对整个计算机行业和计算机发展历史有一个宏观的了解;
- 第二个是《Algorithms to Live By: The Computer Science of Human Decisions》,这本书讲了很多算法在日常生活中的应用,能帮助你开拓眼界,非常有趣;
- 第三个是Easy之前写的《程序员跳槽全攻略》,不讨论观点对错,这本书的重点是提出了许多新想法,能帮你从不同角度分析跳槽这件事,读完会有很多启发。
访谈四·前端工程师的日常(前端/北京/D轮知名移动互联网公司)
受访人
某丸,21岁,在北京某D轮知名移动互联网公司担任前端。
平时每天的上班时间和下班时间分别是?
早9点,晚6:30。
最近一周有加班么?加班的天数是?一般加到多晚?
最近有加班因为双11,基本天天加班,加班到7:30,平时较少加班。
能否按小时描述一下你的「典型的一天」?
- 每天 8:30 起床,
- 接近 9 点出门,
- 到公司 9 点多一点,
- 中午 11:30 骑摩拜去公司另一个食堂吃饭,
- 回来 12:30 开始午休,
- 1:30 缓一会儿看看邮件消息,
- 2点开始干活,
- 6:30去楼下食堂吃饭然后回家
在上边描述的日常中,你最想吐槽的是什么?
最想吐槽日常低效率的沟通,每天花费在看邮件和消息的时间比较多,很多内容和自己没有太大的关系,比较影响工作效率,还有就是需求变更比较频繁。
在上边描述的日常中,你最满意的是什么?
日常比较满意的是宽松的工作氛围,和谐的上下级关系,以及团队有技术上的大牛,当然还有很多妹纸~
在现在这个职位上,你遇到的最大的技术挑战是什么?怎么解决的?
其实目前来说还没有遇到真正意义上的技术挑战,因为轮子已经有前人造好了,挑战可能更多的是需要自己去了解这些实现细节。如果确实遇到困难,我会先去看看之前项目里面的代码别人是怎么实现的,然后自己也会了。
在现在这个职位上,你遇到的最大的非技术挑战是什么?怎么解决的?
非技术挑战可能是需要协调好在开发过程中与PM,设计,运营以及其他工程师之间的teamwork,避免因为交流不够彻底而导致做一些无意义或者重复的事情。
解决这个问题其实是比较困难的,我们可能有时问同一项目里面不同两个人对相同的问题给出不同的答案,这个时候我一般会明确的这个问题真正的需求是什么,同时会和同一团队的成员都确认一下。
你是怎么度过从新人到熟手的阶段的?公司有安排培训么?如果有,你觉得其中对你最有用的内容是什么?
从新人到现在的转变就是不明确的或者不会的地方,就去看前人是怎么实现,再不会就问leader(一般很少发生这种情况)。
公司有安排培训,培训的价值其实在输出的内容上并没有对我有多大的提升,反倒是让我对认识问题的态度有很大的转变,我们喜欢用事实标准去讲一个问题,而不是通过别人的经验或者某些技术博客的介绍就认为问题就是这样。
技术人看待问题就应该是非常严谨,就像写代码一样,我们要做到bug free,虽然这是不可能的。
你对即将入职这个岗位的新人,有什么建议?(做什么、不要做什么)
我想说,与其把大把的时间花在学习几个瞬息万变的新框架API使用中,不如多花点时间在基础知识学习。我认为这才是真正决定一个技术人能走多远的基石,虽然这句话可能你已经听烦了。
新的东西解决了很多问题,但是很多人甚至都不知道为什么会存在这些问题更别谈解决方案和实现的原理,还有就是不要盲目的相信技术网红的一些观点,他们不一定是正确或者恰当的。
前端最不缺网红,工作后我才认识到大部分真正牛逼的人都是比较低调的(但并不是高调的人就不牛);在有一些基础后可以多看一些原理性质或者质量高的博客,多读一些业界认可度高的书籍,看看一些开源项目从简单的入手,自己去实践并验证你学习到的知识,同时多关注开源社区
你在这些年的工作中,有没有遇到特别好的工具、资料、书籍之类,想要推荐给大家?一两样也行哦。
推荐一本书《JavaScript高级程序设计》,相当于 Web API Wiki 的 MDN ,以及 Google 开发者文档中的 Web 部分,更细节可以看看 W3C 标准、ECMAScript 标准、WHATWG 标准。在准备读一本书的时候可以先去豆瓣上看看评价,如果只有6、7分你就要慎重了,因为他可能不仅仅是在浪费你的时间还可能误导你。
访谈五·前端工程师的日常(PHP·前端/成都公司)
受访人
peakcool,23岁,在成都一家企业信息化解决方案公司工作。入职是php,现在是前端工程师。
平时每天的上班时间和下班时间分别是?
9:30-18:00
最近一周有加班么?加班的天数是?一般加到多晚?
没有。
能否按小时描述一下你的「典型的一天」?
- 7:30:起床
- 9:00:出门上班
- 9:30:开始工作
- 12:00:午饭
- 13:00:休息
- 14:00:开始工作
- 18:00:下班回家
- 18:30:到家
- 19:30:吃完饭看直播、看书、看剧、弄花、玩游戏
- 23:00:洗簌
- 24:00:休息
在上边描述的日常中,你最想吐槽的是什么?
最近看书越来越少,看剧和玩游戏越来越多……(自制力啊……吐槽下自己)
在上边描述的日常中,你最满意的是什么?
- 没有加过班!!!
- 薪水中上吧,上司人很nice。
- 早上起来弄完花,看会儿书,每天都是好心情,哈哈哈。
在现在这个职位上,你遇到的最大的技术挑战是什么?怎么解决的?
做项目前端的架构,工程化,不能算解决,在一步一步优化学习中。
在现在这个职位上,你遇到的最大的非技术挑战是什么?怎么解决的?
演示产品吧,无力吐槽自己的普通话了。
你是怎么度过从新人到熟手的阶段的?公司有安排培训么?如果有,你觉得其中对你最有用的内容是什么?
今年毕业,不过大二暑假开始在外无薪实习,大四在现在公司做实习生直到6月份转正;新人的时期算是大二暑假那段时间吧,没薪资住学校,但是每天很充实,第一次发现原来代码是这样写的,也养成了一些不错的写代码习惯;有问题请教老大,慢慢地熟悉了代码,熟悉了业务。小公司,自力更生,没培训。
你对即将入职这个岗位的新人,有什么建议?(做什么、不要做什么)
多看看,多玩玩,拥抱变化(了解地越多,越能融会贯通)
你在这些年的工作中,有没有遇到特别好的工具、资料、书籍之类,想要推荐给大家?一两样也行哦。
- snap 神器!Mac上设置快捷键软件,现在开发已经离不开它了...
- 《深入浅出node js》 《Javascript高级指南》
访谈六·客户端工程师的日常(iOS/上海/日企)
受访人
udspj,30岁,在上海一家日企工作。
平时每天的上班时间和下班时间分别是?
9:00-18:00 和 10:30-19:30 之间弹性,去掉中午1小时,满8小时即可。
最近一周有加班么?加班的天数是?一般加到多晚?
最近一周都没有加班,平时加班也不多,唯一一次连续一周包括周末每天加班是因为同事把项目搞砸了,在紧急帮他修一堆bug。
能否按小时描述一下你的「典型的一天」?
- 早上8点闹铃,
- 9点前出门,
- 9点半到公司,
- 上午时间基本都做些零碎的事情比如修bug、开小会、和同事讨论项目问题等,
- 12点-13点吃午饭,
- 下午开始干正事专心写代码,
- 晚上6点半准时下班。
在上边描述的日常中,你最想吐槽的是什么?
似乎没啥特别的槽点,除了,日常工作大多只能做iOS开发,没有其他方面的技术工作可以给我做。
在上边描述的日常中,你最满意的是什么?
在不加班的情况下薪水算还不错的了;公司氛围轻松没有政治斗争;可以有机会练习日语口语。
在现在这个职位上,你遇到的最大的技术挑战是什么?怎么解决的?
由于是日企,日本人在手工测试方面很严格,经常需要解决一些很细节的问题。
在现在这个职位上,你遇到的最大的非技术挑战是什么?怎么解决的?
「不会营销自己」这个算不算。
你是怎么度过从新人到熟手的阶段的?公司有安排培训么?如果有,你觉得其中对你最有用的内容是什么?
(在第一家公司实习时)没有培训,新人阶段是跟着开发部做页游模块,开局一人一任务,剩下全靠自学。
你对即将入职这个岗位的新人,有什么建议?(做什么、不要做什么)
移动端开发差不多都饱和了,如果不是特别喜欢这方面的话还是选择其他技术入行吧。
访谈七·创业公司技术负责人的日常(PHP/深圳/创业中)
受访人
安正超,今年 27 ,5月份离开微博到深圳已经半年,目前与几个朋友创业中,负责技术部分。
平时每天的上班时间和下班时间分别是?
创建阶段也没有固定吧,其实也与大家都差不多。
最近一周有加班么?加班的天数是?一般加到多晚?
创业阶段就没有加班一说了,因为也没有固定的下班时间,有事情就多忙一会儿,晚点回家,没事就早点回去。
能否按小时描述一下你的「典型的一天」?
- 一般是 8 点左右起床,
- 然后 9 点从坪洲站出发,
- 9 点 50 左右到水湾站,出站就是公司所在地:深圳自贸中心。
- 整体感觉还是很方便的。
- 中午楼下吃饭,
- 然后工作到 7-8 点左右回家。
在上边描述的日常中,你最想吐槽的是什么?
其实相对于北京,深圳给我的印象没有太多槽点,大家都很有秩序的排队是印象最深刻的,地铁也不挤(也许是我9点才出发的原因吧),
因为我住坪洲,办公室在深圳自贸中心稍微离我稍微远一点,40-50 分钟左右的地铁也许是最差的一点了吧,不过都还能接受了。
在上边描述的日常中,你最满意的是什么?
最满意的就是团队了,几个合伙人的执行力是我见过最棒的,然后很满意的就是公司环境很好,大家有空可以来参观一下。
在现在这个职位上,你遇到的最大的技术挑战是什么?怎么解决的?
由于我们是创业项目,线上线下联动,并非纯互联网项目,我们没有太多的难点需要解决,所以大部分是在接入一些服务时感觉比较麻烦一些吧,目前来讲没有遇到什么技术难题,因为不管从项目复杂度上还是用户量级上都还没有到有挑战的程度。
在现在这个职位上,你遇到的最大的非技术挑战是什么?怎么解决的?
作为技术负责人,除了搞定技术问题外,更多的时间都是与大家在讨论产品,用户体验,以及一些未来规划可能需要做的准备工作。另外就是需要扩大技术广度来避免团队扩大时的管理难题。目前来讲就是在时间管理上还需要一些调整,不是太能控制好个人时间。
你是怎么度过从新人到熟手的阶段的?公司有安排培训么?如果有,你觉得其中对你最有用的内容是什么?
其实很多的实践经验基本都来自公司项目或者自己业余项目,工作之外的时间主要就是做一些基础知识的积累。还是得感谢这几年经历的几家公司,对我的成长提升都很大,在微博的两年,领导的大力支持给了我很多帮助。然后折腾开源项目的时间也是我个人成长过程中收益最大的投入。
公司培训的话,有过,不过比较少,更多的是团队内的知识分享,这方面手机微博做得还是很棒的。其实分享不在于能让你在这么短时间内学会什么,我觉得它最大的益处就是增加知识面:你会的东西,在分享过程中可能会看到新的玩法,或者更有效的玩法,你不会的东西,增加知识广度,新东西能增加个人的学习气氛(折腾新东西的时候持续的兴奋感特别棒)。另外主动分享也能锻炼表达能力。
你对即将入职这个岗位的新人,有什么建议?(做什么、不要做什么)
新人最大的难点可能在选择上,这个选择包括很多方面吧,比如用什么语言(这个争吵太多了)、用什么编辑器到用什么框架、写不写注释等等,我个人的建议是:把握一个方向,找比较能入手的(像 PHP 就很容易入手),大家都在用的(或者说用得人多的)深入学习,精通它,在项目中去实践,然后扩大知识面,了解一下其它周边的东西,比如你写后端,你起码也得懂 CSS,js 之类的基础使用比较好。少看社区八卦,他们爱吵不吵,不要受影响,相信自己的选择。因为到后面你会发现,真正的牛人,不是在于哪个语言他用得 6 不 6,而是在项目上的架构能力,解决问题的能力才是最厉害的。
你在这些年的工作中,有没有遇到特别好的工具、资料、书籍之类,想要推荐给大家?一两样也行哦。
太多了,不过不常用的我就不提了,自己常用的东西有:
工具方面(全部已购买正版授权):
写代码:Sublime Text 3 + PHPStorm(开源授权)
做设计:Sketch
数据库:Sequel pro
记笔记:Bear
TODO:Things 3
办公:企业微信
项目管理:Teambition
其它工具:1password、Charles、Item2 等
书籍方面其实我不太有发言权,因为比较懒,不过还是有两本认为很棒的推荐给大家:《深入PHP:面向对象、模式与实践(第3版)》、《C和指针》系列。
访谈八·CTO 的日常(CTO/北京/云计算创业公司)
受访人
董先生,39岁,北京某云计算公司 CTO ,原知名上市公司研发总监。
平时每天的上班时间和下班时间分别是?
早10:30到晚8:30。
最近一周有加班么?加班的天数是?一般加到多晚?
有加班,2天,一般加班到9点30。
能否按小时描述一下你的「典型的一天」?
- 8点起床,
- 9点出门,
- 10点半到公司,处理邮件,处理和工作相关的微信,和同事讨论工作进展情况,
- 12点吃饭,
- 12点半看业内资讯、技术文章,
- 1点半休息半小时,
- 2点会议或者面试,
- 3点会议或者面试,
- 4点和同事或者客户沟通工作,
- 5点看工作相关的运营数据、邮件、文档、了解各项工作的进展,
- 6点吃饭,有时候约了饭局出发,不出去的话,
- 6点半和同事沟通工作,
- 8点半下班。
在上边描述的日常中,你最想吐槽的是什么?
上班太远,路上总堵车。
在上边描述的日常中,你最满意的是什么?
发展空间大。
在现在这个职位上,你遇到的最大的技术挑战是什么?怎么解决的?
产品和服务的质量,体现在服务的响应速度快、稳定性好故障率底,主要通过不断改进系统的缺陷,完善技术开发和变更的流程机制。
在现在这个职位上,你遇到的最大的非技术挑战是什么?怎么解决的?
非技术挑战就是拓展业务,跟更多的潜在客户沟通,介绍公司的产品,争取测试的机会。
你是怎么度过从新人到熟手的阶段的?公司有安排培训么?如果有,你觉得其中对你最有用的内容是什么?
自己和公司的人多沟通,了解公司的人、流程、部门。
你在这些年的工作中,有没有遇到特别好的工具、资料、书籍之类,想要推荐给大家?一两样也行哦。
事物管理工具用 JIRA ,文档管理用 Confluence ,代码管理用 BitBucket 。