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

    文章

    218

    浏览量

    21138
收藏 人收藏

    评论

    相关推荐

    特斯拉招募软件工程师强化无人驾驶与机器人远程操作

    近日,据外媒最新报道,特斯拉正紧锣密鼓地招募软件工程师团队,旨在加强其无人驾驶出租车及Optimus机器人的远程操作能力。这一举措标志着特斯拉在推动自动驾驶与人工智能领域迈出了重要一步。 特斯拉此次
    的头像 发表于 11-27 10:26 554次阅读

    正是拼的年纪|65岁电子工程师上班VLOG #65岁退休 #电子工程师 #搞笑 #上班vlog

    电子工程师
    安泰小课堂
    发布于 :2024年07月25日 11:31:02

    嵌入式软件工程师如何提升自己?

    嵌入式软件工程师如何提升自己? 作为一名嵌入式软件工程师,在这个充满机遇和挑战的领域里,如何提升自己显得非常重要,它决定了你未来的发展方向和成就。接下来,我们一起探讨一下。 1.奠定扎实
    发表于 06-12 11:20

    索尼诚邀软件工程师参与PS免费手游平台设计

    据悉,近日,澳大利亚知名媒体TweakTown发现,索尼互动娱乐正在为其旗下的PlayStation Studios Mobile招募一名资深的软件工程师,负责设计PlayStation的免费手机游戏平台。
    的头像 发表于 05-23 17:08 729次阅读

    嵌入式软件工程师和硬件工程师的区别?

    嵌入式软件工程师和硬件工程师的区别? 嵌入式软件工程师 嵌入式软件工程师软件开发领域中的一种专业工程师
    发表于 05-16 11:00

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #电路知识 #面试题

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    电子工程师理想中的电子实验室都有什么?进来认领你的梦中情房吧

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 16:47:26

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

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

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

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

    如何构建linux开发环境和编译软件工程、应用程序

    前文介绍了如何使用官方提供的镜像文件启动开发板,本文将说明如何构建linux开发环境和编译软件工程、应用程序。
    的头像 发表于 01-03 12:31 2059次阅读
    如何构建linux开发环境和编译<b class='flag-5'>软件工程</b>、应用程序