从小米辞职出来创业的两个多月里,通过猎头或自己投简历,先后面试了知乎,今日头条,豌豆荚,美团,百度,App Annie,去哪儿,滴滴打车等技术团队,一二面(技术面)差点儿都轻松的过了,三面却没有毕业那会的干脆。

回忆两年前刚毕业那会,去百度,创新工场,搜狗面试,一二三面全都一次通过,在面试完回家的路上就接到电话拿到了offer,去年增加小米亦是如此。

工作两年后,随着项目经验的积累,技术能力的沉淀,团队管理的成长,似乎反而更难拿到offer,有些迷惑,有些思考。

经过思考也深刻分析了原因,长处是知识面广,架构设计视野开阔,缺点是精专不足,基础知识不够非常扎实,跟自己的工作阅历有关,原因终在自己。

先介绍一个名词“全栈project师”,这个词在国外(QuoraStackOverflow)和国内(知乎CSDN)知名论坛的讨论是比較火的,结论也是毁誉參半,详见我的个人博客:全栈project师的毁与誉

全栈project师(Full Stack Developer),又名全端project师,指掌握多种技能,并能利用多种技能独立完毕产品的人。简言之,他一个人能够做一个系统。

 

当年研究生毕业时,放弃了百度,搜狗的高薪offer,选择回到创新工场(注:研一暑假在百度实习半年,后来研二暑假去了创新工场实习,很多其它经历见CSDN专訪),增加创业的潮流中,在一个初创的技术团队;去年又增加小米电视团队,也是一个初创技术团队。

初创的技术团队,优势是它有一个足够大的舞台,能够让你尽情施展自己的才干,发挥自己的技术,拓展事物视野;缺点是业务刚起步,你必须扛住压力,高速学习各种技术,迅速搭建业务原型并上线,核心是解决这个问题。

在创业公司里,各种高速迭代的业务需求,强力驱使你必须高速的融入团队与技术,从Android应用,到Android游戏,到网页爬虫,到游戏后台,到AWSserver,到后台接口API封装与优化,用到的技术也是从前端到App,从后台到測试自己主动化,用到的语言和工具有Java,Python,HTML/CSS/JS,JSP,HighChart,Shell,AWK,MySQL, Memcache, Redis, DynamoDB, MongoDB,Tomcat,Resin,Apache,Nginx,Tornado,又拍云,阿里云,AWS云服务等,宛如一个知识网络栈,一个人全搞定!

广而不精,往往会被觉得功底不深厚(实事也可能是),比較难进TABLE(Tencent, Alibaba, Baidu, Xiaomi, 360)等大公司的核心技术部门。

由此,全栈project师的地位就非常尴尬,说得不好听一点,全栈project师就是什么都会,什么都不会。

他们的技术专长是能够依据不同业务特点和项目周期,合理权衡并选择对应的实现架构和工具,由于他们有着全局性的思维视野和业务经验;

但他们的弱点也非常明显,比如在应聘面试的时候,就会非常吃亏,在某一专业领域,他可能仅仅会用来解决这个问题,但研究的不够深入,在遇到深入某一专业面试的时候可能会被提前直接淘汰。

全栈project师,宛如一匹赤兔马,埋没于千军万马里,遇到赏识自己的伯乐,它将会成为一匹脱缰的战马,驰骋沙场,纵横千里,荡平千川万水,帮助主人成就一番丰功伟业。

面试,在基本技术能力和责任态度都靠谱的前提下,很多其它的是和面试官的一种缘份。

鉴于此,在简历的项目经验和技术专长里,会特意去掉了一些自己熟悉并能用之解决这个问题的技术,项目经验也仅仅写一两个具有代表性的作品,目的仅仅有一个:尽力避免给面试官以为自己什么都会,什么都不会的印象。由于大公司的非常多面试官,在潜意识里就仅仅招技术专业精专的人才,哪怕在实际项目中用不着那么高深的专业能力,哪怕实际项目须要的是技术面广,更肯学习,更能解决这个问题的人。

全栈project师与专家project师,宛如一个是特战队员手里的瑞士军刀,一个是削铁如泥的干将莫邪。

瑞士军刀负责单兵独入一个人清除掉项眼下期的各种技术障碍,高速实现产品原型,验证产品的可行性;

干将莫邪就像项目底层技术的中流砥柱,稳健有力支撑强大的业务技术难点,但须要多柄干将莫邪剑融合才干显示出它的强大威力。

这两个技术方向都没有对与错,发展到一定程度都会相互溶合,就好比中国佛家禅修的南顿北渐,事实上到了最后,渐悟与顿悟是一样的,顿由渐中来。

