1. 有哪些老程序员都知道对新手很有用的经验
一说到程序员,想必大家的第一印象就是头发少,很大程度上就是因为压力大导致的,有生活压力,也有工作压力。
今天说说工作方面的压力,想必看到这个问题的小伙伴都有一个认知,就是一个项目往往比预期的要长,说不定从哪天开始就加班了,一出现BUG真的要人命。此时,考研新老选手心态的时候和经验的时候了,老程序员或许能从容应对,新手可能完全不知错所。

七、个人信息一定要保管好
这些信息包括户口档案、社保、公积金等信息,程序员新手可能跳槽比较频繁,有人甚至还换个城市工作。除了户口可能其他的信息都乱了,可能当时觉得不那么重要,但是十年、二十年后,可能会非常重要。
八、几条名言
·工作日志可以提升脑容量;
·不要先写框架再写实现,要反过来;
·重构/优化/修复Bug,不要同时做;
·简化开发流程,加快迭代速度;
·纸笔是最好的工具,其次是markdown;
·画出结果,一目了然。
·首选明文文本,二进制、加密、压缩等到时候再加;
·要学会进行清晰的命名;
·问问题前先调查,要问到点上。
·不要小看程序员
2. 软件工程师职称评定的级别及标准
在软件工程师职称评定中,见习程序员(AP:assistant programmer)是最低级别的认证,要求具有计算机相关专业背景,通过国家四级英语考试,并具备较强的学习能力,能够满足公司的基本工作要求。
程序员(P:programmer)需要达到一定的技术标准,如本科学历,半年以上工作经验,同样需要通过国家四级英语考试。此外,还需掌握一种主流语言/开发工具,一种主流操作系统和一种主流数据库,具有规范的开发作业能力,确保所编写代码的质量,并能够撰写详实准确的文档。
高级程序员(SP:senior programmer)需拥有至少1年的程序员经验,或是达到程序员标准并具备2年以上相关行业经验。技术能力方面,需要精通一种主流语言及开发工具,了解数据结构,具备业务理解能力和技术调查能力,编写高质量代码并具备代码审查能力,具备详细设计能力,熟悉系统测试工具,以及带领团队完成项目的能力。
软件工程师(SE:software engineer)是高级程序员的提升,需要具备2年以上高级程序员资格或4年以上相关行业经验。在技术能力上,软件工程师需要精通两种以上的开发工具,至少一种数据库知识和一种操作系统知识。能够快速完成技术调查,设计复杂算法,并设计可重用和柔韧的软件结构。此外,软件工程师需要具备系统设计能力,对系统或项目的技术框架有深入理解和丰富经验,并具备某一领域的行业知识。
资深软件工程师(SSE:senior software engineer)需拥有2年以上软件工程师资格,或满足软件工程师标准并具备6年以上相关行业经验。技术上,资深软件工程师需要精通两种以上的开发工具,至少一种数据库知识和一种操作系统知识。具备整体系统设计能力,对系统或项目的技术框架有深入理解,具备项目领导能力,精通一种部门项目相关的业务知识。
主任软件工程师(CSE:chief software engineer)是职称的最高级别,需要具备2年以上资深软件工程师资格,或满足资深软件工程师标准并具备8年以上相关行业经验。拥有5年项目负责人以上经验,累计超过120人月的技术负责人工作。在技术能力上,主任软件工程师需要精通至少一种主流编程语言,掌握至少一种数据库或至少一种中间件,熟练掌握至少一种操作系统,具备软件需求分析和大型项目策划的能力,熟练掌握软件的系统设计和高级项目管理。
整个职称管理工作和相关标准将根据公司的发展不断调整和完善。
3. 资深程序员具备的14个优良习惯,你都具备哪些
1 慎于说Yes
在没有搞清楚开发需求、任务工作量、团队期望值之前,有前途的程序员不会轻易答应。特别是对于新人来说,比较急于表现自己,对于同事或者老板的工作安排来者不拒,精神可嘉,方法不可取。
承诺太多,会出现自己无法按时完成的情况,即使按时完成,也可能没有达到别人的期望值,长期以往别人对你的失望会越来越多。
2 敢于说No
看起来和第一条雷同,其实细究起来不一样。第二条执行起来比第一条难得多。当遇到明显不合理的要求时,可以考虑拒绝,前提是准备好了全面充分的理由。不要经常说No,但是一旦说了,就要切中要害。
有前途的程序员不会闷头干活,知道自己的定位和团队期望,分清楚哪些是不合理的要求,哪些是合理的要求,然后把明显不合理的要求和领导沟通下,取得支持。
3 构建自己的知识体系
在信息爆炸的年代,碎片化的知识很多,系统学习的时间越来越少,如果没有自己的知识体系,很容易被淹没在知识的海洋中,而且难以记忆。
100分程序员推荐的做法,通过Wiki或者其他知识管理工具构建一个知识框架,大的分类可以包括软技能、架构、语言、前端、后端等,小的分类可以更细化。
4 培养大局观
程序员比较容易陷入的困境是专注于自己的一亩三分地,不关心团队的进度和业绩,也不关心软件的整体架构和其他模块。
这种状态长期下去没有好处,特别是在大公司中,逐渐成长为一颗螺丝钉。100分程序员会在工作之余,多看看其他在做什么,看看团队的整体规划,看看软件系统的架构和说明文档。
对自己的工作更理解,而且知道为什么这个产品应该这样设计,为什么领导应该这样做规划,这种大局观非常有利于自己的职业生涯。
5 代码规范
程序员在新手时期需要培养良好的代码规范。最直接的办法,遵循公司已有的代码规范(如果没有类似的规定,也是醉了),从简单的变量命名到模块划分,有些规则可以导入到编码工具中,更多的部分需要自己体会和遵守。
关于此方面的知识,最权威的书籍是《代码大全》,别误会,书名是个美丽的错误,里面不是代码集锦。对于新手来说,养成一个统一的编码风格非常重要,是基础一步。
6 代码审查
把这个单独拎出来说,是因为对于程序员来说很重要。很多快速成长的公司没有这个步骤,建议大家能够坚持下来。
让别人审查自己的代码,可以得到更多的反馈,也是和同事交流的好机会;审查别人的代码,可以借鉴别人的经验和思路。通常情况下,代码审查比自己写代码的收获更大,对于新手来说更有价值。
只要你想做,不论形式是不是正规,都可以执行下去,最好形成团队的习惯。
7 一个时间段内只专注于一种类型的语言
如果你正在设计或开发网站,你将需要同时熟悉多种不同的语言。你可能会想同时学习所有的这些语言,特别是考虑到它们是如何相互关联的。
我想,在某种程度上,这是不可避免的。但如果你真的想快速提高,我建议你专注于一个特定领域的专业知识。你想更好地利用CSS?把你的重点放在这一点。尝试使用一个单一的HTML文档只使用CSS实现不同的布局。
CSS Zen Garden 是一个使用相同布局实现不同页面样式非常棒的例子。你也可以通过查找元素的列表,并把精力集中在里面。
举个例子来说,你熟悉CSS2,但想提升对 CSS3 的理解,你可以学习CSS3属性并逐一的实现它们。你可以阅读当前的 CSS3规范 ,还可以通过每个模块的学习来了解它在浏览器上能(或不能)做什么。
8 通过注释来写逻辑
说到编码,我有坚持很多原则和想法。其中一个就是,代码中95%都是逻辑。另一个就是从人类语言到编程语言,逻辑并没有改变。
这也就是意味着,如果你能在代码中写出来,也就可以用英语或者其他语言写下来。
9 良好的时间管理
迟到对于任何一家公司都是个头痛的问题。作为一个程序员,有时候为了完成任务常常不得不熬夜,从而导致第二天上班就迟到了。
但是我们忽略了这一点,我们的工作时间至关重要,因为在这段时间里我们要和客户同步,也要与团队其他成员一齐协作。
10 深入理解客户需求
仅仅了解单一用户的表面意思是远远不够的。一个伟大的程序员应该具备能把繁琐的要求理解并分解成项目的技术任务或子任务的能力,并且最后拿到的成果应精确满足客户的需求。
11 在编程之前准备好全套算法
案例、伪代码和流程图统统都是非常重要的软件开发手段。一个伟大的程序员如果没有先准备好算法,那么他是不会像傻小子一样兴冲冲地开工写代码的。写代码实际上只是一个编码任务。
12 理解并帮助定义验收标准
是否需要高层次测试脚本是由产品所有者决定的,但是一个伟大的程序员必须能够编写技术测试脚本,并且深刻认识到跳过这些步骤可能会带来的后果。
13 绞尽脑汁还是“NO”
假如抓耳挠腮还是找不出解决办法,我们该如何是好?一个伟大的程序员应该足智多谋,能灵活应对困境。
他们会去询问同事,或者是向团队领导者请教;在互联网上面搜索,然后耐下心来一遍又一遍地试验。相信山穷水尽疑无路,柳暗花明又一村,投降两个字从未出现在他们的字典上。
14 理解and帮助定义验收标准
是否需要高成次测试脚本是产品所有者决定的,但是,作为一个伟大的程序员必须能够编写技术测试脚本,并且也要认识到如果跳过了这一步骤可能会带来的后果。
4. 做程序员很多年,能够得出什么经验
一、综合能力很重要
进到这一领域逐渐,便是做一个程序猿,到后边变成了系统架构师,再到技术主管。帮我的启发便是,两极分化的程序猿发展前途是比较有限的。综合能力包含沟通协调能力,管理能力和组织协调能力有时比程序编写工作能力至关重要。有很多程序猿不擅于沟通交流,可是在我国社会发展,沟通交流很重要,和领导干部的沟通交流,与同事的沟通交流,和下属的沟通交流。不容易沟通交流的程序猿,终究是难以转型发展的,只有干程序猿,干程序编写,而程序编写是青春饭。

