这配置玩英雄联盟配置要求会卡吗?我前一年玩会蓝屏啊,只请专业详细回答,需要整体机器换还是某些配件需要换。

&p&吾之蜜糖,彼之砒霜,有人说这就是一篇毒鸡汤。我也不想本文成为年轻朋友辍学的借口,各位看官请慎入、请慎入。还有人说是我智商高,我只能敬谢不敏了,其实我只是出发的早而已。十几年来,我合作过的大牛程序员有小县城毕业的初中生、高中生,北清复交的毕业生, MIT,普林斯顿,斯坦福,伯克利的计算机博士,他们都有自己的特点,都有让我敬佩的地方。我写本文来分享我的经历,希望年轻的喜欢编程的朋友们,能够坚持下来。&/p&&hr&&p&我读了计算机的本科,硕士和博士,但我的编程是99%自学的。我大概12岁左右开始自学编程,并不需要什么其他知识,头两年也没有老师,书都很少。我都很熟练能写basic, c和pascal了,才在英语课本里学到return这个单词的意思,原来我一直不知道这是个单词(我小时候那会儿初一才开始学英语)。当时真的很难,每个指令都是一个一个字母死记硬背的。小时候信息学联赛也不是正经上课,基本都是赛后总结一下,大家分享一下题目咋做的。所以我的算法和数据结构也是自学的。我还记得少年宫的老师面试我,让我不用递归写一个树的遍历,因为我自学了半本数据结构,前天晚上刚好看到栈,就做出来了。很多时候这都是命运啊,我要是看的稍微慢点,就没戏了。&/p&&p&我本科时候基本没去上过编程的课程,本来就没几门,我也都逃了,当时年少轻狂,觉得太浅,而且C语言老师的宁波口音我实在听不明白(都是借口,我不爱上课)。博士期间我上过一两门编程的课,重温一下c++的感觉,而且其他课拿A还是要花点力气的。我从来没上过java的课,但十几年的职业生涯,我基本是已用java为主的。有朋友问,优秀的编程思璇哪里来?老师能教吗?其实极少有老师能教你这个,我觉得99%还得从你自己多探索、多吃亏、多看别人怎么做中自己总结。以前有我带过的程序员跳槽以后,就照搬我做过的架构去其他公司,毕竟应用场景不同了,吃了好多亏,但几年下来,人家不断探索和总结,现在成为一个公司的技术负责人,解决各种问题都是妥妥的。&/p&&p&这也是我为什么在很多回答里都鼓励非科班的兄弟们自学编程,因为我觉得没有差别,你并不需要先学好数学和英语,一样可以写代码,一样可以当好程序员。计算机的数学很多是非常直观的,比如说n的平方和n的立方谁增长的快,快多少?你不学数学分析也能有大致的认识,不影响你学算法,当然建议你能从数学的角度思考,把这个问题真正的学明白。算法和数据结构里用到的数学知识是很少的,多项式和对数就涵盖99%了。至于英语,就算你看原版书,也不需要认识多少单词,一半都是代码和图。再不济你用谷歌翻译撸一撸,也就看懂了。编程和唱歌跳舞一样,如果你能找到个大师亲自指点你,那当然是最好不过,不过这种机会是可遇而不可求,就算在大学里,即使你是个博士生,你和导师交流也是很有限的,本科生更是一年和导师也说不了几句话。自学才是获得知识的最主要途径。在美国,一个博士往往要修50几个学分,我们学校还强迫每个方向的课程都要有,软件,硬件,数学,网络等等,这听起来好像很多,但和普通博士生自己看的论文、自学的知识比起来,那50几个学分真的不算什么。&/p&&p&我始终觉得高等教育不是知识和技巧的传授,大学不是技校,计算机专业和教你开挖掘机不一样。大学的教育主要是帮助你进行人格、性格和思维的塑造,比如说数学分析能让你更加理性坚韧而又不失变通,离散数学可以让你感受结绳记事以后,人类思维的演变。我一直非常感谢我的母校复旦大学,本科四年,她没有把我像工具或者螺丝钉一样培养。而我后来在美国的博士阶段教育,又让我更加懂得如何向未知领域探索,如何解决前进中难题。我觉得大学里的最终产品是大师,当然不可能出来的各个毕业生都立马成为大师,可能是在几十年后在大学里或者大学外成为大师,也有可能仅仅是出产一个个内心更加宁静和强大的懂得独立思考人,不会没事出来问自学和科班的差别在哪里,我的大学是不是白读了之类的问题。我觉得大学教育既不能工具化,也不能精英化,而是应该更加的个性化,每个人都应该有自己更独立的灵魂。&/p&&p&我比较自豪的是我多年来在技术上并没有走太多的弯路,我也比较少会有技术和人生选择上的迷茫,我想这也是科班教育给我带来的一个显著收益吧。&/p&&hr&&p&哇,这是我最火的一个回答了,感谢大家。谢谢大家夸我智商高,智商高到一定程度,学什么都会快,我见过这样的人,但我显然没高到那个水平。武功再高,也怕菜刀,我自学也是很苦难的,到现在也没把算法导论看完。趁机说一下感觉自学很困难怎么办。我老婆推荐我看过一本书,关于大脑脑回路(brain circuits好像是这个词吧)铺设的。人的大脑不是一成不变的,你可以通过训练让大脑里的回路铺设更适于干某一种事,我想这就是为什么有人说什么事做10万小时,你就是专家了,估计那时候你脑子都改变了,学类似的东西就会很快。这是很笨但是很稳妥的办法,只要花时间,总归能学得会。就是下面这本书。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-5f9f4c1a6411cef86fdbd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&400& data-rawheight=&600& class=&content_image& width=&400&&&/figure&&p&还有一个技巧就是虚极静笃,很多时候你不接受一个概念,是因为你自己心里已有的观念太强了,让你不自觉地产生了排斥。比如说我学ruby的时候就很痛苦,因为我以前一直学习的都是静态类型的语言,很多概念在心里太强了,再来看ruby, 就什么都觉得奇怪,很多的怀疑让我静不下心。蹉跎了很久之后,我就开始尝试放下已有的知识,就好像是学习我的第一门语言,用ruby的哲学去学习ruby,效果就特别好了。&/p&&p&还有就是编程需不需要数学?我个人很喜欢数学,但我认为数学只是工具,而且是没那么常用的工具。不管怎样,作为一个程序员,学好数学肯定不是最终目的,数学家不等于好程序员。我们程序员写好代码才是目的。写好代码需要玩转数据结构和算法,算法需要使用一些很直观的数学,我自己的体会是不懂数学也能学算法,你可以在学习算法的过程中不经意间把数学也学了。但大学里开那么多数学课也不是白费的,这是思维的锻炼,你数学学的好能让你理解算法更快,而且从数学的角度来看算法,能让你看的更透彻。&/p&&hr&&p&关于编程等不等于计算机科学,我觉得是等于的。程序=数据结构+算法,我实在想不出计算机科学的什么分支,包括计算机原理,操作系统,编译原理,计算机网络,这些都没有什么逃出数据结构和算法的范畴。而且我们在计算机科学中所学的一切,都会最终落实到程序上。 自学编程,就是自学计算机科学,没有什么高低贵贱之分。或许有例外,请大家在评论中教我,谢谢!&/p&
吾之蜜糖,彼之砒霜,有人说这就是一篇毒鸡汤。我也不想本文成为年轻朋友辍学的借口,各位看官请慎入、请慎入。还有人说是我智商高,我只能敬谢不敏了,其实我只是出发的早而已。十几年来,我合作过的大牛程序员有小县城毕业的初中生、高中生,北清复交的毕…
&p&如果你是一个PC游戏玩家,那么应该会经常接触&a href=&//link.zhihu.com/?target=http%3A//diy.pconline.com.cn/graphics/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&显卡&i class=&icon-external&&&/i&&/a&驱动。同时,大家也会遇到显卡驱动的很多相关现象,例如驱动会突然崩溃黑屏后又恢复,例如游戏在全屏模式下就是比窗口模式流畅,又例如升级系统后老显卡居然也可以跑DX12游戏等等。为什么会这样子?关于显卡驱动的秘密,你到底知道多少?今天就一起来谈谈显卡驱动的一些话题吧。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-061fb0fdc371f638acc8cf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&341& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/v2-061fb0fdc371f638acc8cf_r.jpg&&&/figure&&p&很多朋友都买了高端显卡,但未必关心显卡驱动&/p&&p&&b&Win的显卡驱动到底是怎样的存在?&/b&&/p&&p&要让某个硬件被操作系统所识别、让硬件在操作系统中发挥功效,驱动程序必不可少。显卡驱动顾名思义,就是用来让操作系统识别显卡的。很多朋友全新安装Windows系统后,发现显示分辨率非常低,系统也并不能正常运行很多大型3D游戏,或者进行视频硬解码,于是把原因归咎为没有安装显卡驱动——这种说法,实际上并不准确。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-0aa33a42b21dcb2c295ffb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&368& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic4.zhimg.com/v2-0aa33a42b21dcb2c295ffb_r.jpg&&&/figure&&p&初装系统时虽然提示显卡驱动有问题,但其实显卡已经被驱动起来了&/p&&p&既然操作系统能识别显卡并显示画面,意味着显卡已经被驱动所识别,只不过Windows自带的只是最基本的VGA驱动,只提供基本的显示功能,并不能发挥显卡的种种特性。所以,实际上全新安装的系统,也是有显卡驱动的,只不过这个驱动只能保证最基本的画面显示而已。&/p&&p&但是,也千万不要小看这个最基本的驱动,这可以说是Windows系统最大的优点之一。要知道其他系统压根连这样的驱动也没法提供,例如&a href=&//link.zhihu.com/?target=http%3A//pcedu.pconline.com.cn/android/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Android&i class=&icon-external&&&/i&&/a&,Google释出了原厂镜像乃至源码后,还需要厂商一一做驱动适配。而Windows则很少存在这样的问题,新的Windows发布后,几乎全世界的PC都可以升级,这就是Win系统驱动的强大之处。&/p&&p&Windows拥有一套显卡驱动的标准模型,这令各家厂商都可以根据这套模型,开发适用于Windows的驱动。因此,显卡厂商可以独自为用户提供相应的Win显卡驱动,并不需要微软亲自下场动手适配各种显卡。在XP时代,这套驱动模型叫XPDM,现在则是WDDM。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-b954c799ba6110bdeb2b7d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&225& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic2.zhimg.com/v2-b954c799ba6110bdeb2b7d_r.jpg&&&/figure&&p&Win系统有标准的显卡驱动模型,XP是XPDM,&a href=&//link.zhihu.com/?target=http%3A//pcedu.pconline.com.cn/soft/st/WindowVista/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Vista&i class=&icon-external&&&/i&&/a&后用的是WDDM&/p&&p&显卡厂商只要遵循WDDM,就可以编写出自己的显卡驱动。用户手动安装或者通过Windows U&a href=&//link.zhihu.com/?target=http%3A//product.pconline.com.cn/pda/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&pda&i class=&icon-external&&&/i&&/a&te获取相应显卡的新驱动后,显卡的潜力就可以被进一步发掘出来。毫无疑问,Windows系统的显卡驱动机制,有着灵活的扩展性。&/p&&p&&b&为何显卡驱动崩溃后会黑屏接而恢复?&/b&&/p&&p&很多朋友都遇到过显卡驱动崩溃,当超频失败,或者显卡散热不良之类的情况下,系统右下角会出现“&a href=&//link.zhihu.com/?target=http%3A//diy.pconline.com.cn/display/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&显示器&i class=&icon-external&&&/i&&/a&驱动程序停止响应,并且已成功恢复”的字样,这就是典型的显卡驱动崩溃。当显卡驱动崩溃后,系统会暂时黑屏,但很快又恢复。为什么会出现这样的现象呢?&/p&&figure&&img src=&https://pic3.zhimg.com/v2-52ae8d4b80cea9f8ef1c6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&244& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic3.zhimg.com/v2-52ae8d4b80cea9f8ef1c6_r.jpg&&&/figure&&p&现在显卡驱动崩溃只会黑屏然后恢复,XP时代会直接蓝屏死机&/p&&p&实际上,显卡驱动黑屏后恢复,已经是莫大的改进。在XP时代,显卡驱动一旦崩溃,系统会直接蓝屏崩溃。但在Vista以后,微软把驱动模型改进成为了WDDM,极大地提高了稳定性。在Vista及以后的系统中,内核层和用户层分离,WDDM显卡驱动很大一部分被归到用户层当中,显卡驱动崩溃只需要重置就可以了,并不会导致系统内核崩溃,从而蓝屏死机。&/p&&p&换言之,显卡驱动崩溃后黑屏然后恢复,就是WDDM驱动重置的过程。当然,如果显卡出的问题太大,就不仅仅是WDDM驱动重置就可以解决的,该死机还是会死机。但无论如何,WDDM的确在稳定性上远胜于XPDM,这也是为何&a href=&//link.zhihu.com/?target=http%3A//pcedu.pconline.com.cn/windows7/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Win7&i class=&icon-external&&&/i&&/a&以后的系统玩游戏比XP更稳定的一大原因。&/p&&p&&b&为何游戏全屏模式就是比窗口模式更流畅?&/b&&/p&&p&现在越来越多的游戏加入了窗口模式,和全屏模式相比,窗口模式玩游戏会更加方便。例如想要一边聊&a href=&//link.zhihu.com/?target=http%3A//dl.pconline.com.cn/download/359520.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&QQ&i class=&icon-external&&&/i&&/a&一边游戏,又或者想要开N个游戏挂机,那么在窗口模式玩游戏是更好的选择。不过,很多朋友都会发现这样的一个现象,窗口模式玩游戏就是没全屏模式流畅,帧数都会少一些,无论目测还是用工具测都是如此。为什么会这样呢?&/p&&figure&&img src=&https://pic1.zhimg.com/v2-570b8a0af1d46a52a89c80_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&404& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-570b8a0af1d46a52a89c80_r.jpg&&&/figure&&p&Win7的WDDM 1.1相比Vista的WDDM 1.0,一大改进就是窗口模式的效率&/p&&p&这和Windows的显卡驱动是有关系的。在窗口模式下,除了渲染游戏内容,显卡驱动还会调用GPU渲染资源管理器等元素——窗口就是资源管理器的一部分。在Vista和Win7中,资源管理器使用Aero特效,这也会造成一部分的负担。不但如此,在Vista中,由于WDDM 1.0驱动设计不完善,在窗口模式下渲染游戏,需要CPU对窗口及游戏进行软混合,效率很低,所以窗口模式玩游戏会特别卡。在Win7以后的系统中,WDDM进行了改进,就没有再出现此类情况了。&/p&&p&与之相比,全屏模式可以让游戏渲染独占所有的显卡资源,显卡不必再为资源管理器之类的元素分心。因此,游戏全屏模式比窗口模式更流畅,也就理所当然了。&/p&&p&&b&升级新系统对显卡驱动有何好处?&/b&&/p&&p&在每一代Windows系统中,WDDM都会有所改进。例如前面说到的Win7的WDDM 1.1改进了Vista中WDDM 1.0窗口模式太低效的问题,而在Win8中的WDDM 1.2又新增了16bit色深乃至YUV 4:4:4的支持,还支持显卡只做纯渲染而不输出图像;在Win8.1中的WDDM 1.3中优化了显存调用并新增了无线输出等特性。此后Win10的WDDM 2.0更是改进巨大,配合DX12这个新的图形API,能让多显卡工作更加高效,而且就算是老显卡,也能够运行DX12游戏——只是并不能发挥DX12的全部好处罢了。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-bcafdc6cfb69ba97d0b4ddf769a6e17c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&600& data-rawheight=&337& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&https://pic1.zhimg.com/v2-bcafdc6cfb69ba97d0b4ddf769a6e17c_r.jpg&&&/figure&&p&WDDM的进化可以带来很多好处&/p&&p&可以说,新的WDDM的确可以带来很多好处。为何游戏玩家会最为青睐Win10?因为只有在新系统中,才能使用新的WDDM版本的显卡驱动,从而带来更好的游戏体验。如果你使用的是一些新型硬件,例如Surfacebook这种可分离GPU的设计,或者VR设备、HDR显示器等,那么新的WDDM更加必不可少。例如Windows10周年更新带来的WDDM 2.1才能支持HDR输出,而Windows10秋季更新带来的WDDM 2.2有对AR、VR显示有所优化。因此,越新的硬件,越需要新的WDDM显卡驱动才能发挥其真正实力。&/p&&p&如果仅仅是安装新驱动、而不升级新系统,是无法享受到新版WDDM的好处的。另外,如果你没有升级系统,新的驱动就不要乱装了。某些驱动基于新版的WDDM设计的,旧的系统无法兼容。例如Win7就无法使用为XP设计的驱动,因为XP的显示驱动模型是XPDM,Win7使用的是WDDM。同样,Vista、Win7的显卡驱动或许是可以装到Win10中的,但绝然不可能兼容XP,因为两者的显卡驱动模型迥然不同。&/p&&p&&b&总结&/b&&/p&&p&目前微软仍在持续改进WDDM,例如在最新的Win10创意者秋季更新中,就使用了WDDM 2.3。在很长一段时间内,Windows仍会是最适合玩游戏的系统,而新版的WDDM又能进一步发掘显卡的潜力、修复以往的问题。如果你是一名PC游戏骨灰玩家,不妨注意一下WDDM的升级,有了好显卡也得要足够先进的驱动才能带来最好的体验。&/p&&p&&br&&/p&&p&【&a href=&//link.zhihu.com/?target=http%3A//pcedu.pconline.com.cn/5.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&游戏全屏比窗口更快?显卡驱动这些秘密你知多少&i class=&icon-external&&&/i&&/a&】&/p&
如果你是一个PC游戏玩家,那么应该会经常接触驱动。同时,大家也会遇到显卡驱动的很多相关现象,例如驱动会突然崩溃黑屏后又恢复,例如游戏在全屏模式下就是比窗口模式流畅,又例如升级系统后老显卡居然也可以跑DX12游戏等等。为什么会这样子?关于显卡…
我是该问题的题主(由于在上一家公司的时候有许多同事混知乎自己又不喜欢匿名,所以当时临时注册了一个小号来提的这个问题),从6月份开始辞职到北京找工作,面了一共8家一二线互联网公司,并拿到了其中的7个offer,最终在百度和完美世界之间选了完美世界。&br&&br&感谢 &a data-hash=&fd7c571a0ada1a72e42e8d& href=&//www.zhihu.com/people/fd7c571a0ada1a72e42e8d& class=&member_mention& data-editable=&true& data-title=&@萧井陌& data-tip=&p$b$fd7c571a0ada1a72e42e8d& data-hovercard=&p$b$fd7c571a0ada1a72e42e8d&&@萧井陌&/a&&a data-hash=&745f68a74a02e455b1e1& href=&//www.zhihu.com/people/745f68a74a02e455b1e1& class=&member_mention& data-editable=&true& data-title=&@蓝色& data-tip=&p$b$745f68a74a02e455b1e1& data-hovercard=&p$b$745f68a74a02e455b1e1&&@蓝色&/a&
在技术学习的相关问题上给我的建议和指点。&br&&br&感谢 &a data-hash=&fd7c571a0ada1a72e42e8d& href=&//www.zhihu.com/people/fd7c571a0ada1a72e42e8d& class=&member_mention& data-editable=&true& data-title=&@萧井陌& data-tip=&p$b$fd7c571a0ada1a72e42e8d& data-hovercard=&p$b$fd7c571a0ada1a72e42e8d&&@萧井陌&/a&&a data-hash=&745f68a74a02e455b1e1& href=&//www.zhihu.com/people/745f68a74a02e455b1e1& class=&member_mention& data-editable=&true& data-title=&@蓝色& data-tip=&p$b$745f68a74a02e455b1e1& data-hovercard=&p$b$745f68a74a02e455b1e1&&@蓝色&/a&&a data-hash=&8d43bb77fa95a04f39f68fde6dd8ce1d& href=&//www.zhihu.com/people/8d43bb77fa95a04f39f68fde6dd8ce1d& class=&member_mention& data-editable=&true& data-title=&@于鑫& data-tip=&p$b$8d43bb77fa95a04f39f68fde6dd8ce1d& data-hovercard=&p$b$8d43bb77fa95a04f39f68fde6dd8ce1d&&@于鑫&/a& 在选择offer时给出的宝贵意见。&br&&br&同时也非常感谢所有在该问题下给出建议的朋友们 : )&br&&br&&b&学习过程&/b&&br&&ol&&li&比较仔细的学习了《c++primer》,并对每个习题都自己写代码实现了一遍,包括稍微复杂一点的例子。&br&&/li&&li&认真读完了《effective c++》,《effective stl》。&br&&/li&&li&比较仔细的学完了《数据结构与算法分析》,并把其中的每种数据结构和算法都用c++实现了一遍。包括各种线性表,树(二叉树、AVL树、RB树的各种操作),图(BFS、DFS、prim、kruskal、djkstra、floyd、拓扑排序、关键路径等)查找算法,排序算法。&/li&&li&2-3个月认真学完《csapp》并做完书上的课后习题(由于时间的关系,没有在做家庭作业),顺带学习了一些gcc的嵌入汇编的用法。&br&&/li&&li&读完了《深度探索C++对象模型》,对象C++底层实现机制有了一定的了解。&/li&&li&读完了《TCP IP详解卷一》&/li&&li&读了《APUE》的大部分内容以及《UNP卷一》有关TCP/UDP的部分,略过了SCTP的部分。&/li&&li&研究学习 &a data-hash=&c1c892f179f95da8b37a1dcc& href=&//www.zhihu.com/people/c1c892f179f95da8b37a1dcc& class=&member_mention& data-editable=&true& data-title=&@陈硕& data-tip=&p$t$c1c892f179f95da8b37a1dcc& data-hovercard=&p$b$c1c892f179f95da8b37a1dcc&&@陈硕&/a&的muduo网络库源码,受益良多,在期间发现过其中的一两个小问题,提了几个pull request,研究完了muduo源码后又看了其相关的书《&a href=&//link.zhihu.com/?target=http%3A//book.douban.com/subject//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Linux多线程服务端编程 (豆瓣)&i class=&icon-external&&&/i&&/a&》&/li&&li&学习了云风的skynet网络库的小部分源码,主要为了了解actor模式和reactor的异同。&/li&&li&学习了google test框架的部分源码,弄懂了内部的的运行原理。&/li&&li&刷《剑指offer》的所有习题。&/li&&li&刷leetcode,代码在&a href=&//link.zhihu.com/?target=https%3A//github.com/liyuan989/leetcode& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&liyuan989/leetcode · GitHub&i class=&icon-external&&&/i&&/a&,由于时间的关系大约刷了130道就开始找工作了。&/li&&/ol&&br&关于练手项目,写了简易STL,C++协程库,以及一些http server,rpc之类的。&br&&br&&b&关于找工作&/b&&br&&br&由于基本都是同学朋友内推,不存在简历被HR筛掉了。&br&&br&其实自己都惊讶在找工作的时候有些异常顺利,因为面试官问的问题很少有答不上来的。绝大多数问题个人感觉不难,大多都是问的一些比较基础、底层的东西,比如互斥锁底层是怎么实现的?如何用C语言实现C++的异常,说说基本思路这样的问题。然后就是根据简历上写的东西来问。&br&&br&另外一个要说的就是纸上手写算法题了,手写代码和机器上写代码的感觉不一样,我个人是没事自己在纸上写写一些基本的算法来熟悉,比如快排、堆排序之类的。&br&&br&然后面试要问的算法题一般都不难,多数都是翻转链表,判断链表是否有环,回文数,找出链表倒数第k个数这样的题目。&br&&br&很少遇到问二叉树的问题,没有遇到过问图的相关问题。唯一碰到一个动态规划的问题,就是最典型的最长公共子序列问题,难点的就是百度第一面最后问了一个leetcode上hard难度的原题,总的来说刷一些题还是很有必要的。&br&&br&=============
=============&br&&br&看到有网友问我驱动力是什么?&br&&br&引用一下 &a data-hash=&fd7c571a0ada1a72e42e8d& href=&//www.zhihu.com/people/fd7c571a0ada1a72e42e8d& class=&member_mention& data-editable=&true& data-title=&@萧井陌& data-tip=&p$b$fd7c571a0ada1a72e42e8d& data-hovercard=&p$b$fd7c571a0ada1a72e42e8d&&@萧井陌&/a&萧大在问题&a href=&http://www.zhihu.com/question/& class=&internal&&怎么成为一个优秀的程序员,而不是一个优秀的码农? - 互联网&/a&中的回答:&br&&blockquote&&p&好比,我们说,嫖娼是有巨大道德压力、金钱压力和风险的事情,为啥知乎上那么多嫖客乐此不疲并努力给自己洗脑合理化这件事呢?因为在他们的眼中嫖娼是最有趣的事情、是不吃饭不睡觉也不能不做的事情、是不做就活着没劲的事,有了这种死也要死在床上的精神,还怕什么呢?&/p&&br&&p&&b&&u&这就是推动力&/u&&/b&&/p&&/blockquote&对于我来说驱动力就是兴趣和坚持吧,再一个就是有一种「做一件事就要把它做好的信念」。&br&&br&讲一下我个人的两个经历。&br&&br&在我中学的时候对篮球很有兴趣,但是刚开始的时候运球都运不稳,更别说上篮、突破、三威胁之类的高级动作了。然后我就在网上找到了张卫平老师的篮球教学系列视频,学基本的运球动作,投篮动作以及基本步法,在家里没事都会练练步法。每天晚上傍晚看不太清的时候都去练投篮找投篮感觉,然后看NBA学一两个实用的晃人、假动作技巧,再慢慢练习。最终在高中的时候进了当时的校篮球队,拿了当时市高中比赛的冠军。&br&&br&另一个就是关于WOW了。高中毕业的时候被一帮从地球年代就开始玩的同学拉去玩WOW了,由于之前没有玩过类似WOW的网游,什么都不懂,完完全全的一个小白,一下副本就被队友、同学骂。然后呢,我就去NGA看各种攻略贴、精华帖、视频。仔细研究每一个技能的描述,冷却时间。慢慢的,下各种副本团队时候DPS都超过了我的同学,再到后来加入了服务器FD团队,拿过几个服务器首杀,单个BOSS的DPS排行也进过WOL全球前10。PVP方面也是的,开始在奥格门口是个人都能虐我,然后我每天观摩那些高手怎么放技能,怎么衔接,然后每天泡在奥格门口决斗练习,看NGA刀锋山的各种精华帖,看各种PVP视频,慢慢的在奥格门口几乎没有对手了,成为了所谓的门神。后来觉得决斗没意思,就开始玩竞技场,也是这样的一个学习过程,最后也打到了角斗士龙。&br&&br&最后,我很喜欢&a data-hash=&8b8f80bcafc684ae1bca1ab85e89a8c3& href=&//www.zhihu.com/people/8b8f80bcafc684ae1bca1ab85e89a8c3& class=&member_mention& data-tip=&p$b$8b8f80bcafc684ae1bca1ab85e89a8c3& data-hovercard=&p$b$8b8f80bcafc684ae1bca1ab85e89a8c3&&@刘未鹏&/a&先生说过的一句话的:&br&&blockquote&兴趣遍地都是,专注和持之以恒才是真正稀缺的。&/blockquote&
我是该问题的题主(由于在上一家公司的时候有许多同事混知乎自己又不喜欢匿名,所以当时临时注册了一个小号来提的这个问题),从6月份开始辞职到北京找工作,面了一共8家一二线互联网公司,并拿到了其中的7个offer,最终在百度和完美世界之间选了完美世界。…
&figure&&img src=&https://pic1.zhimg.com/v2-d2f0b081b58de52f4f917ea_b.jpg& data-rawwidth=&1600& data-rawheight=&851& class=&origin_image zh-lightbox-thumb& width=&1600& data-original=&https://pic1.zhimg.com/v2-d2f0b081b58de52f4f917ea_r.jpg&&&/figure&&p&我一个关系很近的表妹去年本科毕业,中医专业,学校不太好,家里也没啥背景,长时间找不到一份自己满意的工作。因此我建议她转行做前端,她听从了我的建议,然后在我毫不知情的情况下自己去报了一个培训班学习(我知道时都已经交钱了~)。经过五个月的学习,今年年初毕业后终于找到了一份自己觉得还行的工作。这个过程中我们也有过多次交流,这篇分享就是其中一部分交流的内容,我把他分享出来,希望对新入门的小伙伴有所帮助。全篇采用问答的方式,表妹的问题我会加粗标示出来。&/p&&p&&b&如何才能找到一份高薪又轻松的工作?&/b&&br&(之前我已经了解到她学到的东西)就你目前所学到的东西来说,很难找到一份这样的工作。用程序设计一个原则,低耦合原则,我们把这件事分两步走。第一想找一份相对高薪的工作,可以到北上广深这样的大城市,不要呆在家里,不然即使暂时找到了工作,也不会满意多久。想找一个轻松的工作,那是不可能的,大部分的程序员都会经常加班。不是他们工作一定有多忙,多累,而是工作忙了干活,工作闲了学习。如果哪一天你停止加班(学习),那你离成为码农就近了。&/p&&p&&b&如何快速的成为一个厉害的程序员?&/b&&br&说实话,我也一直在寻找这个答案,但是一直没找到。所以只能在工作之余踏踏实实的学习,去看厉害的人写的代码,看书,查资料,一点一点的进步,日复一日,慢慢就能从中获得乐趣。我可以给你推荐一些网站和博客,有空可以多去看看。&/p&&p&&b&公司用到的东西也不太会,用的是很老的jsp,我以前都没有学过,又不想学,怎么办?&/b&&br&公司用到东西你必须要会,即使现在不会,也必须很快学会,因为这是你生存的基础。公司招你不是想让你来学习的,而是需要你创造价值。既然必须要学,那就愉快的去学。你换个角度想想,公司能给你提供学习新知识的环境,不是一件特别值得高兴的事情么。&/p&&p&&b&公司人不多,前端就我一个,后端也是经常出bug,感觉学不到东西,怎么办?&/b&&br&新加入公司怎么会学不到东西呢,你维护一个老项目,项目里面代码你都看过了?(没看过,写得乱七八糟的),那有没有想过改进,能把你觉得糟糕的代码改得自己觉得不错,这难道不是学东西吗?技术上不要太浮躁,要沉下心来好好学习。你现在给我讲一下vue框架的执行步骤吧(不知道)。讲一下webpack或者其他你知道的前端构建工具(没了解过)。实在不行就讲下http,讲下es6, flex(都讲不出来)。。。编程有太多东西要学,前端只是其中很简单的一小部分,这一小部分中你也只是了解了一点点。学东西公司项目是一个方面,这是被动学习,项目之外更应该主动学习,充实自己,才能让自己更具有竞争力。&/p&&p&&b&如何学习一门新的前端知识呢?&/b&&br&我的建议是先google或者百度一下,了解这个新知识是什么东西,明白这个新知识的适用场景。然后看w3school的文档或者慕课网、网易云课堂之类的视频,学会基础的东西,接着最好能找到一本国外的权威书籍(国内书就不推荐了,目前我看过的大概就nodejs深入浅出还比较好,其他都不行),让自己有个整体的构架,之后找案例练习或者工作中练习,最后是长时间的学习补充,有时间最好是看下源码(如果有)。我觉得这个路径比较不错,掌握东西又快又牢,你也可以借鉴一下,虽然适合自己的是最好的,但是在没有找到适合自己的之前,借鉴别人的也很有必要。&/p&&p&&b&二哥,你给我讲下你怎么学习的吧。&/b&&br&刚毕业的时候,知道的东西不多,那时候就喜欢看视频,觉得视频形象具体,很容易接受。之后就慢慢迷上了看书,觉得书讲的很有条理,结构性强,对一门知识容易形成框架。再然后就是看书和博客结合着来,既能调剂生活也能学到东西。后来慢慢也把自己学到的东西总结出来,写成文章给别人看。时间上基本能保证每周有超过30个小时的自学时间,项目忙点就抽早上或周末学习,闲点基本都在学习。&/p&&p&最后,我希望对所有新入门的小伙伴一点建议。写程序要和做学问一样,要沉得住气,要能忍受长时间无人问津的寂寞。当然,这个过程中也不全是枯燥无味的学习,可以适当的发展自己的兴趣爱好。以下则是我在这个过程中积累的一点点经验:多运动保持身体的健康,多沟通保持思想的活跃,多分享保持思维的清晰。当然如果能把编程当成自己的兴趣爱好,并能持久的从中获得乐趣,我想你离大牛已经不远了。好了,这篇分享就到这里了,谢谢~&/p&&p&&br&&/p&&p&作者: maoruibin &/p&&p&链接:&a href=&http://link.zhihu.com/?target=http%3A//www.imooc.com/article/details/id/20991& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&imooc.com/article/detai&/span&&span class=&invisible&&ls/id/20991&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&来源:慕课网&/p&&p&&br&&/p&&p&最后,双十一要到了,小慕也为广大程序员朋友们准备了礼物,欢迎大家积极参加活动赢取奖品哦~&/p&&p&活动详情请戳→&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&慕课网11.11狂欢趴开始了,程序员快来!!&/a&&/p&
我一个关系很近的表妹去年本科毕业,中医专业,学校不太好,家里也没啥背景,长时间找不到一份自己满意的工作。因此我建议她转行做前端,她听从了我的建议,然后在我毫不知情的情况下自己去报了一个培训班学习(我知道时都已经交钱了~)。经过五个月的学习…
不要对一个程序员说:你的代码有bug。他的第一反应是:1,你的环境有问题吧;2,傻逼你会用吗。如果你委婉地说:你这个程序和预期的有点不一致,你看看是不是我的使用方法有问题。他本能地会想:操,是不是出bug了!&br&最长 纯粘贴
不要对一个程序员说:你的代码有bug。他的第一反应是:1,你的环境有问题吧;2,傻逼你会用吗。如果你委婉地说:你这个程序和预期的有点不一致,你看看是不是我的使用方法有问题。他本能地会想:操,是不是出bug了! 最长 纯粘贴
&p&【本人性格不好,被惹到了必然句句带脏字,所以评论中如果有不开眼的,请慎重。另外,这篇回答从头到尾都是我自己的个人偏见,绝对不客观,也绝对不会为本答案负责。所以,有自己正常思维的请不要再看下去了。最后,这篇文章在最后会指向硬广,来佐证文中实例,因此,不喜欢有广告的可以直接举报了,顺手推荐一下修真院的专栏,各种IT行业的真实小故事。&a href=&https://zhuanlan.zhihu.com/jnshu& class=&internal&&IT修真院 - 知乎专栏&/a&】&/p&&p&&br&&/p&&p&&br&&/p&&p&Live已开通~想听Live的可以点这里&/p&&p&&a href=&https://www.zhihu.com/lives/107520& class=&internal&&知乎 Live - 全新的实时问答&/a&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&互联网行业的薪资水准相对较高,刚入行一个月,半年,或者一年超过其他行业薪资很正常。&br&那么,互联网行业究竟有哪些职位呢,又分别适合哪些传统行业转型?&/p&&p&1.产品&br&2.UI&br&3.CSS&br&4.JS&br&5.后端(Java/php/python)&br&6.DBA(mysql/oracle)&br&7.运维(OP) &br&8.测试(QA)&br&9.算法(分类/聚类/关系抽取/实体识别)&br&10.搜索(Lucene/Solr/elasticSearch)&br&11.大数据工程师(Hadoop)&br&12.Android&br&13.IOS&br&14.运营&/p&&p&&br&&/p&&p&&br&&/p&&p&然后等下我会分别介绍每个职业的工作内容,发展前景,入门门槛,适合哪些职业转行,成长周期,薪水范围等。&/p&&p&* 薪水都以北京为例&br&* 运营和市场都有更细致的划分,然而我并不太了解了&br&* 其他的偏门的&/p&&p&&br&&/p&&p&一.产品&br&========我是求某个姑娘快原谅我的的分割线=============&/p&&p&&br&&/p&&p&&br&&/p&&p&1 工作内容:了解用户需求,做竞品调研,画产品原型,写产品文档,讲解产品需求,测试产品Bug,收集用户反馈,苦练金刚罩以防止程序员拿刀砍。&/p&&p&2 需要技能:PPT,Word, Axure,XP,MVP,行业知识,沟通&/p&&p&&br&&/p&&p&
PPT是最容易被忽视的技能,很多时候很多人都把产品经理=画原型,如果你这么想,再做五年的产品经理也是一个画原型的。我在修真院的时候,给修真院的弟子讲过很多次,产品经理更多的是理解一个行业,熟悉这个行业的用户,知道这个行业有哪些没有满足的需求,寻找解决方案,对比行业,找到自己的切入点,最终落地成:哪些功能要做,哪些功能不要做。&/p&&p&
这些都是要在PPT里写清楚的。所以,PPT并不是简简单单的一个工具,而且是用这个工具把你对这个行业的了解和分析和解决方案展示出来。&/p&&p&
XP是敏捷开发,不会敏捷开发的产品经理很难说会是一个好的产品经理(我很偏激,所以接受不了可以直接无视)。敏捷开发对于产品经理来讲,是逼着产品经理去用Story的方式去思考,去考虑自己每一个Story的价值是什么,所有的Story优先级是什么。&/p&&p&
MVP是最小化验证产品的缩写,这在精益创业里是很重要的概念。也就是说,你臆想了一个产品,他有了什么样的功能,但是!请注意,我们认为所有没有经过用户验证的功能都是在扯淡。所以,你其实是设计了一个扯淡的功能然后交给一堆人去开发,再交给人去运营,直到一个月或者是三个月以后才能拿到反馈结果。我们等不了,所以你必须在程序员开始启动之前,先想办法验证自己要解决的问题是存在的,要解决的需要是用户确实需要的---你有无数的办法可以这么做,真的。好比是,我做IT修真院,并没有先直接做线上的网站,而是直接去贴吧发贴,用QQ群,在论坛直接做,去观察这些弟子的行为,然后去修正自己的产品设计,我发现了他们需要日报,需要点评,需要有班级的概念,需要有学号,需要有首席大弟子等等等等这些。然后我会把这些需要分析整理之后加入到网站的设计里去,这就是MVP的价值--当年穷疯了每个决策都慎重的时候,就会特别喜欢这种方式,土豪除外,只会浪费时间而已。&/p&&p&Word是产品需求文档,我自己不太喜欢Word文档,更喜欢XP的Story,不过会一点也没有关系。&/p&&p&行业知识是产品经理最重要最重要的技能,没有之一,你可以不懂PPT,不会Axure,不会Word,也不会什么XP和MVP,但是绝对不能不懂一个行业。某种程度上来讲,产品经理拥有的其实是快速了解一个行业的能力。现在的互联网已经和以前的不一样了。以前的产品经理懂点儿交互,知道什么是表单,知道点IT术语就能混日子了,现在必须要懂一个行业,地产,金融,汽车,教育,餐饮,医疗等等各种行业,你都需要了解这个行业的模式,如果你不懂,你就是一个画原型的人。&/p&&p&沟通也是产品经理的必备技能,出门不带沟通技能,一定会被程序员砍。一方面是要跟用户沟通,一方面是要跟程序员沟通(这是世界上最难沟通的物种,没有之一),一方面要跟领导沟通(其实就是想办法拍领导马屁然后哄着他们听自己的话)。&/p&&p&&br&&/p&&p&&br&&/p&&p&3 发展前景&/p&&p&不用说,产品经理绝对是一个炙手可热的职业,而且,TNND的几乎是零门槛,这表示,是个人都可以说,我想成为一个产品经理。&br&
然而,好的产品经理很多么?并不多,所以,好像围棋一样的,入门容易,学精难。&/p&&p&而且,似乎并没有一个系统的教程(这真是一个很难让人相信的事情啊,这么一种职业,没有大学的知识培养,甚至都很少有标准化的职业化培训,全靠业界手把手培养和自发的交流,就能够拿着无数DS程序员根本就想像不到的薪水--产品经理真的跟DS有点儿不搭边的,当然,我大修真还是在努力做产品人员的培养的)。&/p&&p&产品经理的发展前景是很赞的,只是越来越体系化了,而且很容易出人头地。&/p&&p&一般来说:&/p&&p&0~6个月:4K~8K&br&6~12个月:6K~12K&br&1年~3年:10K~24K&br&3年~5年:20K~40K&br&5年~
:30K~&/p&&p&三个月到半年左右就可以算是迈入这个行业啦,如果遇到P2P这种对于专业属性要求比较高的,随便在一家公司混点经验,跳到另外一家新的公司就是一个产品总监:因为并没有其他人又了解金融又了解互联网。&/p&&p&&br&&/p&&p&&br&&/p&&p&成长路径:&/p&&p&产品助理-产品经理-高级产品经理-产品总监-CEO&/p&&p&&br&&/p&&p&大致这个样子。&/p&&p&&br&&/p&&p&&br&&/p&&p&4.入门门槛&/p&&p&无(甚至你可以不认识字)&/p&&p&&br&&/p&&p&5.哪些行业适合做产品经理&/p&&p&IT界:程序员,UI,QA,运营,市场&br&
其他界:无限制&/p&&p&PS:想了想,还真是没见过身边有做运维的转产品经理的。&/p&&p&&br&&/p&&p&6.职业限制&/p&&p&很多产品经理都很怕跟程序员沟通。而且经常会苦恼,觉得自己设计的功能,程序员做不了,做不出来,做的太慢,做的太差。惟独不会觉得自己设计的太烂。&/p&&p&所以,很多产品经理都会认为不同技术是自己的一个弱项,我曾经整理过一个产品经理需要了解的技术术语,有需要直接看楼下的广告。&/p&&p&&br&&/p&&p&7.去哪里学,怎么成长&/p&&p&还用问,自然是跟着大修真院最好。&br&
如果IT修真院你看不上,可以去一些有产品经理培训的地方去,虽然我肯定觉得自家的好。&br&
如果这些产品经理培训的差不多了,有了一个基本概念了,找个产品助理或者是实习的职位去吧。&/p&&p&会画点儿原型图,有个线上的作品,就能找工作(虽然我很不喜欢这样的产品经理)。&br&
然后有机会就去大公司了解一下各个部门是如何扯皮的,镀镀金,Over了。&/p&&p&&br&&/p&&p&二
UI&br&=============我是累死了的分割线================================&br&马丹,首先写软文,又要写成干货,又要带广告真心不是一件容易的事儿。我在之前&a href=&http://www.zhihu.com/question//answer/?group_id=064576WEB& class=&internal&&如何在一个月之内从零基础成为初级CSS前端开发工程师? - xdyl 的回答&/a& 的贴子中,写了整整一个星期才写出来。我写小说都是分分钟好么。&/p&&p&可是没办法。一个是确实需要跟大家介绍一下每个职业的比较和特点,一个是也确实需要告诉更多的人,写代码真的不是看视频看会的。&/p&&p&好了我接着说。&/p&&p&1 工作内容:收到产品原型,给原型上色,偶尔会自作主张调整下原型的位置,出不同的风格给老板和客户选,然后听他们的意见给出一个自己极不喜欢的风格,最好给Android,IOS或者是CSS做好标注,还有的需要直接帮他们切好图,最后要练出来象素眼,看看这些不靠谱的程序员们有没有上错色或者是有偏差。&/p&&p&&br&&/p&&p&2 需要技能:PS,Illustrator,Sketch,耐性,找素材&/p&&p&PS是最基础的技能。各种图层通道蒙版神马的细节的东西就不用说了,很多时候很多公司都愿意出所谓的高保真图。什么叫高保真图,简单说就是不折磨产品折磨UI的破玩意儿。就是把所有的图都画出来然后对着UI图来改,偶尔还会要求做出来网页能够点,对于这点我不想再吐槽了,总之,PS是少不了的技能,基本上很多时候其他人都会以为你只需要用PS就能搞定一切。&/p&&p&然而PS始终只是一个工具而已,所以在这里,PS代表的更多的是一种方案的选择。比如什么行业用什么配色,怎么样对齐,怎么突出重点,PC下应该是多宽,手机应该是多宽,等等等等。&/p&&p&ILLustrator最近似乎是用的少了,我不太确定,但是做矢量图以前是就是靠他的。什么是位图什么是矢量图,自行百度就好。以及还有CoreDraw,不知道现在是否常用。然而,慢慢的似乎Sketch流行起来了。&/p&&p&SKetch和Illustrator和CoreDraw之间的差别我说不上来,我记得我的UI小姑娘跟我讲这个工具很好用。&/p&&p&&br&&/p&&p&耐性必须是UI必备的技能,因为有的时候,老板跟你较真起来,一个星期不停的反复修改一个首页是很正常的事儿。可能颜色要从红换成黑再换成绿。所以你必须要有耐性,除非你做的设计没人管,你说了算。而且,UI这东西,是个人都有自己的审美观。更不用说之前朋友圈的测试,人和人看到的颜色真心不一样。&br&所以你必须要有耐性,这是很重要的。&/p&&p&找素材的能力也是必不可少的,你手上必须要备几个常用的素材网站,大部分的人都是在别人的素材基础上改来改去。&/p&&p&&br&&/p&&p&说到这里,其实忍不住想加上一句。UI设计师最重要的能力并非是以上几种,而在于是理解产品经理的需求--前提条件是产品经理很明确的说出来了而且讲清楚了需求。&/p&&p&比如说,一个页面的重要是什么?最想引人注目的内容是什么?应该配什么样的图?加上什么样的元素能让网站的风格更醒目一些呢?&/p&&p&这里大部分其实都是原型设计师要做的事儿,我一直有一个观点,就是UI其实最应该做原型,只有这样,才能让产品经理着重去考虑功能点,让设计完美传达产品的功能点。&br&然而原型设计师这个角色慢慢的被消融了,已经变成了产品经理了。所以大部分产品经理都以为自己是画原型的,然后大部分UI都会自作主张改掉原型,因为没有美感。所以通常你会发现美感说有了,也有那么一点儿,可是总觉得会有一些不对。&/p&&p&我对他们的要求就是,先别管美不美,你先告诉我这张页面每个模块想要重点表达的内容是什么,能不能让人分清主次。做到了这一点 ,再去考虑美感。&/p&&p&&br&&/p&&p&&br&&/p&&p&3 发展前景&/p&&p&UI的发展前景是很赞的,在两到三年前,甚至都有人推动让UI来代替产品经理来驱动。某种程度上来说,UI其实最好的发展方向就是UE,也就是交互,然后就是所谓的用户体验优化师--坦白的说我并未觉得有多少公司会真正的设置这个职位,因为太泛了。但是对于现在火热的O2O来说,无论是线上还是线下,都希望提供一个极致的用户体验,所以我说不好。&/p&&p&但是大部分的UI都应该去朝着交互的方向发展,而不是去切页面。。。&/p&&p&&br&&/p&&p&UI薪水其实跟产品经理在前期差不太多,中期差点。后期相差比较远,一般来说:&/p&&p&0~6个月:4K~8K&br&6~12个月:6K~12K&br&1年~3年:10K~20K&br&3年~5年:16K~30K&br&5年~ :24K~&/p&&p&UI的成长时间大概是在两年左右,基本上PC,IOS,Android,H5全部都做过一些项目,设计过几个Logo,做过一些专题和Banner图,才算是比较完美报。&/p&&p&然而想要做的更好一些就有点困难了,除非你的遇到了一家公司,对用户体验要求极致,然而那个时候,并不仅仅是UI和UE相关的内容了。&/p&&p&&br&&/p&&p&&br&&/p&&p&成长路径:&/p&&p&实习UI-初级U-中级UI-高级UI(UE)&/p&&p&&br&&/p&&p&大致这个样子。&/p&&p&&br&&/p&&p&&br&&/p&&p&4.入门门槛&/p&&p&UI对入门门槛要求还算是比较高的。首先你得有一台Mac。。大部分的情况下你都需要Mac。&br&然后你要懂之前提到的常用软件,UI的交互规范,配色等等等。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&5.哪些行业适合做UI&/p&&p&IT界:无&br&其他界:传统做VI的,就是平面设计的会转一些。跟着基本上就是小鲜肉了,刚毕业就从事这个行业的会比较多一些。还有一些学美术的,会手绘的。&/p&&p&PS:想了想,从没怎么见过程序员转行做UI的。只见过UI人员会写代码的。&/p&&p&&br&&/p&&p&6.职业限制&/p&&p&UI这个职业的限制在某种程度上就是不太清楚自己应该朝着UE发展。所以时间长了工作就会变得单调,两年或者是三年之后原地踏步走没怎么有进步的人很多。像Metro(扁平化)或者是material design这样的风格一不熟悉二不了解三不想尝试的人还是挺多的。&/p&&p&很多人做了很久其实还是分不清产品经理想要在一个页面上表达什么--这有时候真的并不是UI的错。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&7.去哪里学,怎么成长&/p&&p&对于初学者来说,找个培训学校还真是比较好的选择。&br&我大修真院暂时并未打算去培养UI人员,主要是没有时间也没有精力去做一个系统的教程,而且我们自己在UI上也在不断的摸索。&br&一般来说,最好的成长路线就是不断的去参考别人的例子,然后再多动动脑子,多看一些UI规范。&/p&&p&先想清楚自己要表达什么,然后想想用什么表达,再去查查怎么样能做到自己期望的结果。&/p&&p&&br&&/p&&p&&br&&/p&&p&三 CSS&br&=============我是再也不要写软文的分割线================================&/p&&p&没办法。自己拉的屎不能拉个开头就提裤子走。。。说起来这也是知乎挺好玩的地方,如果不是知乎允许这种自问自答的方式,只要你说的是真正有价值的内容,并不拒绝你有做广告的嫌疑,恐怕我也不会写这些东西,你们也看不到这个贴子。&/p&&p&以下的内容是我从UI那边粘过来的,还没改呢,等我去沙发上喘口气歇会再写。中午吃的麻辣香锅有点咸。&/p&&p&&br&&/p&&p&&br&&/p&&p&1 工作内容:产品设计好原型,UI做出来了效果图,剩下的就是CSS工程师用代码把静态文件写出来的。&/p&&p&所以CSS工程师和OP一样,都是可以在不用了解业务需求的情况下就能完成工作的唯一两个特殊职业。&br&一般来说,CSS工程师并不存在,写CSS的人多少要写一些JS代码,然而确实也会有一些妹子真的就是学不会JS,有一些汉子真的就是写不出来JS,所以我还是把他们两个拆开了。&/p&&p&CSS工程师要考虑更多的就是兼容性,简单说,IE内核和非IE内核(WEBKit),IE10以下和其他。我是强烈建议新人不要去学IE10以下的Hack的写法的,让IE10以下的,不支持Html5的都去死吧,表再来跟我说用户还在用IE678了。&/p&&p&当页面切完以后,另一个工作就是去帮助菜鸟后端和某些JSER把页面又重新套错了,什么是套页面,可以看这个 &a href=&http://www.zhihu.com/people/ptteng/answers& class=&internal&&http://www.zhihu.com/question//answer/&/a& 。&/p&&p&&br&&/p&&p&&br&&/p&&p&2 需要技能:&br& 环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】&br& 基础【PS,域名,Html,Html5,CSS,CSS3】&br&扩展【自适应,响应式,Bootstrap,Less,Flex】&/p&&p&&br&&/p&&p&无论是哪一种程序员,学会搭好的自己的环境都是第一步。选好IDE,选好源码管理工具,学会每天把自己做好的Html文件发布到服务器上可以直接访问。这都是最基础的技能,记着这些东西并不难,你只是需要不断的去练习去熟悉它而已。所以从第一开始就去适应它。&/p&&p&&br&&/p&&p&会用PS是因为一是要切图,二是要制作雪碧图。这儿简单说一下,很多人都会说,切图这个活倒底分给UI还是分给前端。我一直都觉得这是CSS必须要做的,因为只有CSSER才会知道怎么切合适。然而大部分Android和IOS人员都不具备切图的能力,这也是我一直很无语的工作方式,反正,我要求我的Team,无论是Android还是IOS都必须要会自己切图。&/p&&p&另外再解释一下所谓切图和切页面的概念。切图指的是把需要用到的小图标了神马的切出来。切页面一般指的是就是把整个效果图做成Html网页。两种叫法我都觉得Low的不行,然而很多人都喜欢这么叫,而且会混到一起,时间长了,也就习惯了。&/p&&p&&br&&/p&&p&自适应和响应式是前端人员必须要懂的概念,也是必须要能做到的。毕竟现在是各种跨屏时代,以及各种分辨率都层出不穷,H5又是眼下最火红的职业和技能。&/p&&p&曾经有过工作半年或者是一年都不太懂什么是自适应和响应式的,这并不好。&/p&&p&Bootstrap,Less和Flex也是CSS工程师必须要会的。学会Bootstrap更重要的还是要去学习它的思想,这是很重要的一点,它帮助你开阔视野,你才会明白,靠,原来可以这么写。&/p&&p&Less也是一样,在推荐less和Sass之前我犹豫了很久,然而看到Sass要Ruby环境就有点不喜欢了,虽然Bootstrap已经转向Sass,但是在一般的项目中,Less也够用了。所以还是果断的推荐Less了。&/p&&p&Flex是一个好东西,我了解的还不多,在真实的项目中还未有使用过,不过挺看好的。&br&简单说呢,前端工程师需要的大多数就是技术相关的技能,倒不需要太多的沟通啊和耐性啊神马的技巧。&/p&&p&哦哦,想起来了,CSS的知识比较零散,要死记的东西其实是比较多的。&/p&&p&&br&&/p&&p&&br&&/p&&p&3 发展前景&/p&&p&CSS的发展前景最近几年好的不行。在Android和IOS大行其道的时候,一大部分人都转去做了这两个行业,然而突然之间,因为微信的缘故加上JS的魅力,H5突然又火爆起来,所以呢,CSS整体来说还是一个挺靠谱的职业。最关键的是,CSS入门最快的职业啊,几乎零门槛,只是转JS还是挺不容易的。&/p&&p&CSS薪水如果纯粹只是做CSS的话,12K到15K基本上就是封顶了。。。所以:&/p&&p&0~3个月:4K~6K&br&3~12个月:5K~8K&br&12个月以上~:8K~15K&/p&&p&&br&&/p&&p&CSS的成长是非常快的。修真院的线下弟子都是一个月左右就可以独立做项目,可以进入IT修真界闯荡江湖了。正常情况下,3个月左右是没问题的。&/p&&p&我的要求比较高,所以所谓的独立做项目就一定是独立做项目,不用怀疑这一点。包括自适应,响应式和Bootstrap。&/p&&p&所以。想要拿高薪,CSS都必须要学JS,没有其他的途径。&/p&&p&&br&&/p&&p&&br&&/p&&p&成长路径:&/p&&p&CSS工程师-初级JS工程师-JS工程师-前端架构师-前端Leader(IOS,Android和JS通吃)&/p&&p&&br&&/p&&p&不要相信NodeJS,那只是玩玩而已。不要想从前端转后端,太难了,后端和前端是两个不同的概念,特别是对基础知识要求的特别高。&/p&&p&CSS和JS最好的方式就是IOS和Android通吃,精通一种,然后其他的能做项目,并不需要考虑其他的选择,推荐再学点其他脚本语言,首推Python,永远不要去学PHP,表问我为啥,个人好恶。&br&你一定要问,等我心情不好的时候再说。&/p&&p&&br&&/p&&p&&br&&/p&&p&4.入门门槛&/p&&p&零门槛!你相信咩,一个程序员的职业居然可以零门槛进入。。。&br&好吧,大多数人其实并不把CSSER称为程序员,不过,你至少学会了CSS,就能在IT修真界这个神奇的元世界里生存,就有了进军其他职业的可能性。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&5.哪些行业适合做CSS&/p&&p&IT界:All&br&其他界:All&/p&&p&PS:正常人都可以学的会啦(马丹我就不是正常人)&/p&&p&&br&&/p&&p&6.职业限制&/p&&p&CSS的职业限制有三个,一个就是不去学自适应和响应式,一个是不去学框架,另一个就是学不会JS。&br&这三点都是很重要的突破。然后这个职业呢,怎么讲,在一家公司里可替代的程度比较高,并不算特别重要,做不了核心岗,也不存在什么代码交接。你就算代码写的再烂,也最多就是花一个月时间重写。。。&/p&&p&所以如果你不想做JS,你就真的真的发展受限制了,一定要记着,CSS只是你的一个跳板。&br&另外,因为零门槛,所以你其实还是有很多计算机相关的知识要补的,这是一定的,没什么可商量的。&/p&&p&只是做前端还好,如果想做后端,只是不想花那么长的时间才进入这个行业,就必须要从CSS做起,跟着用自己的其他时间恶补计算机基础了。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&7.去哪里学,怎么成长&/p&&p&之前说我的贴子是广告的,你们错了。&br&看到这里,这才是真正的广告。&/p&&p&要说去哪里学CSS,绝对是IT修真院,请先看这里 &a href=&http://www.zhihu.com/question//answer/?group_id=934336& class=&internal&&如何在一个月之内从零基础成为初级CSS前端开发工程师? - xdyl 的回答&/a&。&br&IT修真院跟其他任何一家培训机构都不一样 ,完完全全不一样的教学模式。看完这篇贴子,其实你就能大概明白这是什么样的教学方式。&/p&&p&而且,线上学习完全是免费,不仅如此,大修真院还给你入院就提供了良好的人脉关系。嗯。&br&然后,如果你真的不想来大修真院,或者我没看上你,那么你就也不要看视频或者是交钱学什么的,看W3C吧,自己偷偷按照修真院的Task做项目,跟着就找家公司实习去吧。&/p&&p&虽然慢了点,好坏也入门了。&/p&&p&&br&&/p&&p&四 JS&br&=============我是第一次过100赞的分割线================================&/p&&p&JS说起来必须是一个神器,这个当年10天内被开发出来的神器,以一种谁也想象不到的速度快速发展,它击败了Java Applet,逼死Flash,当Android和IOS看似一统全球的时候,JS慢条斯理的和Html5一起蚕食App市场,甚至还出来了NodeJS这种连后端都不放过的残暴东西。&/p&&p&原生和WEB的两种方式一直在争论不休,而我自己在三年前就是绝对的WEB支持者,windows对于JS支持的更彻底,只是Winphone一直不给力。&/p&&p&好吧,对于拿NODEJS做后端工程项目我还是有点不情愿,然而提供各种辅助工具什么的还是挺不错的。JQuery,Ajax和RequireJS和Angularjs和PhoneGap都是一些标志性的转变,还包括ReactJS。JS简直了,简直了,简直什么都不放过。&/p&&p&所以JS简单么?我带着你们了解一下JS工程师是什么样子的。&/p&&p&&br&&/p&&p&&br&&/p&&p&1 工作内容:JS工程师其实分成两类,在之前讲CSS的时候已经提到过,一个是套页面的,一个是前后端分离的。对这两个概念还是分不太清的,可以回过头去看CSS的部分。&/p&&p&对于套页面来说,JS工程师的职责非常简单,一个是做一些简单的动画和交互和验证,轮播图,弹框,验证用户名是否为空等等。另一个就是通过Ajax取一些后台数据,然后在页面上展示出来。&/p&&p&那个时候的JS工程师并不被太多人重视,很多时候一些后端的人把前端的工作也做了--除了写CSS,大部分的后端工程师写点JS还是不成问题的。&/p&&p&可是前后端分离的出现,彻彻底底的改变了前端的世界。前端居然有架构了,前端居然也有“编译”的概念了(你能想象么,JS的项目居然不能直接打开源码直接使用了,必须要经过编译才可以)。前端工程师和后端工程师只通过Json数据交互(感谢Nginx提供了一个完美的跨域解决方案,再也不用什么Jsonp了),然后服务器端的同学发现:好简单啊,我对Android,对IOS,对Html都只需要提供一套API就够了~~&/p&&p&前端同学更开心,再也不用去搭建各种悲剧的开发环境了!前端变的很轻,而且控制欲很强(AngualarJS好赞),页面跳转神马的SoEasy,而且也有了Bower这样的包管理工具,还有类似于JSP自定义Tag的指令,MVC,还有了Service的概念,马丹,前端到底发生了什么!&/p&&p&所以我们现在说到的,基本上就是前后端分离的工程师,他们的工作职责就是和IOS&Android的工程师一样,跟后端定接口,确定框架和架构,分模块,然后跟后端联调互相吐槽对方是渣渣。&/p&&p&项目结束之后修复线上Bug,不停的跟用户说:在我这里是正常的,你换个浏览器试试?不行就清一下Cookie,再不然就换台电脑。&/p&&p&&br&&/p&&p&2 需要技能:&br&环境【IDE(WEBStorm,Sublime,EditPlus),源码管理(SVN/Git) ,WEB服务器(nginx)】&br&基础【Http,REST,跨域,语法,组件,F12,Json,Websocket】&br&框架【JQuery,AngularJS,Bower,RequireJS,GruntJS,ReactJS,PhoneGap】&br&业务【金融,教育,医疗,汽车,房产等等等等各种行业】&br&第三方【微信,QQ等各种第三方登录,支付,IM,地图,语音,视频,图片】&/p&&p&&br&&/p&&p&&br&&/p&&p&环境不说了,参考CSS的。&br&基础跟CSS差别就好大了,要有一些网络协议的基本概念,要了解什么是Http,什么是Https,什么是WebSocket,什么是Rest,各种JS的语法(太复杂的完全不用管,别去管什么闭包什么Prototype什么This的指向),Json是必不可少的东西。&/p&&p&框架就多了去了。直接拿JQuery来学习就好,表去太在意什么原生语法,大部分场景你都不用担心引入一个JQuery的库导致系统变慢,AngularJS真是一个好东西,表太纠结一些细节,Bower,RequireJS和GruntJS这些会有一些前端大牛帮你搭好框架你直接用就好了。 &br&想做点App就用PhoneGap,想尝试一下ReactJS就去试吧(我很想试一下然而看到有Render就看不下去了)。&/p&&p&必须提醒一次,如果你是从CSS转到JS的,那么一定要看一下这篇贴子。&a href=&//link.zhihu.com/?target=http%3A//bbs.ptteng.com/forum.php%3Fmod%3Dviewthread%26tid%3D7473%26extra%3Dpage%253D1%2526filter%253Dtypeid%2526typeid%253D2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&【IT修真院】怎么样从CSS转JS-IT修真院&i class=&icon-external&&&/i&&/a& 。这里强调的就是,你必须要懂业务逻辑,这跟CSS完全不需要懂业务逻辑简直是天壤之别,很多时候你并不是因为技术而无法学会JS,而是缺少对于业务逻辑的理解。&/p&&p&当然啊,这并没有完。还有无数的第三方库等着你,做微信呢你必须要用WX的SDK,要用百度地图呢就必须要用百度的SDK,还有各种支付啊神马的。如果你要做IM就有环信啊神马的。&/p&&p&&br&&/p&&p&&br&&/p&&p&所以。JS就是一个真正的程序员,一个真正的工程师,不但要能把代码实现,还需要理解需求,需要懂得编码规范,需要知道如何控制项目流程和进度风险,需要修复线下Bug,需要调优,需要做版本管理,需要制订接口,需要编写技术文档,还需要做新技术的调研或者是带新人。&/p&&p&现在你了解了咩?(如果不了解,加入IT修真院嘛,老大带你在IT界从菜鸟修成大神)&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&3 发展前景&/p&&p&我说了那么多,你们对JS的期望也很高了吧。坦白的说,有点高的离谱!&br&JS是唯一一个可以在两年之内薪水到20K的职业。&br&虽然工作五年或者是七年的JS在薪水上差别并不太大,但是也已经让很多人难以置信了好么。&/p&&p&好多人在别的行业,工作十年都拿不到10K啊亲。&/p&&p&&br&&/p&&p&0~6个月:6K~10K&br&6~12个月:8K~14K&br&一年~两年:12K~20K&br&两年~五年:18K~30K&br&五年以上:24K~&/p&&p&&br&&/p&&p&&br&&/p&&p&JS的入门相对来说比CSS难的多(表怕,有我大IT大修真院),但是他的好处是学会一点是一点,并不像Java一样,绝对是前期Gank型英雄,到了6级就能四处杀人。Java是后期,要到16级以后才能出山才能够震撼全场。&/p&&p&所以JS相对来说比较平滑,而且现在学习的曲线也比较清晰,慢慢在业界都形成了相对完善的框架。JS可以选择前进的路有很多种,只要你不是太瞎(跟着修真院就一定不会瞎),就没什么大的问题。&/p&&p&&br&&/p&&p&&br&&/p&&p&成长路径:&/p&&p&JS菜鸟-JS初级工程师-JS中级工程师-JS架构师-UED-前端Leader-前端大牛&/p&&p&大概这个样子啦,JS工程师在后面有一点后续无力,一般来说,我还是强烈推荐JS,IOS,Android三者通吃,在我的带的Team中也一直要求他们这么做(虽然并未能完全实施成功)。&/p&&p&这三者有太多相似之处了,到最后你会发现,语言只是一种工具而已。要做的事情,其实是差不太多的,并不需要对所有的语言都特别熟悉,有一种打底的,其他的都可以随意去玩了。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&4.入门门槛&/p&&p&必须有CSS基础,必须有CSS基础,必须有CSS基础。&br&或者是有后端Java基础。&/p&&p&总之你要么是会了CSS,要么是精通了一种后端语言,千万不要CSS没学好,后端语言也不会就直接学JS,心里会没底,不踏实。&/p&&p&其他的都没什么了,列出来的基础知识,自己慢慢补就行了。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&5.哪些行业适合做JS&/p&&p&IT界:CSS,然后是所有的都可以&br&其他界:所有的都可以&/p&&p&好蛋疼的结论然而事实上就是如此,这波JS的红利受益于微信,以及移动端的普及。我不确定在三年或者是五年之后会不会还是这种状态,然而三年和五年已经足够可以改变你的人生了,所以,你在等毛线?&/p&&p&大修真院的弟子中有搬砖的有退学的有高中毕业的有做电汽和通信的,你想想为什么你不可以?唯一不合适你的大概就是:你真的没有编程思想哈哈哈,然而这确实是一件很难解释和预测的事儿。我也确实见过反应比较慢的,进度比较慢的,但是无论如何,混口饭吃,不成问题。&/p&&p&&br&&/p&&p&&br&&/p&&p&6.职业限制&/p&&p&JS的职业限制也挺多的,主要就在于学习的方向上很容易误入歧途(至少在我眼里是这样的,相信我,我不是什么好人,我并不会我说过的每一句话负责)。比如说一直坚持喜欢用原生,各种喜欢写一些奇奇怪怪语法(我把我看不懂的语法都归结为奇怪的语法),各种回调等等等等。&/p&&p&学到一些好的框架其实很赞的,对于大多数人来讲,就够了。只是缺少一个清晰的指引。&br&有的时候你会发现,你对Http了解的比较少,会是一个瓶颈。&br&你对数组啊,循环啊不了解,是一个瓶颈。&br&你对MVC不了解,也是另一个瓶颈。&br&对Json不懂,不知道怎么定接口,也是个问题。&/p&&p&这些都学会了,也会遇到一些问题。就是JS的工程师三年,五年,七年的差别,大多数人都不算特别的大。&br&所以总会有人想学后端--但是我绝对不赞成学Java,NodeJS也可以不去学,不如去学习Python,更不要提PHP啦(我真心不喜欢PHP,不知道为嘛)&/p&&p&或者说,后端并不是语法,而是牵涉到算法,架构,性能,业务,选型等等跟前端几乎没有任何关系的知识,所以学习一门脚本语言,能做点简单的东西就好了。&/p&&p&还是需要把注意力转到IOS,Android上去。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&7.去哪里学,怎么成长&/p&&p&不用说。首推的当然还是我大IT修真院。IT修真院是先总结归纳一个能够独立完成项目的JS工程师需要掌握的技术体系,然后设计15个Task来让你逐步完成对于知识的掌握。修真院一直在传播代码是写出来,而不是看视频看出来的概念。更看重你们在真正去做Task的时候独立解决问题的能力,除此之外,还有跟你一起学习和成长的师兄。这就是IT修真院去培养JS工程师的方式,而且,线上是完全不收费的。&/p&&p&如果你不想用这种方式去学习,还是我之前说的那些话,W3C,然后做点东西,跟着去一家公司实习。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&五 后端(Java/python/go)&br&=============我是想玩Dota的分割线================================&/p&&p&说到后端,其实我主要想说的是Java。C和PHP这两种语言我都不喜欢,之前也说过了,我自己绝对不是一个说话公平公正的人,什么观点都带着自己偏激和极端的调调。&/p&&p&我之前在贴吧跟Java吧的吧主一直在撕逼(原因很简单,我说教大家学Java,一个月收400块钱,他说我是骗子封我贴。然后我说好吧,我不说教大家学Java了,我来给大家解决在学习过程中遇到的困惑,他说贴吧不能发问答贴。我说行,那么我就写一些新人学Java必须要学数据库,数据结构和计算机网络,于是一群吧主过来喷我说,我没学过这些我也照样学会Java了啊,什么多线程什么继承等等,我无语了解释说Java语法不重要,重要的是要学会后端的架构,要懂算法,要懂业务,要懂系统的扩展性,要会调试程序,于是吧主们就把我封了,我很不爽,就新开贴子跟他们撕逼对骂--我从来不是一个重身份的人,我骂人会很脏,所以如果看到这个贴子觉得我很厉害那么你瞎眼了,我就是一个不喜欢就说,谁喷我一脸我喷谁一身的性格,现在的结果就是Java吧的吧主每隔10天就来封我一次-哈哈哈哈哈比闹钟都要准,所以三个月过去了,我带出来很多CSS和JS的学员,然而Java的学员并没有多少。所以如果有人去Java吧替我骂一下那些XX吧主并且截图给我看,我会很开心很开心很开心,说不定就会给你们开小灶哈哈哈哈。)&/p&&p&之所以说这些,一方面是400多的赞让我觉得有点羞愧,另一方面也是想强调一个概念,学后端,学会语法只是开始而已,最后一个就是我是一个小人,谁欺负我我就想欺负回去。&/p&&p&我想想该怎么描述后端的工作。后端跟前端是截然不同的,之前讲过。前端是Gank,后端是大后期,要等到16级以后才能V5起来,而且我非常不推荐前端去学后端(所谓的全栈工程师完全是扯,我有时间会写一下,为什么不要去做一个全栈工程师)。后端要积累到足够多的项目经验,才能够成为一个靠谱的后端工程师。我觉得。我来举一个跟着我线下半年的小培宇的例子就能简单说明一下后端的工作。&/p&&p&小培宇是第一个来到我大修院面试(嗯,最初我是给他们发工资然后带他们学习的)的人,跟我讲他是考研失败,差了几分,然后也做过点项目,我随便问了几句就知道了他的状态:人挺聪明的,但是在学校肯定玩的疯,所以问点排序算法还是能够答的出来,数据结构也懂一点儿,LinkedList和ArrayList删除数据谁更快也能答的挺靠谱的,但是绝对绝对没写过一行工程代码。&/p&&p&他打动我的那句话就是:不在乎工资多少就想多学点东西。很好,我默默的点个赞,因为我本身就想把自己这几年积累的经验和知识和走过的坑整理出来,告诉互联网的新人,所以也不抵触带新人,坦白说,愿意像我这样带新人的公司,几乎没有,带新人真不是一般的累。幸好我之前在各种公司中都带过各种新人,好的坏的都带过,所以还算是熟悉。&/p&&p&于是我给培宇精心设计了他的学习曲线,这也是我大IT修真院的核心观点:&br&1.先搭建基础环境(Maven,SVN,Eclipse,jetty,SecureCRT,Linux,Mysql)&br&2.做简单的CRUD(DAO-自己封装的数据层,junit,Log4j,Rest,Spring,Spring MVC,Json,JsonTaglib)&br&3.做一个相对复杂的系统DB设计,接口设计,项目部署,错误提示,Bug查找,怎么打系统日志。&br&4.做了一个微信相关的项目,了解微信的API,交互方式,Cookie,拦截器,AOP,登录系统的设计,命名规范等。&br&5.拆分Service,将Home和Service分开,使用RMI调用,实现各个层次之间都可以完成分布式的部署,使用Tuscany(真心喜欢Tuscany)完成SCA。&br&6.使用MongoDB完成地理位置的搜索,短信,图片上传,云存储,使用Tiles来配置页面模板。&/p&&p&这些内容他花了将近三个月的时间。对他来说已经是学会了很多东西了,这三个月是几乎没日没夜的学出来的,要知道他之前压根就不知道什么是Spring,生成Json和套JSP的区别我骂了他好几次他才弄明白,经常会遇到一些Maven或者是Tuscany的报错不知道该怎么解决,数据库字段的规范和接口规范常常被我黑的体无完肤。很多东西都只是知道个皮毛而已,你们自己说说,学会Java语法算什么?&/p&&p&这还是有我来带,有我来教,有我给他定制合适的项目教给他去做,如果没有这些,你们自己学,学会我说的这些东西要多久?&br&别的不说,学会怎么打日志,怎么根据线上的报错去找错就不是一个月两个月能解决的。做为一个工程师,应该明白,很多时候要学会正确的路怎么走,还必须要知道错误的路是走不通的。正确的路大概就那么几条,错误的路呢?&/p&&p&为什么很多时候我看到错误日志就会明白是什么地方报错了,是因为我之前花了无数的心血和心力在查找这些错误上,所谓的经验就是这样,看的多了,一眼就知道大概什么地方报错了,然后随便百度下,就能找到解决方案,跟着去尝试倒底行或者是不行。这些是看书,或者是看视频能教会你的么?&/p&&p&到现在为止培宇已经跟了我快半年了,还是被我骂的狗血喷头,别的不说,就是接口的Wiki文档和代码保持一致,他都会经常犯错---这跟Java语法有什么关系,然而不经过一个好的训练,想做的很好,很不容易。&/p&&p&其实他接下来要学的东西更多。Memcache或者是Redis,ActiveMQ或者是RabbitMQ或者是QPid,Mybatis或者是SpringJDBC,Struts或者是SpringMVC,我告诉他的只是一个我们在项目中经过实践的,认为最合适的架构体系,然而他并不知道是怎么选择的。他必须要把这些相关的选择都有所了解,然后才能成为一个架构师。这个时间,如果一直跟着我,我觉得应该是在一年到两年左右。&/p&&p&这是一个横向扩展的内容,在这个时候我还没有要求他去看一些深层的东西。只是需要他停留在会用的状态就可以。在会用这些技术之后,再去了解一些自己喜欢的技术的细节,不成为一个只会使用工具的码农,所以培宇问我还需要多久才能达到我的水平的时候,我其实并不想打击他。我也是很刻苦努力的人啊,曾经无数个日夜也是默默的去一行一行代码去用最笨的方法调错,并没有人告诉我怎么样是正确的只有靠一个又一个的项目总结出来的经验。&/p&&p&而且我还会一些Drools,CRM,Lucene等等一些和架构师关系不大的事儿偏算法一些的东西,毕竟当年也学过点数据挖掘机器学习之类的内容。&/p&&p&就算是学会这些了,对于一个后端工程师来说就够了么?不不不,还需要学习JVM优化,监控,部署流程,发布流程,项目进度管理,代码重构等等等等。&/p&&p&所以,你们自己算算,这些东西如果都学会,一个Java工程师要多久才能成为架构师?&/p&&p&然而我还是对带培宇很有信心,首先他相信我,他愿意学,跟我当年一样,不怕苦不怕累,人也够聪明,做事也有责任心,其次我知道他应该怎么走这条路,先做什么,再做什么,哪些该花时间和精力,哪些不该花。&/p&&p&我希望他能够在一年之内就成为一个架构师。就如他在三个月和六个月之间独立做项目已经不成问题了一样(记着,我说的是独立做项目,自己设计DB设计接口设计架构完成需要的功能,从设计到实现完全自己来)。&/p&&p&我也希望我能够帮助很多和培宇一样,有实力有能力只是没有遇到我的那些人,这也是我为什么在知乎发贴的原因,IT技术的培训,哪些培训机构能做到这一点?&/p&&p&&br&&/p&&p&这个真实的小故事,就是想跟大家提前说清楚,我对后端的要求有多高,这也是后端特别好玩的地方。你必须要会很多种框架,有足够宽广的视野,还需要有足够多的项目经验(做金融和做地产是两个完全不同的概念),还需要懂项目开发流程以及快速定位线上问题的能力。&/p&&p&这些,就是我说的后端的主要工作内容了,这也是为嘛我说到后端的时候,大部分就是在指Java,而我说Java的时候,基本上是只指后端,根本就不是指Java的语法。更不是说是Android。&/p&&p&现在明白为什么后端是大后期了么, 为什么不建议前端学后端了么。后端要懂的东西,太多了。&br&言归正传,我来讲一下后端工程师的相关内容。&/p&&p&&br&&/p&&p&1 工作内容:&/p&&p&大部分的后端工程师都停留在功能实现的层面上。这是现在国内二流或者是三流的公司的现状,甚至是在某些一流的公司。很多时候都是架构师出了架构设计,更多的外包公司根本就是有DBA来做设计,然后后端程序员从JS到CSS到Java全写,完全就是一个通道,所有的复杂逻辑全部交给DB来做,这也是几年前DBA很受重视的原因。&/p&&p&所以你能看到成千上万行的存储过程(存储过程,视图,事务,外键 这些东西我真心希望永远不要在Mysql里出现),这就是外包公司中最常见的架构体系。来个SSH,Over。&/p&&p&好一点的会个WebService,用过ActiveMQ,也用过Redis,甚至还会用过Dubbo。然而大多数情况也根本不了解为什么这么用。&/p&&p&很多人写了两年或者三年代码都没做过独立的DB设计,不知道什么是REST,不懂怎么做接口设计,也不知道怎么去定位问题。&/p&&p&所以对于他们来说,拿到产品经理的需要,会有一个项目经理或者是Leader分配任务,跟着按步就班的把代码写完,跟前端调试完,QA测试不通过,加班改回来重新改,改完QA又没通过,再加班再改,QA终于通过了然后上线了突然发现另一个好的功能不能用了,跟着再接着改,在线上发布一次又一次。。眼睛熬的通红最终真的受不了了,休息几天换另一家公司涨个40%左右的薪水继续这样的日子。&/p&&p&不不不。我带出来的后端程序员并不要这么做。所以,我带的后端程序员的工作方式是这样的。&/p&&p&拿到产品需求-》后端程序员做接口设计,架构设计,DB设计-》拿出方案来做技术方案评审-》评审通过,开始预估时间-》每日更新自己的Task-》接口完成自测一百遍,每日部署到开发环境,随时集成-》CodeReview-》重构代码-》性能测试-》Demo通过-》发布到测试环境-》修正Bug-》重新发布-》发布到线上环境。&/p&&p&这中间需要理解需求,需要拿出多个方案,需要跟前端配合,需要跟QA配合,需要跟运维配合。需要跟产品沟通,有时候还需要找UI。后端几乎是一个核心节点,而这个核心节点接起来了所有的人。&/p&&p&我不知道我讲清楚没,很多时候我都发现我可能太久没做一个IT新人了,都忘记了新人们关心的问题或者是困惑是什么。&br&这就是我知道的,两种后端程序员的工作内容。你选哪一种?&/p&&p&&br&&/p&&p&&br&&/p&&p&2 需要技能:&/p&&p&环境【IDE(Idea/Eclipse,Maven,jenkins,Nexus,Jetty,Shell,Host),源码管理(SVN/Git) ,WEB服务器(nginx,tomcat,Resin)】&br&基础【Http,REST,跨域,语法,Websocket,数据库,计算机网络,操作系统,算法,数据结构】&br&框架【Spring,AOP,Quartz,Json TagLib,tiles,activeMQ,memcache,redis,mybatis,log4j,junit等等等等等】&br&业务【金融,教育,医疗,汽车,房产等等等等各种行业】&br&第三方【微信,QQ等各种第三方登录,支付,IM,地图,语音,视频,图片】&/p&&p&环境不说了,搭环境永远是后端人员比较头疼的事儿,所以才会有很多人想用简单方便的的语言来解决这些问题,比如说Python之类的。我还是喜欢Java,大概很多人觉得重,然而我喜欢,我觉得不是“重”,而是“正”。好像剑一样,王者之剑,路子很正。 &/p&&p&基础知识太多了,正是我一直强调的,做后端,这些基础知识了解多少,其实就是决定了你以后能走多远。这些科班出身的计算机ER,会了这些,才有了一个平台,才可以站在这个平台之上去搭建更高层的建筑,如果根基不稳,你觉得你会对上层的知识理解透彻么?&/p&&p&&br&&/p&&p&框架是Java最有资格说自己是架构师的原因。无数的开源框架,选型,筛选,对比,填坑,优化,维护,寻找最适合的业务场景,很多时候很多公司的架构简直了(我不吐了,很多技术都在用然而每一种用法几乎都是错误用例的典范)。所以你想想,你大概要有多少框架要学要用?很多时候,你必须要想清楚,哪些是需要认真了解的,哪些是需要一笔带过的。&/p&&p&业务对于后端人员来讲无比重要,不懂业务,就没有架构。这是我经常说的一句话,这个世界上不存在不懂业务的架构师(我不怕被打脸),一个架构师必须要深入了解业务体系,知道哪些是会变的,哪些是不会变的,哪些是重要的,哪些是不重要的,然后才能做出来适合某个应用场景的架构来。比如说,同样的表,几千万的量和几亿的量差别非常大,频繁读和频繁写的设计也完全不同。会有一些通用的架构思想和理念在里面,但是都是需要跟业务结合落地的。&/p&&p&PS:很多金融证券行业的程序员,就是靠业务知识混饭吃的。对他们来说,对业务体系的了解要比在技术上的追求重要的多。&/p&&p&第三方的东西和JS的内容相似,我不想多说了,而且 JAVA的第三方的东西更是多的离谱,坦白的说Drools这东西我就没彻底研究明白,虽然很喜欢。而像这种类似的东西,太多太多了。&/p&&p&&br&&/p&&p&3 发展前景&/p&&p&对于后端人员的发展前景,我有两点想说的。&/p&&p&A.无论是B/S还是C/S,无论是WEB还是原生,或者是智能硬件,后端都会屹立不倒。&br&B.随着后端架构体系的稳定和成熟,后端人员在性能上需要担心的问题不多(再加上大部分应用场景其实并不需要那么多的性能),所以更多的应该会关注于一个稳定的扩展性好的架构,以及快速实现能够复用的业务逻辑模块实现上。&/p&&p&最近后端人员在价格上,其实有点偏低于前端人员的,就向我之前所说。两年的JS可能拿到20K。两年的Java想拿到这个,非常难。然而,五年的Java或者是七年的Java,拿到30~40K,不难。&/p&&p&更高的,也不稀奇。&/p&&p&&br&&/p&&p&0~12个月:4K~10K&br&一年~三年:8K~20K&br&三年~五年:18K~30K&br&五年以上:30K~&/p&&p&&br&&/p&&p&成长路径:&/p&&p&Java初级工程师-Java中级工程师-架构师-技术经理-技术总监-CTO-CEO&/p&&p&&br&&/p&&p&后端的爆发力并不差,只要你给他时间,只要你愿意前进,后端的路线很深,深到你有时候会觉得自己还没来得及全部了解,就已经有无数的新人涌进来要替换你的位置了。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&4.入门门槛&/p&&p&计算机网络,数据结构,数据库,操作系统,Java基础语法。&br&Java是入门门槛最高的一个,没有之一。(好吧,我虽然说的是后端,然而一直把Java等同于后端)&/p&&p&当然,如果你的志向并不是一个架构师,只是像NodeJS和Python或者是PHP一样随便做点小项目,那么也可以说的得上是没有门槛,但是我说过我有偏见,所以可以直接把我无视掉。如果你觉得我说的哪点不对,你过来揍我啊。&/p&&p&要跟我学Java,就必须把这些基础知识学好,我只带想成为架构师的人。&/p&&p&&br&&/p&&p&&br&&/p&&p&5.哪些行业适合做后端工程师&/p&&p&IT界:无&br&其他界:无&br&科班生:计算机专业的中等水平能力以上&/p&&p&所以如果有各种培训学校告诉你零基础4个月20000块钱把你教出来做Java后端,然后你月薪上万,你就直接一锅盖盖他脸上吧。&/p&&p&那么零基础的人想做后端,怎么样才能入门呢,我比较推荐的是先做前端,然后把自己的基础知识各种补,补回来,再去转后端--但是实际上,你做了前端,再想转后端,就太难了,因为你到时候就不太想放弃自己一年或两年就可以轻松拿到的高薪,去做一个苦逼的后端了。&/p&&p&&br&&/p&&p&&br&&/p&&p&6.职业限制&/p&&p&后端的职业限制有很多,第一个职业限制就是不去做独立的项目,不做DB设计,不做接口设计。&br&第二个职业限制就是视野不开阔,不知道有什么样的开源软件可以用。&br&第三个职业限制就是不重视线上环境,不知道如何写日报,也不知道如何快速定位。我不得不说我带过的兄弟,有一次解决线上问题的时候快把我气疯了,他们在那里猜测问题出现的原因,跟玩福尔摩斯一样,不打日志不看日志,根据现象倒推结果,直接盲改代码再扔到线上看看有没有解决问题---那是最后逼不得已的办法好么,在此之前能不能安静的把日志打出来,确认一下到底是哪里出错了?&br&第四个职业限制就是不懂版本管理,不懂Bug修复流程,不懂开发流程。这些其实都是一整套的流程体系(等我心情好了,有人把Java贴吧吧主骂的狗血喷头了,我大概也会写出来)&/p&&p&大部分后端的人员都会抱怨自己不会写前端代码,不会写Android或者是IOS,不能自己独立完成项目,所以他们才倾向于自己做一个全栈工程师,做一个自己喜欢做的东西。&br&这也是后端人员会经常觉得不爽的地方,自己写的东西完全感受不到,而且一旦出问题很多时候都是大问题,解决起来很麻烦,经常不敢改代码,因为看不懂前人的东西。&/p&&p&有时候后端人员会比较木,虽然很各种职业都交流,但是多数都会觉得自己很NB其他人都很SB。&br&这也是后端人员比较大的问题,往上走的话也容易遇到各种瓶颈,做技术的,做到CTO,再去做CEO,其实很难的。&/p&&p&而且,等你走到足够高的高度,你会发现,一个七年工作经验的正常发展的后端工程师,一定会有一个七年工作经验的产品或者是运营,在薪水和职业上秒杀他。这也是做技术的最大的悲剧。&/p&&p&不过大部分的后端工程师都比大部分的产品和运营人员薪水高,这也是这个行业的特征之一,所谓高不成低不就,小富即安,就是这样的。&/p&&p&如果你是一个有理想的后端工程师,我建议你多关注一些敏捷开发,多关注一些项目管理,学会带着自己的兄弟们一起做事儿。再不然,就是在技术这条路上一直走到黑。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&7.去哪里学,怎么成长&/p&&p&基础知识不要来找我,我不教。随便去其他的学校补基础也可以。想要提高或者是想要成为架构师,就来找我。&/p&&p&我在说培宇的时候其实已经讲清楚了我是怎么带人的,但是在线上做这些,确实有难度,而我又不想教一些虚头巴脑的东西害人害已,所以我还在想办法解决怎么样在线上把后端工程师带好的问题。&/p&&p&如果看到这里觉得我说的有道理,一定要称赞我,催促我,还有帮我宣扬大修真院的思想和做事

我要回帖

更多关于 玩英雄联盟最低配置 的文章

 

随机推荐