程序是给自己看的还是给别人看的

【Unity】程序集 程序集是什么呢?主要介绍了程序集及其使用方法。 阅读详情

不知道各位程序员有没有用自己的姓名的拼音字母作为文件目录名或程序名的经历。从我对此观察来看,很多人都是这样做的。他们为什么这样做?我发现除了这样做可以醒目地找到目录和文件之外,更重要的是反应了程序员的私有性,他强调了程序的私有。我们常常会发现有一个有趣的现象:程序员从不主动地把自己程序给其他程序员去阅读(除非上级要求、工作移交),程序员也不想看别人的程序,抱怨看不懂别人的程序!程序员读不到别人的程序,程序员不想将程序给别人看-〉程序员就得不到别人对程序意见-〉程序员就不会改进程序的可阅读性-〉程序可读性低-〉其它程序员就看不懂-〉看不懂就不愿意看-〉看的程序就少-〉阅读水平降低。这样导致程序员只能读懂自己的程序,其阅读他人程序的水平普遍很低。

程序员一旦将程序变成了日记,一旦只给计算机阅读,这样一来我们这些外人就无法从程序本身中看到程序员的水平了。我们只能根据他们开发的项目、承担的职能等外在的表现来判断他们的水平了。而这些往往不如程序来得直接。我认为存在这个现象有以下原因:

第一、面子

程序员是很有自信的人群,上面文章我也分析过了自信的来源。这种自信反映在编程上是就会认为自己编写程序是最好的,即使知道自己编写的水平很差,也不会告知别人。这是程序员面子在作怪。他们不想进行比较和竞争,各自抱着自己的程序在那里自娱自乐。而且,业界也容忍这个现象。导致程序员理所当然地认为程序是自己编的是自己的,想给别人看就给别人看,想不给就不给。尤其是新手、那些自己感觉水平不行的程序员更加不愿亮出程序出来。怕丢面子!

第二、   保密

还有一些程序员则认为程序里包含了解决问题的算法和技巧,是自己的辛勤劳动,是自己的知识产权。如果给人看了,别人就会无偿地拿了过去,自己的劳动就会白费。所以,他们不愿意公开自己的程序。

如果真的这样,那我是非常理解的。但是,就我的经验来看绝大部分程序员和绝大部分程序都是很难到达可以达到知识产权这个层面的。回首各自编程有哪些是别人不能编的呢?有哪些是别人不能超越的呢?即使有点小的技巧也不必藏而不露吧。好的程序员是不会去背这些包袱去获取新的进步的。

说到底还是个程序员程序私有的思想在作怪。

第三、环境

 有时候我和程序员谈到这个问题时,他们认为不是自己不愿意给别人看,而是别人不想看,自己想看人家不给看。这里确实是一个环境问题,没有人要求程序员这样做。这个编程环境并不鼓励程序公开,不鼓励程序的优化,不鼓励程序的共享,反而使哪些编程水平差的得到了伪装,那些编程水平高的得到淡化。由于没有制度上、管理上的明确要求,这个问题就会长期存在。而我认为,程序员既然是个性张扬的群体,那为什么不能从自身做起,以给别人看的要求编写程序呢?不能以学习的态度请教程序写的好的同行呢?学习是获取的过程,也是将来给予的基础。只要有利于程序水平的提高,我们程序员都可以去尝试,用不了多久我们环境就会好起来。我们的程序交流和技术交流就会好起来,我们程序员的心胸就会开广起来。

 

就我而言,我编过无数个程序,但我从来没有保留过自己的程序,我的程序都是给我的同行看的、保留的。因为,我认为程序是给别人看的。虽然是自己写的,但是只有给别人看,才能发挥其真正的价值,就如同一篇文章只有给读者阅读,才能评价出文章的好坏。唯有给别人看,才能促使自己提高程序的可读性、才能获得别人的批评和建议、才能改进程序的不足、才能提高自己的编程水平。

我建议程序员要养成“程序不是给自己看的,是给别人看的”习惯,尤其是新手,从开始就要养成这个习惯,要放下面子,请别人看看自己的程序,请别人提提意见,这样自己的水平才能提高,同时,自己也要学着看别人的程序,学会向别人提出意见和建议,学会从别人的程序中学到好的编程风格和编程技巧。通过这两方面的努力,形成一个程序员之间互动的氛围,程序员的水平一定会有一个很大的提高。

