搜索引擎优化高级编程(浅谈程序员程序员的自我修养问题,你知道吗?(上))
优采云 发布时间: 2021-09-06 07:19搜索引擎优化高级编程(浅谈程序员程序员的自我修养问题,你知道吗?(上))
今天访问了博客,看到了推荐的文章“程序员英语学习简谈”,于是点进去看了一下。非常同意文章的观点,英文很重要。不过文章站的高度还是太高了。具体的学习方法我不认同,也不觉得实用。碰巧文章 想要重新发布尚未发布到主页的它。借这个机会跟大家分享一下大家很认真的谈了程序员的修养。
先介绍一下利益相关者,我的背景:
初中开始参加信息科学和数学竞赛,本科软件工程专业,毕业后在银行做过大数据分析和项目管理,后来自己创业,做过媒体公司、软件外包公司,现在中国(南京)软件谷有工作室,做自己喜欢的事。 15年编码经验,6年创业经验。主要技术方向是.NET、HTML5、cloud服务、应用级开发等。我的总体评价是高级程序员、初级架构师
首先要说的是,今天这个话题涉及的程序员是谁?
在说之前,不得不提一个著名的程序员赵杰。他曾经有一个观点:“坚决反对北大青鸟等机构”。之前我也同意这个观点,但是现在,我“在此基础上同意”,他坚决反对甚至不喜欢赵杰的“表达这个观点”。赵杰最不可能遇到的草根开发者,而这些最不可能遇到的就是中国最普通的程序员,也是赵杰最不可能甚至不愿意帮助的人。水平程序员理科基础好,逻辑强,有完整的语言学习经验,他会认为自己是程序员至少能做到这一点,甚至认为其他不学数据结构的人就不用做了程序。这是非常自我挫败的。
在中国,编写程序不仅仅是一种爱好,更多时候,它也是一种普通的职业和谋生的工具
大公司有优秀的程序员和优秀的架构师,但大量的小公司也有很多普通的程序员。在这些年的*敏*感*词*中,我也越来越深刻地感受到普通程序员的影响力和力量。对于高级程序员来说,所谓的“八仙渡海”各有千秋,各有千秋,各有千秋。但是,程序员在没有达到更高层次之前,都有一些“修养”,这是最基本、最普遍的。
所以今天的话题是面向程序员的,即所有正在写代码或者已经写过代码的程序员,也包括广义的程序员,比如项目经理、架构师等。
一切都有明确的目的,所以
我们再说一遍,程序员提高修养是为了什么?
程序写得好,有人欣赏。有妹子喜欢吗?还是去博客、论坛、社区发文章分享收获成果?我觉得这是少数人的追求,也是更高的追求,在此之前
我认为中国程序员提高自身修养的目的是
1、更好地融入工作,减少困难,增加成绩
2、 稳步提升能力,增加收入,实现财务自由
2、以更高的眼光看待自己的学习和工作,树立更合适的人生观和价值观,幸福家庭幸福生活
通俗点说就是用更合理的方法和方法赚取更多的收入
废话不多说,进入正题
程序员的修养是什么?
很难做出积极的声明。反过来描述可能更容易理解。修身的反义词是“不修身”。说一下我在这么多年的工作、学习、生活中遇到的一些事情。 “没教养”的程序员形态:
1、Programmer Xiaozhang遇到开发问题,很着急。他想到了几个群,于是把问题发到群里,等着回答,发现没人回答,就直接找群长聊了起来。 QQ,群主没接,于是小张搜索,突然在博客园里发现了一篇解释相关话题的帖子,看完后给博主留言,我的邮箱是:,请把源代码发给我 谢谢你。
2、Programmer Xiaozhang 已经在公司工作了 3 个月。老板布置了很多任务。他觉得老板很没有人性,工资也不高,加班也不给钱,所以写代码的时候可以省钱。为了省钱,客户反映敷衍问题时,并没有主动解决问题。又过了一个月,他们辞职了。
3、Programmer Xiaozhang 正在编写一个需要某种加密的功能模块。在百度上找了个编码模块,看不懂写的什么,不过正好适合放在程序里,就这样了。不动就放进去。
4、程序员小张想开发某个功能。项目经理跟他说这个功能应该是可搜索的。你可以搜索一下。小张会在百度上搜索。当天发生了什么?我没有找到。项目经理来*敏*感*词*张坐下,换关键词,1分钟找到解决办法。
5、规划小张学.NET工作3年了,工资还是1万。我不同意公司提高工资。我想换工作,犹豫了。这时,一位学长对他说,去看看书吧。 , 多看书,如《Visual C# from Beginner to Master》、《CLR via C#》、《Javascript权威指南》等,于是小张又买了回来,翻了翻,发现有些东西他已经知道了,有些我看不懂的好像用不上,书又那么厚,要不要浪费时间看?小张就这样纠缠了半年,依旧每天上班,离开LOL,偶尔抱怨工资低。
6、 程序员小张来到一家新公司。我在做项目实现某个功能的时候,想起以前做过这样的功能,但是想不起来怎么实现,就在电脑上找了。好久没有找到文档,只好作罢。又折腾了两天,终于实现了这个功能。
7、programmerxiaozhang 有一天很不爽,因为他的项目经理和项目组的产品人员又改了需求,新的需求不得不对整个架构做大的调整。小张很郁闷。跑到一个QQ发泄情绪,说了这件事,QQ群立马炸了,程序员小丽说,是啊,产品太差了!程序员小王说,是的,他妈的项目经理可以整天高枕无忧,知道挤压开发人员!程序员小孙说,对对对,我上一家公司也是这样,压榨程序员,幸好我走了。就这样,在骂声中,几位程序员心情舒畅,小张开心的去玩王者荣耀了。
我想有些人可能已经明白我想说的,有些人可能不明白,我不能说任何具体的东西。我只能用一句话概括:
在写代码的过程中,善于学习,善于掌握方法,善于思考,努力工作,持之以恒。从长远来看,你会发现自己在编程方面有所不同。
以上内容比较抽象,所以
提升修养的具体方法有哪些?
如何实现专门针对程序员的“更高成就”。每个人都有自己的方法。我不能说太多。这和如何提高一个人的成就感是一样的。一两句话说不清楚,但有些论点也很容易理解。例如,孩子有受过良好教育的父母,有礼貌的父母,孩子从小接受正规教育,然后有良好的文化课程和社会实践。然后孩子最终会成为一个人。培养一定比没有经历过这个过程的孩子要好。
同样,写程序也是一样。下面我就讲一些最基本、最通俗易懂的学习方法和原理。我打电话给他们:
程序员基础
优秀的开发人员应该能够全面、高效、严谨地处理任何软件程序和业务问题。成为一个很好的发展是一个非常有趣的话题,但无论这个话题如何发展,基本的两个词都是必不可少的。代码量虽然是开发能力的重要指标,但能熟练地编写代码是不够的。还需要对技术原理和业务逻辑有深刻的理解。扎实的个人和技术基础通常会促进代码。编写,解决问题更容易。
下面提到的一些基础可能会被大多数开发者忽略或忽略,但这些是开发构建的基石。
1、科学基金
成为开发人员的过程并不相同。有些来自某个学科,有些是爱好,有些是来自专业机构的培训。在这个过程中,你可能很全面,也可能很零散,甚至没有学过基础的计算机学科,但无论是哪种类型的,要想成为一个更高层次的开发者,写出更高质量的代码,基础计算机科学的学习是非常非常的,非常重要(说三件重要的事情)。具体来说,在基础科目的实际应用中,以下科目是必不可少的,按学习顺序排列如下
1)数据结构
流行的数据结构课程,就是告诉你如何使用最基本的语言类型、变量、关键词语句等,来处理各种逻辑问题。我们称它们为算法。各种问题,如排序、文件夹遍历操作、数据库查询等,都可以在数据结构课程中找到对应的数学原型。对数据结构课程的理解能力也是一个人数学能力的体现。数据结构学习的好坏是程序员水平的重要分水岭。对于本篇内容的学习,有以下建议:使用VB、C、C++、Pascal等语言,购买相关语言数据结构与算法书籍,或上网下载相关PDF电子书,完成学习方面,亲自把书中的所有案例都写出来,运行调试,当你能理解一些日常编程中的常用技术源于某些数据结构和算法时,基本达到了学习效果。
2)操作系统
所有编程语言的开发和应用程序的运行都是基于操作系统的。桌面编程中的大多数场景,包括内存、进程、文件系统、网络通信、用户界面等,都源自操作系统的定义和概念。完整了解操作系统的起源、组成和运行逻辑,对于多线程、复杂接口、文件管理,以及开发中遇到的一些难懂的编程思想等场景都有很大的帮助。不仅有助于理解,还能掌握更有效的编程方法。具体来说,您可以购买操作系统的书籍或下载相关的PDF电子书,并完全浏览。如果能结合实际编程场景查看操作系统原理,基本可以达到学习效果。
3)database
传统的关系型数据库上手简单,深入难。往往开发者可以快速掌握数据库的增删改查、索引、存储过程等基本操作,但在编写复杂查询、设计主外键、优化字段、去除冗余等时,只能画葫芦而不能考虑扩展的情况。原因还是不能理解关系数据库的基本原理,数据库课程系统地讲解了关系数据库的来龙去脉,理解其中的数学原理或逻辑基础对提高数据库的水平有质的影响。数据库编程。建议购买数据库相关书籍或下载PDF电子书,能够熟练地将第一范式、第二范式等数据库课程的基础知识点与数据库编程场景联系起来,基本实现学习效果。
4)编译原理
编译原理是编程语言和各种语言编译器的科学基础。可以说,编译原理造就了世界上几乎所有的IT应用。学习编译原理的基础是数据结构和算法。这需要更多的时间和精力。因为现代高级编程语言的编译器在代码优化和资源优化方面已经足够聪明了,编译原理的学习对实战的影响越来越小,但所谓的本生莫容,如果他认为他对数据结构和算法的研究已经达到了更高的层次和境界,他可以在编译原理的研究上走得更远,最终他会和普通程序员有更大的差距。
2、英语能力
英语的自然特性、字母的长度以及学科发展的历史因素决定了编程语言必须以英语为基础。在编程的过程中,从语言的关键词到文档的内容或者搜索引擎的搜索结果,难免会遇到英文。大多数程序员的英语基础在CET-4左右,但由于非专业和工作环境的原因,他们逐渐疏远甚至完全忘记了英语。在实际操作中,大部分的编程语言资料都是英文的,在线编程问答的内容也是英文的。因此,有必要将英语熟练度恢复到一个不太高但有效的水平,并达到以下效果:
1)知道关键词所用语言的具体英文翻译、逻辑含义和发音。
2)可以知道所用语言所涉及的相关方法、类库、框架、工具等相关的每个方法、过程和参数关键词等的英文翻译、逻辑含义和发音。
3)对于常见的编程逻辑和核心关键词,问题描述可以用英文组织,最简单的回答也可以,只要搜索引擎能看懂就行。例如,如何在 C# 中将整数转换为字符串类型。最简单的英文描述是C# Integer Covert To String。
4)任何英文技术手册、文档、文章或自己技术知识范围内的问题描述,能够理解80%的内容和完整的技术含义。
3、搜索方法
任何开发者都应该具备搜索能力,甚至必须具备搜索能力。搜索引擎的宝藏是无穷无尽的。不同的程序员有着相同的搜索意识,却因为搜索技巧的不同,最终落入了程序中。开发质量、项目实施效率,甚至工程产品质量都存在多重差异。因此,掌握高效、先进、灵活的搜索方法和技术(说三个重要的事情)是非常、非常、非常有用的。主要方法介绍如下:
1)搜索源选择
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、思维模式
开发人员必须开发商业思维模型。所谓业务思维,是指在做任何项目的时候,在写任何代码之前,都需要有项目本身的业务概念、业务逻辑甚至业务流程。全面的学习和理解。虽然这不是一个项目的强制性要求,但却是一个很好的开发习惯。无论您认为自己是开发人员、测试人员还是技术总监,只要掌握了业务原则,您就会变得更好。设计或阅读项目的数据结构和流程结构。程序员的思维往往与用户或客户不一致。摆脱技术思维,习惯用商业思维解决问题的程序员不一定是最优秀的,但一定是能轻松沟通的程序员
5、工作和编程习惯
有人说打扫是浪费时间,所以不修剪,但归根结底这还是习惯问题。当您养成卫生习惯并使其成为生活习惯时,您往往不会花费更多时间,而是显得干净。有能力的。编写程序也是如此。有些编程习惯看似微不足道,似乎很浪费时间,但如果坚持下去,最终会收到意想不到的结果。以下是一些特别重要的习惯。
1)快捷键的使用
无论是使用Windows还是Linux操作系统,还是在IDE中,快捷键都是系统本身的标准配置。其实Ctrl+C、V等省时的操作,大多数人都能尝到。如果在IDE里写代码,除了代码本身,其他的鼠标操作和键盘定位操作都换成了快捷键。将节省一个数量级的时间。然而,这么好的事情,似乎真正坚持执行并养成习惯的人屈指可数。因此,最初的习惯改变和快捷键的记忆将是一个长期的过程,需要不断的坚持。
2)代码注释
随着开发者随着年龄和经验的增长,他参与的项目不再是一个人或几个人就能完成的。系统重构、代码重构、工作交接、新人培训等类似的事情会越来越多。无一例外,这些东西都会重写或重复已经写好的代码。阅读,如果你在最初写代码的时候做一个完整清晰的代码注释,对后续的工作会有很大的帮助。不仅提高了工作效率,还增强了合作的好感。其实,即使只是看自己的代码,如果有注释,也能加深印象,缩短代码搜索时间。因此,任何开发者都应该养成良好的代码注释习惯。
优秀的代码注释应该可以做到:/u013625142
3)命名规则
具有一定规模的软件公司在代码编写上有自己的命名规则,涵盖项目、模块、函数、变量等,标准化命名的好处不言而喻,但他们是被动的,被迫遵守命名规则规则与习惯使用命名规则完全不同。一个好的开发者应该发自内心地希望各种代码命名规则且易于阅读,而不是纠结于会增加代码字长的命名规则。
4)不将就的编程逻辑
所谓不完全的编程逻辑,与之相对的是非专业化的编程逻辑,非专业化的编程,不仅是一种不良的编程习惯,也是生活质量低下的体现。很多开发者,因为个人习惯有很多原因,比如进度快,客户要求低等,编程的时候很随意,这体现在,比如为了实现某个功能,百度出一块代码并直接应用它。 10行的代码只能看懂8行,看不懂两行。也放入程序中使用。很多这样的小细节,就像在项目中埋下了无数的定时*敏*感*词*,不仅返工的概率很大,也给项目埋下了风险。程序员要有责任感,有态度,开发不易做的编程逻辑,不要勉强自己,不要鄙视程序。
5)数据备份
误删、误操作、电脑断电、文件丢失等,是每个开发者都可能遇到的问题。如果你不希望你的辛勤工作白费或不小心影响你的工作,那么做好备份是必不可少的。在大公司,无论你是在大公司工作,在小公司工作,还是在实现个人代码价值的时候,都会有完善的源代码管理和信息安全保护。做好代码和文档的数据备份,备份方式的选择灵活多样,比如使用在线CVS、SVN、TFS、Git源码管理,或者手动拷贝文件到云空间或本地硬盘,甚至在个人电脑上组成RAID磁盘阵列等,养成定期定期备份的习惯。
6)Mail 工作方式
沟通是进步的源泉。如果说开发团队的热烈讨论是性格和*敏*感*词*的体现,那么电子邮件的工作方式也是另一种稳定高效的方式。无论是公司层面的工作沟通还是开发团队的问题沟通,邮件的作用包括形式化的问题描述、工作文档和痕迹、工作流程、明确的职责分工等,我习惯于发送重大问题和重要问题通过电子邮件。与同事、主管等沟通,对团队合作非常有帮助。
以上方法是我这么多年的感受和体会,也给了我很大的帮助。我希望他们也能帮助大家。不能说可以“提高修为”,但对“提高修为”也是有效的。方式。
最后我想谈谈坚持的力量
分享一个真实的故事。该公司有两名开发人员,其中一名已经做了很多年的.NET,但是很滑。做事可以省钱。如果你抓住机会偷懒,你就会偷懒,让他学习新的东西。新的知识方法总是自以为是,认为自己可以做到;有一个没有.NET基础,一直在做底层语言开发,15年才开始学习.NET和Web前端,但他很活跃,几乎花时间自学每天。如果你不明白它,你可以弄清楚它。如果不明白,可以上网或者找人帮忙。项目结束后,您会考虑可以改进的地方。从15年到现在,短短一年时间,这两个人的发展已经大不相同,工资差距也拉大了。后者已经能够自行管理中小型软件外包项目,而前者则鱼龙混杂。 ,他们各自未来的发展也是完全可以预见的。
我想说的是,本文分享的一些原理和方法都很容易理解,就像101%和99%的365次幂故事和10000小时的真相。等等,但真正认真思考和修行的人屈指可数。或许,坚持就是程序员最大的修养,我要鼓励你! /u013625142