程序员能力

Java程序员月薪30K和月薪3K差别在哪?

我的梦境 提交于 2019-12-02 00:17:10
开工作经验,项目经验,学历背景,单从技术点分析,哪些方面可以判断一个java程序员的技术扎实程度,怎样才能知道他值多少月薪?凭啥人家月薪30000,你月薪3000? 月薪30K的Java程序员 怎样判断一个程序员的技术是否扎实? 除了项目实战外,在面试等情况下,最好能给被考核人一台可以上Google的电脑,然后给其一段自己的空间和时间,比如一个人在小会议室里10-20分钟。 然后,另接一台显示器,同步观察他在电脑上是怎么做的。由此可以看出他解决问题的方法、思路。当然,另接显示器这事儿,得提前知会对方。 或者,如果为了省时间,拿出写好的线程不安全的程序,让其说出为啥会有这样奇怪的现象。 以此类推,可以让写证明List里存储的是引用还是对象实体的程序,写证明弱引用强引用区别的程序,写证明某种设计模式效果的程序… 这方法,不仅可以检查基础知识,还可以检查思维能力。如果对知识理解得不够透彻,这种证明程序其实是挺难写的。这方法更有威力的地方在于,你可以不是很懂Java,仍然可以大致衡量出对方的水平。 比如,你看不懂对方的程序,你完全可以作为一个学生去请教。真正对概念理解透彻的人,是懂得如何用浅显易懂的方式把一个知识讲明白的,他能把飘在空中的概念一路清清楚楚地给你讲到落在你的脚边,让你觉得唾手可得。能把概念讲到这种程度的人,通常在相关领域不是一般的高手。 如果是做相对低层的技术优化

Java程序员月薪30K和月薪3K差别在哪?掌握这三大技术立马加薪15K!

无人久伴 提交于 2019-12-02 00:16:38
抛开工作经验,项目经验,学历背景,单从技术点分析,哪些方面可以判断一个java程序员的技术扎实程度,怎样才能知道他值多少月薪?凭啥人家月薪30000,你月薪3000?大雄将用本篇文章为你解答。 月薪30K的Java程序员 怎样判断一个程序员的技术是否扎实? 除了项目实战外,在面试等情况下,最好能给被考核人一台可以上Google的电脑,然后给其一段自己的空间和时间,比如一个人在小会议室里10-20分钟。 然后,另接一台显示器,同步观察他在电脑上是怎么做的。由此可以看出他解决问题的方法、思路。当然,另接显示器这事儿,得提前知会对方。 或者,如果为了省时间,拿出写好的线程不安全的程序,让其说出为啥会有这样奇怪的现象。 以此类推,可以让写证明List里存储的是引用还是对象实体的程序,写证明弱引用强引用区别的程序,写证明某种设计模式效果的程序...... 这方法,不仅可以检查基础知识,还可以检查思维能力。如果对知识理解得不够透彻,这种证明程序其实是挺难写的。这方法更有威力的地方在于, 你可以不是很懂Java,仍然可以大致衡量出对方的水平。 比如,你看不懂对方的程序,你完全可以作为一个学生去请教。真正对概念理解透彻的人,是懂得如何用浅显易懂的方式把一个知识讲明白的,他能把飘在空中的概念一路清清楚楚地给你讲到落在你的脚边,让你觉得唾手可得。能把概念讲到这种程度的人,通常在相关领域不是一般的高手。

作为一名后端开发,核心竞争力是什么?

