当前位置: 首页 > news >正文

懒羊羊闲话2

前言:

笔者谈不上是某个领域的高手,也不是大厂的某个神秘高手,一直游离于小型公司,写下这篇文章献给那些无法接触到好的学习环境,苦恼自己原地踏步的coder。

1、如何快速熟悉某个行业

        作为一个编码多年的程序员,我们要认识到仅仅会编码是不够的。老板愿意付给我们薪水,并不是表扬我们的编码水平,老板也大多数不太懂技术的细节。老板关心的只是我们的投入产出比,就是说付给程序员那么多工资,我们能给公司带来多大效益。这就决定了编码是为了实现业务,为了卖钱的,并不是单纯的炫技!

        所以,作为一个老鸟,熟悉一个行业是非常重要的!这样才能把我们的技术最大化产出。新进一个行业如何快速熟悉呢?

        100个行业关键词,找出这行业里的100个关键词,反复把它弄懂,这样我们就有可以有了和其它同事沟通的基础。

        买2~3行业的经典书籍,反复精读!如果仅仅是靠请教同事,今天学一点,明天学一点,就不能有效形成自己的知识体系。

       和该行业的专家聊天,因为前面我们已经有了准备,再多和行业的专家聊天,有助于把书本上知识变成我们的认知。知识转化为我们所用才有价值,如果仅仅知道得很多,却运用不起来,很快会被大脑给遗忘!

2、如何成为某个领域的专家

        脑科学告诉我们,成为一个领域的专家没有捷径的。因为脑神经建立链路,并且能达到快速自如的效果没有10万个小时是不行的。看过很多名人传记,他们说别人认为他们是天才,而他们觉得自己仅仅是更努力而已。

      《认知觉醒》里的复利曲线也是这个道理,前面可能我们努力了8万个小时,往往觉得自己很多东西都似懂非懂,可能我们再努力突破某个临界值之后,后面的进步就大为迅速,有点像是打通任督二脉那样。

        所以大家知道了大脑的原理之后,就应该守住本分,而不应该半途而废。打退堂鼓造成的后果就是本来脑神经已经建立很多链接,因为得不到进一步地固化,后续就慢慢消失了!

3、如何写出稳定可控的代码

        Don't repeat! 不要重复自己,绝大部分新手写代码都喜欢遇到问题解决问题,许多新手写代码,喜欢到处复制黏贴,像贴狗皮膏药那样,只求能把功能完成就可以了,从来不会停顿下来思考一样代码有什么可以共用的地方。我见过一个项目里,光是xml解析库就有4~5种,而且每个库都是有各自缺陷的。

         不懂得把该行业所涉及的技术切割成不能再切割的技术点,然后为这些技术点打磨工具箱。导致的问题呢就是每次做一个新项目,又反复地去查找解决技术方案,这样我们曾经的积累就约等于0!这样行为一个最大的问题点就是每个新项目都疲于奔命,为了赶进度又疯狂加班,形成一种恶性循环。

       天下文章一大抄,严格按照经典书籍的原则写代码,一开始不懂不要紧,先照抄,抄久了总有会明白的一天。

       测试先行,前面说到我们准备自己的技术点工具箱,那么应该自己测试好自己的工具箱,而不是随便搞搞就丢到工具箱里,那样相当于我们给自己制造一大堆生锈的工具。写大型代码的时候也是一样,应该写一个小系统,等测试稳定之后再往大系统里加,而不是边加边测,出了问题再大改!

       防御式编程:

       1)禁用跨模块的全局变量,慎用单例模式

       2)学会分割小函数,经调用,代码的bug和函数的行数成一定的比例关系,函数过长越容易出现问题

       3)仔细检测每个函数传入的参数,断言异常处理要做好!我也是花了很长时间才明白断言和异常处理的区别。

断言是帮助程序员在调试阶段避免粗心导致的程序出错,

