来自开发者技术前线 高级程序员,你需要养成这7个习惯

要有负责心

在我们的每日工作中,有一半以上时间是在解决各种Bug。高级程序员在面对这些Bug时会从多个维度思考,Bug出现的时间、系统环境、硬件版本以及软件版本等等。接着修复问题,严格自测,上线后观察,一直会跟进到底,把影响降低到最小。

他们会主动承担责任,为结果负责。面对各种问题时,不是第一时间为自己找借口,不是互相推脱,互相指责。而是,想尽一切办法解决问题,即使解决不了,也会给出最优选择。

责任心在程序员的职业生涯中,具有最重要的指导意义,也是成为高级程序员必须具备的素质。

2掌握代码调式技巧

众所周知,在移动互联网时代,基于市场和需求的变化,项目周期的变化也会很快。有时一个月的工作计划,会缩短到2个星期。面对巨大的项目压力,程序员的代码质量会有所下降。

这时调试技巧就尤为重要。一行代码的输入输出要清楚,一个函数的输入输出要明确而具体。高级程序员会在函数的开始和结束输出Log,把所有的参数和返回值打印到日志系统,便于追踪。在解决问题的过程中,使用开发工具一行一行进行调试,实时观看参数的变化。

高级程序员清楚的知道他写的每一行代码在项目中的作用和意义

3不要重复造“轮子”

我们对代码的记忆最多只有2天,如果代码没有注释说明,也许第二天一早就会忘记它的具体意义。30天之前写的代码相信没几个人会记得。

重复是怎样发生的呢?

1.程序员们没有意识到他们在重复。

2.程序员们偷懒,他们重复,因为那样似乎更容易。

3.同一个团队的几个人重复同样的信息。

新需求持续进行迭代,需求的变化导致代码需要重新修改。这时的程序员也未必是当初那个程序员,导致隐藏的问题产生,产品到用户手上随时可能会爆发问题。

高级程序员会尽力避免开发重复的代码,组装成公共组件库是最好的选择。

4尽量使你的程序解耦

全球首位计算机博士David Wheeler曾经说过这样一句话,“计算机科学领域的任何问题都可以通过增加一个中间层来解决”。这句话诠释了解耦的重要性。网络七层协议的设计,软件开发的设计中,数据层、服务层和应用层,无不参考这位伟大计算机博士的思想。

生活中随处可见这样的例子。共享单车的出现,就是对我们出行的解耦合。你要做的就是在你需要的时候去使用,不需要了解更多的细节,出现问题了也不需要你去维修,只管用就好。

高级程序员开发的代码,既屏蔽细节,又提高了灵活性。

5适当的进行重构

重构是改善现有代码的设计。在给外部提供接口不变的前提下,随着时间的推移,在内部重写、重做和重新架构代码。

什么时间做最好?做的太早,看不出有做的必要性。做的晚,耗费大量的时间周期,会影响当前的项目。

初期的系统架构设计以简单、易用为主。在创业公司3、5个人一个小队,开始了一个项目。在人力资源匮乏的条件下,首要任务是先把系统搭建起来,短期实现基础版。后期随着需求的增加,系统变得庞大。早期的架构明显有些弊端,不能跟随项目进行发展。这时候重构就势在必行了。

高级程序员清楚在什么时间点进行重构。在不影响外部系统的情况,重新开发,提供更稳定的服务。

6积累自己的代码库

如果你做了多年的软件开发,没有积累自己的代码库,没有做好笔记。面对新的项目,所有代码重写一遍。无疑了浪费了很多时间。网络上也可以下载到相关代码,但随手的一个小功能,如果在自己的代码仓库里积累好。也省去了搜索的时间。

高级程序员会积累自己的代码仓库

7实践、实践、再实践

有很多原则和道理我们听过无数遍,但是从来没有去实践。如果不经过几十万行代码的锤炼。很难达到一个高度。外部环境的支撑很重要。但是,如果没有这样的机遇,就需要我们创造条件去寻找。

高级程序员会不停的实践,总结,再实践!

时间: 2024-11-29 09:04:58

来自开发者技术前线 高级程序员,你需要养成这7个习惯的相关文章

如何成为一个C++高级程序员

C++这门语言从诞生到今天已经经历了将近30个年头.不可否认,它的学习难度都比其它语言较高.而它的学习难度,主要来自于它的复杂性.现在 C++ 的使用范围比以前已经少了很多,java.C#.python 等语言在很多方面已经可以代替C++.但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏.高效的服务器. 现在学习 java.C#等语言的人数远远高于C++,主要是 C++ 的入门门槛太高,可能学习了一段时间后还做不了什么东西,导致信心大受打击,进而放弃. 我想

java 面试,java 后端面试,数据库方面对初级和高级程序员的要求