雨燕双飞 提交于 2019-12-01 06:28:31
如今再说程序员就算是一个比较广义的词,只要会点代码的都称自己是程序员,比如前端开发,后端开发(php,java, .net…),移动端开发比如安卓开发,ios开发,桌面应用开发,操作系统开发,数据库开发,中间件开发这些都是程序员,今天咱们主要说一说web开发这块的后端的程序员,因为,近期有一名阿里巴巴的程序员就有这么一个疑问,他问后端开发的核心竞争力是什么? 后端开发的核心竞争力是什么?这个问题虽然没有固定答案,每个人回答的都不太一样,但是肯定是有交集的地方,交集越密集的地方肯定就是比较重要的,在梳理这个问题之前,我们先来看看其他网友们都是什么观点吧。 网友一:个人感觉,工程能力真的很重要,而且很难培养,比如一个新项目让你设计,你该如何划分领域,划分多少个模块。我也不知道该如何学习,有大佬提点一下吗 上世是朵花:你说的这些都是需要时间去培养的,比如刚参加工作的后端开发肯定是不懂项目设计,领域划分什么的,都是分他一个小模块让他开发,按照要求去做,时间长了,做过项目多了,见过的业务多了,这些东西自然就有了。 网友二:个人感觉要是工程方向架构能力是要积累的,业务能力也要积累 上世是朵花:是的,做后端开发对业务的理解也是一个很重要的指标。 网友三:分布式 高并发 开源贡献 上世是朵花:面对一些常年curd的程序员,了解一些这方面的事情的确能增加身价,提高自身的竞争优势。 网友四

漫画 | 外行对程序员误会有多深!

无人久伴 提交于 2019-12-01 05:27:49
程序员如今已经发展成社会的主流职业,以至于街头的王大妈李大爷都能说出一二来,据说他们认为的程序员是这样子的: 1.程序员都是秃头,秃的越狠越是高级。 2.程序员各个都是死宅男,整天在家玩电脑。 3.甚至外行给程序员们总结了一句话:钱多话少死得早! 那程序员真正的生活是什么样的呢? 老妈曾经总认为,程序员的办公环境就像混乱的网吧,而我的工作基本和网瘾少年打游戏差不多,其实.... 每个程序员似乎都有被叫去修电脑的经历,最有趣的是,很多程序员靠着这个技能找到了女朋友! 但修电脑绝非程序员的本职,代码才是程序员们的核心武器。 当一名程序员面对电脑时,他一定在享受那个 Coding 世界,用代码完成他对这个世界的诉说。 比较尴尬的是,很多 IT 公司老板并不是技术出身,往往认为程序员只是写几行代码而已... 实际上程序员大量的时间都被开会、PK、培训、面试这种无聊的事情所占用。 每当夜深人静的时候,才是程序员最佳的 Coding 时间。 由于各种自媒体的渲染,外行们总以为程序员个个都是四件套,格子衫、黑框眼镜、牛仔裤、运动鞋,为此还给大家解释过为什么是这四件套,耐脏+百搭+随性。 但是其实程序员也有很多潮人,也不是各个都穿格子衫,那些以为程序员都穿格子衫的外行们,肯定没看过 Github 上面那个 女装大佬 的开源项目。 关于发型,这是外行们吐槽最狠的地方了,一致认为头发的疏密和经验成反比

新手程序员成长之路的五本必读书籍(附资源下载)

孤者浪人 提交于 2019-12-01 00:02:30
全文共 3351 字,预计学习时长 7 分钟 图片来自Pixabay,IvanPais 书籍可以清晰而有条理地陈诉观点,纸张上的笔墨也会给人一种不慌不忙的感觉。不过,科技类书籍存在一些严重的问题:它们几乎很快就过时了。由于缺乏交互性,此类书籍无法实时展示其概念(或让读者玩味这些概念)。它们的带宽相对较低——例如,需要将长代码示例分解为很小的块,而阅读这些书便成了件苦差事。 部分科技书籍多年来不断应对挑战,保持实用性。这些书籍不再传授最新编程框架的技术细节,而是阐明软件开发理念,传授最佳编程技术与设计技术,向你介绍软件行业的工作感受,告诉你成为一名程序员意味着什么。本文将列举五本相关书籍供你学习参考。 公众号后台回复“20191005”即可获得电子版图书下载链接。 1. 《程序员修炼之道》(The Pragmatic Programmer) 第一版发行后,一本与编程有关的书籍可以在20年后继续保持实用性吗?可以,如果这本书具有代码编写技术的永恒智慧的话。 《程序员修炼之道》能启发程序员,更为深入地思考如何应对挑战、与其他人合作以及成为效率更高的程序员。 书中解释了如何对抗软件衰减——使每个大项目中的代码逐渐陷入混乱的强大力量。该书简单介绍了单元测试和重构,并对调试(不要惊慌!)做出合理建议,可有效解决问题,而不会伤害任何程序员自尊。《程序员修炼之道》可帮助你学习一些很酷的程序员术语

