iOS程序员请改掉影响你升职加薪的36个坏习惯!

前言:

IT行业的科技公司们一直苦苦追寻传说中以一当十的超级程序员,最新的研究表明确实存在这样一小撮效率奇高的“程序金刚”,但是一位普通程序猿如何能够蜕变成代码金刚呢?

下边总结了导致程序猿效率低下,影响大家升职加薪的36条恶习,总的来说归为代码组织、团队工作、写代码、测试与维护四大类。

一、代码组织

1、总是说“一会弄好”,但从来不兑现,拖延症晚期。缺乏任务管理和时间管理能力。

2、坚持所谓的高效、优雅的“一行代码流”,事实上,可读性才是最重要的,聪明是第二位的。

3、无意义的优化或者过度优化。(类似网页大小之类的优化最后再做)

4、不注重代码样式和风格的严谨,尽量要和自己的团队保持风格一致,团队代码风格不好的建议及时提出自己的建议。 交接 别人代码的时候认为别人写的是一坨屎,然后自己写的又是另一坨屎!

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!
5、使用无意义的命名,禁止任何a、b、c变量出现,魔法值坚决反对!

6、忽略经过验证的最佳实践(例如代码审核、TDD、QA、自动化部署等),异常动不动就用Spring MVC提供的AOP方式去拦截,完全不顾性能和代码可读性。

7、给自己埋雷。(例如使用不会报错的库或者忽略例外)

二、团队工作

8、过早放弃计划。

9、坚持一个无效的计划。

10、总是单打独斗。(必须强迫自己与团队分享进度和想法,避免错觉,提高效率)

11、拒绝书写糟糕的代码。(日程紧迫的时候可以写一些“糟糕”的代码,这是程序员的能力而不是bug,当然,有时间的时候一定要回头偿还“技术债”)

12、抱怨他人,认为别人是菜鸡,带着情绪的和对方沟通交流。

13、不与团队分享所学。

14、向主管/客户反馈的速度过慢,不能做到及时主动。

15、不会充分利用Google。大家都很忙,没有人会义务的帮助你,有问题尽量自己先尝试着解决。

16、看重个人编码风格,认为自己的代码风格是最牛逼的,

17、带着个人情绪看待他人对自己代码的评论和注释。代码review的时候往往不能虚心接受别人的建议。

三、写代码

18、不懂优化策略,写出来的代码只能是算可以运行,完全不考虑性能和健壮性。

19、使用错误的工具。

20、不追求对开发工具和IDE的精熟。

21、忽略报错消息。完全不考虑代码的健壮性。

22、迷恋称手的开发工具。(不同类型的开发任务需要匹配对应的最佳开发工具,例如Sublime适合动态语言,而IDEA适合Java,如果你喜欢vim,并不意味着能用这些工具干所有事)但 尽量和要团队的其他成员保持一致,比如别人都用IDEA,你还用着Eclipse,当然你能说服他们使用Eclipe还是可以的 。

23、不注重代码中赋值的可配置性。(不养成把代码中的活动部件分离出来的习惯,会导致技术债暴增)

24、喜欢重新发明车轮。 那些每天加班到晚上11点的程序员都是在重复造轮子吗?

25、盲目地剪切/粘贴代码。

26、应付差事,不求甚解,不花时间搞清楚项目运作的机理。

27、对自己写的代码过度自信。 交接 别人代码的时候认为别人写的是一坨屎,然后自己写的又是另一坨屎!

28、不去考虑每一个设计、方案或者代码库的“副作用”。一个成功的用例并不意味着“万灵药”,要从自己的业务出发。

29、在一个地方卡住了但坚持不呼救。(认为自己很帅!)

四、测试与维护

30、只去写能通过的测试,不会写单元测试或者不注重写单元测试。

31、重要项目中忽略性能测试。

32、不去核实代码是否真的可用,没有养成开发中及时快速测试的习惯。

33、重大改动延迟推送。

34、抛弃和逃避自己的代码。

35、忽略其他非功能性需求。(例如安全和性能,准备一份这方面的清单,忽略这些会毁掉你的所有成果)

36、缺乏学习的动力,不能终身学习,时间久了,跟不上新技术的发展,也相应的会被淘汰。

原文地址:http://blog.51cto.com/13594541/2136305

时间: 2024-08-01 22:07:10

iOS程序员请改掉影响你升职加薪的36个坏习惯!的相关文章

如何面试一个1-3年的 iOS 程序员(持续更新)

如何面试一个1-3年的 iOS 程序员(持续更新) 计算机基础类 请说一说 HTTP 1.0 和 1.1之间的区别(懵逼题)这是一道计算机类别的题, 具体区别可以单独写一篇博客了, 但是一般情况下, 最主要的区别还是指1.1中支持长连接. 1.0规定的是浏览器只能与服务器保持短连接, 浏览器的每次请求都需要跟服务器建立一次 TCP 连接, 请求处理完以后就立即断开 TCP 连接, 服务器不跟踪每个客户也不记录过去的请求. 具体可以看这篇博客 请说一说长连接和短连接的区别这个和面试官讨论了一下,