本内容摘自 java web轻量级开发面试教程 对于合格的程序员,需要有基本的数据库操作技能,具体体现在以下三个方面. l  第一,针对一类数据库(比如MySQL.Oracle.SQL Server等),会基本的增删改查操作,会用一些基本的函数,会编写存储过程触发器索引等工具. l  第二,知道一些基本的对项目开发有帮助的概念,比如范式.索引.分区等. l  第三,能编写一些相对复杂的SQL语句,比如带连接.带子查询.嵌套查询等. 对于高级程序员,用过的数据库种类当然是越多越好,此外,还要掌握如

作为高级程序员应具有的基本素质

那么作为高级程序员,以至于系统分析员,也就是对于一个程序项目的设计者而言,除了应该具备上述全部素质之外,还需要具备以下素质: 第一,需求分析能力 对于程序员而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者,他们不但要理解客户需求,更多时候还要自行制定一些需求,为什么这么说呢? 一般而言,进行研发任务,也许是客户提出需求,也许是市场和营销部门提出的需求,这时候对于研发部门,他们看到的不是一个完整的需求,通常而言,该需求仅仅是一些功能上的要求,或者更正规些,可能获得一个完整的用户视

细说高级程序员的几个成长阶段

转发自:http://chuansong.me/n/1522918 软件开发是一个奇怪的行业,市场远远供不应求.这是一个已经存在多年的问题,而且随着时间的流逝,愈演愈烈. 我们严重缺乏能够满足需求的人才.这个行业相当年轻.大多数软件项目是失败的.几乎所有的项目都会超出预算.我们解决问题的最佳指导方针可以归结为——“用一些通用方法去解决问题,当然这些方法常常不管用,于是,唯一能做的就是不断地尝试,逐个看看是否奏效”. 现在我们把淫浸代码时间超过3年的开发人员称为“高级开发人员”.这些人通常把持领导

高级程序员和低级程序员的区别

低级程序员认为自己与高级程序员的区别, 主要是高级程序员任何功能都能编码实现, 编码速度快, 代码无 bug. 正如一惯的那样, 低级程序员之所以低级, 正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质. 所以, 低级程序员总结出的一切东西, 你都可以大胆的忽略. 所以, 我们来听听高级程序认为自己与低级程序员的区别是什么. 高级程序员之所以高级, 在于他们认识到代码 bug 是不可避免的, 有千万种理由可以导致 bug, 但他们可以在设计和逻辑上保证(追求)滴水不漏, 并用逻辑的

成为高级程序员的10个步骤

成为高级程序员的10个步骤 步骤1:奠定基础 <The Pragmatic Programmer >对于我们掌握软件是一个很好的起点.该书总结了高水平的实践探索.这与我们使用的是什么语言/技术无关.无论你选择的是哪种技术堆栈,其主要原理都是一样的. 步骤2:掌握你的编程语言 你以后每天需要面对哪种编程语言取决于你今天选择的技术.但是编程语言总有主次之分.例如,Ruby on Rails 开发人员主要使用 Ruby,AngularJS 开发人员大多数时间用的是 JavaScript.确定编程语言

开发者服务商店:程序员的6个好习惯

一个伟大的程序员需要具备哪些特质呢?也许大部分人回答的是逻辑.机智.耐心和勤奋.当然,其实这个问题并没有标准的答案,但是除了这些特质,习惯也是非常重要的,而这个特质可能在已经进入正轨的团队组织中才得以窥见.开发者服务商店就来给大家总结一下一个伟大程序员的6个好习惯. 好的时间管理 你是否经常遇到迟到的问题,对于任何一家公司迟到都是很让人头疼的.作为一名移动开发程序员,有时候不得不熬夜加班,从而导致第二天上班迟到啦但是,我们忽略了一点,程序员的工作至关重要,因为在这段时间里我们要和客户同步,也要和

110本经典编程技术书_程序员必备_菜鸟窝 资源收藏

下载总目录列表如下: [.NET]108<深入理解C#(中文第三版)>.pdf:  下载[.NET]109<NET CLR via C#(第4版)>.pdf: 下载[.NET]110<精通C#(第6版)>附源代码.zip: 下载[Android]1<Android编程权威指南第二版(英文版)>含源码.zip: 下载[Android]1<Android编程权威指南(第2版)>.pdf: 下载 https://itdocs.pipipan.com/f

wwwhy76888com高级程序员学名工程师

高级程序员学名工程师.到了这个level,英文名可改叫做engineer或developer.此时你的功力开始增强,这与你平时的积累努力是分不开的,祝贺你- 此时的你不仅可以完成任务,开始注重代码的质量,能够写出工业级的代码. 你的经验可胜任模块级的系统设计,承担完成较为复杂的技术,能有效的自我管理,有帮助别人快速解决问题(trouble shooting)的能力. 此阶段你需要经历到7.8年左右的体验,中间要经历一段深刻自我历练的过程. 有时给人致命一击其实是心里的小蟊贼.一般人在5年前后遇到