《程序员的修炼之道——从小工到专家》读第一章有感

那年仲夏 提交于 2019-11-30 17:49:35
九月份,我读了《程序员的修炼之道--从小工到专家》这本书,虽然只是读了其中小小的一章,却让我收获了许多,收益匪浅。 从《程序员的修炼之道》这本书的介绍部分可以看出,该书是一本很棒的作品,该书由一系列独立的部分组成,讲述了许多富有娱乐性的奇闻轶事、有思想性的例子、以及有趣的类比,内容丰富多彩,并且本书还阐明了软件开发的许多不同方面的最佳实践和重大陷阱,无论是初学者还是有经验的编程员,都能从中获益。书中更是例举了许多程序员对这本书的看法,从他们的介绍中让我认识到这本书对一个程序员的重要性,值得每一个学习编程 的人去阅读,去学习,无论是编程小工还是编程专家,这本书最终都能成为有用信息的极好来源。从序论中让我了解到编程是一种技艺,用最简单的话说,编程可归结为让计算机做你想让它做的事情,作为程序员,你既是倾听者又是顾问,既是解释者又是发号施令者,编程是艰难的工作,要注重实效,我们也要学这从编程中寻找乐趣、寻找方法。 该书的第一章讲的是注重时效的哲学。注重时效的程序员不仅有方法,更有责任。他们能够越出直接的问题去思考,总是设法把问题放在更大的语境中,总是设法注意更大的图景。他们成功的另一关键就是他们对他们所作的每一件事情负责。该章节先用“我们的源码让猫给吃了”生动幽默的写出来程序员的源码丢失问题,然后为我们介绍了责任问题,注重实效的程序员对他或她自己的职业生涯负责,并且不怕承认无知和错误

关于读过构建之法后提出的五个问题?

二次信任 提交于 2019-11-30 12:27:14
问题一: 第一章中陈述了软件工程的目标是创造足够好的软件 。那么,何种软件才是足够好的,是否有客观评价的标准,我们在开发过程中应以什么样的标准为参考? 问题二: 第三章关于初级软件工程师的成长提到了五个方面的内容, 1.积累软件开发相关知识,提升技能技术,2.积累问题领域的知识和经验,3.对于通用的软件设计思想和软件工程思想的理解,4.提升职业技能,5.实际成果。 然而,作者又在49页的职业发展中提到了考级之路,两者在工程师的发展过程中,孰轻孰重?应以哪方面为主?两者之间又有怎样的关系? 问题三: 第四五章中提到了两人合作以及团队模式的问题,面对一个软件项目如何选择团队模式,如果在开发过程中,团队里两两之间的磨合时间过长,导致开发速度缓慢,应如何应对?团队模式定下后,如果发现不合适,要不要及时更改,还是在观望一段时间?如何处理开发时间和团队磨合之间的矛盾? 问题四: 第七章中讲了MSF的基本原则,不难发现,九条之中有三条和沟通有关,分别是第一条:推动信息共享与沟通,第八条:学习所有的经验和第九条:与客户合作。 然而,在实际的项目开发中,团队中人数越多,沟通所花费的时间成本越多,那么,最大的开发效率和人数有何种关系,是与人数正相关吗?如何达到开发效率的最优化? 问题五: 书中第九章讲解了关于PM的相关知识,详细的阐述了PM的职责和能力要求,但在实际中

程序员不是砌砖工人,他们是作家