全栈project师不是全为了工作本身,而是为了方便实现自己的梦想。

工作对于他们来说不是负担,而是一种乐趣;工作已融入了他们的生活,宛如空气和水。

全栈project师,是一群渴望上进、积极主动、务实肯干、想闯出一番天地的程序猿。

他们内心深处不安于已掌握的技术和安稳的工作,他们非常乐意而且会主动去学习一些新技术,新框架,业余时间还会自己动手实践一些小创意,寓学于乐。

工作,学习,技术,小创意,已经成为了他生活的一部分,不断主动的去学习,自然而然的就学会了多门技术,精通多种语言。

技术学无止境,广而不精,这个问题自己也非常早就认识到了,也想了非常多办法来弥补,比如花大量时间和精力写技术博客,记录自己学习到的点点滴滴,并把知识和技术转化成自己理解的语言;遇到解决不了的问题,会非常自然的主动去官方下载源代码下来学习;业余时间自己也动手实践,做一些小创意(建立博客音乐盒理財)或写一段工具源代码托管在Github上(priorityqueue),来加深自己对技术理解。

在工作之余的周末假日,会宅在家里研究一些自己感兴趣的技术或产品,比如自学Clojure,Go,PHP语言;搭建WordPress博客Discuz论坛;创建微信公众帐号(ithomer),支付宝捐助;捣鼓GAE,AWS,BAE,SAE,Aliyun等各种云服务(对照);安装配置Tomcat,Resin,Apache,Lighttpd,Nginx,Tengineserver;学习Hadoop,Storm,Lucene,SolrClould,ElasticSearch,Sphinx等工具;跨平台Thrift,Protobuf接口….(不会又是精而不专的“罪证”吧,^_^)

自认自己还不算一名真正的全栈project师,它仅仅是自己努力的方向,在通向全栈project师的道路上,业余时间做的小产品,让我感到非常快乐,有一种淡淡的成就感。

在中科院,百度,创新工场,小米的学习和工作经历,不仅学会了分析解决这个问题,更学会了思考。

各种编程语言,系统架构,设计模式在我的脑海里,已经编织成了一张脉络清晰,相互交融的知识网。

当遇到问题,会立马由点及面高速搜罗合理的解决方式,并高速实现项目原型;当遇到新技术,会发散联想已有的知识体系来对照学习,把它编织进自己的知识网络,终于提炼,磨合,打通经脉,做到融汇贯通,自成体系。

我追求的全栈project师,是从全栈 —> 精专 —> 精专全栈的迂回辗转,回味甘甜的一条路。

路上,有苦亦有乐,也有说不出的难言与误解,很多其它的是自己学习奋斗的青春歌谣,自己是快乐着。

曾经,软件project师最在意的是成为某个领域的专家或者高手,比如中国第一代程序猿王江民,鲍岳桥,求伯君等。

今天,随着软件技术的发展以及需求的变化,尤其是越来越多的程序猿出来自己创业,由于各种条件限制,很多技术上的问题不得不亲力亲为地去完毕,因此,非常多程序猿慢慢地就练就了精通多门技术的本领,有意或无意识之间便成了全栈project师。

一个真正的Full Stack Engineer,他从生活中发现问题,洞察需求,并设计解决方式,开发出产品原型。为了达到目标,他愿意去学习不论什么领域的技能和知识。同一时候他不追求一个人完毕所有工作,假设有人能够比他在某方面做得更出色,便会十分热情的邀请他们增加。

Full Stack Engineer的核心并不是否定团队和协作,而是很多其它的体如今架构设计,高速原型,TroubleShooting等方面。随着今天的分层越来越清晰,平台和语言越来越有特点,更加全面的技术人员能够依据不同的语言搭建整个架构。

全栈project师,在创业公司,大企业,小团队,都能够发挥出他独有的技术特长。这一特长在面试,刚进公司也许还体现不出来,甚至还会有负面的印象(不够精专),但一旦他熟悉了业务,跟进了团队的节奏,他体内的巨大能量将会源源不断的释放出来,对团队的贡献将会是两三个project师工作量的总和还多。由于全栈project师,具备了前端后台以及測试运维server等多专业知识,沟通成本差点儿为零,他甚至能够在不寻求外力的条件下,独立完毕整个项目的核心或所有(时间足够)。

工作,仅仅是全栈project师生活的一部分。

在工作中,由于种种条件限制,全栈project师的能量非常难所有释放出来。

全栈project师,是孤独的,也是寂寞的,他们在寂寞中孤独。

一个真正的全栈project师,目标仅仅有一个:创业

