普通公司员工的编程水平与阿里巴巴有多大差距

普通公司员工的编程水平与阿里巴巴有多大差距,第1张

作为一个编程十几年的老程序员,虽然没有进过阿里巴巴,中间换工作时候也拒绝过百度和腾讯的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就能正常运行。

非技术层面的就看公司的业务能力了。

个人看法,

程序员都很诚恳,薪水没达到预期,会反思是不是自己的技术水平不够。但事实上,技术能力并不是决定薪酬的唯一因素,供需关系对薪酬的影响非常大。很多时候,两个能力差不多的程序员却在薪水上有较大的差异。并不鼓励轻易跳槽,但了解市场行情是很有必要的。

年薪超过 50 万的程序员在哪些公司工作,大致可以分为以下几类:

1、BAT 和其他盈利能力强的大公司

阿里级别对应薪资,不仅限于 BAT,其他盈利能力强的互联网大公司,高层技术员工达到 50 万以上年薪是比较容易的。关注两个限定词:盈利能力强、大公司。有些公司虽然员工数达到数千人,但盈利能力弱甚至常年亏损。如果所处细分领域、产品模式也不处于风口浪尖上,不被投资者看好,那么即使规模大,员工工资也不会高,可能低于初创期公司的员工薪水。对于五十万年薪以上的高水平程序员,大公司的招聘需求比小公司强得多。

2、金融公司

如果只考虑薪水、福利和工作强度的话,金融企业的 IT 工程师可能是中国最幸福的程序员了。金融巨头的项目经理(不是产品经理),可以达到 50 万年薪。

3、明星创业公司

那些被资本青睐的互联网创业公司,在人才的渴求程度和土豪程度上,比起 BAT 来也不遑多让。

4、闷声赚大钱的小公司

除了能盈利的大公司、获得巨额融资的创业公司能开出 50 万以上的 offer,还有一类公司可以——闷声赚大钱的小公司。举个例子:几位互联网公司离职的员工,合伙创办了一个创业公司,启动资金来自几位合伙人以前的股票期权收益。因为细分领域、产品模式选得准,公司很快盈利,利润率客观。他们前段时间刚开出一个 50 万的 offer。

这类低调的公司很难在 36kr 等媒体上看到他们的身影。有些投资者时常想约创始人出来「聊一聊」,几位创始人的态度无一例外的高冷——不约!这类公司中做程序员往往幸福指数比较高,只是一来知名度不高,二来招人不多。他们是怎么招人的?——大多是通过熟人推荐。

总结一下公司这块的情况,以下两点决定了它愿意给出 50W 以上的 offer:

1、公司不差钱

2、需要高水平的程序员

工作年限长,经验丰富

这类程序员是 Topcoder 的主力军,他们的共同特点是:10 年以上的工作经验,在大公司当过螺丝钉,也在创业公司做过技术 leader,有过一两段不算成功的创业经历。这样的程序员无论是去 BAT 还是去创业公司,都能拿到 50 万年薪以上的 offer。

玩意说 看历、能力、工作经验、否刚毕业、工种工资与域公司关 1、比本科毕业、工作经验所述: 二三线城市程序员部工资2500-3000(税前)左右稍微点3500-5000左右企本科划档否211/985啊比3500/5000区别 北广深本科刚毕业般4500-9000左右波太真说般6000-7000看能力历 2、公司关比bat本科刚毕业非spoffer工资给11k-13k左右 3、与工种关比前端web、服务器端同种类程序员(公司能细种)能二者工资举例我朋友某二线城市干测试税前3200干发3500 ———————————————————————————————————————— 所胡言乱语仅家言随便说行家勿喷仅供参考

以上就是关于普通公司员工的编程水平与阿里巴巴有多大差距全部的内容,包括:普通公司员工的编程水平与阿里巴巴有多大差距、大家知道一个四年的程序员薪资待遇,究竟是怎样的吗、多少薪水才能招到一个从BAT离职的程序员等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9331973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存