一路走来,感受许多 ,无论如何,挑选了程序猿这一岗位,就没必要后悔莫及,后悔莫及都没有用,愿天地全部程序猿都人生无悔,珍惜当下。
5. 一些公司以R1到R5来划分程序员的等级,每个等级代表什么
在某些公司中,程序员的等级从R1到R5依次划分,每个等级代表着不同的经验和技能水平:
- R1:实习生,通常指那些刚刚进入IT行业,可能还没有工作经验的在校学生或毕业生。他们可能正在接受培训,或者在导师的指导下进行项目工作。
- R2:工作一年,这个级别的程序员意味着他们至少有一年的实际工作经验。他们能够独立完成一些任务,并在资深程序员的帮助下解决更复杂的问题。
- R3:工作2-3年,这一级别的程序员拥有更为丰富的经验,能够处理较为复杂的编程任务,可能负责较大的项目部分,也可能开始担任团队领导的角色。
- R4:3年以上的工作经验,程序员到达这个级别时,通常已经能够独立领导项目,解决复杂的技术问题,并对团队的技术方向有重要的影响。
- R5:技术大牛,这个级别的程序员通常是公司内部或业界的专家,他们的技能和知识都非常深厚,不仅在技术上有所成就,而且在行业内享有盛誉。他们可能负责制定技术标准,领导重大技术创新项目,或在技术社区中担任关键角色。