0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优秀软件工程师都有哪些好习惯

工程师人生 来源:wv 作者:简书网 2019-09-05 15:49 次阅读

1. 持续学习

我把这个列为第一个好习惯,是因为他的重要性无可替代。不管你是名校毕业还是一般院校毕业,不管你是名企就职还是没有名气的企业就职。学习都是必须要做的一件事,因为软件行业变化非常快,如果不学习即使你有好多年的编程经验,还是可能被行业所抛弃,就拿苹果ios系统来说吧,swift出来了已经到3.0了,与2.0相比又有很多新的变化,同时OC也总是弃用一些类和方法,FaceBook等开发的第三方框架也在不断变化,这些都需要进行持续学习。

2. 设计要足够灵活

通常我们设计一个框架,要考虑暴露外边的接口是否完备和灵活,你设计的东西是否可以满足很多不同场景的使用,你的接口参数配置是否灵活的可以满足不同的配置和需求。灵活性就是我们设计软件的时候必须考虑的因素。比如我们在ios设计中,需要设置空间的frame,我们设置成self.button.frame,就要比单纯的给一个数字要好很多。

3. 浏览名人博客

任何行业都有很多技术达人,他们热衷于专研技术写博客,这些人的博客就是我们学习的一个很好的途径。比如我这个行业的有唐巧还有就是王巍都是国内比较出名的ios技术方面的前辈和专家,外国也有很多很好的专家写技术博客,我记得我在唐巧的博客里他就推荐了国内很多专家的技术博客以及国外大牛的技术论坛的地址,这些我们都可以常去看看和学学。

4. 尽量多参加开源项目

github等平台中有很多知名的开源技术的框架,如果你可以的话尽量参与中去,里面都是这个行业的技术大牛,和他们一起完善这个框架,不仅有很大的自豪感而且多看看他们的构建框架和思考问题的角度,你都会收益颇深,我相信你会总感叹:卧槽,这个还可以这么做?这样子时间久了你也变成了他们其中的一位。

5. 学会使用工具

我这里所说的工具是广泛意义上的工具,包括很多,比如说浏览器,工具书,等等。程序员都知道谷歌浏览器要比百度好用的多,我也深有体会,比如我查找问题,在stackOverflow上就有人回答,我用谷歌就直接可以翻译成中文,在百度上就不可以,这只是浅层次的,更深层次的是,谷歌浏览器支持很多好的插件,可以做一些数据库查询等等方面的功能。其他的工具还有很多,就不多举例了,很多时候利用好这些工具都可以很快很好的解决问题。

6. 有时间的话好好学学外语

中国学生经历了几十年的学外语的经历,为什么?还不是因为中国落后,很多先进的技术是美国等西方国家把持着,中国要想学习或者超过它们,第一要学的就是他们的语言。特别是我们软件行业,鲜有十分牛逼的软件不是美国等国家的。而且计算机也是他们发明的,很多国际标准也是以外语为标准的,国际化也是最高的。但是现在社会还是充斥着英语无用论,真的很可悲,外国都在加大英语学习的比重,中国却在降低。可能有人会说,我们做软件编程就会那几个关键字就可以了呗,不是还是一样做的很好嘛?是的,说的没错英语不好也可以设计软件,但是为什么不好好学英语,多读读外国这方面的源码和文章,让您走的更远呢?我就拿我们ios来说,swift刚出来的时候,还没有人把这个语言翻译出来,都是英文的,难道英文不好的就一直在这里等着别人翻译?要知道你在等英文翻译的时候有的人可能已经把源码和API文档看了好几遍了,并且已经能够使用这门语言写项目,修bug了。可是你还能只能姑且等着,这不是落后那还能什么算是落后。

7. 养成写文档的好习惯

文档是一个软件系统的生命力,一个公司产品再好技术再高,都要把30%的时间用于文档的梳理和书写上。这不是浪费时间,这会有很好的技术继承性。

8. 需求理解能力

程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。

9. 模块化的思想

优秀的软件工程师的思想不能被局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这就是我们平时所说的封装思想。这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。

10. 多了解底层

虽然很多工作不是非常透彻的了解底层也能做的很好,但是如果你深入的了解底层那就是另外一番天地。知其所以然的工作会让你信心爆满,做事顺畅,也会让你和其他普通的程序员区别开来。从CPU的执行方法,到操作系统的运转,到程序的编译链接,到代码的加载与运行,到程序的调试,最后到实现的功能这一整套的内容,只有做到这样,才能真正提高。作为ios程序员你就要了解每一个方法和类的深入