下篇:《面向过程和面向对象的编程》

飞剪程序 追剪程序plc程序伺服程序 汇川系列 带注释 触摸屏程序 飞剪程序、追剪程序plc程序伺服程序 其中,PLC程序是飞剪追剪程序的核心,它可以控制整个飞剪追剪系统的运行。伺服程序能够精细地调节飞剪追剪系统的速度和位置,而触摸屏程序则提供了非常方便的操作界面,可以轻松地完成对飞剪追剪程序的控制和监控。总之,飞剪追剪程序在自动化生产中扮演着至关重要的角色,而汇川系列的飞剪追剪程序则是非常可靠和实用的选择。它包含了详细的注释、触摸屏程序、PLC程序、伺服参数设置和图纸,可以为操作人员提供方便,同时也能够确保飞剪追剪系统的稳定和可靠运行。飞剪程序 追剪程序plc程序伺服程序 汇川系列 带注释 触摸屏程序。 阅读详情

相关推荐

程序员转型之程序员这个职业到底怎么样?

深度长文,干货原创 这几年随着互联网行业的大火,大数据,物联网,云计算,人工智能等技术的广泛应用和相关概念的火热,导致程序员的薪资收入水涨船高,程序员高薪也经常被人提起,甚至有各种媒体动辄传出与程序员相关的新闻,以及嫁人要嫁程序员的段子。那么程序员,作为一份职业到底算不算一份好的职业呢?关于这个问题,我们不好直接得出结论,我们可以先从程序员的历史(看看上一代程序员的列子),和当下程...

dongdouzin的博客 1498

程序是写给人用的

程序是写给人用户的,在编写程序的时候应该多为用户考虑,而不是考虑如何实现简单。

李绪成的一亩三分地 2292

手把手教你用Verilog实现AT24C64的I2C读写(附完整仿真流程)

本文详细介绍了如何使用Verilog HDL设计AT24C64 EEPROM的I2C控制器,并配合ModelSim完成完整的仿真验证流程。内容涵盖I2C协议解析、Verilog状态机设计、AT24C64读写操作实现,以及仿真波形分析和调试技巧,为FPGA开发者提供了一套完整的EEPROM控制解决方案。

3c4x5z6v7b的博客 846

有没有办法保护自己的源代码,不给人看到

可以去下载一个微软的Windows s cript Encoder,它可以对asp的脚本和客户端javas cript/vbs cript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有s cript engine 5(装一个ie5就有了)才能执行。 

Priate 1031

模型参考自适应控制(MRAC):让PID参数动态优化

本文深入解析模型参考自适应控制(MRAC)技术,它通过实时调整PID参数,使控制系统能自动适应系统特性变化和外部干扰。文章详细介绍了MRAC的工作原理、数学基础,并提供了用C语言实现的实战代码示例,帮助工程师解决传统PID控制在非线性、时变系统中参数整定繁琐的难题。

tequila的博客 903

多台树莓派(主机)通信

在做无人机实验时,有个任务需要 两台无人机 或 无人机与小车 进行通信。 由于我们飞机上用了树莓派,相当于一台电脑,索性选用Socket网络编程。 条件:树莓派、局域网(手机热点或路由器)。需要通信的两台树莓派接入同一个局域网。 如若现场没有网络,可将树莓派配置为无线路由器,发射wifi。网上很多教程,注意一点是树莓派需要先用网线接入路由器再配置。 发送数据: # -*- coding...

LNL_LNL的博客 7689

代码是写给人看的,不是写个机器看的

《计算机程序的构造和解释》(简称为SICP) 这本书提到,代码是写给人看的,不是写给机器看的,只是顺便计算机可以执行而已。如果代码是写给机器看的,那完全可以使用汇编语言或者机器语言(二进制),直接让机器执行。   我觉得 高级语言(java,php等都算),之所以被称为是高级语言,是相对汇编和机器指令而言的,他们更加可阅读性,更加符合人类语言的阅读习惯。 低级语言让人看起来非常吃力,不容...

