首页 > 编程语言 >资深程序员在编程中有哪些特殊的习惯或方法?

资深程序员在编程中有哪些特殊的习惯或方法?

时间:2023-01-20 00:01:53浏览次数:68  
标签:知识库 工作 代码 编程 自己 程序员 资深

知乎上有一个问答:高级程序员在编程中有哪些特殊的习惯或方法?

我是一个有着 22 年编程经验的老程序员,谈不上高级,我来谈谈自己的三点心得。

  1. 一定要有自己的代码库

以前有程序员将周杰伦《双截棍》的歌词做了修改,改成了程序员版,其中有一句唱到:

一个编好的库函数,一用好多年,拷贝好带身边。同样,我们程序员不可能保证每天都是编写全新的代码。如果我们工作中编写代码时,能够稍稍留意一下代码的可重用性(reusability), 做到当天编写的代码,可以最大程度被将来的工作重用,或者把代码中可以重用的部分提取出来,编写成适合自己反复使用的库函数,保存到只属于自己的代码仓库里。

这样日积月累,自己的代码库内容越来越丰富。

笔者在自己的公司接到新的开发任务时,第一件事就是到自己的代码库里查找有没有可以复制粘贴过来就能用的代码片段。

  1. 一定要有自己的知识库

好记性不如烂笔头。

我 25 岁研究生毕业刚参加工作的时候,记忆力和高考巅峰期时所差无几。一转眼我已经40岁了,脑子又动过一次大手术,现在记忆力是每况愈下了。这种差劲的记忆力却并没有影响我的编程工作,原因就是我有自己的知识库。

每天我都会记录工作笔记,如果工作内容里有值得系统总结并输出的东西,我会写成博客发表到技术社区。

我 16 年的编程生涯,总共写了 11966 篇笔记,这些笔记构成了我的知识库。

平时工作上的同事问我技术问题时,我经常可以直接从我这个知识库里找到相关文章,然后直接把文章链接发给同事,节省了我不少时间。

这其实也体现了工作笔记可重用性的重要性。

个人喜欢把自己的代码库和知识库,看作程序员的数字化资产。我在这篇文章里对程序员如何打造自己的数字化资产,助力自己的职场发展有着详细的介绍:

一个 SAP 开发工程师的成长史

  1. 掌握面向谷歌编程和面向 StackOverflow 编程的技巧

相信很多程序员和我一样,每天花费时间最多的编写代码本身,而是如何让自己编写的代码能按照自己期望的方式去正常工作。

当程序执行出错,报出各种各样的错误消息时,除了拿着这些错误消息去问身边比自己更资深的同事之外,另一种能帮助我们摆脱困境的方式,就是在 Google 等搜索引擎里输入这些错误消息,然后查看搜索结果里,是否有遇到同样问题的热心网友们,把自己的解决方案无私的分享出来。运气好的时候,也会搜索和代码相关的权威网站,比如官方文档给出的问题说明和解决方案。

可以毫不夸张的说,如果我工作中不能使用 Google 和 StackOverflow,那我可能早就被辞退无数次了——这些工具网站无数次将我从深陷 bug 泥潭的困境中解救出来。

在 Google / StackOverflow 上获取自己遇到技术问题答案的能力,也是程序员分析问题和解决问题能力的具体体现。

标签:知识库,工作,代码,编程,自己,程序员,资深
From: https://www.cnblogs.com/sap-jerry/p/17062317.html

相关文章

  • 17种编程语言实现排序算法-快速排序
    开源地址https://gitee.com/lblbc/simple-works/tree/master/sort/1.安卓Java版privatestaticvoidsort(int[]array){sortMe(array,0,array.length-1);......
  • 链式编程
    目录一、什么是链式编程二、链式编程的实现(指针)三、链式编程(引用)一、什么是链式编程链式编程在C++中使用的地方很多,比如说输出的时候可以使用很多的<<,这就使用了链式编程......
  • 【学懂Java】(四)面向对象编程-2
    一.局部变量和成员变量局部变量成员变量(全局变量)定义在方法中定义在方法外,类之内的变量栈内存中堆内存中局部变量没有默认值成员变量有默认值当前方法当前类的方法不同的方......
  • 【学懂Java】(四)面向对象编程-1
    一.OOP:ObjectOrientedProgramming1.面向过程和面向对象面向过程面向对象区别事物比较简单,可以用线性的思维去解决事物比较复杂,使用简单的线性思维无法解决共同点1.面向......
  • 网络编程知识总结
    网络编程1、概述计算机网络:计算机网络是指将​​地理​​​位置不同的具有独立功能的多台​​计算机​​​及其外部设备,通过通信线路连接起来,在​​网络操作系统​​​,​​......
  • 【并发编程】锁机制
    文章目录​​1.锁的分类​​​​2.深入理解Lock接口​​​​3.自定义实现可重入锁​​1.锁的分类自旋锁:线程状态及上下文切换消耗系统资源,当访问共享资源的时间短,频繁上下文......
  • 【并发编程】ThreadLocal详解
    文章目录​​1.ThreadLocal简介​​​​2.ThreadLocal的简单使用​​​​3.ThreadLocal的实现原理​​​​4.ThreadLocal不支持继承性​​​​5.InheritableThreadLocal支持......
  • 【并发编程】线程间的通信
    文章目录​​1.wait、notify、notifyAll​​​​2.生产者消费者模型​​​​3.管道流进行线程间的通信​​​​4.Thread.join()方法​​​​5.Condition详解​​1.wait、not......
  • Spring-webflux 响应式编程
    热爱可抵漫长岁月文章目录​​1.前言​​​​2.Spring-webflux简介​​​​3.什么是“响应式”​​​​4.Spring-webflux的响应式API​​​​5.SpringMVC还是WebFlu......
  • 读编程与类型系统笔记11_高级类型及其他
    1. 范畴论1.1. 范畴论是数学的一个分支,研究的是由对象及这些对象之间的箭头组成的结构1.2. 函子和单子的概念来自范畴论1.3. Haskell是一种编程语言,从范畴论中汲取......