1. 做一个程序员需要达到什么样的水平
辨别一个程序员的水平唯一的办法就是看 产出质量。
算法和数据结构都是锦上添花,并非是雪中送炭。而一个程序员的水准大致上是可以通过之前的代码质量估算出来的。【如果你可以获得此程序员的真实编写的代码,比如原创的Github】。
举个栗子:下面是我最近在单位一个同事写的代码,java语言
private boolean checkProportions(String str, Integer grades) {
String proportion = str;
for (int i = 1; i < grades; i++) {
String st = proportion.substring(proportion.lastIndexOf(",") + 1);
if (st.equals(""))
return false;
proportion = proportion.substring(0, proportion.lastIndexOf(","));
}
if (proportion.equals(""))
return false;
str = str.replace(".", "");
str = str.replace(",", "");
for (int i = str.length(); --i >= 0; ) {
int chr = str.charAt(i);
if (chr < 48 || chr > 57)
return false;
}
return true;
}
大致上的功能就是将 1,2,6.2,4,1 的字符串判断每一 ‘,’内是数字,而且长度符合规定
这样的代码看上第一眼就觉得非常的丑陋。所以在我的要求之下,进行了一次重构。
private static boolean checkProportions(String str, int grades) {
String[] proportions = str.split(",");
if (proportions.length != grades) {
return false;
}
for (String s : proportions) {
if (!NumberUtils.isNumber(s)) {
return false;
}
}
return true;
}
这里看上去差不多就Ok。这样的代码其实也并没有用到什么数据结构和算法,就是很简单的字符串处理。
实际情况:在我们写的绝大多数的代码里面,大部分属于业务逻辑,极少部分的代码需要使用到算法和数据结构,在这样的情况下,我们能使用的到的技能最为关键的是让代码如何更加合理。而让代码更加优秀的方式是通过千锤百炼的重构,而重构是极大的考验一个程序员耐心和能力的东西。
质量的范围广泛,我从下面几个小方面聊聊。
出货能力:如果一个程序,算法再精妙,不能出货都是扯淡,我看过某某大神,算法溜得很,但是一个人完全做不到按照工程需要把事情给做完。
优化能力:并没有一个程序是一步到位的,一个工程的交出去可运行了,那才是第一步,很多时候随着业务的增大,对性能的要求越来越高,有一定对于代码优化的能力也是比较重要的。
调错能力:项目越大,遇见的Bug也就是越离奇,这个时候需要强大的Debug能力,找出那个最为关键的错误点,甚至于追溯底层框架的源码。
技术掌控:你项目能用Spring,Hibernate等等框架,但是有没有想过,这些技术你真的可以掌控么,如果有一天你的框架版本需要升级,真的做得到么?甚至于从Hibernate转为MyBatis。
算法和数据结构是影响到一些核心区的问题,但是其他的一些技能,比如面向对象的架构设计,代码的低耦合,那都是对整个项目有着直观改善的技能。并非是贬低算法,而在实际工作中,有太多比算法更重要的问题了。
2. 如何辨别一个程序员水平的高低
辨别一个程序员的水平唯一的办法就是看产出质量。
关键字:普通程序员
——————————————无耻割————————————————————
算法和数据结构都是锦上添花,并非是雪中送炭。而一个程序员的水准大致上是可以通过之前的代码质量估算出来的。【如果你可以获得此程序员的真实编写的代码,比如原创的Github】。
举个栗子:下面是我最近在单位一个同事写的代码,Java语言
(Stringstr,Integergrades){
Stringproportion=str;
for(inti=1;i<grades;i++){
Stringst=proportion.substring(proportion.lastIndexOf(",")+1);
if(st.equals(""))
returnfalse;
proportion=proportion.substring(0,proportion.lastIndexOf(","));
}
if(proportion.equals(""))
returnfalse;
str=str.replace(".","");
str=str.replace(",","");
for(inti=str.length();--i>=0;){
intchr=str.charAt(i);
if(chr<48||chr>57)
returnfalse;
}
returntrue;
}
大致上的功能就是将1,2,6.2,4,1的字符串判断每一‘,’内是数字,而且长度符合规定
这样的代码看上第一眼就觉得非常的丑陋。所以在我的要求之下,进行了一次重构。
(Stringstr,intgrades){
String[]proportions=str.split(",");
if(proportions.length!=grades){
returnfalse;
}
for(Strings:proportions){
if(!NumberUtils.isNumber(s)){
returnfalse;
}
}
returntrue;
}
这里看上去差不多就Ok。这样的代码其实也并没有用到什么数据结构和算法,就是很简单的字符串处理。
实际情况:在我们写的绝大多数的代码里面,大部分属于业务逻辑,极少部分的代码需要使用到算法和数据结构,在这样的情况下,我们能使用的到的技能最为关键的是让代码如何更加合理。而让代码更加优秀的方式是通过千锤百炼的重构,而重构是极大的考验一个程序员耐心和能力的东西。
—————————————————————————————————————
质量的范围广泛,我从下面几个小方面聊聊。
出货能力:如果一个程序,算法再精妙,不能出货都是扯淡,我看过某某大神,算法溜得很,但是一个人完全做不到按照工程需要把事情给做完。
优化能力:并没有一个程序是一步到位的,一个工程的交出去可运行了,那才是第一步,很多时候随着业务的增大,对性能的要求越来越高,有一定对于代码优化的能力也是比较重要的。
调错能力:项目越大,遇见的Bug也就是越离奇,这个时候需要强大的Debug能力,找出那个最为关键的错误点,甚至于追溯底层框架的源码。
技术掌控:你项目能用Spring,Hibernate等等框架,但是有没有想过,这些技术你真的可以掌控么,如果有一天你的框架版本需要升级,真的做得到么?甚至于从Hibernate转为MyBatis。
算法和数据结构是影响到一些核心区的问题,但是其他的一些技能,比如面向对象的架构设计,代码的低耦合,那都是对整个项目有着直观改善的技能。并非是贬低算法,而在实际工作中,有太多比算法更重要的问题了。
最后补充一点吧:从善如登从恶如崩,毋以恶小而为之,此古人诚不欺我
3. 程序员需要达到什么样的水平才能顺利拿到 20k 月薪
对于多数程序员而言,月薪达到8000以上的水平不是一个难事,但是达到20K以上的月薪其实很难。
很多人会觉得it行业特别赚钱,对于已经参加工作的小伙伴来说,it行业其实是一个不错的赚钱选择,但这并不意味着每一个程序员都能够赚到足够多的钱,月薪高的人其实只是少数。
普通程序员的工资在8000左右。
我们这里提到的工资主要集中在一二线城市,因为一二线城市的工作机会很多,所以程序员的工资也比较高,一般可以维持在8000元左右,对于那些进入到知名互联网企业的人来说,他们的工资可以到达15K左右,有些人甚至可以到达20K以上。现实生活中,并不是每一个程序员都在知名互联网企业上班,在私企上班的程序员的工资只能维持基本温饱。
4. 小公司程序员的编程水平与BAT大公司相比,有多大差距
网友一:
单纯从技术上来说,大公司是小公司没法比的,大公司系统要更加复杂,研究的东西更加深入。
比如高并发,大数据,小公司没有那么大流量和数据量根本没办法研究。
大公司一个系统N台机器,为了节省资源就要研究怎么使机器能力最大化,优化代码,优化逻辑。
小公司可能一两台机器就能支撑一个系统,只要没bug就能正常运行。
但是大公司大部分普通程序员,由于做得太专一了,基本上在某一方面做得不错,整体能力差很远,但是自己觉得啥都行。
这么比喻吧,如果说把程序员比作厨师。
普通公司的程序员基本上是各个饭店的大厨,啥菜都会做。
bat是御膳房,程序员什么大菜都见过,但基本上一个大菜也做不了。很多人就是御膳房后勤部切葱花大队的切葱花手。
5. 代码量能衡量一个程序员的编程水平吗
写代码是依靠脑力生产结果,而编程效率、编程水平、工作时长、代码质量、运行效率、生产力......这些复杂的因素决定了最后项目的质量。有的大牛只用50%的代码量就解决了初级程序员需要100%的代码才能解决的问题。所以,用“产出的代码行数”、“每日上班敲代码的时间”...这种指标来衡量生产力,是不科学的。
6. 大家知道一个工作四年的程序员,收入一般是什么水平呢
程序员工资一般都比较高的。比如像初级程序员年薪大概在10-15万,中级程序员15-20万,高级程序员30-50万,13薪、14都是基本的,奖金高:程序员除了基本工资,更多的是项目奖金,这可不是你想象的几百,一千哦,可以说很多人的项目奖金比工资要高!你带的项目多奖金就多,多劳多得,公平公正。
程序员月薪多少
能够上万的工资基本上只有一线或者二线城市,三线城市不太可能有成千上万的人,这取决于消费水平。很多三线城市的老程序员工作了好多年,拿不到1万元,刚从一线城市毕业的学生基本上可以拿到,这个差距仍然很明显,如果一线城市的水平好,他们很容易就能拿到2万元以上,能力水平是最具决定性的因素。当能力水平到位时,年限等将被搁置一旁,因此,能力是第一要素。许多年轻人不仅薪水很高,而且因为他们出色的能力,他们还负责管理自己的团队,他们在特殊情况下受到特殊待遇。
7. 普通程序员和大神级程序员有什么差别
六点区别:
1、文档能力
“文档是第一生产力”,这一点在程序员的世界是毫无异议的。看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他们tutorial,他们的getstarted,他们的reference文档写的多么的易懂。
如果要获得更高的报酬,文档是绝对关键的因素。有文档就有沟通,就有交易。搞技术的容易忽视文档的力量,也因为写文档十分困难,更多程序员选择舒适区,习惯写下代码,但正因为如此,妨碍了不少程序员的进阶。
2、解决BUG的效率差别
普通程序员可以利用搜索引擎(网络)寻找答案,经常性找不到好的解决办法,然后更换技术方案!顶级程序员也利用搜索引擎(Google)寻找答案,一般bug都顺利解决(其实跟前期框架选择等关系非常大)。
5、面对如何开源社区态度
普通程序员几乎没有在开源社区混,这也导致经常对新技术发展关注度低。而顶尖程序员则是拥抱开源社区。
6、面对功能点
普通程序员:立马开始构思自己如何实现脑海里出来一个方案。
顶尖程序员:发现功能点很普通github上面早已经有非常多的解决方案,着手根据业务选择一个最适合最优的方案。
但是优秀的程序员一开始都是普通程序员,所以加油吧!
8. 如何辨别一个程序员水平的高低呢
有的时候单纯靠一个面试很难辨别一个程序员的水平是什么样的。原因很简单,因为很多面试题在网上都有,如果刻意准备那么一般都能回答的不错。所以想辨别一个程序员的水平需要一定的方法。
上述几方面我们称为应能力,还有一些软能力也是非常重要的,比如责任心,对技术的态度,学习能力等等。当然,这些就更难考量了,本文暂不介绍。
如果上述几方面都比较不错,那么这个程序员的水平应该是不错的。即使对目前的工作的知识储备可能还有欠缺,但经过一段时间后必然可以
9. 来聊聊怎样辨别一个程序员水平的高低
看头发。热爱技术的人,会不自觉的熬夜,不解决某个问题誓不罢休。
10. 如何评价程序员这个职业
程序员的职业生涯,和大多数其他后台专业职业一样,有一个最大的问题,即缺乏社会普遍性资源。
中国社会在目前的共存状态下,这种明确的规则和规则,可以掌握一般的资源,或者可以接近一般的资源,是一个专业人士能否有一个重要的先决条件来获得额外的收入。
程序员的职业目标环境和开放。美国的代码农民也是高收入阶层,不是最高的,但绝对是中产阶级。
在其他方面,程序员没有说最低收入水平,可以进入社会的前20%。此外,收入高,程序员的性格一般是房子,纯粹,整天在家,玩游戏最多。
最后,我补充说,信息时代已经进入了信息时代,因此可以看出,技术在未来变得越来越信息化,最好的行业应该是其中之一。只要你喜欢,就请大家勇敢去做吧。