weixin_33910434的博客 623

从混乱到清晰:用QJsonObject重构你的Qt网络API数据解析层(避坑指南)

本文详细介绍了如何使用QJsonObject重构Qt网络API数据解析层,避免常见的JSON解析陷阱。通过安全解析模式、数据绑定和性能优化技巧,帮助开发者构建高效、健壮的解析逻辑,提升代码可维护性和可读性。特别适用于处理复杂嵌套的JSON响应数据场景。

weixin_29011667的博客 230

源程序、目标程序、汇编程序、编译程序、解释程序

源程序、目标程序、汇编程序、编译程序、解释程序之间的关系 翻译程序是这样一种程序:它能把用甲种语言编写的程序翻译成在功能上与之等价的用乙种语言编写的程序。我们把甲种语言称为源语言,把乙种语言称为目标语言。用源语言编写的程序称为源语言程序(简称源程序source program),而翻译后的用目标语言书写的程序称为目标语言程序(简称目标程序object program)。 如果源语言是汇编语言,目标

S.Mming 1万+

Mplus实战:如何用潜在类别分析(LCA)快速搞定心理学数据分类?

本文详细介绍了如何运用Mplus软件进行潜在类别分析(LCA),以快速处理心理学数据并识别内部异质性群体。文章从数据准备、Mplus语法编写、模型拟合与选择,到结果解读与高级应用(如纳入协变量),提供了完整的实战指南,帮助研究者从变量视角转向个体视角,有效挖掘数据中的潜在子类别。

weixin_28318011的博客 410

一文整理深度学习【深度学习linux的docker+pytorch+cuda+nvidia-docker+vscode配置】

docker+pytorch+cuda+nvidia-docker+vscode

Edward的博客 1335

matlab中主程序如何调用其它子程序,主程序怎样调用子程序

快速导读:Q1:vbs怎么调用子程序?你可以这样操作比如你要调用C:\m.exe Set ws = CreateObject("Wscript.Shell") Set fs = CreateObject("Scripting.FileSystemObject") ws.Run "c:\m.exe" 希望能帮助你!!!!!Q2:matlab中如何用主程序调用子程序形式必须有函数文件存在时,才能调用其...

weixin_28872035的博客 1万+

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

从通用到定制:营销Agent如何跨越数据鸿沟,实现对话SOP的个性化飞跃

丨汀、的博客 656

工作:三菱PLC R系列的程序、子程序及中断程序

工作:三菱PLC R系列程序扫描与子程序、中断程序Ⅰ、理论一、程序的执行扫描流程构成1. 初始处理及RUN时初始化处理2. I/O刷新3. 程序的运算4. END处理二、数据通信及输入输出处理(一)数据通信(二)输入输出处理及响应延迟1.刷新方式2.直接方式3. 刷新方式和直接方式的对比(三)刷新方式1. 详细内容2. 响应延迟(四)直接方式1. 详细内容2. 响应延迟三、程序的类型(一)初始处理类的程序(二)扫描类型的程序(三)恒定周期间隔触发类的程序1. 恒定周期间隔的设置2. 执行条件成立时■ 通过E

好记性不如烂笔头 6331

PyQt(Python+Qt)学习随笔:PyQt界面派生类构造方法中super方法的使用

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在《第15.7节 PyQt入门学习:PyQt5应用构建详细过程介绍》和订阅专栏《第二章、PyQt5应用构建详细过程介绍》中,老猿介绍界面派生类的构造方法如下: class MediaPlayerWin(QtWidgets.QWidget,Ui_UI_PlayerWin): def __i...

老猿Python 2711

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

连接程序,汇编程序,编译程序和解释程序

一.低级语言和高级语言 计算机硬件只能识别由0,1字符序列组成的机器指令,因此机器指令是最基本的计算机语言。用机器语言编制程序效率低,可读性差,也难以理解修改和维护。因此,人民设计了汇编语言,用容易记忆的符号代替0,1序列,来表示机器指令中的操作码和操作数。但汇编语言是面向机器的语言,其书写格式在很大程度上取决于特定计算机的机器指令。机器语言和汇编语言被称为低级语言。 人们开发了功能更...

