低级程序员和高级程序员的区别是什么?

如题所述

低级程序员和高级程序员的区别如下:

1、高级程序员之所以高级, 在于他们认识到代码 bug 是不可避免的。

有千万种理由可以导致 bug, 但他们可以在设计和逻辑上保证(追求)滴水不漏, 并用逻辑的百分之百准确性还减少代码 bug。严谨的逻辑能力是高级程序员区别于低级程序员的最主要原因。

2、不仅在于他们写出了逻辑上不完备的系统, 而且还恶劣地引经据典来做错误的辩护. 但他们引用的经典是不合时宜的(不能支撑他们的结论)。

正确的做法应该是假设上面的每一行代码都可能中断执行, 然后进行相应的对策. 正如狭义上的网络协议其实是广义上的交互协议, 我们可能把 TCP/IP 协议上的许多思想和机制应用到系统间的交互上来。

3、低级程序员和高级程序员的区别在于逻辑和抽象。

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-21
低级程序员认为自己与高级程序员的区别, 主要是高级程序员任何功能都能编码实现, 编码速度快, 代码无 bug. 正如一惯的那样,
低级程序员之所以低级, 正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质. 所以, 低级程序员总结出的一切东西,
你都可以大胆的忽略.

所以, 我们来听听高级程序认为自己与低级程序员的区别是什么. 高级程序员之所以高级, 在于他们认识到代码 bug 是不可避免的,
有千万种理由可以导致 bug, 但他们可以在设计和逻辑上保证(追求)滴水不漏, 并用逻辑的百分之百准确性还减少代码 bug. 没错,
严谨的逻辑能力是高级程序员区别于低级程序员的最主要原因.

可以举一个简单常见例子: 网络购票终端的开发. 当然, 比低级程序员还低级的程序员做不出来. 我们先看看低级程序员是怎么做:

order = Db::new_order();
ret = Network::place_order(order);
if(ret == TRUE){
order.finish();
}else{
order.cancel();
}

你看到的没错, 这段代码逻辑清晰, 一般 90% 的情况都能正常工作, 有的甚至能达到 99%, 在某些特定的时间段, 这样的系统 100% 能正常工作(几乎是完美的系统).

你可能发现了问题: 网络是不可靠的, 网络请求可能发出去了, 也可能没发出去; 对方可能收到了, 也可能没收到; 响应可能由对方发出去了, 也可能没发出去; 你可能收到了响应, 也可能没收到.

但是, 低级的程序员会这样解释: 我用的是 TCP 协议, "TCP 是一种可靠的传输协议", 哈! 可笑的照本宣科. 这种低级程序员,
不仅在于他们写出了逻辑上不完备的系统, 而且还恶劣地引经据典来做错误的辩护. 但他们引用的经典是不合时宜的(不能支撑他们的结论).

正确的做法应该是假设上面的每一行代码都可能中断执行, 然后进行相应的对策. 正如狭义上的网络协议其实是广义上的交互协议, 我们可能把 TCP/IP 协议上的许多思想和机制应用到系统间的交互上来.

简单来讲, 可以加上就是重试(超时重传)和对账(请求确认). 所以, 逻辑上更准确的代码应该是这样:
Process_0{
order = Db::new_order();
}
Process_1{
order = Db::find_new_order();
ret = Network::query_order_result(order);
if(ret == NOT_FOUND){
ret = Network::place_order(order);
if(ret == TRUE){
order.finish();
}else{
order.cancel();
}
}
}

Process_0 和 Process_1 是相互独立的处理逻辑.

Process_0 即处理用户交互, 接受订单.
Process_1 请求服务提供商进行对账. 进行采购下单(补单), 更新订单状态.

上面的代码逻辑实现了重试(超时重传), 对账(请求确认). 但上面的代码在逻辑上还不是 100% 准确的, 例如, 如果对方系统误报呢? 但其它的异常情况可以根据实际情况来忽略. 如果你发现这段代码还有重要的逻辑上缺陷, 欢迎告诉我.

记住, 低级程序员和高级程序员的区别在于逻辑和抽象.

低级程序员和高级程序员的区别是什么?
3、低级程序员和高级程序员的区别在于逻辑和抽象。

低级程序员和高级程序员的区别在哪?
低级程序员认为自己与高级程序员的区别:高级程序员任何功能都能编码实现,编码速度快,代码无bug。正如一惯的那样,IT培训认为低级程序员之所以低级,正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质。我们来听听高级程序认为自己与低级程序员的区别是什么。高级程序员之所以高级,在于他们...

程序员分为六个等级
1、初级程序员:初级程序员是指那些刚刚入行、技能水平较低的程序员,一般需要在工作中承担一些基础的开发任务,并通过不断学习提高自己的技能。2、中级程序员:在初级程序员的基础上,中级程序员需要具备更多的实际开发经验和更高的技能水平,能够独立完成一些中等难度的开发任务。3、高级程序员:高级程序...

初级程序员与高级程序员有什么区别
总而言之,初级程序员和高级程序员的区别主要体现在技术能力、经验、职责和角色上。两者在软件开发过程中都扮演着不可或缺的角色,但各自承担的职责和工作重点有所不同。

初级程序员与高级程序员的差别在哪儿?
初级多在写代码,高级多在设计代码;初级多在解决一个问题,高级多在解决一类问题;初级多在考虑技术问题,高级还要参与业务上的需求;初级工程师只管接需求,导致自己忙不过来,高级工程师会砍需求, 用自己得经验告诉产品这个需求不需要,告诉设计师这个交互没必要;初级工程师可能做完一个项目就完了,...

现在的程序员还有高级和低级之分吗?
初级程序员,只会编程,根据他人分析出来的UML图做程序 中级程序员,会点分析或测试 ,也开发点程序,不过是开发出来叫低级程序员使用 高级程序员(软件工程师或者软件设计师):架构系统,开发平台,系统分析等.

初级程序员、中级程序员、高级程序员最大的区别是什么?
能力。一些程序员刚刚进入一个单位,学习的东西还不多,他们的能力差距要比老员工差很多。经验。有的程序员,自身的能力是提升上去了,但是,由于呆的时间相对比较短,经验还不是很足,面对一些疑难杂症,还是不能解决。薪资待遇。因为能力不同,所以获得的回报也是不一样的,一般高级程序员的薪资都是...

计算机考试一级和高级的区别是什么啊?
区别是:1.两个证书是两个不同的考试通过后获得的,因此得到的证书也不同。2.初级证书是指全国计算机软件专业技术资格和水平考试(人事部和信息产业部)通过后获得的证书。从1990年2月份起,国家人事部将这项考试作为计算机应用软件人员专业技术任职资格的凭证,在全国首次实行以考代评。国家人事部和信息...

一般对于java技能等级的区分,初级、中级、高级的划分
高级程序员能够独立开发完整的项目,他们不仅在技术上达到了较高的水平,还在项目管理和团队协作方面表现出色。高级程序员能够设计和实现复杂的系统架构,对技术选型有深入的理解,能够解决各种技术难题,具有较强的创新能力。不同阶段的程序员在技能上有所区别,但他们都应持续学习和提升,以适应快速发展的...

程序员等级划分标准
通常是2-3年工作经验的同学。熟练掌握工作中使用的技术栈开发业务,了解一个需求从开发到上线整个生命周期,并对各个环节负责。具备基本的逻辑分析、问题分解、归纳总结等能力,了解基本的数据结构和算法,写代码比较熟练。高级程序员一般具有独挡一面的能力,能够高质量的完成工作,能把握一个系统团队的...

相似回答