举个例子我们断言传参的指针不为空指针,只要我们精神状态好的时候,不会说故意传个空指针让程序崩溃,但是人总是会有状态坏的时候,加功能的时候不小心就传入了空指针。这样断言就能够在调试阶段提前预警!

断言和异常处理是形影相随的兄弟,并不是说我们做了断言,就不需要再去做异常处理了。因为断言只能在调试阶段帮我们避免错误,运行阶段还是要靠异常处理的,比方说参数不对了,我们就应该函数直接返回,而不是继续往下运行业务。

       4)日志,适当的日志配合异常处理,是我们解决问题的最有力工具。若是软件已经运行在电脑上了,我们大多数能依靠的就是日志了。因为不管测试多么努力,程序员多么努力,BUG是不可能消除干净的,这个时候日志就是最后一道防火墙了!

        其实还是有很多很多写出高质量代码的规则,我就不再一一列举,我只是把我认为比较重要的几项挑出来给大家讲讲,若是你们能看懂1~2点,你们也就渐渐能掌握写出稳定的代码了!

4、如何学习编程

       很多新手在学习一门新的语言的时候,往往听到别人说某些本书籍经典,就赶紧网购好几本回来。然后在几个阳光灿烂的周末翻一翻,闻一闻,不出几天就觉得书本晦涩难懂,远不如打几把游戏来得舒服,后面就渐渐地把它们束之高阁!

       我们决定学习某本书之前,应该先翻翻,自己是否有触动,是否太难,还是太容易。若是理解太困难,证明这本书在目前这个阶段不适合自己学习。如果太容易,再看它就纯粹是浪费自己的时间!

       我们应该凭感觉学习,就是一本书不要求把所有的知识点掌握,只要它能给我们带来触动,然后我们能够运用到实际工作中,这本书就值得了。但是大部分新手还是保持以前应试教育的习惯,力求把书中所有的知识看一遍,也不看看这些知识点和自己的工作生活是否有关联

       不能关联的知识点即使你学了,也很快会忘记的,更谈不上运用它了。

       所以我们不关联不学习,不触动不学习,只要学习到的1~2点知识能够实践。远比知道20个知识点更重要。就像是珍珠螺那样,一层一层加厚我们的认知圈!假如时日,一定能形成复利曲线

http://www.lryc.cn/news/223868.html

相关文章:

  • 多路转接(上)——select
  • 基于SSM的图书管理借阅系统设计与实现
  • Python的内存优化
  • 蓝桥杯-回文日期[Java]
  • acwing算法基础之搜索与图论--树与图的遍历
  • 前端uniapp请求真是案例(带源码)
  • MySQL -- mysql connect
  • 如何用AI帮你下载安卓源码
  • 第三章:人工智能深度学习教程-基础神经网络(第三节-Tensorflow 中的多层感知器学习)
  • Python的版本如何查询?
  • Git的高效使用 git的基础 高级用法
  • 关于主表和子表数据的保存
  • 如何在后台执行 SwiftData 操作
  • TCP和UPD协议
  • MySQL:锁机制
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • 【Git】安装和常用命令的使用与讲解及项目搭建和团队开发的出现的问题并且给予解决
  • Python进行数据可视化,探索和发现数据中的模式和趋势。
  • 2023年中国自然语言处理行业研究报告
  • RISC-V与RISC Zero zkVM的关系
  • 20行JS代码实现屏幕录制
  • 基于springboot实现福聚苑社区团购平台系统项目【项目源码】
  • 网际报文协议ICMP及ICMP重定向实例详解
  • 前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(三)
  • Android 12 S 系统开机流程分析 - SetupSelinux(二)
  • 高速信号PCB布局怎么布?(电子硬件)
  • vue 子页面通过暴露属性,实现主页面的某事件的触发
  • 计算机丢失mfc140.dll是什么意思?附送修复教程
  • R语言将向量横向转换为单行数据框,随后整合数量不确定的数据框
  • ​怎么测试websocket接口