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

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

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

-----------------------------------------------------------------前端

若是学习是被动的,那么人生也会是被动的。java

-----------------------------------------------------------------ios

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

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

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

很是赞成楼上几位砖家的话,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 (服务器管理自己是一个工做,同时可锻炼不一样语言的思惟,毕竟C++和Pascal是很是相似的东西,至于脚本语言不看好)
3. 算法 (基础,锻炼思惟)

少许涉及:1. C#/SL (有空仍是稍微涉及如下吧,缘由有3个:1.普通工做众多 2.和Delphi是一个爹,容易学习 3.功能强大)2. PHP/Html/JS (原本是最不应涉及的,但为了个人创业,并且WEB业务的客户成本的确低廉,任何人都有可能直接成为你的客户)3. iOS/Android (目前工资比较高,并且这个时代。。。)

【原文连接:http://www.cnblogs.com/findumars/p/4531772.html】
相关文章
相关标签/搜索