11. 多帮助他人和团队一起分享成长的乐趣

好的团队一定是一个共同成长的团队,同事之间相互帮助共同成长。有很多公司就是同事之间都不怎么说话,同事有问题请教的时候就在一边旁观,我以前去过的一个公司,那代码写了据说好几年都没上线,我都不知道是谁写的,后来换了技术团队,换成百度外卖的一批人,那一批人真是人不咋着,让我对百度的印象真是一落千丈,特别那个叫JF似的,每天都很高傲,对别人很傲慢,后台,UI,技术总监他都吵了个遍,啥几把人啊。大家要是碰到这样的团队,还是敬而远之吧。这里所说的分享不仅是和同事分享,大家也可以写技术博客分享,stackOverFlow 和 github都是不错的途径。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件工程师
    +关注

    关注

    8

    文章

    217

    浏览量

    20926
收藏 人收藏

    评论

    相关推荐

    Cognition发布首款AI软件工程师Devin

    据报道,Cognition公司今日公布了其首款人工智能软件工程师——Devin,掀起了打造软件模式变革的序幕。该产品在SWE-bench代码测验中展现出卓越表现,甚至超过了部分顶级人类工程师的水准。
    的头像 发表于 03-13 10:57 379次阅读

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    优秀电源工程师需要哪些必备技能?

    随着电源市场的不断扩张,开关电源行业飞速发展,企业对电源工程师的需求日益增加,对电源工程师的技能要求也日渐提高,相信没有一位电源工程师会错过让自己变得更优秀的机会。作为一名数字电源从业
    发表于 01-29 11:29

    嵌入式软件工程师常用的

    最近我换工作了,看见不同嵌入式软件工程师用的平台都不一样,所以我整理了一下。PlatformIO:多平台支持:PlatformIO支持多种嵌入式平台,包括Arduino、ESP8266、ESP32
    的头像 发表于 12-24 08:00 233次阅读
    嵌入式<b class='flag-5'>软件工程师</b>常用的

    嵌入式硬件和软件哪个好?

    方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、protel设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用
    发表于 12-05 15:17

    FPGA工程师需要具备哪些技能?

    工程师需要考虑时序约束、时钟网络设计、数据路径优化等因素。较常用的布局布线工具有ALLEGRO PCB和Orcad等软件。在使用EDA工具之前,FPGA工程师需要了解所需的电路元件,例如寄存器,计数器
    发表于 11-09 11:03

    如何成为一名优秀的嵌入式工程师

    如何成为一名优秀的嵌入式工程师?嵌入式学习的第一步,首先是C语言。 1.理解内存管理:C语言不同于高级语言,它不会自动管理内存。因此,你需要理解并掌握如何使用malloc()、free()等函数
    发表于 11-07 15:36

    嵌入式软件好还是硬件好?

    架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用设计工具、设计原理图
    发表于 09-18 15:31

    Linux开发工程师是吃青春饭的吗?

    Linux开发工程师怎么样?都说程序员是吃青春饭,Linux开发工作35岁之后还能做吗? 坦白说,如果程序员在35岁的时候,“工作经验”与刚毕业的时候差别不大,则其不可替代性就不高,很难在
    发表于 08-24 09:59

    为什么嵌入式软件工程师需要掌握 Linux?

    ,都默认支持 Linux 操作系统。 可以说, 打开 Linux 这扇门,你才是合格的软件工程师 。如果不能
    的头像 发表于 07-21 18:15 1322次阅读
    为什么嵌入式<b class='flag-5'>软件工程师</b>需要掌握 Linux?

    Linux运维工程师的6类好习惯和23个教训

    很多运维人员比较忙,遇到问题解决就不会再管了,记得去年一个客户的网站老是打不开,经过 PHP 代码报错,发现是 session 和 whos_online 损坏,前任运维是通过 repair 修复的,我就也这样修复了,但是过了几个小时,又出现了。
    的头像 发表于 07-17 15:47 183次阅读

    热门推荐:硬件工程师必备工具

    硬件开发的工作流程一般可分为:原理图设计、PCB Layout设计、采购电子BOM、PCB板生产、PCBA组装、功能调试及测试、小批量试产、大批量生产正式投放市场等步骤。 作为一名优秀的硬件工程师
    发表于 06-21 10:15