本文目录一览:
- 1、普通公司员工的编程水平与阿里巴巴有多大差距?
- 2、女生做程序员好吗,女程序员的优势?
- 3、电脑培训分享女生做程序员好吗,女程序员的优势?
- 4、那些人适合做程序员?
- 5、作为一个程序员,该如何更好地发现自己的特长?
- 6、学习编程需要一定的天赋吗?
普通公司员工的编程水平与阿里巴巴有多大差距?
作为一个编程十几年的老程序员,虽然没有进过阿里巴巴,中间换工作时候也拒绝过百度和腾讯的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就能正常运行。
非技术层面的就看公司的业务能力了。
个人看法,
女生做程序员好吗,女程序员的优势?
尽管现在程序员的全体中依然是男性同胞的天下,但是随着互联网时代的到来,已经有越来越多的女性加入了程序员的行列。电脑培训认为程序员作为IT行业的高薪职业对于那些不愿意或者不适合做销售又想拿高薪的人来说,无疑是一个很好地选择,但是职场对于女性总是会有太多的不公平,特别是随着年龄的不断增长。那么,女生做程序员真的合适吗?有什么优势?
随着IT行业的迅速发展,程序员越发受到重视,越来越多的女性也想加入程序员的行列,但她们也都存在各种各样的疑问和顾虑。比如女生做程序员经常加班,会不会老的快呢?
女生做程序员会不会影响家庭呢?对于以上几个问题,其实没有人能真正回答你,因为每个人的情况都不同。有的女生逻辑思维能力很强,对编程天赋极高,有极大的兴趣,那么这样的女生就适合做程序员,也许比许多男生做的都好。对于女生适不适合做程序员,不同的人所看的角度不同,得出的结论也不同。
之前,就男程序员和女程序员哪个更优秀,美国加州理工州立大学和北卡州立大学的相关研究人员对GitHub(代码托管网站)内的数据进行了一项调查,调查结果显示:女程序员要比男程序员更为优秀。
尽管在编程领域,男性的比例要远超过女性,但是这并不代表二者的能力差距悬殊。研究人员对300万次代码拉请求,以及142万名可通过头像和电邮分辨性别的程序员用户做了调研。在测试之前,调查者假设女程序员发出的“拉请求(PullRequests)”的被接受率会低于男程序员。“事实上,情况并非如此。”他们表示。(注:拉请求代表着编程工作的受认可程度)如果不考虑性别因素进行盲测,女性程序员“拉请求”的比例为78.6%,而男性程序员为74.6%。如果排除之前的参与者,女性的被接受比例(64.4%)依然高于男性(62.7%)。
然而,当调查结果给出性别时,女性程序员的代码受认可度就会迅速下降至62.5%。也就是说,职场中的“重男轻女”问题依然存在。然而事实上,女性的能力并不比男性差。看新时代的菜鸟程序员如何向精英程序员转变另外,做程序员,女性相对於男性也是有很大优势的,比如细心,出错率较低,在程序设计方面考虑一般比较周到,程序BUG比较少,还有女生的思维模式和男生不同,编写程序时可以以另一个角度看待问题当然还是要看自己的个人能力了。女程序员的出路到底在哪里,还是要看自己啊。
电脑培训分享女生做程序员好吗,女程序员的优势?
尽管现在程序员的全体中依然是男性同胞的天下,但是随着互联网时代的到来,已经有越来越多的女性加入了程序员的行列。电脑培训认为程序员作为IT行业的高薪职业对于那些不愿意或者不适合做销售又想拿高薪的人来说,无疑是一个很好地选择,但是职场对于女性总是会有太多的不公平,特别是随着年龄的不断增长。那么,女生做程序员真的合适吗?有什么优势?
随着IT行业的迅速发展,程序员越发受到重视,越来越多的女性也想加入程序员的行列,但她们也都存在各种各样的疑问和顾虑。比如女生做程序员经常加班,会不会老的快呢?
女生做程序员会不会影响家庭呢?对于以上几个问题,其实没有人能真正回答你,因为每个人的情况都不同。有的女生逻辑思维能力很强,对编程天赋极高,有极大的兴趣,那么这样的女生就适合做程序员,也许比许多男生做的都好。对于女生适不适合做程序员,不同的人所看的角度不同,得出的结论也不同。
之前,就男程序员和女程序员哪个更优秀 ,美国加州理工州立大学和北卡州立大学的相关研究人员对GitHub(代码托管网站)内的数据进行了一项调查,调查结果显示:女程序员要比男程序员更为优秀 。
尽管在编程领域,男性的比例要远超过女性,但是这并不代表二者的能力差距悬殊。研究人员对300万次代码拉请求,以及142万名可通过头像和电邮分辨性别的程序员用户做了调研。在测试之前,调查者假设女程序员发出的“拉请求(Pull Requests)”的被接受率会低于男程序员。“事实上,情况并非如此。”他们表示。(注:拉请求代表着编程工作的受认可程度)如果不考虑性别因素进行盲测,女性程序员“拉请求”的比例为78.6%,而男性程序员为74.6%。如果排除之前的参与者,女性的被接受比例(64.4%)依然高于男性(62.7%)。
然而,当调查结果给出性别时,女性程序员的代码受认可度就会迅速下降至62.5%。也就是说,职场中的“重男轻女”问题依然存在。然而事实上,女性的能力并不比男性差。看新时代的菜鸟程序员如何向精英程序员转变另外,做程序员,女性相对於男性也是有很大优势的,比如细心,出错率较低,在程序设计方面考虑一般比较周到,程序BUG比较少,还有女生的思维模式和男生不同,编写程序时可以以另一个角度看待问题当然还是要看自己的个人能力了。 女程序员的出路到底在哪里 ,还是要看自己啊。
那些人适合做程序员?
那些人适合做程序员?程序员近几年非常吃香,所以不少人转行学编程,不过,有些人一学就会,有些人却久久不能入门,究竟什么样的人最适合做程序员呢?
一、数学有天赋的人
实际上计算机的核心就是数学,数学厉害的神童们,做软件开发也如鱼得水。
小千自己在学习软件开发的时候,自以为用一周编写了一个俄罗斯方块的小游戏就很了不起了,可是我们班一个天才少年,居然在一个小时就搞定了,我用了好大一会看他的程序,才领会其中的奥妙。不得不服天赋果然重要。
二、喜欢专研的宅男
为什么是喜欢专研的宅男呢?
实际上,喜欢专研的人往往是宅男,而计算机程序员往往具有这类特质。所以我们很容易得出结论,如果本身就是爱专研的宅男,那么编程也比较适合你。
实际上,爱专研是计算机程序开发的行业精神。任何一个优秀的软件背后都有若干名辛辛苦苦专研的程序员们。如果你沉不住气,不能静下心来研究,至少你不会变优秀哟~
三、玩竞技游戏厉害的
我发现程序员中有很多都是竞技游戏高手,或者曾经是。
这说明,玩竞技游戏厉害的人确实适合编程,而且容易成为高手。或许这和其追求竞技的精神和思维的敏捷有关。
当然还和爱动手有关。不过大部分的游戏迷却不是程序员。
四、不会泡妞的人
这是个小规律,是一个反推得来的规律(不用紧张哈)。
因为,90%的程序员不会泡妞,所以也被戏称为“程序猿”。没有女朋友已经成为程序员的一个特性,很多年轻的程序员在毕业后2年内甚至还没谈过一场恋爱。
五、理工科毕业的人
这个很简单,理工科经过大学多年的培养,思维方式、学习方式和行事方式与文科生差异很大,而软件开发是工科或理科的学问,自然适合理工科的人学。
六、英文好的人
无奈当前码工仍是在编写“鸟语”(小千英语不好)。实际上,如果你英文好,那么你在编写程序中就能得到很大的便利,首先你比一般人更容易接受英语,其次,你更容易与国际接轨。
实际上计算机语言就是英语和数学生的儿子,如果创造计算机语言的人是中国人,或许程序可以这样写:如果1+1=3, 那么,结果显示“算错了”。
行行出状元,如果大家对编程行业感兴趣,而选择了学习编程,无疑是幸福的。
如果是因为想要高薪就业,选择做技术流,也无可厚非,毕竟,除了诗和远方,我们也需要牛奶和面包!现在学习Java程序开发就填写下面的表单吧!获得昆明北大青鸟Java培训班免费体验课程。
免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!
作为一个程序员,该如何更好地发现自己的特长?
当我开始我的第一份工作的时候:虽然我有足够的技能在面试时通过编程测试,但是这份工作要求我加强PHP、JavaScript和SQL技能。于是下班后以及周末,我都会磨练自己在那三方面的技能,以便于能够在工作中表现良好,能够拥有更多基于web开发的机会,而这些对于我现在能够拥有和打理我自己的web开发公司有很大的贡献。不管你恰巧遇到或选择了什么语言,关键是经常练习。尝试不同的语言,通过一些小例子编码,然后用它们构建小的项目。一旦你找到了能与你产生共鸣的一种或一系列语言以及如何处理问题的方法,坚持下去,并经常性地定期实践练习。
学习编程需要一定的天赋吗?
完全不需要。
学习编程只要你觉得它有意思。
写个一万小时,编几十M的程序。
我相信,就算你再没天赋也可以学会。
只要你不希望学了它能带来什么好处,你就不会感到困扰,就更加可以聚精会神地学习了。