同学,你这样写代码会找不到工作的

作者: epcdiy分类: 职业职场 发布时间: 2020-11-29 20:35:22 浏览:815779 次

同学,你这样写代码会找不到工作的

萨卡萨卡班班算珠珠:
程序员最恨两件事 1.看没有注释的代码 2.给代码上注释

【回复】看没有注释的代码就像 从一堆奥利给中查出你昨晚吃了什么[无语][抠鼻]
【回复】回复 @给我一个杠杆拯救世界 :这就是看前程序员留下的不加注释的代码的感觉[热词系列_知识增加]
【回复】我就不一样了,我注释比代码多[doge]
专偷少女初吻哦:
程序员隔了一天看到自己写的代码,说了一句,这特么谁写的这么烂[doge]

【回复】这事我干过……对着屏幕骂是哪个s13写的,后来一看提交记录是我自己( ´_ゝ`)
【回复】…表示我从来不用驼峰法,而是下划线分类+拼图……明显比驼峰好用,批量搜索还特别快。
【回复】回复 @丫嚏 :难道不是Google吗,四级那点词汇量能正确命名真挺难的
gh今天挨揍了吗:
刚上大一时候学C语言,老师就经常以调侃的口气说一个优秀的程序员代码应该这样写,然后他就把大括号都做了填充,一些变量名改了(因为那时候初学,代码也就十几行,改的很快)。我们也好奇问他,这不都一样吗。老师就说虽然代码是机器跑的,但最终也是要给人看的,你要做的是如果保证别人也能看懂你写的东西。"优秀的程序员"这个词就贯穿了这学期的C语言,到现在让我一直有一个良好的习惯。

【回复】[尴尬]为什么我一直理解的都是要给机器跑,而且还要想办法让机器尽量少跳转减少机器指令周期数[尴尬]至于阅读,加详尽注释就是了,反正机器不管注释是什么内容
【回复】回复 @蓝色星雪 :C++的编译器自带编译优化,调用了O3优化之后很多小的地方写成什么样效率是一样高的,不如写的可读性好一点了,但是其他语言就另当别论
【回复】回复 @rainingcity :不这么认为,很多情况下编译器也优化不了,比如递归函数,如果牺牲可读性的话完全可以用while或者干脆goto来实现,而函数编译器再怎么优化,都省不了保留现场恢复现场的各种压栈出栈的浪费十分机器指令周期的操作。不信你可以用递归函数搞一个递归,再用while或者goto搞一个同样的,编译以后再反汇编debug一下看看两种实现方式的机器指令周期的消耗,不夸张的说,不是很复杂的算法能有四倍以上的差距
地方健康减肥:
“把编程教成了高数” 总结的太好了[OK]

【回复】算法竞赛中其实会用到不少数学的,像贪心的证明,dp的动态转移方程。竞赛编程到后面(大约提高+)时基本上数学的占比就很大了
【回复】像有些题目思路的证明甚至会用到完全剩余系,中国剩余定理等数论
【回复】回复 @_Gliese_ :是的,可惜别人看不懂里面的算法多么秒[大哭]复杂度之间的区别别人也体会不到
纳克萨玛斯の波棱盖儿:
同感!不光规范,还有注释。以前练习时候写了个微信调用聊天机器人自动回复信息给女朋友的程序,一个月之后看不懂写的啥玩意儿,当时的思路是什么完全不记得,只知道运行结果是这机器人比我还钢铁直男,她觉得我在敷衍就分手了[呆]

【回复】但是你确实在敷衍啊[doge]
【回复】回复 @叶却邪 :没办法,老在上班发消息,高峰期时候忙的要死,10分钟不回就是不爱。我原先好歹还是个组长呢,被她硬是给折腾没了,还把我主管给气的要把我开除[呆]所以后面就写了个自动回复+聊天的智障AI…
【回复】有一说一钢铁直男干不出这事
我就是路过的刘小莹:
我就是大学学了c语言被老师搞的什么a=b=c弄的惨不忍睹最后只得了67分,之后也因此一点也没摸过c语言1年时间,后来玩单片机自己重新捡回来了也知道c语言其实根本没那么恶心和麻烦,而此时我那个c语言打了90分的同学反而基本已经看不懂单片机的程序代码了。这说明该死的学校应试教育根本没考虑你真正工程上怎么用c语言,老师教完能领工资就完事了,顺便用偏门的试题欺凌一下学生。

【回复】我不同,我从高往低学:Java->c++->c->汇编->数电,直到接触数电我才真正理解了程序,不知道一些人是怎么不学这些基础就会了的,可能是我比较傻
【回复】回复 @紫凌华歆音 :不是这个意思,你学高数可能大部分都用不上,但小部分知识还是能应用到学习工程里。但c语言那些牛角尖的东西根本用不上,就是为了考试而存在的。对于我们机械自动化的来说c语言花大力气讲的scanf我们几年都没在代码里见过,单片机根本用不了这玩意,而它却是我们考试的重点。。。都上到大学了分了专业凭什么还要教学与工作脱节,这不就是教育局领导的锅吗?
【回复】回复 @应该是春天 :那啥你是有点误解吧?c语言其实很基础的,都是大一c语言大二大三数电模电。汇编一般没人用来编程的,反而是那些为了追求极致运行速率的单片机大佬才用或者是玩各种程序逆向的大神才用学的东西。你的学习历程好像还真没反。
江边钓鲸客:
确实,当时我们学校是用的自己老师编写的教材,有的课程要求比较简单的同学是学的谭浩强的书,他们来问我问题,真的我就有种这是个问题?这也是个问题?的疑惑,诸如up主举的例子比比皆是,这种风格影响了许多人,我后来去参加一个技术类的社团,在面试时候也是在问i++和++i这类的问题,但是真的到了做比赛做项目时候才会发现,我多写一两行,用最简单的方式去写,不去搞那些花里胡哨,注释用大白话写的明明白白,非常详细,无论是写时候消耗的脑细胞还是之后重新读时候消耗的脑细胞,都是数量级的减少,认真的吧变量名定义好,即便是不像up主要求的那么严格,但是只要要有自己的逻辑在里面,所有变量按照一定的规律去定义,我读读队友写的代码,用我们队员的名字去定义变量,抬头他看到什么就能用什么去起变量名,看了他的代码真是一种折磨,

【回复】回复 @遗忘ビ :我感觉提高不了太多,有些人写代码就是单纯考虑实现功能,别的都不管。照我们微机原理老师说的,这种就是缺德。我们宿舍有个同学,编程能力挺强,但是变量名拿到什么就用什么,有一次题目比较复杂,他把26个字母用了个遍,要不是他还写点注释,那代码他自己都看不懂。
【回复】我们那个c老师说代码越少越说明你实力高?我成功把一段四行的逻辑用三目压成一句话,然后我看了5秒手机再看这个代码,我写的什么玩意
【回复】哇,这不就是我吗,我在学这编程的时候就深受读代码痛苦影响,自己就不自觉的写注释,弄详细解释,生怕自己以后回来看代码把自己栽了[笑哭]
琢石成器:
一个完全不懂c的人,从c++primer开始学? 你们这帮人,你们这帮从谭浩强教材入门,然后看了c++primer又回头批评谭浩强,你们真的以为c++primer适合作为入门教材? 自大,容易让人忘记许多东西,包括入门前的茫然和迷惑,许多等你入门之后觉得理所当然的东西,可能都是入门前让你觉得困难的东西。 中国不少写代码的,都缺少基本的谦逊,csdn上一帮人,不管他们是争论c++跟java哪个更好,还是看他们比较哪本书更优秀,你都可以从他们的言语中看出4个字:我很牛逼 谭浩强的书可能不是那么规范,但你可以看出老人家在努力帮你讲清楚他自己认为需要讲透的地方,是一本适合入门的编程书籍。 什么叫入门? 就是学会用特定的模式去思考问题,学会用特定的方法去解决问题。 从这两方面而言,谭浩强可以说是已竭尽了所能,你确定c++primer是以这两点为出发点讲解c++的吗? 有一点你说的没错,c++primer可以当字典用,但你想过为什么吗?因为它是一本详细介绍c++标准的书籍,类似intel的指令手册,是面面俱到的东西,这种东西能适合初学者就奇了怪了。 曾经不止一次在网上看到有人骂皇帝不近人情,当个皇帝了不起啊,为什么搞得生人勿近?伴君如伴虎? 因为皇帝知道人性自大啊。 一个曾经见到个县官都发自内心尊敬的穷秀才,随着他官位越来越大,随着他对皇帝的渐渐熟悉,总有一天他会想:皇帝也就那么回事,若是我,肯定比他当的好 这,就是人性。 同样的,谭浩强在如今的你眼中肯定不算什么,但请你别骄傲错了地方。

【回复】这要看你是学语言还是学开发了,换句话讲,很多语法特性是在实际工程里不会涉及到的,就拿C举例,有些系统调用的指令逻辑相同但在系统实现上却有微小的差别,这样的东西在程序开发上大概率是体现不出来的。所以我一直认为想要真正学好C,就应该和Linux操作系统一起学,否则永远都只停留在表面
【回复】回复 @铁衣书生 :我就知道会有你这样的人跳出来,抓住“初级”这个词不放。 老外谦虚的时候不多,这本书名字起得还真就很谦虚! 那本书一点儿也不初级,换成实体书比谭浩强的厚几倍,网上介绍这本书的时候,还特别强调要有基础的人才适合阅读这本书。 有个primer就适合入门了,再加个plus那岂不是入门神书了? 只是很可惜,加个plus,一样不适合入门。特别像微软官方推出的精简操作系统,你说它没精简啊,它的确小了,你说它精简了吧,它很多东西就是不愿意丢掉,总让你感觉用它的精简版还不如用它的完整版 而且,老外的书有两个特点 第一,他从来不会考虑我这个书一个知识点一个知识点的讲,非常详细的讲,书看到一半,认认真真看的,但有关知识体系依然是零碎的,不额外学习的话,仍然不能完整的写出一个有体系的程序。你非得把全书看完,知识体系才能补全。 第二、英文的思维方式跟中国人是有不同的,许多书虽然翻译了,却时常让人读着读着就有一股定语从句的味,总感觉哪里不对。而且往往这个时候,老手又会告诉你,中文版不行,你应该直接看英文版!
【回复】是的,老子高中就是上了他们的当,高二买了本primer,看的我人发蒙,母语不同的人读起来就是难受,有些人又说看英文版的,我就奇怪了,我连中文看的都难受,看英文我就能起飞吗?
彩虹-二仙桥:
看着都会,一敲就跪,没人知道我的心碎

【回复】写个毛线的代码,随便写写被人针对,写的完整又会被抄袭,写一辈子也没什么是自己的
【回复】回复 @21635499649_bili :写代码就是这样啊,有时候偷偷摸摸才能维持得了生活这样子啦
【回复】回复 @永远爱Caprice :要学会节省自己的时间(有模板就直接套模板改)[奸笑]
一边走一边找路:
进了大学学习编程,也是因为数据结构与算法的问题难倒了我,我在高数上吃了巨大的亏。但是为了方便自己的娱乐生活,我疯狂的自学服务器运维和网络工程,逐渐的变成了运维小伙[喜极而泣]。虽然运维一开始没有程序吃香,但是很符合我自己的节奏,做起来感觉很开心,没有算法、文档等东西给我带来压力。不过最近学习安卓app,渐渐的找到了一丝丝的感觉,能学我就多学点

【回复】回复 @kotlyne :可以自己买点设备,然后网上随便挑一些开源服务项目自己搭,然后多多折腾
【回复】回复 @空の下のニャン-夜猫 :我是搞网安的,这种事不要拿出来说,正确的做法是告诉学校,拿点分啊,奖啊,表扬以后找工作都很方便,这样学校较真起来,其实是违法的。
【回复】回复 @奔赴理想国 :她说了啥
沙盒梦想:
看这风格明显是信息学竞赛的风格。在赛场上能简短的命名一般都简短。压行也很丧心病狂,因为你打的快1分钟你就多一分钟思考算法/下一个问题的时间。

【回复】回复 @MasterOfTimeEj :竞赛的话一遍不过还得回头查错修改这种事一旦发生基本上就是下回再努力了吧[doge]
【回复】可是不规范的命名你要是一遍不正确过不了,再回来查错可能你就把自己绕进去了,更容易翻车。
【回复】回复 @MasterOfTimeEj :竞赛的代码一般不会有一道题超过一百行,平时各种简短命名都是自己刻在dna了。而且命名复杂了不适合竞赛高速阅读修改算法。
呵呵呵GZC:
最恶心的就是优先级的题目,我初中的pascal老师教我只要是不明确优先级,一律加括号,他不香吗[吃瓜]

【回复】就是,运算符花里胡哨的优先级搞半天,增加代码“难读性”,打上括号谁都能看明白
【回复】折腾优先级完全是脑子进水,1是c的15级优先级根本记不住,2是编译器的结合顺序也不一样很可能移植的时候造成隐性bug。而且,换个语言运算符优先级又变了,学这种东西有什么用嘛
【回复】回复 @源音灵 :我的pascal老师教的是宁可多写两行也不要搞这些花里胡哨的简写缩写
KTs3:
最讨厌那种代码里面炫技的。。。自己也就半桶水,临时看个高级特性或用法就拿来用,但为什么要用它,是不是只能用它,一点都不知道。反而把代码搞得很难看懂[捂脸]

【回复】这玩意开源里很常见,你copy过来就是这样了,你以为是炫技,人家是在榨干性能,我也会去复制一些算法。没bug用就是了,你要说理解[歪嘴],特别是一些溢出检测,上下限内缩,优化算法不香吗
【回复】回复 @萨满大人_ :我说的是我某个同事,他几斤几两我不知道?真是大神,能跟我一个办公室?
四叶草的终末:
&inciude 《konodio.da》 imt mian<> 【 imt double=4: priintf{“$d”,double*6}: retun o 】 为什么我还是找不到工作?[滑稽][滑稽][滑稽][滑稽][doge][doge][doge]

【回复】谢谢,已经想杀人了[笑哭]我们这边新来的这届实习的真就和你差不多了,我看到他们就来气,缩进不注意,分成2行的打成一行,注释不写,中文标点,大小写不分,只会用int
【回复】最离谱的是我没想到居然还有人对=和==分不清赋值和计算的
洒水车的音乐:
这跟谭浩强没有什么关系,因为谭的最新版教材的前言已经说得很清楚了,只是培养思维,带小白入门,兼顾非计算机专业的学生,有更高要求的去看其他书,按工程项目的方式编教材只会吓退学生

【回复】谭浩强本身没问题,只是很多大学把他的书当成了主教材
【回复】但是习惯非常重要,要学一定要好的习惯开头,我大学的时候班上同学写的就是那种代码,可读性极差,我自己拿C Primer Plus自学,好懂的很,这本书由浅入深,不要求一次都看懂,循序渐进,不知道比那种国产教材强多少
【回复】为什么感觉按工程项目的方式编教材会比这容易懂多了,工程里干的活真的就是拧螺丝,课上学的全还回去了已经
小秋main包:
其实 up 主说的话通篇没啥问题,我作为一个之前打过竞赛的人也很赞同,但树的这个靶子太不适合了。竞赛的目标与工作或项目的目标有很大差异,视频以竞赛代码作为靶子就会显得很ky甚至有种没事找事的感觉。 如果换一个例子,我愿意赞同并点赞。

【回复】确实引用的案例不太好,我先会进行一次初步修改,去除相关人物信息,同时我会搜寻其他典型案例,并且替换掉,本人仅以工程的角度点评代码,不针对竞赛,非常抱歉!
【回复】回复 @epcdiy :小白学C/C++的话,还有一本《好学的C++》我觉得可以试试。这本书我是高中买来自学的,如果是从零开始的话比学校教材要好很多。我基本用这本书高中周末就学完大学非计算机专业的C++的内容,而我在大学计算机课上真的见过班里顶尖的同学被学校教材搞得该怎么做数值计算都不明白[捂脸]
【回复】我觉得竞赛代码风格很有问题,学竞赛的人终究是要工作的。养成习惯后在工业生产中怎么改?只会写自己一个人懂的代码,是不合格的。即便是写竞赛代码,我也要求我的学生,变量名要规范,缩进一个不能少。习惯成自然。
epcdiy:
谭浩强《C程序设计》(第5版)前50页错误汇集 http://www.docin.com/p-2291561077.html 谭浩强《C程序设计》(第四版)错误不完全汇集 https://github.com/martinwu42/fk-thq

【回复】我们单片机基础书籍单片机引脚接错了,代码更是问题多!单位都打错[妙啊][妙啊][妙啊]
【回复】这命名fk-thq xswl[喜极而泣]
【回复】回复 @luckywwb :我们java书作者算数右移跟逻辑右移分不清楚,运算结果都是错的,从定义到例题结果全他妈错了[笑哭]
四维汉堡包:
我听到一种说法,不知对不对: 变量名起得够好,不要写太多注释。如果注释写的和代码一样,把每步用自然语言重新说一遍,那么这个代码修改的时候不也要修改注释?这样岂不是维护两份代码,凭空增加成本?而且注释和代码潜在的不一致性,也是相当危险的。 注释应该在比较稳定的地方写,或者需要协同的地方。比如在函数、类和模块这种接口处注释,讲明这个函数参数和返回值的含义(怎么用),有哪些副作用,是怎么实现的,还要给出一些示例。这样别人不用翻你的代码,就可以使用你的函数。

【回复】非常有道理!换句话说,就是javadoc注释最重要,而代码本身不需要大量注释,或尽量在功能块上注释,而不是语句上注释
【回复】关键地方的逻辑也要注释一下,比如直接看很难懂的地方
【回复】回复 @Vernon-2020 :一般来讲最好把难懂的地方单独包成一个函数的,但是实践中往往做不到,还是注释一下好了。

知识分享官 C 考试 程序员 C++ 编程 教材 谭浩强

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!