快乐死我了,怎么样成为一个全栈程序员(Full Stack Developer) good

受苏格拉底大神的启迪,我也来谈谈全栈。
禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗
码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才。不过,因为我热爱这个行业,也有一定天赋,所以只做好软件全栈的话我想还是可能的
禅师:你玩过三国志这个游戏吗
码农:我还开发过
禅师:你喜欢什么样的武将,诸葛亮怎么样?
码农:不错,虽然他武力只有20,不过智力有100,不过游戏出战不是单打独斗,我可以给他搭配武力100,智力20的吕布,在战场上所向披靡
禅师:对于一个武力65,智力65的武将,你怎么处理
码农:砍头或让他下野,浪费军粮和黄金
禅师:但是他很全面啊,两项能力综合130分,比诸葛亮和吕布的综合分还要高
码农:话虽如此但他还是太平庸,无法独挡一面
禅师:赵云怎么样
码农:这是我最喜欢的武将之一,武力97,智力80,还有一个姜维也是,武力91,智力91,这是我心中全才的标准
禅师:首先,请把一个能力发展到90,如果你还有余力把另一个能力发展到90,再称呼自己全栈吧,否则你只是一个全面发展又全面平庸的废材。
码农:我明白了,我想facebook和google标榜的全栈,也肯定不是一个c++,java,ios,php,blabla都只会编写hello world的全栈。

参考:http://www.zhihu.com/question/22420900

-----------------------------------------------------------------

如果学习是被动的,那么人生也会是被动的。

-----------------------------------------------------------------

我比较喜欢的二句话,一句是:“广度是尝试研究的副产品”,另外一句话:“秒杀泛泛之辈的是一技之长,秒杀一技之长的是博闻强识。”

全栈不是目的,而是顺带的结果,当你职业生涯到差不多的时候,自然而然就是了,或者不是,无所谓的。

成为全栈工程师不是目的,在只有你一个人的时候,你需要独自把脑海中的想法创意变成产品,这时候你就不得不去学习全栈技术。做这件事的目的也许是为了实现人生价值,也许仅仅只是兴趣爱好。

非常同意楼上几位砖家的话,fullstack实际上并不是要你的知识面有多广,而是你要保持接触新事物的心态。在需要迫切解决某问题的时候,愿意第一时间去接触未知的技术、信息,解决必须解决的问题,而后积累下来成为经验,而经验能降低你的学习成本,让你更快的吸收理解未知技术。

兴趣和创业,会刺激你。。我是一个独立游戏制作人,我从事游戏行业已经10年了,以前在国内很有名的游戏公司任职主程序,可以从零写一个3D引擎,后来自己在北美发行一款独立游戏,收入很丰厚就辞职了。我会C++,C#,JAVA,美术方面我会手绘,3D建模,贴图,动画。。每款游戏带给我的利润值得我去做学习和开发。。。。我每天低调的享受自由的生活。。做全栈工程师的秘诀就是做自己想做的事情,各种需求会刺激你去学习。。如果是被强迫的,那么就毫无意义。

全栈或许不需要用一个职业去衡量,更多的是可以理解为一种解决问题的全局思维和有针对性学习的能力。假设你是个技术人才且主要负责前端方面的任务,那么无论你使用何种技能,最终你需要关心的是你或是你的团队是否出色的完成了任务。那么你是否清除当前所做的产品的准确定位,目前使用的前端ui和ue是否符合使用对象的交互习惯,是否要考虑使用更加符合移动需求的前端框架,用户的使用数据和后台的对接是否安全有效,考虑到目前的项目使用的后台脚本语言和数据库,是否要在目前的代码结构上做必要的优化以便于进行后期的维护,如果工程师对于技术的广度和深度有清晰的、全面的了解,这就是全栈工程师在解决这些问题上所具有的优势。 如果你选择了去创业,那么现在问题就变了,原来可能摆在你面前的难题是如何优化自己的工程,现在最大的问题就是如何让你的公司很好地生存下去,为了达到这个目标你就得不断地去学习没有接触过的知识,这时候如果你是个有一定创业经验和社会阅历积累的人,或许你就会少走很多弯路,这就是人们常说的有很强的嗅觉和大局观,facebook喜欢招全栈工程师应该也和其独特的startup文化有关,能草率解决问题的人不如能够彻底解决具体问题的人,而能够彻底解决具体问题的人,还是不能比肩提前预知问题并有效杜绝问题发生的人。

全栈,我觉得是一种学习精神吧。至于在cn,这么浮躁的大环境,全栈=万金油吧