weixin_42559560的博客 7178

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

如何区别python的主程序和子程序_主程序和子程序的区别

Q1:子程序和主程序有什么区别在计算机科学中,子程序(英语:Subroutine, procedure, function, routine, method, subprogram, callable unit),是一个大型程序中的某部份代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。这些代码通常...

weixin_39891317的博客 4305

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

源程序,目标程序,可执行程序

1源程序:程序可以用高级语言或汇编语言编写,用高级语言或汇编语言编写的程序称 为源程序。C语言源程序的扩展名为“.c”。 源程序不能直接在计算机上执行,需要用“编译程序”将源程序编译为二进制形式的代码。 2目标程序:源程序经过“编译程序”编译所得到的二进制代码称为目标程序。目标程序 的扩展名为“.obj”。 目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调用问 题,需要将各个目标程序与库函数连接,才能形成完整的可执行程序。 3可执行程序:目标程序与库函数连接,形成的完整的可在操作系统

weixin_43296982的博客 1万+

正确理解以下名词及其含义1源程序,目标程序,可执行程序2程序编辑,程序编译,程序连接3程序,程序模块,程序文件4函数,主函数,被调用函数,库函数5程序调试,程序测试

正确理解以下名词及其含义: (1)源程序,目标程序,可执行程序。 源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令 目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名 可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序 (2)程序编辑,程序编译,程序连接。 程序编辑:上机输入或者编辑源程序。 程序编译: 先用C提供的“预处理器”,对程序中的

bookanddream的博客 3169

我就是程序,程序就是我吗?

      我就是程序,程序就是我吗?    “我就是程序,程序就是我。”梁肇新先生在书《编程高手箴言》的封底上这样写到。看到这句话不竟有一丝共鸣和莫名的感动。回头看看,中国第一代的程序英雄里,梁先生是少数还在从事这个行业的战士。我是报着对他们敬仰将我带入这个殿堂的(虽然我说不清后不后悔)。梁先生出道很早,但成名却不算早,在那个年代中属于成名最晚的人(成名越晚的程序员所面对的挑战不比机遇少,想

C++是促进脑死亡的最佳方式 2706

汇编程序,编译程序,解释程序,链接程序

汇编程序(Assembler)编译程序(Compiler)解释程序(Interpreter)链接程序(Linker)

2201_75895603的博客 1161

翻译程序、汇编程序、编译程序、解释程序的区别与联系

翻译程序、汇编程序、编译程序、解释程序的区别与联系 翻译程序是指把高级语言源程序翻译成机器语言程序(目标代码) 的软件。 翻译程序有两种:一种是编译程序,它将高级语言源程序一次全部翻译成目标程序,每次执行程序时,只需执行目标程序,因此只要源程序不变,就无须重新编译,请注意同一种高级语言在不同体系结构 下,编译成目标程序是不一样的,目标程序与体系结构相关,但仍不是计算机硬件能够直接执行的程序。 另一种是解释程序,它将源程序的一句语句翻译成对应的机器 目标代码,并立即执行,然后翻译下一条源程序语句并执行,直到所

weixin_44971189的博客 1万+

抽奖程序web程序

使用html实现抽奖程序,没有后台,如果需要后续写个后台可以配置,没有过多的介绍,看代码吧 程序截图

枫叶 1160

编译程序与解释程序区别

目录 前言 一、编译程序定义 二、解释程序定义 总结 前言 人物简介: 小盼:一名英语翻译 小平:不会英语的boss 事件: 小平准备去漂亮国看拜振华的(著名小丑)闹剧表演,但是他不会英文,只能花钱去请翻译。 小盼给出了两种解决办法: 1.购买一本小盼已经翻译完成的英语书,可以直接借用这本书进行简单日常交流。 2.带上小盼一起,外国人说一句,他可以翻译一句,转告给平总,实时翻译。 这让曾是程序员的小平似乎想到了,解释程序与编译程序........

不负韶话 4736
上一篇: 编程语言有高低之分吗
下一篇: 面向过程和面向对象的编程
eom_n216
博客等级 码龄17年 167粉丝 50原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值