ios程序员6级考试(答案和解释)

http://blog.sunnyxx.com/2014/03/06/ios_exam_0_key/ 我是前言 上次发了个ios程序员6级考试题 ,还在不断补充中,开个帖子配套写答案和解释. 1. 下面的代码分别输出什么? 1 2 3 4 5 6 7 8 9 10 11 12 @implementation Son : Father - (id)init { self = [super init]; if (self) { NSLog(@"%@", NSStringFromClass(

写给 iOS 程序员看的 C++(2)

原文:Introduction to C++ for iOS Developers: Part 2 作者:Matt Galloway 译者:kmyhy 欢迎回到<写给 iOS 程序员看的 C++ 教程系列>第二部分! 在第一部分,你学习了类和内存管理. 在第二部分,你将进一步深入类的学习,以及其他更有意思的特性.你会学习什么是模板以及标准模板库. 最后,你将大致了解 Objectiv-C++--一种将 C++ 混入 Ojective-C 的技术. 准备好了吗?让我们开始吧! 多态 这里的多态不

写给iOS程序员的命令行使用秘籍

http://www.jianshu.com/p/44d3b8f713f2 Mac OS是Unix系统的分支,有着强大的命令行功能.很多事情在命令行下处理会事半功倍,所以我就iOS程序员可能会用到的功能讲述一下. 终端设置 Mac的终端有一个很关键的配置,就是“使用 Option 键作为 Meta 键”.勾上这个选项之后,就可以使用Emacs的编辑命令了. Snip20150413_5 我发现有些人的终端没有设置“平滑文本”,导致终端上的文字很难看.赶紧把这个选项勾上吧. Snip2015041

作为iOS程序员,最核心的60%能力有哪些?

作为iOS程序员,最核心的60%能力有哪些? 一个合格的iOS程序员需要掌握多少核心技能?你和专业的开发工程师的差距有多大?你现在的水平能开发一个功能完整性能高效的iOS APP吗?一起来看看下面的iOS程序员60%核心技能的盘点,查漏补缺吧!1. 语言基础无论哪种开发,都离不开程序语言的学习.Objective-C是iOS的官方语言,更是学习和理解iOS开发的基础.万丈高楼平地起,将OC学得透彻最起码需要了解C语言基础.Object-C的基础.OC运营时的特性.面向对象的概念.Protocol

转:哪本书是对程序员最有影响、每个程序员都该阅读的书?

哪本书是对程序员最有影响.每个程序员都该阅读的书? 国外知名网站stackoverflow上有一个问题调查: 哪本书是对程序员最有影响.每个程序员都该阅读的书?,这个调查已历时两年,目前为止吸引了153,432人访问,读者共推荐出了478本书(还在增加),其中最火的一本书<Code Complete>被顶了1306次.如果你是个程序员,你一定有兴趣看看这些书里你都看过几本,如果你一本没看过的话,我也不好说什么,也许你是个天才,但我相信大多数人都知道,你在学校里根本学不到什么真正的工作中需要的知

iOS 程序员 6 级考试(答案和解释)

iOS 程序员 6 级考试(答案和解释) 我是前言 1. 下面的代码分别输出什么? @implementation Son : Father- (id)init { self = [super init]; if (self) { NSLog(@"%@", NSStringFromClass([self class])); NSLog(@"%@", NSStringFromClass([super class])); } return self;}@end 答案:都

H5 App如此强悍,要降薪的恐怕已不只是iOS程序员

2015年的最后几天,移动开发圈里最为火爆的话题之一无疑是"iOS程序员月薪降至12K"这则报道. 有人认为这是O2O创业遇冷所致,也有人认为这是iOS生态过于封闭致使智能硬件等新领域对iOS开发者的需求量不足所致.还有人认为是相关培训机构过多导致的结果等等. 其实,以上这些原因分析都只停留在了现象层面,未能触及本质. 当前是一个由技术来驱动社会变革的时代,所有社会和产业变革的根本驱动力一定都来自于某种技术变革.同样,所谓iOS开发者降薪这个业界现象,背后的根本原因依然是技术变革:移动

IOS程序员要求

精通iphone的UI开发,能熟练操作复杂表视图,熟练使用图层技术, 可以自定义UI控件,使用类别扩展系统控件功能; 擅长通讯技术,熟悉各种通信协议,精通xml, json, 二进制或其他形式的自定义解析,能架设服务器实现客户端与服务器的通讯以提交开发效率; 熟练掌握各种数据存储技术,如core data, sqlite,  对象序列化,文件读写操作,熟悉数据库的设计. 精通 object-c,java, c  等编程语言, 熟悉c++,对于 面向对象编程思想有深入理解,熟悉常见设计模式的应用,