❶ 应该怎么管理程序员
我是一个非常能忍耐的人,非常能忍。事情是这样的,去年春天,由于上一个东家战略失误,导致我们部门被裁(悲剧啊),只好另寻他路,恰逢旧日总监空降到现在这家公司做老总,于是我就名正言顺的过来做嫡系部队。可等俺入职后,才发现这家公司水很深啊……。溜须拍马的人比比皆是,竭尽所能讨好领导,有些话我听着都觉得脸红心跳,胃部翻腾。此为公司第一阵营:谄媚,技术不精,管理不强,但是嘴上功夫了得,总能讨得公司一把手二把手欢心,无所不用其极,堪比现代“和珅”。这一层人比较少,金字塔尖嘛。公司第二阵营:埋头苦干,一心只读“圣贤书”,两耳不闻“窗外事”。这是一群被极度剥削的新人,新时代的农奴,工资在公司垫底,升职没他们,加薪更别想,技术没人带,基本处于群龙无首状态,每天得过且过。这一层人最多,是整个公司的金字塔底,任凭黄沙盖脸,毫无怨言。公司第三阵营:技术“大牛”,是的,这群人一般都是个小头头了,管理着为数不少的第二阵营,爱好钻研技术,沟通能力基本为0,未接受过正规化训练,一件事情要反复说多次方能“略懂略懂”,平时对自己手下不管不问,老子研究高深算法,你们还是自己看书学习吧。好吧,我来了之后就有了第四阵营:不服管教派。 先说说几件小事:1.刚来的时候,安排我进了一个开发中的项目组,让我写一个图片处理和加水印的模块,图片处理,其实就是根据用户上传的图片(像素很大,不适合网页展示),压缩成各种尺寸并加上网站logo水印,两天后,我写了一个通用的接口,传入图片的原始地址,水印地址并输入要生成的尺寸就可以了,给了他们一个打好的jar包。入口参数都用“中文”注释好了,可后面一直到一个月后,还是老是被问接口怎么用。2.其二,因为存储的图片很多,很大,项目组决定用分布式存储,选了Hadoop,这任务又被委派给我了,我一看,哥也没搞过啊,but,难不倒哥。上官网查文档,上google查资料,经过几天的折腾,终于把分布式集群搞好了,那个时候公司就一个运维,只会装系统搭路由,linux系统安装和配置都是俺自己搞的,系统搞好后死活上不了网,又把机器从头到尾检查了一遍,去问运维,说我DNS地址设错了,试了好几个包括他给我的都不行,我不死心,去问运维,聊天的过程中无意间知道公司上公网是用路由过滤MAC地址的,果断让他查路由规则,我三台服务器的MAC地址没有一台在允许列表当中,oh,my god。好了,下面继续讲Hadoop,搭建好环境,写完程序接口后就把图片迁移到集群上,跑的还算稳定,就是读取文件的时候有点延迟。后来哥有事请假两天,打算回来解决延迟问题,可当我打开电脑兴冲冲的连接Hadoop时,timeout了,What the hell did they do?去问经理,说是我离开后服务器出问题了,项目组又没有人会,就把图片迁移回Apache,Hadoop集群关闭了。这尼玛!不是坑爹嘛!!!!公司“元老”们对我的到来表示非常的不欢迎,项目组两个月后就把我T出来了,让我自立门户,领导还专门关照我组建一个项目团队时刻准备为公司冲锋陷阵,这尼玛,整个团队就我一个光杆司令。以上只是技术的,一个对互联网一窍不通,对编程压根不懂的副总搞了一套CMMI作为管理手段,大会小会一个周要开三天,还有N多管理上的事情,不一而足,以至于我来两个月后就想离职走人。后来想想,就这么走了太特么懦夫了,我要组建自己的团队。于是乎招兵买马,从招聘、带人,制定项目规范、代码规范,学会了js,struts(以前做软件,没摸过这些,惭愧……),从去年年中的1个人道现在的6个人,我的项目组成型了。 好了,不扯闲话了,转入正题。我有182的身高,80kg的体重,我会一些拳击,练了五年田径,可是我从来不跟人拳脚相向。在生活里一直信奉“人不犯我,我不犯人,人若犯我,先让两个回合”的至理名言,可是今天早上上班打开邮件,我就不淡定了。 公司新推出了绩效考核,特别强调要量化量化再量化,最极品的是要量化“每周”写的代码行数。其实呢,大家都懂的,工作上按时把工作计划里的工作完成,保证正常上线,其实就OK了。可这位副总,不懂不说,还特别不信任员工,不舍得权力下放。不知道去进行内部团队的构建工作,偏爱相信外面什么培训老师,今天早上,竟然在邮件里,赫然把外面老师考核项写在绩效模板里,还占了20%的比重。一个根本不在公司,没和项目组成员进行沟通交流,连我们做什么项目都不知道的所谓“老师”,竟然要给我们绩效考核的“工作能力”和计划能力打分,真是奇葩啊!!此邮件一出,“和珅”们拍手叫好,高呼领导英明,坚定的站在公司领导这边坚决执行新规定;“农奴”和“大牛”们依然摆出关我屁事的姿态,只是农奴看书的时候把头埋的更低了,大牛们在写代码的间隙,会抬头眺望窗外,若有所思。作为不服管教的一撮人,自然是强烈的反对,再联想来了一年了,公司对加薪一事只有书面提过,CMMI文档还躺在SVN里。我觉得快要达到爆发的临界值。其实,我们程序猿都是很善良的,真的为了公司的项目可以整日加班,挑灯夜战,只是,时间长了,付出和回报不成正比,心也就冷了。俺带人时间不长,不过也总结了一些方法和道理,雕虫小技,众位莫笑。1.团队要规范: 从项目使用工具到代码规范,最好统一,有利于项目集成和维护。一个项目立项到结项,编码、测试、日志、监控、文档……,每个环节都很重要,关系着项目质量和进度,从这些环节抓规范,建立起一套良性体系,不论是对于成员还是项目本身,都是好处多多的。在项目组不忙的时候,适时的安排一些项目组会用到的技术进行钻研,写成文档并做简短的培训分享,对技术总结,口头表达和书面总结能力的提升都是有益处的。2.成员管理: 对于新手,要用正确的方法积极引导,鼓励他们多动手,不要埋头看书,毕竟看书和实际写代码差别还是很大的,每次带新人我都战战兢兢,一开始的习惯很可能影响到他们今后职业生涯,每每想到这点,肩上压力倍增。对于老手,要善于发挥他们的长处,以此带动项目组其他成员,共同进步。平时要多关心了解组员,让他们觉得项目组就像家一样,大家都是兄弟,在攻坚克难的时候,这种团结有爱的环境对于解决问题有奇效。在公司损害到成员利益的时候要坚决和成员站在统一战线。3.工作流程: 编程是一件需要专注去做的事情,所以在日常工作中,在不影响项目进度的情况下,流程越简单越好,繁杂不合理的流程会让项目进度严重拖延,且打击团队士气。4.对于公司: 真的希望有些对这个行业不懂的老总能看到,不要再用你的一家之见来做出错误的管理决定,残害手下的员工了。这个行业和传统行业不同,不是请几个讲师就可以把公司管理好的,那是狗屁。每年请讲师花几万,从里面拿出一部分奖励给工作出色的员工,效果要好的多。而且我们这个群体非常善良,你不提加薪,我们很多时候都不好意思提,真的。可是程序员也是人,人心易冷,那些新人累死累活工作一年多,还拿着两千露头的工资,每天还在喊着让他们加班赶进度,可能吗,对了,现在加班费都没,晚上加班连晚饭都不提供一顿,我只能呵呵?即使你把人留在办公室,心早已不在了。今天牢骚到这里吧,只要我在公司一天,就不能让这些不合理的东西影响到我的组员,我会战斗到底。最后,最近研究学习Swing,得到园子里不少大牛(不加引号的哦)的帮助,俺心里十分感激,等俺学成归来,一定出个专辑,好好报答各位园友。 多谢各位建议,小弟俺现在待遇还不错(算是嫡系优待吧),只是看不惯那些“和珅”党,并试图找出自己的管理之道作为对公司乱搬乱套管理模式的回击,毕竟手下还有六七个人,我走了就真的没人带这些兄弟了,他们也不会自己争取利益,真的是很善良的小兄弟,所以在我吃饱喝足的情况下,不能让兄弟们挨饿受气。
❷ 程序员男生有什么特点
在广大社会人士眼里,程序员就是一个迷之群体:高收入,赚得多 ,花得少,低调的有钱人,新时代隐形富豪!
他们大多出没于北京后厂村、上海张江科技园、深圳南山科技园和广州天河软件园。
在外人眼里,他们整天盯着电脑闷声敲键盘,屏幕上闪现一串串极具神秘气息的外文字符。要是放在人群中,那就是一道亮眼的光!他们低调、质朴的气场很快就会暴露自己。比如着装:冬天穿冲锋衣,大红大紫的高饱和度颜色,兜多,能塞进各种电子产品,面料不容易粘灰,既保暖透气又防风防雨,恍惚间你会以为是快递和外卖小哥。
❸ 对于程序员,编程经常遇到的那些符号,比如{}[]:;"'<>,.等,都必须用小拇指打出来吗
我以前都没注音过哦,看个人习惯吧。{}我是用无名指和小指,()我是用中指和无名指,左手小指shift,<>是用右手中指无名指,右手小指shift
❹ C++ 编程过程中,有哪些常犯的坏习惯,哪怕对于多年经验的程序员也会出现
大家都知道,编程是一个非常用脑并要求非常细心的一项工作,在编程过程中,哪怕一个非常不起眼的小细节,比如一个标点符号,都会让整个程序崩溃。
先说在编程时,尽管经验老道的程序员也会犯一些常见的小问题。
说好听的叫拒绝改变,说不听的叫不思进取。而这个也是许多经验丰富的程序员常犯的坏习惯。当然,还有很多,在这里我就不一一说明了。。。
❺ 一个优秀的程序员需要养成哪些良好的习惯
1. 理解编程语言的原理,遵循编程规范,并且能够写出有效的代码,并学会优化代码。
2. 估算解决问题所需要的时间,为自己定一个时间限制,加强程序自测试。
3. 做好版本控制,并及时备份代码,经常检查代码,还要回顾以前写过的代码,看看能不能有新想法。
4. 动手编码之前,先做好分析和设计。
5. 对项目文件归类保存。可以把项目文件放到SOURCE、HEADERS、MAKE、EXES等不同的文件夹中。
6. 制定验收规则,优秀出色的程序一定会编写技术测试脚本,因为他们清楚要是省略了这一步会严重后果。
7. 重视,但不过于注重程序的设计模式。
8. 养成耐心、冷静的好习惯,多向优秀的程序员学习。
❻ 要做程序员需要学会什么
其实简单来说,程序员的工作就是使用编程语言,根据需求写出一个程序。
但是,在这个过程中,涉及如下几个方面:
使用的编程语言 程序员需要选择一门或者多门语言来编程,不同的语言适合编写不同的程序,目前主流编程语言包括,java、JavaScript、Python、C++、php以及其他小语种等等,每种编程语言适合开发的程序有所不同。目前从程序应用分来,主要可以分为三类a 企业应用,主要用于解决企业业务。各种企业管理后台系统,银行系统,公安系统,图书管理系统等等。
b 互联网应用,面向互联网用户,为互联网用户提供各类服务。比如现在的京东淘宝各类电商系统等。
c 移动应用,各类在移动端使用的APP,有面向互联网用户的APP,也有面向企业内部的APP。
目前相对而言,在移动应用和互联网应用方面,资本投入比较热的风口,程序员的薪资较高。企业应用,发展了很多年,相对平稳。
2. 明白需求,实现需求
需求就是编写程序的要求。一个程序要编写成什么样子,具备哪些功能,都是由需求来具体说明。程序员要需要能看懂需求文档,并且能准确地使用编程语言,根据需求中的要求来编写成程序。企业开发的项目,往往会由该程序的架构师提供一个程序框架,程序员在该框架的规范下进行编程,实现需求的功能,以确保程序的规范、可读,以及可维护性。
3. 日常工作写程序
一个软件开发一般流程是产品经理根据用户需求做一个项目出来,然后UI设计师做一些图片设计,前端开发编写页面,后台开发编写核心编程,然后介入一些大数据和人工智能,通过测试之类上线实施,后期还有运维进行相关维护。
程序员一般大多指的是前端和后台写代码程序的开发人员,除了编写代码,可能还需要通过接口和其它系统对接,实现系统间的数据交换。像单体测试,是程序员对自己写好的程序单元进行测试,检测这个程序单元数据输入和数据输出是否符合预期等等。测试出来的问题,需要修改正确,然后再测试,直至没有问题。和同事共同开发的时候也需要联合测试,以及用户测试过后如果存在BUG继续进行修改。
❼ 编程语言会影响程序员的性格吗
编程到底会不会影响程序员的性格?用我同桌当活生生的例子。见仁见智了,我觉得可能有些程序员会在编程的影响下变得比较沉默、话少、性格内向、不善与人打交道,不是有句话调侃程序员的么,什么钱多话少死的早?大概就是对我同桌来说应该是钱少话多死的早吧。毕竟作为一个破码农,每个月工资也不多,经常加班,嘴比较贫,还比较懒。当然,一般是对熟人比较贫,对刚认识或者陌生的人也是话少嘴不贫。当然,以上都是开玩笑的。
至于编程对我同桌的性格有没有影响,想来是有的。以前做事的话是想到什么就去做什么,现在会先把要做的事在脑子里过一遍,想清楚前后顺序和对效率的影响,是谋定而后动吧,哈哈。主要是懒,想要让效率更高一点,省出时间玩玩游戏什么的。
嗯,生活中的话,还比较讨厌一些突发事件或者说例外。在你写好的程序里,如果大部分人都测试通过了,而有些手机的机型或者说系统或者说个人所导致的无法在开发环境复现的bug,会让你很恼火,因为你不知道该怎么去解决它而又不能忽视它。还有和以前相比,会更富有耐心一些,毕竟各种需求变更,代码bug总是让你改了一遍又一遍。整理东西的话,也会放的看起来更美观一些,毕竟敲代码的时候,编码规范和个人的一点强迫症都会使得你把代码变得更为漂亮更为整齐。
❽ 程序员的 职业素养
程序员因其致力于程序开发、设计、维护、编程等这一特殊领域,使其天生具备了坚定的职业信念、超强的职业知识技能、良好的职业行为习惯等职业素养。
简介:
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
岗位职责:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
职业认证:
考试介绍:
软考程序员考试属于计算机软件水平考试(简称软考)中的一个初级计算机职称考试。对于软考程序员考试并无学历及资历条件限制,更无论年龄、专业与资历。一年可报考软考程序员考试两次,但一次考试只能报考一种资格,因此报考了程序员考试则无法再报考软考其他级别或科目的考试。同时软考程序员考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试方式。
通过国家统一组织的考试,资格考试分为:程序员级(原初级程序员)、软件设计师(原高级程序员)以及更高水准的:信息系统项目管理师、系统分析师(原系统分析员)、系统架构设计师、网络规划设计师、系统规划与管理师。
考试目标:
通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照程序设计规格说明书编制并调试程序,写出程序的相应文档,产生符合标准规范的、实现设计要求的、能正确可靠运行的程序;具有助理工程师(或技术员)的实际工作能力和业务水平。
1、CVEQC认证持有者已经通过了中国职业教育资格认证指导中心组织的培训和相应的考试,具有相应的专业技能和知识。
2、CVEQC证书可作为劳动者岗前培训、在职培训、提高培训、继续教育的培训认证;也是劳动者“先培训、后就业,先培训、后上岗”的凭证。
3、CVEQC证书是中国职业教育资格认证指导中心颁发的专业技能证书。标有证书序列号、证书编号、培训者及证书持有者身份证号码,并盖有全国职业教育管理委员会、中国职业教育资格认证指导中心的证书专用章。
4、 证书证明参加培训及证书持有者具有系统地接受岗位技能培训的经历,证书在全国范围内有效。
二、报考条件:凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机技术应用能力的人员,均可根据本人情况报名参加相应专业类别、级别的考试。[1]
考试要求:
(1)掌握数据及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;
(2)理解计算机的组成以及各主要部件的性能指标;
(3)掌握操作系统、程序设计语言的基础知识;
(4)熟练掌握计算机常用办公软件的基本操作方法;
(5)熟练掌握基本数据结构和常用算法;
(6)熟练掌握C程序设计语言,以及C++、Java、Visual Basic中的一种程序设计语言;
(7)熟悉数据库、网络和多媒体的基础知识;
(8)掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;
(9)了解常用信息技术标准、安全性,以及有关法律、法规的基本知识;
(10)了解信息化、计算机应用的基础知识;
(11)正确阅读和理解计算机领域的简单英文资料。
相关书籍:
很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 9的书。
其实除了前9本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。
下面就按照各本书的推荐数排列。
1、《代码大全》 史蒂夫·迈克康奈尔
2、《程序员修炼之道》
3、《计算机程序的构造和解释》
4、《算法导论》
5、《重构:改善既有代码的设计》
6、《设计模式》
7、《人月神话》
8、《计算机程序设计艺术》
9、《编译原理》(龙书)
岗位分类:
世界上第一位程序员是英国着名诗人拜伦的女儿AdaLovelace,曾设计了巴贝奇分析机上解伯努利方程的一个程序。她甚至还建立了循环和子程序的概念。由于其在程序设计上的开创性工作,AdaLovelace被称为世界上第一位程序员。美国国防部开发的ADA语言就是为纪念这位世界上的第一位程序员而命名的。
计算机科学发展到今天(21世纪初期),程序员从事的人群很多,分工也不相同,从大的方面可以分为以下几类:asp程序员、jsp程序员、delphi程序员、php程序员、powerbuilder程序员、C程序员、linux程序员、net程序员、vb程序员、java程序员、javascript程序员、C++程序员、Python程序员、android程序员、iOS程序员。
职业要求:
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。所以要尽量抓住有用的工作和实习机会,这样的话在毕业后你就会发现,多实习让你有更多的经验,在找工作的时候就有更多的机会。
对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,他的技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。
素质要求:
团队精神和协作能力:
团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
文档习惯:
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间用于写技术文档。没有文档的程序员势必会被淘汰。
规范化的代码编写习惯:
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。
测试习惯:
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。
学习和总结的能力:
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,只能说他是一名熟练的代码民工(码农),他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师、系统分析员。
拥有强烈的好奇心:
什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的武器了,它是程序员们永攀高峰的源泉和动力所在。
日常工作:
确认通过审查方案的目标,输入数据,分析师,监事,和客户的输出要求的项目要求。
安排项目要求在编程序列分析要求;准备工作流程图和使用计算机知识的能力,题材,编程语言和逻辑图。
编码工作流程的信息转换成计算机语言的项目要求。
通过输入编码信息的计算机程序。
确认程序操作进行测试,修改程序序列和/或代码。
准备写操作指令供用户参考。
保持历史记录,通过记录方案的制定和修订。
维护客户的信心和保护保密的业务。
技能/资格:一般的编程技巧,分析信息,解决问题,软件算法设计,软件性能优化,注重细节,软件设计,软件调试,软件开发基础,软件文档,软件测试。程序员其实分为很多种,大家开发的语言可能不尽相同,但是都是有他们的共同点。
❾ 顶级的程序员是怎么样的
顶尖程序员常说:“这个我以前写过一个模块,我找找,很快。“简直是没有对比就没有伤害!
有人认为,普通程序员用复杂的代码解决简单的问题;而高级程序员能把复杂的问题简单化并用简洁的代码去实现。在w3cschool看来,顶尖程序员和普通程序员至少在以下6个方面大有区别。
1、文档能力
“文档是第一生产力”,这一点在程序员的世界是毫无异议的。看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他们tutorial,他们的getstarted,他们的reference文档写的多么的易懂。
如果要获得更高的报酬,文档是绝对关键的因素。有文档就有沟通,就有交易。搞技术的容易忽视文档的力量,也因为写文档十分困难,更多程序员选择舒适区,习惯写下代码,但正因为如此,妨碍了不少程序员的进阶。
2、解决BUG的效率差别
普通程序员可以利用搜索引擎(网络)寻找答案,经常性找不到好的解决办法,然后更换技术方案!顶级程序员也利用搜索引擎(Google)寻找答案,一般bug都顺利解决(其实跟前期框架选择等关系非常大)。
3、表达能力
表达能力决定了你所做的技术的影响范围,决定了你的影响力,决定你的威信,决定了你的报酬。普通程序员和顶尖程序员的表达能力差别非常大,这主要还是取决于他们格局的不同。良好的沟通能力让你理解产品经理的设计思路,让你更好的展现自己的特长。
对于累积人脉,当你的阅历越来越丰富,人脉对你的帮助也越来越明显。
4、优雅和美观的抽象能力
普通程序员和顶尖程序员之间的区别在于优雅和美观的抽象能力。好的系统通常是要做到两个方面才合格,其一是好用,其二是好看。但是令人遗憾的是,普通程序员仅仅从实现的角度进行堆砌。顶尖程序员往往能够更进一步,经常会去思考用户在操作这个功能的时候,到底还会做什么事情。
所以,顶尖程序员和普通程序员区别就是是否拥有用户意识,是否敢于直面用户。好用,好看一直是软件能够被普遍采用的前提,因此,我们有必要学会抽象优雅。
5、面对如何开源社区态度
普通程序员几乎没有在开源社区混,这也导致经常对新技术发展关注度低。而顶尖程序员则是拥抱开源社区。
6、面对功能点
普通程序员:立马开始构思自己如何实现脑海里出来一个方案。
顶尖程序员:发现功能点很普通github上面早已经有非常多的解决方案,着手根据业务选择一个最适合最优的方案
❿ 程序员等级划分:看顶级高手如何编程
有脑子,很听话,很认真,但基础不好,代码有局限性 这类型的程序员大多是工作一到两年的程序员,但和上面的不同,他们很有脑子思路很好,而且很听经理的话,做东西很认真,做不完了自己会加班写,学新的东西也很快,但是有一点不好的是,他们有很多理由说自己没时间学习基础,这些人一般是在学校没有学好,出来之后后悔了,学起来很认真,由于学了些新的知识,起点高,看不起基础的东西,从不想着没事去看看编程基础,看看算法,看看数据结构,总是以为我都能做出这样的项目了,还看那些小东西会很丢人的,于是在公司从不看回家更不想看,时间长了,技术会有很大的局限性,对某一块技术很不错,但是对其它技术不怎么好,于是在接到一个项目时,总喜欢使用自己现有的,会的技术去实现,转了一圈又一圈总算是把东西写出来了,而且还是加班完成了,但是代码的性能,稳定性,和效率上差的很远,扩展性也谈不上,时间一长,项目一多起来,就会出现多次反工,因为需求是会不断变化的,于是自己的代码也要变化,感觉很是理所当然,一个项目没事,接手的多了就麻烦了,新项目刚到手,老项目就出问题了,不是这里有点小毛病就是那个功能要升级,于是新项目放下,着手改老项目,手上能有三四个项目时,就会忙个不停,改的多了,没办法再改了就得重新设计,或是直接说这个功能实现不了。 其实在这个阶段的朋友很有潜力的,只要花点心思补习一下自己的技术缺陷,多看看高手的代码,写之前想一下,设计一下,自然事半功倍,千万不要有眼高手低的心态。 真正的高手Nb人物是怎么工作的------------程序员 1.不随便改变需求 他们不会主观的改变一些东西,不管是对还是错,如果要改的话他们会在开会时,或是私下跟你提出来,通过后再改,否则会按需求办事 2.不写没有思想的代码 在写功能时会加上一些人性化的功能,比果加个小图标,加一些验证,处理一些操作习惯,加加快捷键,处理好Tab顺序,等这些,不用你说,他们自己会处理好。 3.不写没有远见的代码 他们在写代码时会想,不会是单纯的实现功能,他要想,如果别人也要用这个方法怎么办,以后要改的时候怎么办,代码这样写是不是合理,是不是会影响性能,然后才会”吝啬“的出手。 4.不写不负责任的代码 我们写代码一是为客户用,二是方便其他人看,不单单是自己维护,要对自己的代码负责,从自己手上出去的代码代表的就是自己的脸,代码不好,人家会“打脸”的。他们不愿意挨打所以他们负责。 高手在编程效率方面可能并不比普通程序员快多少,因为他们会吝啬自己敲下的每一行代码。这种“吝啬”有两方面的含义,一是项目的架构性和整体性考量,二是从性能和优化的角度进行Coding。其实,这里所映射的是一个开发者的技术视野。 有多位技术专家强调项目执行时的全局观。面对一个项目,即使是团队中的普通一员,也要力求从项目整体架构的角度审视开发需求,对各个模块、接口和通信做最优化的预想和配置。这样可以从全局审视整个项目的技术布局,预判可能出现的问题。 在确定了整体之后,落实到具体的模块实现,每一行代码不但有上下文的考量与规划,还要具备模块间的整体布局。这是模块内的技术视野,比如接口的定义、注释的可读性、代码的执行效率等。当你写下一行代码前,要考虑它是否会对整个系统造成影响,是否方便其他接口进行调用,这些都是一个开发高手的“技术潜意识”。 据一些经常带领入门级开发者的技术经理介绍,多数人只考虑自己所负责的模块进行开发,缺乏一个全局性的技术视野和对代码性能苛刻的态度,这样虽然能按交付日期完成项目,却对项目质量和开发者的自我提高有很大阻碍。 开发高手是代码阅读者。大多数技术专家的代码阅读量是普通程序员的百倍,代码阅读的时间比写代码的时间要长得多。 多数程序员只把程序开发当成一份工作,他们在乎平台的前景、语言的优劣、报酬的高低;他们不愿为一个技术点反复钻研,不愿为一个bug精心测试,不愿为自身技术水平的提高多花时间。而开发高手往往具有单纯的技术梦想,愿意为技术付出自己全部的时间。