当前位置: 首页 > 科技观察

你的代码水平停留在几年前?

时间:2023-03-13 01:10:51 科技观察

互联网是一个飞速发展的领域,程序员跟不上时代很容易被淘汰。我应该学什么技术?相信每个程序员都有一段迷茫期。科技发展这么快,我该学什么技术?刚开始学javaweb的时候,大家都学了ssh,但是现在看,struts基本没用,hibernate几乎没用,只有spring最赚钱。相信很多学web编程的人也学过vbscript,现在基本用不上了。同时,我们还要学习很多新技术。运维人员以前只需要知道linuxshell,现在必须知道docker和k8s。前端人员以前会jquery,现在肯定会node,react等,互联网发展的太快了,昨天学的东西没人用了,那我们学什么?如何学习我先说说我的几点看法。***当颠覆性技术出现时,我们必须跟进。不一定要精通,但一定要有基本的了解。比如最近兴起的区块链、AI等新领域,以及老领域的新技术,比如前端的webpack、mvvm,后端的springcloud、docker、k8s等。您需要了解这些技术并弄清楚为什么它流行以及为什么其他技术不流行。其次,不要只关注共性,而要关注新技术的独特性。比如很多后端学习者都是C出身,后来学习Java。这时候重点应该放在虚拟机和接口上,而不是数据类型、控制语句等。再学习node的时候要注意单线程模型和回调处理。再学习go的时候,注意goroutine的并发。如果学了4种语言,就只会写helloworld和ifelse,和只学一种没什么区别。三是深入学习基础知识。第二篇讲的是学习新技术时要研究新技术的特殊性,但并不是说基础就不用研究了。相反,很多地方用到的基础知识,一定要追根究底。比如我们在写web前端、web后端、配置nginx的时候,都绕不开http和https协议。因此,http和https作为几项技术的基础,需要深入研究。但是如果你知道很多语言和技术,你可能写不出高级代码。如何衡量代码级别?我经常思考什么样的代码是好代码,什么样的系统才是好系统。完全没有错误的系统是不存在的。我认为一个好的系统是可调试的、可扩展的、可配置的,好的代码是可读的、健壮的、松耦合的、可测试的、可以快速定位的。一个运行无故障的系统绝对是一个好系统。但几乎不可能没有失败。我认为一个好的系统的另一个指标是,如果出现问题,可以快速找到问题代码,并快速进行故障恢复。而我们在设计系统或编写代码时,必须考虑这些因素。其实好的代码往往取决于写代码的人的代码素养。什么是代码素养?一道很简单的数学题,4的平方根是多少?有多少人会回答2?编写代码也是如此。很多人只考虑一种情况。这不是智商和能力的问题,而是考虑问题时是否严谨。而当你告诉他这个地方需要判断为空,那个地方需要加上trycatch的时候,他往往不以为然,认为只是一时半会儿没想到而已。不幸的是,这种素养很难在短时间内培养起来,而这种没有代码素养的人写出的代码,在编写大型项目或复杂系统时,将是一场灾难。就像一堆沙子,你把水倒进去,你连哪里漏水都不知道,但是到处都在漏水,一下子没水了,只能推倒重写。而好的代码应该像一块铁板,水倒在上面也不会漏。代码素养只能平时慢慢积累,看别人怎么处理细节,写完代码再想testcase,多测试。代码水平绝对不是你懂多少语言,懂多少框架。就是你写代码时的各种想法,细节的处理,各种情况的判断,代码的清晰度等等。那么,你的代码改进了吗?