当全栈程序员是不是很累

2024-11-24 23:37:30
推荐回答(1个)
回答1:

全栈程序员是一群特殊的程序员,他们从前到后,由内而外,几乎无所不能。很多全栈程序员都认为创业是最好的体现能力和价辩正值的地方
前段时间听说一个新名词:"全栈程序员",google了一下,被引导到了知乎的一个讨论上:http://www.zhihu.com/question/22420900。楼主提出了一个问题:怎样成为全栈程工程师,本人也在上面情不自禁地回复了一下。回头想来似乎还有话要说。由于这个话题很容易跑偏,本文只把范围限定在全栈Web软件工程师,简称FSD(Full Stack Developer)。
把技术当成生活,自己逼自己的结果
其实在任何公司工作,光凭工作的内容颂戚,很难成为FSD。有朋友可能不同意了,说在创业公司有很多机会做不同的工作啊,我想说的是,即便是创业公司,公司总是有主营的业务和方向的,就算能从前到后一个人做一个网站,那又怎样,从技术上说,无非也就是掌握了一种或几种数据库,一门或几门后台语言,掌握了html,js,css...大公司呢?更难了,大公司虽然方向很多,但是越是大的公司,个人的螺丝钉效应越明显,你可能成为领域专家,但很难有机会成为完整的机器的。那么全栈程序员的磨练靠的是什么?靠的是一种打心底里的执着和毅力,把技术当成生活,自己逼自己不断的猎取知识。
难以界定,每个人都有不同的理解
刚才其实没有鄙视能够完整做网站的人,相反,很是钦佩。至少本人现在在css上还不能算能完全独立。不过每个人对FSD的定义其实不一样,这跟个人的阅历有一定的关系。只想说,既不要对自己过分自信,也不要过分贬低。一方面,人外有人,天外有天,每个人覆盖到技术领域是有差异的;另一方面,FSD其实挺不容易的,不仅不容易达到,而且不容易获得存在感。正因为见的多,所以就越觉得自己渺小,我们经常说的,真正的大牛从来就是低调和谦虚的。而FSD在任何领域都不是那种呼风唤雨的专家,别人在讨论的时候可能永远都没有你插话的机会,其实你心里知道,自己还很肤浅。个人自认为是比较接近这么一个性质的程序猿,可以从我的博客的文章内容略窥一二。但是正如我不敢斩钉截铁地将自己定性到这么个层次,恐怕很多全栈程序员也不能将自己明确在这个定位上,因为总有人能站出来给你一个"反例"。
何去何从
从知乎上的回答来看,FSD似乎并不吃香。纵观人类发展历程,更细致的社会分工造就了生产力的提高。就程序员携樱悔行业而言,越来越趋于细分话,似乎也是正常的趋势。作为FSD,实际上挺难的,主要是因为精力的限制,无法在广度和深度上兼顾。尽管如此,个人觉得FSD还是有很明显的优势的:
见多识广,解决问题的手段比较多,而且往往能够触类旁通的思考;
不容易被某种技术的新衰而左右,很容易转型;
合格的FSD往往具有超强的毅力和极客精神,这在某些情况下是很有用的;
由于能力广泛,又吃苦耐劳,适合创业;
个人理解
针对Web开发的话,稍稍谈一谈个人对全栈程序员能力的界定,大牛们轻拍:
用户体验层面,html45,javascript,css23,各种前端的框架...
后台业务逻辑层面,各种编程语言,现在主流的有Java、C#、Python、Ruby、PHP、Node.js...,以及配套的各种开发框架...
辅助层面可能会涉及到C、C++等较为古老的编程语言,需要一定程度上熟悉掌握...
数据库,会设计和使用几种常用的数据库,mssql、mysql、oracle...,数据库分析和优化
架构层面,能够设计灵活可靠,易扩展的软件架构和硬件架构。这个层面上要掌握的东西就很多了,网络、存储、操作系统、web服务器、web架构,安全等等...
一些基础理论层面的东西,算法数据结构、编译原理、网络基础...
数据分析,数据挖掘
管理层面,众人拾柴火焰高,一个人再牛b,精力是有限的,如果能够聚集并领导更多的人,那就更全面了。这包括项目管理,持续集成,敏捷开发,版本控制...
移动开发