左心房为你撑大大i 提交于 2019-11-29 21:23:58
  英文原文: Your Developers Aren’t Bricklayers, They’re Writers 如果你有 10 个程序员,最好的那个可能至少比最差的那个好 5 倍。这绝对不是胡扯。 我们这样定义“更好”:工作速度更快,产生的 bug 更少,代码更具可读性、逻辑性和可维护性。 程序员不是砌砖工人,但他们往往被当成是砌砖工人。 (我并不是说歧视这些职业) “为什么我需要高级程序员,要知道同样的薪酬我可以雇两个初级的了?” “这个功能一个程序员做需要三个月的时间,那就只需要再加两个,就可以在一个月内搞定了。”   为什么说上面的想法很荒谬?因为我们没有一种简单又有效的方法来衡量程序员的生产力。一旦碰到我们无法衡量的东西,我们就会忽略它。   我这样问你好了:你是愿意让两个新手来照顾你的宝宝,维修你的车,给你做腰椎穿刺,还是宁愿找一个资深的? 相关研究表明,最好程序员的生产力最高可比最差程序员的高 28 倍。但是用在这些最好程序员身上的成本肯定不会有这么多,所以他们是软件领域中最划算的“特价商品”。 ROBERT GLASS,《FACTS AND FALLACIES OF SOFTWARE ENGINEERING》   如果你一定要比较的话,那么其实程序员更像是作家。   有些作家写出的东西能数以百万计地卖出去,而有些作家写出来的东西无聊至极最后只能用来烧火用!  

谈谈自己对技术的看法

时光总嘲笑我的痴心妄想 提交于 2019-11-29 20:05:30
学技术以来,在51上找到了很多不错的文章和大牛的博客,于是经常泡在各种各样的技术文章里,感受个大老的经验分享,学到很多精彩的东西,所以决定将自己的博客搬到这里,与大家一起学习。 这是我在51上的第一篇文章,谈谈我对技术人员成长的看法吧, 首先说说我自己吧,我毕业后就从事计算机web方向的开发,从.net 到 php,一直从事web方向的工作,从简单地嵌套页面到接口调用,再到功能开发、数据库设计、服务器环境搭建、项目部署、架构设计、服务器监控调优、研发流程和代码规则制定、到人员招聘、团队培训、战略制定。 我简单走完了这个流程,我用了4年的时间,也许有人会怀疑,四年怎么可能会接触到这么多东西,怎么可能会从功能开发完成架构的转变,再到管理的转变? 我其实只想用李宁的一句话回答:“一切皆有可能。”。 只要你肯努力,并且制定自己的计划,并坚持的做下去,再结合好的机遇,你也可以做到。 对于技术人员来说,最大的敌人,我感觉有三个:1)懒惰。2)方向错误。3)缺乏探索精神。 所谓女怕嫁错郎,男怕入错行;对技术不感兴趣的的童鞋,最好趁早放弃吧,你不适合这个行业,做自己感兴趣的,你才能快乐,身心才能健康,进而才可能成功。 首先说说懒惰: 工作中遇到很多童鞋,做事情得过且过,责任心不知道掉到那里了,有时真替他们担心,比如有些程序员,一个错误连续犯,还不知到什么原因,更甚者还有很多程序员,程序做了一多半了

顶尖程序员不同于常人的 5 个区别

我怕爱的太早我们不能终老 提交于 2019-11-29 15:24:30
《The Effective Engineer》的作者在写书的过程中,为了了解那些顶级程序员和普通程序员的区别,采访了很多硅谷顶级科技公司的顶尖软件工程师。他发现这些给世界带来巨大影响的的工程师们至少有以下5个共同的思维模式: 1.勇于去研究你不懂的代码 一般人都不愿意去研究自己不曾接触过的代码,很多人都没有尝试就放弃了。如果你经常去研究你没有接触过的代码,你就会越来越熟悉不同的代码结构和设计模式。现在人们很容易就接触到优秀的开源代码资源,你可以很方便的就下载下来做一些改动或者调试,去研究为什么代码可以这么写。 除了代码之外,很多人对于陌生的工作内容也会感到恐惧。每次换工作的时候,你可能都会遇到新公司的工作内容和以前工作的内容不一样的情况,以至于刚开始的时候工作效率没有以前那么高。很多人甚至觉得,他们是不是骗了面试官。 其实,大家都是在学习的过程中。在一个陌生的领域,没有人从一开始就是大神。如果你想变得越来越好,无论是写代码,与人沟通或者其它的技能,都是需要投入时间去学习的。 2.精通代码调试(debug) 很多人在写代码的过程中,经常会有的一个问题就是:为什么我写出来的代码不能运行?为什么运行的结果不是我想要的? 几乎所有的程序员写代码都不是一遍就能写好的。但是顶尖的程序员非常快的就明白自己代码的问题可能是什么。这是一个很重要的能力,但是偏偏学校里不教,面试的时候考官也不经常提及