大公司有厉害的程序员优秀的架构师但大量的小公司也有很多普通的程序员。在我这些年的工作经历中也越来越深刻的感受到普通程序员的影响和力量。对于高阶程序员所谓八仙过海各有神通各有各的成就各有各的修养但程序员在达成较高的水平之前有一些“自我修养”是最基础的是普世的。所以今天的话题面向的程序员就是所有的正在写代码或者曾经写过代码的程序员也包括广义上的程序员例如项目经理、架构师等等。做任何事都是有明确目的那么再谈一谈程序员提高自我修养是为了什么程序写的好有人崇拜有妹子喜欢还是到博客、论坛、社区发表文章进行分享获得成就我想这是少数人的追求也是更高的追求在这之前我认为在中国程序员提高自我修养的目的是为了1、更好的融入工作减少困难增加成就2、稳步的提升能力提高收入达成财务自由2、站在更高的层面看待自己的学习和工作树立更加适合的人生观价值观家庭幸福生活愉快说的更通俗一点就是用更加合理的方式和方法赚取到更多的收入说了这么多废话进入正题何为程序员的自我修养正面论述很难说清楚反向描述可能更通俗易懂一些自我修养的对立面是“没有修养”先说一说在这么多年的工作、学习、生活中遇到的一些我认为“没有修养”的程序员形态1、程序员小张遇到了一个开发问题很着急想到了有几个群于是到群里发了他的问题坐等回答发现没有人回答就直接对话群主的QQ群主也不回答于是小张就搜索突然搜到博客园有个帖子讲解了相关话题他看完就给博主留言我的邮箱是XXXXXqq.com麻烦博主把源码发给我一下谢谢。2、程序员小张进公司3个月了老板布置了很多任务他觉得老板很没人性工资给的不高加班也不给钱于是在写代码的时候能省就省客户反馈有问题也不主动解决敷衍为主又过了一个月跳槽了。3、程序员小张正在写一个功能模块需要进行某种加密到百度搜到了一个编码模块看不明白具体写了什么但是放到程序里刚好适用于是就这么原封不动放进去了。4、程序员小张要对某个功能进行研发项目经理对他说这个功能应该能搜索到你去搜搜看小张就在百度搜啊搜一天过去了啥都没找到项目经理来到小张身边坐下换了个关键词1分钟就搜到了解决方案。5、程序员小张学.NET已经工作3年了工资还是10000和公司提涨工资也没答应想跳槽又犹豫这时某个前辈对他说你去看书吧多看一些书例如 《Visual C# 从入门到精通》《CLR via C#》《Javascript权威指南》等等于是小张买回来了 随手翻了翻发现有些东西是他已经会的有些看不懂的好像又用不到而且书这么厚要不要浪费时间去看呢小张就这样反复纠结了半年依然每天上班工作下班LOL偶尔还抱怨一下工资低。6、程序员小张到了一家新公司在做一个项目实现某个功能时想起来以前做过这样的功能可是竟想不起怎么实现了于是就到自己电脑上找文档找了好久也没找到只好放弃最后又折腾了2天终于还是把这个功能给实现了。7、程序员小张某天非常不高兴因为他的项目经理和项目组的产品人员又变更需求了新的需求又要对整个结构进行大的调整小张很郁闷到一个QQ里发泄情绪说了这个事于是立马QQ群里面炸开锅了程序员小李说对产品就是狗日的程序员小王说对他妈的项目经理整天高枕无忧就知道压榨开发人员程序员小孙说是的是的我上一家公司也是这样压榨程序员幸好我走了。就这样在一片骂声中几个程序员心情舒畅了小张开心的去玩王者荣耀去了。我想有些人可能已经明白我要说什么有些人可能还不明白具体的话我也说不出来只能用一句话来概括就是在编写代码的过程中善于学习、掌握方法、勤加思考、勤奋努力、持之以恒长此以往在编程中你会发现不一样的自己。以上这些还是比较抽象那么提升自我修养的具体方法有哪些程序员具体如何达成“较高的修养”每个人各有自己的办法我无法说到很细就和如何提高做人修养一样一句两句话是说不清楚的但是有些说法也通俗易懂比如一个小孩有教育良好的父母父母彬彬有礼小孩从小开始接受正规教育小学、初中、高中、大学然后文化课程和社会实践良好那么这个小孩最终的做人修养一定比没有经历过这个过程的小孩更好一些。同样的写程序也是如是下面我就讲一些最基本的、最浅显易懂的学习方法和道理我把它叫做程序员基础的基础一个好的开发人员应该能够全面、高效、严谨的去处理任何软件程序和业务问题成为一个好的开发是一个很有意思的话题不过无论这个话题如何开展基础两个字必不可少虽然代码量是衡量开发能力的重要指标但仅能够熟练的进行代码编写是不够的更要能深刻的理解技术原理和业务逻辑扎实的个人基础和技术基础往往会促进代码的编写更游刃有余的解决问题。下面说的一些基础可能绝大部分开发人员都不会在意甚至忽略但恰恰这些才是开发大厦的基石。1、科学基础成为开发人员的过程不尽相同有的是科班出身有的是兴趣爱好还有的是专业机构的培训在这个过程中可能全面或者零散甚至没有学习过计算机基础学科但无论是哪一种想要成为更高层次的开发人员写出更高质量的代码计算机基础学科的学习是非常非常非常重要的事情说三遍重要的。具体的来说基础学科在实践应用中有如下几门是一定需要的按照学习顺序排列如下1数据结构数据结构课程通俗的说就是告诉你如何用最基本的语言类型、变量关键词语句等去处理各式各样的逻辑问题我们称之为算法而日常编程中的各种问题例如排序、文件夹遍历操作、数据库查询等都可以在数据结构课程中找到对应的数学原型。数据结构课程的理解能力也是一个人数学能力的体现数据结构学习的好坏是程序员水平差异的一个重要分水岭对于这一块内容的学习有如下建议使用VB、C、C、Pascal等语言买一本相关语言数据结构与算法的书或者在网上下载相关的PDF电子书完整的学习一边并将书本中的所有案例亲自编写运行调试一遍当能够领悟到某些日常编程中常见手法源于某些数据结构和算法时就基本达到了学习效果。2操作系统所有编程语言的开发以及应用的运行都基于操作系统桌面编程中的大部分场景包括内存、进程、文件系统、网络通讯、用户界面等都源于操作系统的定义和概念完整的了解操作系统的起源和组成以及运行逻辑对多线程、复杂界面、文件管理以及一些难以正常理解编程思路等开发中遇到的场景有非常大的帮助不仅帮助理解也能掌握更多有效的程序写法。具体可以买一本操作系统的书或者下载相关PDF电子书完整的浏览一遍做到能够结合实际编程场景来看待操作系统原理就基本达到了学习效果。3数据库传统的关系型数据库入门简单深入却难往往开发人员能够较快的掌握增删改查、视图、索引、存储过程等基本数据库操作却在编写复杂查询、设计主外键、优化字段、去除冗余等时出现只会依葫芦画瓢却不能自主思考扩展的状况。究其原因还是没能了解关系数据库的根本原理而数据库这一门课程系统的阐述了关系型数据库的来龙去脉了解其中的数学原理或逻辑基础所在对提升数据库编程水平有质的影响。建议也是买一本数据库的相关书籍或者下载PDF电子书能够把熟练的把第一范式、第二范式等数据库课程的基本知识点与数据库编程场景建立起关联也基本达到了学习效果。4编译原理编译原理是编程语言以及各类语言编译器的科学基础可以说编译原理创造了世界上的几乎所有的IT应用学习编译原理的基础是数据结构和算法因此编译原理的学习要花费更多的时间和精力由于现代高级编程语言的编译器在代码优化、资源优化方面已经做的足够智能因此编译原理的学习对实战的影响越来越小但是正所谓本盛末荣如果认为自己对数据结构和算法的学习达到了一个较高的水平和状态可以在编译原理学习上进一步深入最终把自己和普通程序员拉开更大的差距。2、英语能力英语的天然特性和字母长度还有学科发展的历史因素决定了编程语言一定是基于英语的在编程过程中从语言的关键词到文档的内容又或是搜索引擎的搜索结果都不可避免的会遇到英文。大部分编程人员都具备英语四级左右的英文基础却由于非专业以及工作环境原因逐渐疏远甚至完全淡忘了英语。而实际操作中大部分编程语言资料都是英文在线编程问答内容也是英文因此很有必要把英语能力重新恢复到一个不用太高但行之有效的水平达到如下效果1对自己所使用语言每一个关键词都知道具体的英文翻译、逻辑含义以及读音。2对于自己使用语言所涉及到的相关方法、类库、框架、工具等能知道其中每一个方法、过程以及参数关键词等的英文翻译、逻辑含义以及读音。3对常见的编程逻辑和核心关键词能够用英文组织问题的描述最简答的也行只要能被搜索引擎读懂就可以。比如如何在C#中把整形转换为字符串类型这个问题最简易的英文描述就是 C# Integer Covert To String。4在自己技术知识范围内的任何的英文的技术手册、文档、文章或是问题描述能够读懂8成的内容含义能够读懂完整的技术含义。3、搜索方法任何一个开发人员都应当具备搜索能力甚至是一定要具备搜索能力搜索引擎的宝藏是无穷无尽的同样具备搜索意识的不同程序员却因为搜索技巧的差异最终在程序开发质量、项目实施效率、甚至是工程产品质量上出现数倍的差异因此掌握高效、先进、灵活的搜索方法和技巧是非常非常非常重要的事情说三遍有用的。其中主要的方法介绍如下1搜索源选择虽然英文的编程资料更为准确高效但中文的编程资料数量上却占优因此遇到问题第一搜索选择还是百度谷歌对于专业中文词汇的处理能力有时候甚至比百度还要强而且谷歌能搜出大量的英文资源因此谷歌也是首选之一但是由于谷歌被封锁因此需要进行VPN、SSH等FQ操作或者在百度搜索“谷歌镜像”关键词通过谷歌的镜像网站进行访问。除了搜索引擎专业的技术网站、论坛、社区也是非常直接有效的搜索源比如国外的StackOverFlow网站国内的Cnblogs博客园、OSChina开源中国等都具备搜索功能将问题关键词输入其中也许也会很快的得到相关答案。对于QQ群建议不要使用除非QQ群主或者成员是非常闲或者非常非常热心的人否则在QQ群询问技术问题是非常低效率的搜索方式。2关键词构造搜索关键词的构造直接影响搜索效率和正确结果的过滤没有什么特别的技巧关键在于搜索积累但是总体遵循的原则是准确和简洁比如当出现一个描述如何用C#对XML进行序列化和反序列化非常愚蠢的关键词构造就是“如何用C#对XML进行序列化和反序列化”而正确高效的关键词则是“C# XML 序列化 反序列化”,或者在谷歌里面搜索则是“C# XML Serialization”。在平时的编程中一定要注意相关方法和经验的积累3联想搜索联想搜索不属于搜索引擎的范畴却是在搜索中很有用的高级技巧举一个通俗的例子比如想使用C#利用某个.NET类处理一种HTTP通讯但是一直搜索不到完美的结果不过换个思路考虑到VB.NET也是.NET体系和C#完全相通那么也可以试着用VB.NET关键词进行搜索搜索到完美代码后再临摹成C#代码。这样的联想搜索不仅能够帮助搜索正确结果也是对大脑思维的训练值得多多尝试。4资源搜索开源的框架、产品、工具、控件等开发辅助类东西越来越多稳健性和迭代性越来越强去寻找一款成熟的工具或者插件也成为了大量开发者的必备方法和技能而如何高效的搜索出想要的资源也成为了一门学问其核心方法就在于知晓资源网站的地址常见的例如有开源中国、Github、CSDN下载、pudn等。资源类网站需要平时多积累到用到的时候会非常关键。4、思维模式
首先要谈的是,今天的话题所聊的程序员包含哪些人?
发布时间:2026/7/2 2:42:47
大公司有厉害的程序员优秀的架构师但大量的小公司也有很多普通的程序员。在我这些年的工作经历中也越来越深刻的感受到普通程序员的影响和力量。对于高阶程序员所谓八仙过海各有神通各有各的成就各有各的修养但程序员在达成较高的水平之前有一些“自我修养”是最基础的是普世的。所以今天的话题面向的程序员就是所有的正在写代码或者曾经写过代码的程序员也包括广义上的程序员例如项目经理、架构师等等。做任何事都是有明确目的那么再谈一谈程序员提高自我修养是为了什么程序写的好有人崇拜有妹子喜欢还是到博客、论坛、社区发表文章进行分享获得成就我想这是少数人的追求也是更高的追求在这之前我认为在中国程序员提高自我修养的目的是为了1、更好的融入工作减少困难增加成就2、稳步的提升能力提高收入达成财务自由2、站在更高的层面看待自己的学习和工作树立更加适合的人生观价值观家庭幸福生活愉快说的更通俗一点就是用更加合理的方式和方法赚取到更多的收入说了这么多废话进入正题何为程序员的自我修养正面论述很难说清楚反向描述可能更通俗易懂一些自我修养的对立面是“没有修养”先说一说在这么多年的工作、学习、生活中遇到的一些我认为“没有修养”的程序员形态1、程序员小张遇到了一个开发问题很着急想到了有几个群于是到群里发了他的问题坐等回答发现没有人回答就直接对话群主的QQ群主也不回答于是小张就搜索突然搜到博客园有个帖子讲解了相关话题他看完就给博主留言我的邮箱是XXXXXqq.com麻烦博主把源码发给我一下谢谢。2、程序员小张进公司3个月了老板布置了很多任务他觉得老板很没人性工资给的不高加班也不给钱于是在写代码的时候能省就省客户反馈有问题也不主动解决敷衍为主又过了一个月跳槽了。3、程序员小张正在写一个功能模块需要进行某种加密到百度搜到了一个编码模块看不明白具体写了什么但是放到程序里刚好适用于是就这么原封不动放进去了。4、程序员小张要对某个功能进行研发项目经理对他说这个功能应该能搜索到你去搜搜看小张就在百度搜啊搜一天过去了啥都没找到项目经理来到小张身边坐下换了个关键词1分钟就搜到了解决方案。5、程序员小张学.NET已经工作3年了工资还是10000和公司提涨工资也没答应想跳槽又犹豫这时某个前辈对他说你去看书吧多看一些书例如 《Visual C# 从入门到精通》《CLR via C#》《Javascript权威指南》等等于是小张买回来了 随手翻了翻发现有些东西是他已经会的有些看不懂的好像又用不到而且书这么厚要不要浪费时间去看呢小张就这样反复纠结了半年依然每天上班工作下班LOL偶尔还抱怨一下工资低。6、程序员小张到了一家新公司在做一个项目实现某个功能时想起来以前做过这样的功能可是竟想不起怎么实现了于是就到自己电脑上找文档找了好久也没找到只好放弃最后又折腾了2天终于还是把这个功能给实现了。7、程序员小张某天非常不高兴因为他的项目经理和项目组的产品人员又变更需求了新的需求又要对整个结构进行大的调整小张很郁闷到一个QQ里发泄情绪说了这个事于是立马QQ群里面炸开锅了程序员小李说对产品就是狗日的程序员小王说对他妈的项目经理整天高枕无忧就知道压榨开发人员程序员小孙说是的是的我上一家公司也是这样压榨程序员幸好我走了。就这样在一片骂声中几个程序员心情舒畅了小张开心的去玩王者荣耀去了。我想有些人可能已经明白我要说什么有些人可能还不明白具体的话我也说不出来只能用一句话来概括就是在编写代码的过程中善于学习、掌握方法、勤加思考、勤奋努力、持之以恒长此以往在编程中你会发现不一样的自己。以上这些还是比较抽象那么提升自我修养的具体方法有哪些程序员具体如何达成“较高的修养”每个人各有自己的办法我无法说到很细就和如何提高做人修养一样一句两句话是说不清楚的但是有些说法也通俗易懂比如一个小孩有教育良好的父母父母彬彬有礼小孩从小开始接受正规教育小学、初中、高中、大学然后文化课程和社会实践良好那么这个小孩最终的做人修养一定比没有经历过这个过程的小孩更好一些。同样的写程序也是如是下面我就讲一些最基本的、最浅显易懂的学习方法和道理我把它叫做程序员基础的基础一个好的开发人员应该能够全面、高效、严谨的去处理任何软件程序和业务问题成为一个好的开发是一个很有意思的话题不过无论这个话题如何开展基础两个字必不可少虽然代码量是衡量开发能力的重要指标但仅能够熟练的进行代码编写是不够的更要能深刻的理解技术原理和业务逻辑扎实的个人基础和技术基础往往会促进代码的编写更游刃有余的解决问题。下面说的一些基础可能绝大部分开发人员都不会在意甚至忽略但恰恰这些才是开发大厦的基石。1、科学基础成为开发人员的过程不尽相同有的是科班出身有的是兴趣爱好还有的是专业机构的培训在这个过程中可能全面或者零散甚至没有学习过计算机基础学科但无论是哪一种想要成为更高层次的开发人员写出更高质量的代码计算机基础学科的学习是非常非常非常重要的事情说三遍重要的。具体的来说基础学科在实践应用中有如下几门是一定需要的按照学习顺序排列如下1数据结构数据结构课程通俗的说就是告诉你如何用最基本的语言类型、变量关键词语句等去处理各式各样的逻辑问题我们称之为算法而日常编程中的各种问题例如排序、文件夹遍历操作、数据库查询等都可以在数据结构课程中找到对应的数学原型。数据结构课程的理解能力也是一个人数学能力的体现数据结构学习的好坏是程序员水平差异的一个重要分水岭对于这一块内容的学习有如下建议使用VB、C、C、Pascal等语言买一本相关语言数据结构与算法的书或者在网上下载相关的PDF电子书完整的学习一边并将书本中的所有案例亲自编写运行调试一遍当能够领悟到某些日常编程中常见手法源于某些数据结构和算法时就基本达到了学习效果。2操作系统所有编程语言的开发以及应用的运行都基于操作系统桌面编程中的大部分场景包括内存、进程、文件系统、网络通讯、用户界面等都源于操作系统的定义和概念完整的了解操作系统的起源和组成以及运行逻辑对多线程、复杂界面、文件管理以及一些难以正常理解编程思路等开发中遇到的场景有非常大的帮助不仅帮助理解也能掌握更多有效的程序写法。具体可以买一本操作系统的书或者下载相关PDF电子书完整的浏览一遍做到能够结合实际编程场景来看待操作系统原理就基本达到了学习效果。3数据库传统的关系型数据库入门简单深入却难往往开发人员能够较快的掌握增删改查、视图、索引、存储过程等基本数据库操作却在编写复杂查询、设计主外键、优化字段、去除冗余等时出现只会依葫芦画瓢却不能自主思考扩展的状况。究其原因还是没能了解关系数据库的根本原理而数据库这一门课程系统的阐述了关系型数据库的来龙去脉了解其中的数学原理或逻辑基础所在对提升数据库编程水平有质的影响。建议也是买一本数据库的相关书籍或者下载PDF电子书能够把熟练的把第一范式、第二范式等数据库课程的基本知识点与数据库编程场景建立起关联也基本达到了学习效果。4编译原理编译原理是编程语言以及各类语言编译器的科学基础可以说编译原理创造了世界上的几乎所有的IT应用学习编译原理的基础是数据结构和算法因此编译原理的学习要花费更多的时间和精力由于现代高级编程语言的编译器在代码优化、资源优化方面已经做的足够智能因此编译原理的学习对实战的影响越来越小但是正所谓本盛末荣如果认为自己对数据结构和算法的学习达到了一个较高的水平和状态可以在编译原理学习上进一步深入最终把自己和普通程序员拉开更大的差距。2、英语能力英语的天然特性和字母长度还有学科发展的历史因素决定了编程语言一定是基于英语的在编程过程中从语言的关键词到文档的内容又或是搜索引擎的搜索结果都不可避免的会遇到英文。大部分编程人员都具备英语四级左右的英文基础却由于非专业以及工作环境原因逐渐疏远甚至完全淡忘了英语。而实际操作中大部分编程语言资料都是英文在线编程问答内容也是英文因此很有必要把英语能力重新恢复到一个不用太高但行之有效的水平达到如下效果1对自己所使用语言每一个关键词都知道具体的英文翻译、逻辑含义以及读音。2对于自己使用语言所涉及到的相关方法、类库、框架、工具等能知道其中每一个方法、过程以及参数关键词等的英文翻译、逻辑含义以及读音。3对常见的编程逻辑和核心关键词能够用英文组织问题的描述最简答的也行只要能被搜索引擎读懂就可以。比如如何在C#中把整形转换为字符串类型这个问题最简易的英文描述就是 C# Integer Covert To String。4在自己技术知识范围内的任何的英文的技术手册、文档、文章或是问题描述能够读懂8成的内容含义能够读懂完整的技术含义。3、搜索方法任何一个开发人员都应当具备搜索能力甚至是一定要具备搜索能力搜索引擎的宝藏是无穷无尽的同样具备搜索意识的不同程序员却因为搜索技巧的差异最终在程序开发质量、项目实施效率、甚至是工程产品质量上出现数倍的差异因此掌握高效、先进、灵活的搜索方法和技巧是非常非常非常重要的事情说三遍有用的。其中主要的方法介绍如下1搜索源选择虽然英文的编程资料更为准确高效但中文的编程资料数量上却占优因此遇到问题第一搜索选择还是百度谷歌对于专业中文词汇的处理能力有时候甚至比百度还要强而且谷歌能搜出大量的英文资源因此谷歌也是首选之一但是由于谷歌被封锁因此需要进行VPN、SSH等FQ操作或者在百度搜索“谷歌镜像”关键词通过谷歌的镜像网站进行访问。除了搜索引擎专业的技术网站、论坛、社区也是非常直接有效的搜索源比如国外的StackOverFlow网站国内的Cnblogs博客园、OSChina开源中国等都具备搜索功能将问题关键词输入其中也许也会很快的得到相关答案。对于QQ群建议不要使用除非QQ群主或者成员是非常闲或者非常非常热心的人否则在QQ群询问技术问题是非常低效率的搜索方式。2关键词构造搜索关键词的构造直接影响搜索效率和正确结果的过滤没有什么特别的技巧关键在于搜索积累但是总体遵循的原则是准确和简洁比如当出现一个描述如何用C#对XML进行序列化和反序列化非常愚蠢的关键词构造就是“如何用C#对XML进行序列化和反序列化”而正确高效的关键词则是“C# XML 序列化 反序列化”,或者在谷歌里面搜索则是“C# XML Serialization”。在平时的编程中一定要注意相关方法和经验的积累3联想搜索联想搜索不属于搜索引擎的范畴却是在搜索中很有用的高级技巧举一个通俗的例子比如想使用C#利用某个.NET类处理一种HTTP通讯但是一直搜索不到完美的结果不过换个思路考虑到VB.NET也是.NET体系和C#完全相通那么也可以试着用VB.NET关键词进行搜索搜索到完美代码后再临摹成C#代码。这样的联想搜索不仅能够帮助搜索正确结果也是对大脑思维的训练值得多多尝试。4资源搜索开源的框架、产品、工具、控件等开发辅助类东西越来越多稳健性和迭代性越来越强去寻找一款成熟的工具或者插件也成为了大量开发者的必备方法和技能而如何高效的搜索出想要的资源也成为了一门学问其核心方法就在于知晓资源网站的地址常见的例如有开源中国、Github、CSDN下载、pudn等。资源类网站需要平时多积累到用到的时候会非常关键。4、思维模式