软件开发10年学会的一些东西

新闻
近期我整理了一下软件开发这十年来需要学的东西,很实用的都是,一起来学习下吧。

 不要只会一种语言

很多人对于一门编程语言的喜爱程度往往超过他们自己的认知,有时候,他们会用一门编程语言来解决所有问题,然而现实世界中,每个语言都有自己的最佳应用场景。

 

[[389937]]

 

我们都听过这样一句话,当你手中有一个锤子,你看什么都像钉子。当你只会一种语言的时候,你的思维往往也被局限了,而这是会影响你的编程思维的。

vim永远都值得你学的编辑器

对于编辑器之前我并没有特殊喜好,我用过ide,也用过sublime,atom,vscode,然而最后我还是更喜欢使用vim。

每当看到那些在vim下快速编程的大神们,你会感觉到编程原来可以如此拉风。

我喜欢vim的速度,它能够让我的思想和编程速度相匹配,当你的编程速度无法跟上思想的时候,你可以尝试下vim,一旦你体会到它的精髓,一定会爱上它。

算法和数据结构是你的基本功

在我高中的时候,我的化学老师就曾对我讲过,学习任何东西都要把基础打牢,为了打好基础,你可能需要练习无数遍。

对于编程来说,算法和数据结构就是我们的基本功。你需要时不时地就温习它们。现在很多面试者抱怨手写红黑树太难,然而这些都是作为一个程序员必备的基本功,就和相声的报菜名一样,你可能不需要每天练习,但是无论何时,当你被问起它的时候,你都能够把它手写出来。

技术永远是解决问题的

技术的发展永远伴随着问题的产生,正是一个个问题的解决提升了技术的发展。

你永远不要抱怨问题有多么难处理,技术就是为了解决问题的。你可以抱怨需求的不合理性,但是永远记住,解决问题才是你应该去做的,而解决问题的同时,就是你能力提升的过程。

 

你还应该记住,解决问题的速度越快,越有利于产品的发展。

平衡优化和速度

程序员对自己的代码都有严格的洁癖,他们希望可以写出完美的代码,然而现实中,没有十全十美的代码,只有bug百出的代码。

很多人喜欢写出符合规范的代码,喜欢通过tdd来驱动开发来减少错误,然而现实中你会发现,很多情况下为了开发的进度,所有的规范都可以被抛弃,唯一的规范就是在最短的时间完成产品的功能。

产品没有完美,只有相对完美,我们也不可能一开始就设计出或者写出相对完美的代码,我们只能通过不断完善才能让代码更优。重构和改进是你可以提升代码质量的第二次机会。

项目进度永远无法精准评估

无论你是团队工作,还是你单打独斗,你都无法精准预测项目的最终进度。

有些看似简单的问题,但是却可能产生意外的困扰,你可能需要花费额外的精力来处理它。而有些你预测的困难问题,可能比你实际想象的还要困难。

 

有时候你完成项目的90%,却发现最后的10%却花费了你90%的时间。

软件开发中各种险象环生,你需要时刻提高警惕,每一次顺利完成项目你都要谢天谢地,因为你已经足够幸运。

当你认为可能产生问题的地方一定会产生问题

你是否有过这样的经历,你认为某个地方的代码可能有问题,但是测试的时候就是没有发现,当你项目上线的时候,它就会完全暴露出来。

 

代码正常运行是最基本的要求,而bug也总是产生在意外的情况下。

没有人可以考虑到所有可能发生的意外,我们只能总结前人留下的经验,避免犯那些重复的错误。

总结

软件开发它是一种职业,需要我们有工匠精神,专注,创新是我们需要时刻牢记的。

不断学习,十年磨一剑,记住,你写得最好的代码永远是下一次。

 

责任编辑:华轩 来源: 今日头条
相关推荐

2021-04-26 13:26:55

软件开发代码编程

2020-10-12 08:03:51

Go语言编程

2021-12-15 10:05:25

软件开发 技术

2013-01-06 10:12:32

Web前端Web异步文件上传

2022-07-19 16:31:29

软件开发Kubernetes容器

2018-05-24 11:58:56

软件开发软技能码农

2013-07-24 09:32:13

Android项目

2022-12-27 09:56:34

架构系统

2012-06-07 10:17:55

软件设计设计原则Java

2021-06-08 06:13:16

React开发开发技术

2009-07-09 13:16:54

Java Swing开

2012-02-06 09:54:59

LibreOffice运营数据

2021-07-05 05:34:10

Typescript语言开发

2011-08-01 10:37:29

软件项目管理

2021-06-30 07:19:35

微服务业务MySQL

2020-04-17 18:00:01

软件人工智能Python

2021-02-22 22:05:26

软件开发应用程序开发

2010-11-02 14:11:15

SilverlightWPF微软开发

2015-08-27 10:49:43

JavaScript开发框架

2018-02-06 11:10:27

iOS开发Xcode快捷键
点赞
收藏

51CTO技术栈公众号