不是为了全栈而全栈,而是解决的问题多了,整个知识体系建立起来之后,就能搞定各种各样的问题了。
自己创过业开过公司的,完整体会过拿到项目,项目分析,然后开发,数据分析,RushDemo,上线,通宵加班,扩展客户端,测试,运营,拉投资,开公司,招人,踢人,被人踢,项目拿钱,避税,追钱,追钱成功,讨债失败之后.....(好多苦逼的事情),最后二次创业之后无论做什么,其实都觉的so easy 一样的淡定。。。

现有的答案已经说明了,以一个正常人的精力和学习速度来说,想在 full stack 的每一个层面都达到顶级的精通显然是很困难的事情。但是做不到这一点就算不上 full stack developer (FSD) 了吗?其实我希望大家留意题主引用的那段英文的最后一句:a genuine interest in all software technology. (对所有的软件技术抱有一种真挚的兴趣)。

我觉得对于 FSD ,尤其是对于想成为 FSD 的人来说,这个态度才是最重要的事情。即使都是 FSD,每一个人各自的技能加点也肯定会不一样,有人在前端更擅长一些,有人在服务器层面更有经验... 但其实没有什么硬性的门槛,需要的是解决任何问题的能力和意愿。你要做到的就是不固步自封在一个领域。遇到问题,就去研究,不因为问题不在你的 comfort zone 就放弃或者推给别人。即使一开始的解决方案很笨拙也无所谓,just learn whatever it takes to make it work. 比如说我要做一个网站,我有一些东西没碰过,但我有足够的兴趣和动力去搞个八九不离十。(这里自学能力很重要,有好的 mentor 也会帮助很大)当你经历过一次这个过程以后,你就会有信心去弄明白更复杂的东西,在之前的基础上进一步去消化、改进、学更多的东西。

另外,我个人觉得这个过程应该是由实际问题驱动的,而不是漫无目的看到什么东西流行了或者觉得很NB就去学。@庄生 的答案里提到绝大部分的网站都活不到或者永远也达不到10k用户在线的水平,那种情况下去看 high scalability 的东西有什么意义?学的东西用来解决或是改进实际遇到的问题,这样你的整个知识体系覆盖面和侧重点会比较合理。打个比方就是你的技能点有限,所以加点方案得有一个主题,到处乱点的话就废了。

回到起点,全栈工程师不是为了工作本身,是为了方便实现自己的梦。如果不是创业,我的价值可能也就是个2w 多工资的架构师或者技术经理,这个价格远远对不起我这13年的付出。一个真正的全栈工程师,目标只有一个:创业。

-----------------------------------------------------------------

一个真正的 Full Stack Engineer ,他从生活中发现问题,洞察需求,他设计解决方案,并开发出初始版本的产品。为了达到目标,他愿意去学习任何领域的技能和知识。同时他不追求一个人完成所有工作,如果有人可以比他在某方面做得更出色,便会十分热情的邀请他们加入。

最终他的职位也许不再是 Engineer ,他不再设计 UI ,不再写代码 ... 他的工作不再是 design and building an app or product,因为他有更大更重要的任务要做 - design and building a team or a company which builds great products.

而这时,社会给了他们另一个称呼 - 创业者。尽管众人已忘记他们 Engineer 的身份,但在他们骨子里,内心深处,自己始终都是一个 Engineer 。当他们需要从头再来时,他们毫不犹豫从设计开发产品做起。Nikola Tesla,Ferdinand Porsche,Henry Ford,Jack Dorsey,Mark zuckerberg,Elon Musk ... 细数那些改变了或正改变世界的创业者,他们大多数是 Engineer 背景,热衷于设计创造。他们学习技能和知识,不是为了成为某个领域的专家;而是因为那些 是完成自己目标所需要的。

-----------------------------------------------------------------

我想专注几个的语言:
1. Delphi, FreePascal/VCL/FMX
2. C++/QT
3. Windows API/MFC(驱动编程,网络编程,核心编程,SDK编程,MFC编程,COM编程)

我想专注几个行业:
1. 云存储/Backup/互联网(尽量不做Web开发)
2. IC/EDA
3. 图形图像/动态曲线

我想专注几个方面(开源项目):
1. FreeDos/DosBox
2. FreePascal
3. 英雄无敌2

中等涉及:
1. 汇编/硬件
2. Golang
3. 算法

少量涉及:
1. C#/SL
2. PHP/Html/JS
3. iOS/Android

时间: 2024-12-20 22:39:23

快乐死我了,怎么样成为一个全栈程序员(Full Stack Developer) good的相关文章

