普通公司员工的编程水平与阿里巴巴有多大差距?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了普通公司员工的编程水平与阿里巴巴有多大差距?相关的知识,希望对你有一定的参考价值。
参考技术A 作为一个编程十几年的老程序员,虽然没有进过阿里巴巴,中间换工作时候也拒绝过百度和腾讯的offer,选择了一个更适合自己的互联网公司,编程水平主要决定因素还是和本人基本功有着极大的环境,前几天回答了一个大公司和小公司编码水平谁高谁低的问题,有外在因素影响但主要还是自身,自己没有决心提升自己的编码水平,外界环境再好也没多大意义。像阿里巴巴这种大公司由于职位安排的比较饱满,正常来讲代码的提交都需要leader的审核通过,在一定程度上能极大的提高代码的质量,在审核机制上会更加严格,并且在测试把关上也会更加严格,普通的小公司在人员配置上可能稍微少一些,会在把关上差一点,严格规范的制度在一定程度上能促进程序员更深层的改进,但本质上还是自身想不想让自己变得更加优秀,愿意不愿意让自己提升的更加快速。
其实提到阿里巴巴这种大公司主要还是人心态问题,觉得大公司一定要比小公司规范,换做经历过大公司的人,还想着在里面自己只是一个螺丝钉,还想着去小型公司让自己发挥的更加彻底,小公司的人又向往着大公司的待遇以及规范。如同没有结婚的人,总想着走进围城,进入的人又羡慕没有结婚的多自由,其实来来回回也就那回事。
曾经也是为了进入大公司舍弃了一个中型公司部门技术经理的职位,现在想象其实很不值当,进入一个成熟的大公司,自己做出的贡献只是沧海一粟,想要向上走特别难,而真正的机会还是在创业公司或者中小型公司,当然这些东西需要亲身体验才能感受到,在年轻气盛阶段很难体味到,就是觉得自己所做的选择是对的,实践辨真知。
希望能帮到你。
以我自身的经历来回答吧!我是做java开发的,在没进阿里之前,我在外面其他公司干了四年。头两年干的最多的事情就是直接把业务翻译成代码,做的最多的事情就是curd。工程化以及结构化设计根本不存在的,什么性能、可扩展性、易用性、可维护性通通不考虑。把功能实现了就可以了,活脱脱的把面向对象的语言使用成了面向过程编程。(因为大家都这样干)主要还是因为刚毕业在这家公司做erp系统,功能可以用就不管了。接下来的两年换了一家电商公司,这也是一个天坑,代码跟 山差不多,我进去做库存的,第一件事情就是熟悉了业务然后进行了重构。前面做这一块的人都差不多走光了,模型抽象,领域分层,模块分层一顿操作下来自我感觉良好。但是叠加了两年的业务以后,妈的差不多也是 山了,为了业务快速迭代牺牲一些也是能理解的。然后我走了[捂脸]。
进入了阿里,我是做中台开发的。这里最喜欢干的就是重复造轮子,干啥都要讲究高可用、可复用、可扩展、可维护、可读性……写代码大抵是这样的一个接口进去写接口一般先上熔断降级开关、分布式锁,然后就是加缓存,接着业务就用领域模型+泛化抽象模型+工厂设计模式+策略模式 这一顿操作下来后,为了支持扩展性还得定制spi扩展点提供扩展。一个业务功能的代码完全是割裂的状态。不过项目跟代码的质量跟之前的公司比确实上升不少。只能说环境的影响很大吧
虽然没有去过大厂,但还是想强答一下,毕竟有不少认识的朋友在BAT工作或工作过。
我的看法是:BAT的牛人多,普通人也多,虽然他们不是每个人都能达到令人仰望的技术水平,但毕竟平台高,所以眼光会变得宽阔;代码要求更为严格,所以普通的程序员也会被逼变得更优秀;身边的牛人多,普通的程序员也会受到影响,提升的更快。
正好今天看到一篇文章,是讲去阿里的面试经历,也分享给大家,看看自己离着【进】阿里还有多大的差距。
Java多线程
线程池的原理,为什么要创建线程池?
线程的生命周期,什么时候会出现僵死进程;
什么实现线程安全,如何实现线程安全;
创建线程池有哪几个核心参数? 如何合理配置线程池的大小?
synchronized、volatile区别、synchronized锁粒度、模拟死锁场景、原子性与可见性;
JVM相关
JVM内存模型,GC机制和原理;GC分哪两种;什么时候会触发Full GC?
JVM里的有几种classloader,为什么会有多种?
什么是双亲委派机制?介绍一些运作过程,双亲委派模型的好处;(这个我真的不会...)
什么情况下我们需要破坏双亲委派模型;
常见的JVM调优方法有哪些?可以具体到调整哪个参数,调成什么值?
JVM虚拟机内存划分、类加载器、垃圾收集算法、垃圾收集器、class文件结构是如何解析的;
Java扩展
红黑树的实现原理和应用场景;
NIO是什么?适用于何种场景?
Java9比Java8改进了什么;
HashMap内部的数据结构是什么?底层是怎么实现的?
说说反射的用途及实现,反射是不是很慢,我们在项目中是否要避免使用反射;
说说自定义注解的场景及实现;
List和Map区别,Arraylist与LinkedList区别,ArrayList与Vector 区别;
Spring
Spring AOP的实现原理和场景;(应用场景很重要)
Spring bean的作用域和生命周期;
Spring Boot比Spring做了哪些改进? Spring 5比Spring4做了哪些改进;(惭愧呀,我们还在用Spring4,高版本的没关心过)
Spring IOC是什么?优点是什么?
SpringMVC、动态代理、反射、AOP原理、事务隔离级别;
中间件
Dubbo完整的一次调用链路介绍;
Dubbo支持几种负载均衡策略?
Dubbo Provider服务提供者要控制执行并发请求上限,具体怎么做?
Dubbo启动的时候支持几种配置方式?
了解几种消息中间件产品?各产品的优缺点介绍;
消息中间件如何保证消息的一致性和如何进行消息的重试机制?
Spring Cloud熔断机制介绍;
Spring Cloud对比下Dubbo,什么场景下该使用Spring Cloud?
数据库篇
锁机制介绍:行锁、表锁、排他锁、共享锁;
乐观锁的业务场景及实现方式;
事务介绍,分布式事物的理解,常见的解决方案有哪些,什么事两阶段提交、三阶段提交;
MySQL记录binlog的方式主要包括三种模式?每种模式的优缺点是什么?
MySQL锁,悲观锁、乐观锁、排它锁、共享锁、表级锁、行级锁;
分布式事务的原理2阶段提交,同步异步阻塞非阻塞;
数据库事务隔离级别,MySQL默认的隔离级别、Spring如何实现事务、
JDBC如何实现事务、嵌套事务实现、分布式事务实现;
SQL的整个解析、执行过程原理、SQL行转列;
Redis
Redis为什么这么快?redis采用多线程会有哪些问题?
Redis支持哪几种数据结构;
Redis跳跃表的问题;
Redis单进程单线程的Redis如何能够高并发?
Redis如何使用Redis实现分布式锁?
Redis分布式锁操作的原子性,Redis内部是如何实现的?
看完了有什么感想,自己和BAT的要求有差距么?
反正我觉得自己想要面试通过是有些困难,很多框架新版本的特性都没有了解过,看来年前还得抽时间学些一下了。
大公司如bat大部分普通程序员,由于做的太专一了,基本上在某一方面做得不错,整体能力差很远,但是自己觉得啥都行。
这么比喻吧,如果说把程序员比作厨师。
普通公司的程序员基本上是各个饭店的大厨,啥菜都会做。
bat是御膳房,程序员什么大菜都见过,但基本上一个大菜也做不了。很多人就是御膳房后勤部切葱花大队的切葱花手
普通公司员工的编程水平与阿里巴巴有多大差距?要说阿里巴巴每个程序员都牛逼得不行那也是扯淡,普通公司牛逼的程序员也不少,这本身就没有一定的定论。
在阿里巴巴这样公司的程序员来说,应该比较幸运的是能够遇到大型互联网软件的开发,比如像架构设计、场景设计等,这对于很多程序员来说应该可以开眼界,参与其中也能锻炼自己。同样的,很多大型软件公司虽然没有阿里这样的场景,但同样也有自己特殊的应用设计、场景在阿里也见不到。
而对于单个程序员的编码水平来说,普通公司与阿里的程序员可能根本就没啥区别。普通公司里也有严格按规范、严格按流程、严格测试等来做软件,进入里面同样可以遇到大牛带领项目、大牛的传帮带等,耳闻目染再加努力实践,这些程序员的水平并不能说就比阿里的程序员差。当然,阿里这样的名气不外乎就是进入时经过了严格的挑选,这些程序员的基础都是不错的,但真正要有水平,那还得除了环境也得要靠自己努力。
但大公司程序员与小公司的程序员还是有一些差异的。小公司人员可能接触的项目基本不大,而像万金油那样啥都接触到一些能搞一些,但深度却不够。比如小公司的程序员今天搞Java编码,可能下个项目就去搞PHP,再下个项目又去搞python等,今天是程序,每隔两个月可能又是下个项目的设计者、Leader等有可能。但恰恰在某一项编码上却又不像某些大公司的程序员那样一个萝卜一个坑儿,又专又精。
另外小公司的开发流程及规范都不够,有些甚至是只要搞出来能运行就可以,所以章法上不像大公司一样规范。甚至有些都没有严格的测试就到客户那里去上线,让客户去当小白鼠,做一个败一个。
所以作为程序员最好是能开始到大公司去学习锻炼规范的软件开发那是很有益的。至于是不是阿里倒不一定,能进入阿里当然好。而说到编码水平,绝大部分还是要靠自己的努力,特别是培养思维能力、基础知识、见多识广、多加实践与交流,对自己编码能力提升是必不可少的。天赋程序员确实有,但绝大部分程序员要说天赋都谈不上,大部分也就是上面几项用了更多的时间吧。
能力上,bat的程序员远超小公司程序员;不要相信那些什么小公司的程序员什么都要做所以咋样咋样,大公司就只是一颗小螺丝钉,自欺欺人而已;大公司的程序员天赋就强于小公司的程序员,技术靠的是天赋+努力,天赋远远重要于努力,你不信那就是你傻
在阿里三年的老人说一下。主要是能够获取和见识到小公司不能给你的经验,场景和挑战
说到电脑的编程,对于学计算机的人来说真的是一件非常头疼的事情,每天的编程工作都要面对各种各样的字母,各种各样的特殊符号,一般人看见也就只能一懵一懵的。每个程序员之间也都是有技术好技术低的,并且程序员在选择公司的时候也面临很大的困难。
现在 社会 上找工作的人都有一个普遍的现象,在小公司工作的人都想去大公司,在大公司工作的人想去中小企业工作。每个程序员都想得到一个展现自己的机会,让自己所学的知识有所用武之地。能力较强的程序员就去了大公司,能力有点差异的就去了中小企业,但是这两者在各自公司的发展并不一样。
在中小企业工作程序员有可能会在公司有更大的发展空间,在大企业里面有着许多优秀的程序员,就像是阿里巴巴,有可能在这个团队里面自己的能力不能跟好的发挥。有一点要清楚,技术高的人在一起会越来越优秀,他们各自有各自的特点,都会互相学习互相进步,前进的动力也大。普通公司的程序员自我提升的空间较小,没有像阿里巴巴这样的公司程序员水平高。
大企业对程序员的要求也很高,这些程序员所要面对的困难也非常大,逼迫着自己去提升自身的能力,如果两个技术相匹配的程序员一个去普通企业,一个去阿里巴巴这样的大公司,在工作一段时间后,在阿里巴巴工作的程序员要远远超过普通公司的程序员。虽然大公司的程序员想去中小公司,但是对他们更是一种较大的损失。
更多优质内容,请持续关注镁客网~~
大公司的程序员,在代码专精度方面确实超过小公司程序员。他们往往在技术的某一方面钻研颇深,在代码实践上做得细腻完美无可挑剔。小公司程序员在专精度上不如bat程序员,因为大环境使然,无法让一个程序员只负责某一模块的代码,他们往往一个人当两三个人用,常常遇到的复杂业务用现有框架和技术无法解决,需要自己结合多个技术框架和知识点才能解决复杂的业务。
所以都是程序员,环境和平台造就了程序员代码风格和侧重点不同,但就工作态度和对技术的专注程度来说,大公司的程序员无疑是有更优异的条件来养成这些良好习惯的。作为程序员,一生还是应该去大厂体验不同的企业文化和更高素质的从业人员,自身的见识和深度也会有所不同。
单纯从技术上来说,大公司是小公司没法比的,
大公司系统要更加复杂,研究的东西更加深入。
比如高并发,大数据,
小公司没有那么大流量和数据量根本没办法研究,
大公司一个系统N台机器,
为了节省资源就要研究怎么使机器能力最大化,优化代码,优化逻辑。
小公司可能一两台机器就能支撑一个系统,只要没bug就能正常运行。
非技术层面的就看公司的业务能力了。
个人看法,
国产CPU跟国际主流CPU差距有多大?最好提供一下数据
现代电子制造与SMT(表面贴装技术)密不可分,任何一款手机、任何一台电脑的制造,都离不开SMT。而事实上是,全球电子制造领域以SMT为主体技术的生产线,正大规模地向中国转移,中国对核心设备贴片机的需求量已占全球需求量50%左右。在PCB和IC元器件继续小型化的趋势下,0201甚至更小规格的01005等微型元件以及CSP、BGA和密间距器件已在中国实际生产中应用,这就势必要求先进的电子生产设备和新材料需与全球同步进入中国市场。 西门子物流与装配系统部已将其最新的MicrobeamTM和模块化的SIPLACE系统与全球同步进入中国。西门子物流与装配电子装配系统部主席Tilo Brandis表示,中国有一天会成为我们的生产基地,因为吸引我们的不仅是中国庞大的市场需求,中国高质量的工程师也是我们德国所需要的,但我们绝不会因为搬迁生产基地而降低自己的产品质量。据Tilo Brandis介绍,公司已在深圳建立了一家全球最先进的电子产品制造示范工厂,以向业界展示其SIPLACE完整解决方案最优化程度。 [ 转自铁血社区 http://bbs.tiexue.net/ ] 安必昂也认为中国不仅是低成本制造基地,更是全球重要的市场和技术驱动关键力量之一。安必昂C EO Cor Scholten举例说,在移动电话市场,彩屏及可拍照实际上已成为中国市场的标准配置,但在其他国家却还不是这样。这些都向SMT工艺技术及设备提出了更高的要求,为此安必昂已计划将其部分AX系列模块化贴片机的制造转移到中国。而先行一步的环球仪器宣称,到05年底环球仪器50%的贴片机产自中国,并在目前70%本土配套率基础上实现100%本土制造。2004年中国三大电子整机产量增幅
世界最先进的制造设备进入中国,客观上也表明中国电子制造商在生产先进的产品。NEC通讯(中国)有限公司总裁卢雷2004年10月在深圳举行的3G手机发展论坛上表示,“在即将到来的中国3G市场仅有单项优势是不够的,NEC的3G业务重点在中国,在产品设计、技术研发、生产制造到销售与服务的产业链建设上,除供应日本市场外,NEC的3G手机全部在中国制造,并且1/3~2/3的技术研发会移到中国。” 来自SMT设备采购大户的Flextronics上海及北中国区营运总经理苏明存反复强调:Flextronics在中国已将传统意义上的EMS服务进行上下延伸,具备了为客户提供端到端的服务能力,包括创新的产品设计、测试方案、生产、IT专业技术,及后勤、物流、保修服务等。 中国本土的电子产品供应商向产业纵深发展的势头更加令人鼓舞。为中国彩电业成功占领国内市场立下头功的长虹,目前自我生产的数字器件不仅规模庞大,而且还被东芝、NEC、三星、LG等国际大公司所采用。大显集团下属全资及控股电子类公司计有20家,但在这其中又有50%属于配套企业。方正集团继03年9月收购珠海多层电路板公司后,目前还准备通过合资方式进一步向芯片制造业渗透。 [ 转自铁血社区 http://bbs.tiexue.net/ ] 2004年4月在上海举办的国际电子产品及零件跨国采购会上,美国最大的手机销售商Radio Shack全球采购副总裁汉弥尔顿表示:“当前,如果一家公司不从中国采购产品,就根本不能满足消费者的需求。”据悉,Radio Shack的目标是希望04年在中国的采购额占到其全球采购总额的75%。可见,中国电子制造商的产品是完全被世界需求市场所认可的,不仅价廉而且物美。 生产的小型化和产品的无铅化在成为中国电子制造技术提升机会之时,在多层板、挠性板以及高密度互连(HDI/BUM)基板和IC封装板基板(BGA、CSP)正在成为主流需求的今天,在中国电子制造大军中有76%为外来者的现实,试问还有轻视中国电子制造的理由吗?SMTA国际委员会副主任Sammy Yi在2004年上半年就说过:“在中国从事直接电子制造的公司,或是材料、设备供应商,如果仍以传统的低技术、低成本来定位公司在中国的发展方向,恐怕会很快跟不上形势。”
“国产CPU已经跨出国门,开始走向世界舞台。”昨天上午,国内第一家CPU提供商方舟科技总裁李德磊博士宣布,该公司与全球最大的网络计算机厂商美国慧智公司正式结成战略联盟,并同时向后者提供自主研发的CPU产品。由此,国产CPU将被大量用在销往欧美市场的网络计算机中。可见,国产CPU在国际市场上终于迈出了关键性的一步。
据方舟新闻发言人透露,日后将被投放市场的产品,占到慧智一年生产总量的三分之一左右。有数据显示,目前仅欧美网络计算机市场一年就可销售200万至300万台,并且每年还在以20%~30%的速度向上增长。而慧智是目前网络计算机市场上的领导厂商,占据着全球50%以上的份额。因此,这一数字将会非常可观。
据了解,2001年7月,方舟就发布了中国历史上第一颗商品化CPU“方舟一号”,然而在对国产CPU欢呼庆贺的同时,质疑声也随之而来。因为,不同于其他芯片产品,更换CPU产品意味着更换一个产品的心脏,它牵扯到主板、固件、系统软件、应用软件等方方面面的环节。因此,国产CPU能否获得国内外企业的认可,将直接影响到这一产业的存亡。
事实证明,“中国芯”已经得到了肯定。不仅像神州数码、联想、长城等国内著名企业纷纷采用方舟CPU产品,长期采用美国国家半导体公司X86CPU的慧智公司与方舟的合作,进一步证明了国产CPU正式获得国际上的认可,这无疑将带动国内的CPU产业继续发展。 [ 转自铁血社区 http://bbs.tiexue.net/ ]
不过,这不意味着市场上立刻能见到装有“中国芯”的网络计算机产品。方舟新闻发言人表示,具体产品的推出时间还需要根据测试结果而定。并表示说,产品在欧美大规模上市前还需要经过严格的测试。(千龙新闻网)
□2001年7月,我国第一枚实用化的CPU芯片———方舟1号诞生,从此结束了中国没有CPU相关核心技术的历史。
□被主流CPU厂家忽略了的1GHZ以下266MHZ以上的CPU市场,如中低端服务器,为国内生产厂商提供了机会。
□目前我国具备一定设计规模的集成电路设计企业有20多家,每年设计的品种约300种,但整体水平仍然偏低。
□在政府优惠政策的推动下,国产CPU产业将得到快速发展,3-5年后在国内市场上国产CPU将占有一定地位。
(行业现状)近两年取得较大进展 [ 转自铁血社区 http://bbs.tiexue.net/ ]
CPU的全称是“CentralProcessingUnit”,即中央处理器,它担负着解释执行各种指令、完成各种数学和逻辑运算的任务,是计算机最重要的核心部件。CPU的种类很多,按用途可以分为三类:第一种是做PC用,如INTEL公司的奔腾系列、AMD公司的Athlon系列;第二种是做工作站或服务器用的Alpha芯片、Pow鄄erPc芯片;第三种是做嵌入式控制用的MIPS、ARM等。目前CPU已成为全球信息产业的支柱及核心。
国产CPU研制取得成果。自2001年7月我国第一枚实用化的CPU芯片———“方舟1号”在中芯微系统公司诞生,国产CPU的历史也从此开始。之后中科院计算所、北京大学、北京多思公司等都先后发布了开发研制CPU的消息。近两年国产CPU的研制取得了较大进展,特别是中科院计算所开发的我国第一枚商品化的通用高性能CPU———龙芯1号正式亮相,结束了中国没有相关核心技术的历史。
总体设计水平不高。目前,我国集成电路设计企业具备一定设计规模的单位有20多家,每年设计的集成电路品种约300种,大部分设计公司的技术水平在0.8—1.5微米之间,少数公司设计水平可以达到0.25微米,整体设计水平仍然偏低。北京中芯微系统公司用0.25微米标准单元工艺,实现了一个32位的RISC处理器“方舟1号”,主频166MHZ,面向嵌入式应用,如电子教室安装NC(网络计算机);“方舟2号”也于不久前完成,是一款SOC(SystemonChip)芯片。复旦微电子中心研制出的“神威1号”,兼容386指令系统,主频66MHZ,可用于嵌入式控制。北京大学微处理器研究中心先后设计了“众志”系列16位和32位嵌入式处理器,主要面向网络计算机青鸟嵌入式芯片,已经研发出8位CISC核、16位RISC核,面向信息家电。中科院计算所从2000年10月开始,启动了知识创新工程重大项目“高性能通用CPU芯片研制”,于2002年8月“龙芯1号”流片成功。
产品市场日趋细化。随着互联网技术的发展,信息家电(InformationAppliance,简称IA)需求剧增,数字化政府和数字化城市的驱动,国内对CPU的需求已经发生了很大变化。如服务器端对安全提出了很高的要求:要求安全的通用CPU和操作系统(OS),路由器需要安全的嵌入式CPU和嵌入式OS;而客户端对安全的要求一般:对PC来说,防病毒是最主要的要求,设备则基本没有安全要求;国家对安全CPU的要求主要是需要自主设计的CPU。
竞争在不同层次展开。目前市场上的主要趋势仍然是英特尔(INTEL)与超微(AMD)双雄争霸,持续追求CPU的高主频与性能。台湾威盛(VIA)、全美达(TRANSMETA)则以低成本、低耗电量作为切入点,着重于IA(信息家电)市场以及低价笔记型计算机市场领域,IBM、SUN、SGI、HP、DEC等公司在中高端服务器领域展开竞争。事实上,目前主流CPU厂家一味关注主频的提高,而忽略了1GHZ以下266MHZ以上的CPU,如中低端服务器,这为国内厂商占领这一市场提供了机会。而在中低端CPU、嵌入式CPU、嵌入式DSP处理器,嵌入式片上系统SOC等领域,国内外CPU厂商在不久的将来会展开拼杀。
结合国情是关键。主要包括6个方面:一是我国CPU设计技术的发展离不开中国国情,从目前情况来看,这还是一个幼稚产业,与CPU产业相关的EDA设计工具、生产工艺、测试、封状等相关配套环节均很薄弱。二是随着国内信息产业的快速发展,信息设备种类众多,国际大公司在国内CPU市场上很难垄断。三是与嵌入式CPU配套的软件,从嵌入式操作系统到在它上面运行的应用程序,不像PC上的软件那样受到微软等集团垄断的影响,完全可以由国内公司自主开发。四是由于CPU技术壁垒比较高,知识产权障碍也比较多,国内CPU厂商大都采用RISC或VLIW指令集,也有少数是自己定义的,但都只是非主流做法。五是以中科院计算所为代表的大多数CPU开发商采用MIPS指令系统,避开了知识产权和专利问题,同时减少了兼容性的麻烦,能够尽快占领市场。六是RSIC体系结构既支持高性能CPU(做服务器),又能支持中低端CPU(嵌入式CPU/SOC),市场范围广、应用面大,基于RSIC结构的将是国产的主流CPU。 参考技术A 什么国产CPU?那INTEL和AMD在国内都生产过,算不算国产?
难道你说的是龙芯?
龙芯2F只是相当于奔腾4 1.6GHz的速度吧
龙芯处理器底层技术是来自于AMD,但是功耗上比AMD低多了,龙芯处理器是中国自主研制的通用处理器,因为起步较晚,自然不能和世界两大处理器生产商INTEL和AMD相比了,但是龙芯的多核产品应该性能会不错的,现在只有浪潮的服务器已经使用了龙芯做CPU了,因为硬件标准和现在INTEL、AMD不同,所以硬件还是需要订制的主板来运行的 参考技术B 哪有什么国产CPU,CPU就两家生产的,AMD INTER 参考技术C 有国产的CPU吗?那是用于军事的,民用国产的没听过
以上是关于普通公司员工的编程水平与阿里巴巴有多大差距?的主要内容,如果未能解决你的问题,请参考以下文章