2014.07.31 夜

摘自我的独立博客: 全栈project师的悲与欢

全栈project师的悲与欢的更多相关文章

  1. 全栈project师的毁与誉

    全栈(Full Stack)project师.也能够叫全端project师,不管是前端知识,还是后端架构你都要了解.甚至有些调皮的程序猿这样理解全栈project师:全栈project师 = 屌丝战斗 ...

  2. 为什么未来是全栈project师的世界?

    谨以此文献给每个为成为优秀全栈project师奋斗的人. 节选自<Growth: 全栈增长project师指南> 技术在过去的几十年里进步非常快,也将在未来的几十年里发展得更快. 今天技术 ...

  3. 全栈project师?给把瑞士军刀你去砍鬼子好不好!?

    来自www.techgogogo.com 编者注:本文来自Medium前三名推荐文章,发文时已经获得高达2,125个推荐,中文版由天地会珠海分舵编译.全文对当今风靡业界的"全栈xx师&quo ...

  4. 全栈project师体能备战--知识面(1--10)

    javascript 单例设计模式:         单例模式确保某个类仅仅有一个势力,并且自行实例化并向整个系统提供这个实例.如:cocos2dx中的导演类.[样例]我有6哥美丽的老婆,他们的老公都 ...

  5. 全栈project师体能备战--知识面(10--20)

    WCF Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,能够翻译为Windows 通讯开发平台. 对于 WCF 的client ...

  6. 22期老男孩Ptython全栈架构师视频教程

    老男孩Ptython全栈架构师视频教程 Python最新整理完整版22期视频教程 超60G课程容量<ignore_js_op> <ignore_js_op> <ignor ...

  7. 添物零基础到大型全栈架构师 Java实战及解析(实战篇)- 概述

    ​ 实战篇是在基础之上,进一步提升的内容.通过实战篇可以深入理解Java相关框架和库的使用,能够独立开发小模块,或者按照架构师的指导进行代码编写和完善. 主要讲解核心框架和库的使用和使用场景介绍.通过 ...

  8. Kubernetes全栈架构师(基本概念)--学习笔记

    目录 为什么要用Kubernetes? K8s控制节点-Master概念 K8s计算节点-Node概念 什么是Pod? 为什么要引入Pod? 创建一个Pod 零宕机发布应用必备知识:Pod三种探针 零 ...

  9. web全栈架构师[笔记] — 03 html5新特性

    HTML5新特性 一.geolocation PC端 精度比较低 通过IP库定位 移动端 通过GPS window.navigator.geolocation 单次 getCurrentPositio ...

随机推荐

  1. Break the Chocolate(规律)

    Break the Chocolate Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  2. Difference between LINQ to SQL and LINQ to Entity(DataContext and DbContext)

    http://msdn.microsoft.com/en-us/library/cc161164.aspx http://stackoverflow.com/questions/2443836/wha ...

  3. JavaSE学习总结第24天_多线程2

      24.01  JDK5之后的Lock锁的概述和使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK ...

  4. WEB ICON 的探讨

    一般考虑到webicon 就是cssSprite和自定义font:本文基于下述而总结和进行分析,如有笔误有望指出,谢谢 在线教程:用字体在网页中画ICON图标 http://www.imooc.com ...

  5. JS拖动浮动DIV

    <!DOCTYPE html> <html> <head> <meta charset="utf8"> <title>j ...

  6. 【xcode】错误之Could not launch "" failed to get the task for process

    http://blog.csdn.net/teng_ontheway/article/details/8467932 在Xcode下编译工程正常,在模拟器下运行正常,最后在真机上运行的时候出现了如下错 ...

  7. 405 HTTP method GET is not supported by this URL

    孙鑫java web开发详解P285里面提交Get网站弹出提示405 HTTP method GET is not supported by this URL 原因父类doGet()方法未覆盖. 应写 ...

  8. bootstrap基础知识

    Bootstrap是Twitter推出的一款简洁.直观.强悍的前端开发框架. Bootstrap基于 HTML.CSS.JAVASCRIPT.它由Twitter的设计师Mark Otto和Jacob ...

  9. Xamarin.Android开发实践(二)

    原文:Xamarin.Android开发实践(二) 一.准备 开始学习本教程前必须先完成该教程http://www.cnblogs.com/yaozhenfa/p/xamarin_android_qu ...

  10. JAVA用JNI方法调用C代码实现HelloWorld

    一.首先是java运行环境的搭建,到官网下载java jdk安装即可(注意要修改环境变量).还可以顺便安装eclipse. 二.编写java代码,文件名HelloWorld.java public c ...