[转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言

受苏格拉底大神的启迪,我也来谈谈全栈.禅师:成为全栈工程师,这个问题等于如何成为全才,有可能吗码农:有可能,不过可能性比较低,因为达芬奇这类人毕竟是百年一遇的奇才.不过,因为我热爱这个行业,也有一定天赋,所以只做好软件全栈的话我想还是可能的禅师:你玩过三国志这个游戏吗码农:我还开发过禅师:你喜欢什么样的武将,诸葛亮怎么样?码农:不错,虽然他武力只有20,不过智力有100,不过游戏出战不是单打独斗,我可以给他搭配武力100,智力20的吕布,在战场上所向披靡禅师:对于一个武力65,智力65的武将,你

怎样成为全栈工程师(Full Stack Developer)?

我的一个小兄弟写的原创.很棒.我帮他发表在这里.他现在也是一个在纳斯达克上市公司的技术总监了,年轻有为.在Reboot也经常分享技术内容. 欢迎加入Reboot运维开发千人群(365534424)  技术交流分享天天有 高中的时候喜欢踢球,班上有一个特别厉害的前锋,用我们对手的话就是:"挡也挡不住,跑也跑不过,绊都绊不倒".       嗯,我认为的一个"全栈工程师",不是仅仅能从汇编写到JavaScript,从PHP写到Objective-C.更是从代码到Phot

全栈程序员的新玩具Rust(六)第一个WASM程序

先上代码 https://gitee.com/lightsever/rust_study/tree/master/wasm_hello01 webassembly就不用再赘述了,耳朵里面快磨出茧子来了. rustwasm是火狐自家的玩具,让我们来继续做实验,让rust飞起来吧. 环境安装 安装好rust环境之后仍然需要 一个 wasm 工具包 cargo install wasm-pack 然后如果想快速创建一个wasm项目模板可以用这个 cargo generate --git https:/

High Performance Python 笔记(Python是门不错的语言,全栈程序员就用它好了!)

High Performance Python 目录 1Understanding Performant Python 2Profiling 3Lists and Tuples 4Dictionaries and Sets 5Iterators and Generators 6Matrix and Vector Computation 7Compiling to C 8Concurrency 9multiprocessing 10Clusters and Job Queues 11Using L

Java全栈程序员之02:Ubuntu下Java环境安装、配置、测试

在上文讲完之后,我们手里的ubuntu只能算是一个上网机,什么也干不了,本篇我们将折腾它为开发机. 这里,我们这里假定你对linux体系是初级选手,所以本篇会讲的啰嗦一点,高手就出门左转吧. 1.安装 首先我们确定下我们安装的Ubuntu系统是否已经安装了java环境. 进入终端,敲入命令su,进入root模式(当然也可以省掉这一步),敲入命令java -version.如果看到这个界面,说明尚未安装Java环境, Ps:我们的课程中曾经讲过如何删除一个老的jdk,这里就略过不讲了. 继而,让我

全栈程序员的新玩具Rust(一) IDE环境

最基本的helloword过程 我们之前提过 第一步.安装rust工具链 https://www.rust-lang.org/tools/install 第二步.创建项目 cargo new helloworld 会得到一个控制台程序模板,源码如下 fn main() {     println!("Hello, world!");} 第三步.运行项目 cd helloworld cargo run 或者直接去执行exe(仅限windows) 注:rust在window下编译需要vs的

全栈程序员的新玩具Rust(二)基本代码入门

先来看这个简单的程序 1.奇怪的关键字 fn=function 函数 mut=mutability 变异性,反义词是immutability 不变性. 2.变量定义 这和其它语言不太一样,普通的语言里变量默认为可变,如果不可变则要标注为readonly 有些语言压根没有不可变这个设计,所有变量都可变. rust中,let定义的变量为immutability ,不可变,类似于其它语言中的readonly 所以图中的x 为 只读变量,不可变 图中y可以赋值 并且rust 允许覆盖定义,图中x定义了两

全栈程序员的新玩具Rust(三)板条箱

上次用到了stdout,这次我们来写一个更复杂一点的游戏 rust的标准库叫做std,默认就会引入. 这次我们要用到一个随机数函数,而随机数比较尴尬的一点是这玩意不在标准库中,我们要额外依赖一个库. 很多编程方案都有自己的模块化库系统,rust也不例外,不过rust 把库叫做crate,就是图中这种箱子的意思,倒也形象. rust提供了一个官方网站 crates.io用来管理库,你也可以把你的库提交上去 我们这次就要使用这个rand库 安装依赖库 因为查询到当前rand库的版本已经到了 0.7.

Java全栈程序员之09:IDEA+GitHub

GitHub是源码托管站点,其依赖于Git这个源码管理工具来进行代码的托管.所以将我们的代码托管到GitHub之前,我们需要安装Git. 1.Git安装 可以通过输入git命令来确定是否在本机已经安装了Git,如下. 如果发现没有安装,在Ubuntu上可以通过命令:sudo apt-get install git来进行安装,如下: 安装成功,再打开idea,就能看到project的右键菜单中多了git这个菜单项. 2.代码添加到本地git仓库 创建本地仓库需要在菜单vcs下选择import in