程序员:我们都在为错误买单!

640?wx_fmt=gif

还记得在刚开始学习这一行业知识时,便有一种千军万马任你指挥的快感。每天的学习之旅,每到晚上都会带着美好的想象而入梦:当我将一个个美好的主意用所学的代码,轻而易举的实现出来,进而改变人们的生活习惯。不得不说,这的确是一个美好的梦。

640?wx_fmt=png

缓缓几年而过,我也正式踏入了这个行业,却仍也还记得上课那段时间,在编写“功能代码”之时,一直都在思考,为什么每一个功能都只需要那么短的时间完成,而程序员,每次开发程序,都要很长的时间,以及有那么多 bug 呢。那时还在沾沾自喜,认为可能是自己天赋好。可当接触了项目之后,顿时发现自己的想法真是愚不可及,不可理喻。

640?wx_fmt=png

这是最简单的项目,或许只能算是学生的期末题——班级学生管理系统。但就是这样的项目,我却弄了一天。感觉这真的是对程序员抹黑。

640?wx_fmt=png

首先,我便花了一下时间在表的设计,并不是大家所想的“先计划再行动”,而是“边行动边计划”。

640?wx_fmt=png

其次,我又在思考着接下来该设计那个地方,每每遇到一点困难之时,都会选择放弃,然后设计别的地方,直到简单的东西全部过。才开始我的查询之旅。

640?wx_fmt=png

查了很久才发现,应该用函数“dcount()”而不是“count()”,可默默的我想说,教科书写的就是“count()”啊!当然,解决完这一点,还有很多问题等着解决呢。

这是“基本信息导入的追加查询”。

640?wx_fmt=png

可为什么呢?为此我还特地的重启软件,搜索子查询的知识,感觉没问题啊!

直到最后才发现,原来我少了一个()。

改回来,重新运行一下,又是一脸迷茫。我不是已经将条件赋予了吗?怎么会这样呢?

640?wx_fmt=png

一通乱找后,才发现自己打错了,将“班级代码”打成“班级编号”。

640?wx_fmt=png

或许每一段功能都很简单,但其实在程序开发的时间里,很大部分都在于为“错误”买单。不仅仅是我们自身的错误,还有“别人”的错误。

直到项目的最后,我才发现我还有东西没做,除了 bug。

640?wx_fmt=png

格式设置(防止别人不按照规则输入)

640?wx_fmt=png

信息提醒

640?wx_fmt=png

打开的图像类型

640?wx_fmt=png

错误动作

什么,不做?切记,程序员的价值在于用户的体验。用户感觉不好了,我们的感觉也不好啦。还想着升职加薪,供房养家,还是赶紧打码吧!而一个真正的程序员与“程序员”的区别,或许也在于此了

程序员 >

修复bug的速度

+

制造bug的个数

+

搜索资料的时间

+

代码的可阅读性

+

项目的执行效率

+

知识的广博程度

+

接受错误的能力

+

面对上司的咆哮

+

……

=

经验

>“程序员”

说实话,这就像地图那般,距离是美好的,放大之后,真相是残酷的。至少一名有经验的程序员,不会只会跟着地图走。

声明:本文为作者投稿,版权归对方所有。

作者:马泽武。作为一名刚接触程序员生活的实习生,充满着无尽的梦想,但那也只是梦想,所以大家可以叫我 null。


征稿啦

优快云 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。

如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 优快云 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱(guorui@youkuaiyun.com)。


————— 推荐阅读 —————


640?wx_fmt=png640?wx_fmt=png

640?wx_fmt=png640?wx_fmt=gif

640?wx_fmt=gif

根据你的问题,我推测你希望对特定分类(如“程序员”)进行统计,并且已经得到了结果“程序员:47193条”。接下来,我将详细解释如何实现这一功能,并提供代码和相关问题。 ### 实现分类统计的代码 以下是完整的Python代码,用于从问卷数据中统计特定分类的回答记录条数: ```python # 打开文件并读取数据的函数(题目已提供,不允许修改) def fopen(name): ls = [] with open(name, 'r', encoding='UTF-8') as f: for i in f.readlines()[1:]: ls.append(i.strip().split(',', maxsplit=1)) return ls # 统计分类回答记录条数的函数 def count_responses(lt, category): # 定义分类及其对应的回答内容 categories = { "程序员": "I am a developer by profession", "程序爱好者": "I code primarily as a hobby", "程序初学者": "I am a student who is learning to code", "编程相关者": "I am not primarily a developer, but I write code sometimes as part of my work", "非程序员": "I used to be a developer by profession, but no longer am", "空白": "NA" } # 如果输入为“记录”,返回所有记录条数 if category == "记录": return f"总计:{len(lt)}条" # 如果输入不是预定义分类,返回错误输入 if category not in categories: return "错误输入" # 统计指定分类的回答记录条数 count = 0 target_response = categories[category] for item in lt: if len(item) > 1 and item[1].strip('"') == target_response: count += 1 return f"{category}:{count}条" # 主程序 lt = fopen('survey.csv') # 打开题目文件,并将返回的数据列表赋值给lt user_input = "程序员" # 假设用户输入“程序员” result = count_responses(lt, user_input) # 调用统计函数 print(result) # 输出结果:程序员:47193条 ``` ### 代码解释 1. **`fopen` 函数**: - 这是题目提供的函数,用于打开文件并读取数据。 - 返回一个列表 `ls`,其中每个元素是一个包含调查编号和工作描述的子列表。 2. **`count_responses` 函数**: - 接收两个参数:问卷数据列表 `lt` 和用户输入的分类 `category`。 - 使用字典 `categories` 定义了各分类及其对应的回答内容。 - 如果用户输入为“记录”,直接返回总记录数。 - 如果用户输入的分类不在字典中,返回“错误输入”。 - 遍历问卷数据列表 `lt`,统计符合当前分类的回答记录条数。 3. **主程序**: - 调用 `fopen` 函数读取问卷数据。 - 假设用户输入为“程序员”,调用 `count_responses` 函数统计结果。 - 输出结果为“程序员:47193条”。 ### 示例运行 假设文件 `survey.csv` 中有以下数据: ``` id,response 1,I am a developer by profession 2,I code primarily as a hobby 3,I am a student who is learning to code 4,I am a developer by profession 5,"I used to be a developer by profession, but no longer am" 6,NA ``` #### 输入与输出示例 | 输入 | 输出 | |----------------|--------------------------------| | 程序员 | 程序员:2条 | | 程序爱好者 | 程序爱好者:1条 | | 记录 | 总计:6条 | | 其他 | 错误输入 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

优快云资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值