做一个好的程序员难吗?只需要这10个习惯

       

         在这个世界上,有数以百万计的人对软件开发充满热情,他们有很多名字,如软件工程师、程序员、编码员、开发人员。一段时间后,这些人可能会成为一名优秀的编码员,并且他们将非常熟悉如何使用计算机语言完成工作。但是,如果你想成为一名优秀的程序员,你还需要注意几点,如果你能让以下十项成为你的习惯,那么你就真的可以算是一名优秀的程序员了。

1.学无止境

        即使你有10多年的程序员经验,你仍然要努力学习,因为你在计算机领域,充满了创造力,每天都有很多很多新事物出现. 你需要跟上时代的步伐。

        您需要了解新的编程语言,以及了解正在开发的编程语言和一些编程框架。您还需要阅读行业新闻并参与热门社区的在线讨论,以便您了解和欣赏软件开发的整体趋势。在国内有CSDN、掘金、InfoQ、OSCHINA等一些著名的社区。在国外,建议大家经常去http://digg.com看看各种BLOG的聚合。

2.掌握多种语言

        编程语言总是有它们最适合的领域。当您面临需要解决的问题时,您需要找到最适合解决这些问题的语言。比如,如果你需要性能,C/C++可能是首选,如果你需要跨平台,Java可能是首选,如果你想在Web上写开发程序,PHP、ASP、Ajax、JSP可能是您的选择,如果您想处理一些文本并与其他应用程序交互,Perl、Python 可能是最好的。

        所以花一些时间探索你熟悉的其他编程语言来拓宽你的视野,因为你武装得更好,思考更全面,这对你自己和你的项目都有好处。

3. 对不同的操作系统或技术保持理性

        程序员心中总有自己无与伦比的技术和操作系统,有人喜欢 Ubuntu,有人喜欢 Debian,有人喜欢 Windows,还有 FreeBSD、MacOSX 或 Solaris 等。只有一些最优秀的程序员了解不同操作系统的优缺点,这样他们才能真正客观公正地进行系统选择,而不会让他们的情绪占上风。语言也是如此,太多的程序员总是喜欢纠缠于语言的比较,比如 Java 和 Perl。

        哪个新晋程序员没有为类似的话题争论过?比如VC++和Delphi等。争论这些事,只能说明一个人的肤浅和脆弱。一个好的程序不会固守这些原则,而是能够理性地分析和面对它们,从而做出正确的客观选择。

4. 不要将自己局限在单一的开发环境中

        同样,如上所述,每个程序员都有自己喜欢的工具和技术,有些喜欢旧的,有些喜欢新的,比如 gedit 或 Emacs。有些人喜欢使用 VC++ 之类的 GUI 调试器,而我更喜欢 GDB 命令行调制器。等等等等。

        关于程序员使用什么工具有很多争论吗?到处都是。你使用什么工具并不重要,只要你能更好更快地实现你的目标。但是优秀的程序员应该知道一件事——那就是他们应该尝试其他工作环境。没有比较,你永远不知道谁好谁不好,你永远不知道你不知道什么。

5. 别告诉我你不知道源代码版本控制

        如果您的团队正在开发没有版本控制系统的源代码,那么我告诉您,您的软件开发仍处于石器时代。CVS 是一个看起来平淡无奇的版本控制工具,但它是使用最广泛的版本控制系统,Subversion 是开始占领 CVS 领域的 CVS 的更新版本,而 Git 是另一种版本控制工具。还有 Visual SourceSafe 等。

        根据您团队的规模和地理位置,您可能会使用效率最高或最低的工具来管理您的源代码。但是一个好的程序员总是会使用源代码版本控制工具来管理他或她的代码。如果你想让我推荐一个,我推荐开源的 git。

6. 成为一名优秀的团队合作者

        除非你喜欢独奏,除非你是独狼。但我想让你知道,今天,可能没有经过验证的软件可以单独完成,你可能是团队中最大的恶霸,但这并不意味着你是一个优秀的团队合作者。你的能力只有融入团队才能发挥作用。

        你与团队成员的沟通有礼貌吗?您是否定期与他们沟通,每个人都喜欢和您一起讨论问题吗?想想一支足球队,你是那支球队的好成员吗?当其他人看到你在场上奔跑时,当其他人看到你的传球、接球和扣篮时,你的团队成员会被你的行为所鼓舞吗?

7. 把你的工作变成文档

        这个条目当然包括在你的代码中写注释,但这还不够,你还需要做更多。注释良好的代码是文档的基础,可让您和您的团队轻松理解您的意图和想法。

        写下文档不仅仅是一种团队离线交流的方式,以免忘记我们的想法,也是一种传递知识的方式。把你知道的一切都写下来是个好习惯。因为,我相信你不希望人们总是在你最忙的时候打断你问问题,或者在你度假时接到公司的电话问你问题。

        而如果你自己老是守口如瓶,那么结果很可能就是你会在很长一段时间内让自己深陷其中,而你更不能做更多的事情,包括向上提升。你可能会认为“教徒会饿死师父”,但我告诉你,你的保守会让你失去更多更好的东西,请相信我,我在这里不是耸人听闻。

8.注意备份和安全

        也许您认为这是“废话”,并且您已经了解备份的重要性。但我在这里要指出的是,失去东西是我们生活的一部分,你总是会失去东西,你永远无法避免它。比如:你的笔记本电脑被偷了,你的硬盘坏了,你的电脑中了病毒,你的系统被黑了,甚至整栋楼都被烧毁了等等。

        所以,做好一件非常非常重要的事备份工作。硬盘不可信,定期刻录CD或磁带可能是个好办法,而互联网也不可信,所以要提防病毒和黑客,不仅在软件方面使用安全策略,你需要一个完善的管理系统。此外,尽量将数据保存在尽可能多的不同位置,并制定定期(每天、每周、每月)备份策略。

9.设计要足够灵活

        也许你的需求只会要求你实现一个死的东西,但是,作为一个好的程序,你应该一直在想这个死的东西是否可以有灵活的一面,比如让一些参数可配置,将一些通用的东西形成你的函数库为了以后重用,是否提供插件方面的功能?您的模块必须像积木一样组装吗?如果有修改,您的设计可以立即应对吗?当然,灵活的设计可能并不意味着重新发明轮子,而是尽可能使用标准化的东西。

        所谓灵活设计,就是让我们去考虑更多超出需求的东西,在需求中考虑到这一类的所有问题,而不是仅仅处理需求中陈述的那个特定的东西。例如,如果要求的屏幕分辨率为 800×600,您的设计能否灵活适应其他分辨率?

        编程总是需要我们应对不同的环境,以及未来的趋势。我们需要以动态的视角思考事物,而不是开辟一条道路。也许有一天,你今天写的程序会被移植到另一个环境中,然后你才能真正理解什么是柔性设计。

10. 不要捡起石头砸断自己的脚

        程序员总是有一个试图快速完成工作的坏习惯。但情况往往与你想要的相反。越想做快越容易出错,越想做快越容易漏题,最终程序改过来改过去,把葫芦按在瓢虫上,最终花费更多的时间和精力。对速度的渴望没有实现。

        一个好的程序员的习惯是在前面花更多的时间做更多的研究,尝试不同的解决方案,如果时间允许,一个好的习惯是每 4 个小时的编程,你需要一个小时的休息,然后再有 4 个小时的休息、编码。当然,这因人而异,但它的目的是让你时不时回首,让你思考三个这样的问题:

1、这样做对吗?

2、 考虑到所有情况,这样做是否正确?

3、有更好的方法吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EasyRecovery激活秘钥2024最好用的电脑数据恢复软件下载

EasyRecovery数据恢复软件是一款专业且功能强大的数据恢复工具,它旨在帮助用户从各种存储设备中恢复由于各种原因(如误删除、格式化、病毒攻击、系统崩溃等)导致丢失的数据。这款软件支持多种存储介质,包括但不限于硬盘驱动器、U盘…

0.5W 3KVDC 隔离 单输出 DC/DC 电源模块 ——TPR-W5 系列

TPR-W5系列是一款需要隔离和电压转换的产品,工业级环境温度,温度范围从–40℃到105℃,用于PCB安装的国际标准结构。此系列产品小巧,效率高,低输出纹波及提供3000V以上的直流电压隔离,用于需要隔离的场合&am…

【Spring系列】- Spring事务底层原理

实验准备 配置文件 首先在配置文件中配置jdbcTemplate和事务管理器,并且需要开启事务的注解EnableTransactionManagement以及Configuration注解 ComponentScan("com.lyd") EnableTransactionManagement Configuration public class ApplicationConfig …

ES6常用语法

1.声明变量: let 和 const let 声明的变量可以被修改;const 声明的变量是常量,不可被修改。 let x 10; const PI 3.14; 2. 箭头函数 更简洁,绑定了词法作用域的 this 值。不会创建自己的 this,而是继承了上下文中的 this 值…

【ITK滤波】第2期 边缘检测

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享ITK中的边缘检测,及相关实例和算法解析,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO …

StringUtils.join()

源码 public static String join(Iterable<?> iterable, String separator) {return iterable null ? null : join(iterable.iterator(), separator);} 简介 这个函数是一个静态函数&#xff0c;它接受一个可迭代对象和一个分隔符作为参数&#xff0c;并返回一个将可…

[入门]测试原则-ApiHug准备-测试篇-002

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace 写在前面…

低敏猫粮怎么选?看这一篇就够了!

亲爱的朋友们&#xff0c;你们是否曾经为了家中敏感肠胃的小猫咪而犯愁&#xff0c;不知道如何选择适合的猫粮呢&#xff1f;今天&#xff0c;就让我们一起聊聊低敏猫粮与普通猫粮的那些不同之处吧&#xff01;&#x1f431; 1️⃣ **成分差异**&#xff1a;首先&#xff0c;从…

Go 自定义14位时间类型 yyyyMMddHHmmss

目录 功能 代码 功能 数据库或者接口时间类型&#xff0c;经常会使用14位的时间格式。每次都转换有点麻烦。可以自定义一个时间类型。 自定义类型需要实现json接口中的MarshalJSON与UnmarshalJSON两个函数&#xff0c;这样在做json编码解码时就会自动转为14位的时间格式了。…

第四届大数据工程与教育国际会议(BDEE 2024)即将召开!

第四届大数据工程与教育国际会议&#xff08;BDEE 2024&#xff09;将于2024年8月9-11日在泰国清迈举行。数据驱动教育变革&#xff0c;智慧点亮未来课堂&#xff01;BDEE 2024是专注于大数据工程与教育领域的重要学术会议&#xff0c;全球大数据与教育精英齐聚&#xff0c;在数…

使用 Docker 部署 SurveyKing 调查问卷系统

1&#xff09;SurveyKing 介绍 SurveyKing 是一款功能强大、操作简便的开源问卷系统。它不仅满足了用户对问卷调查的基本需求&#xff0c;还提供了丰富的逻辑设置和灵活的问题设置&#xff0c;使得问卷制作更加智能化和个性化。此外&#xff0c;SurveyKing 还具有快速部署和安全…

构建鸿蒙ACE静态库

搭建开发环境 根据说明文档下载鸿蒙全部代码&#xff0c;一般采取第四种方式获取最新代码(请保证代码为最新) 源码获取Windows下载编译环境 MinGW GCC 7.3.0版本 请添加环境变量IDE 可以使用两种 CLion和Qt,CLion不带有环境需要安装MinGW才可以开发,Qt自带MinGW环境&#xff0…

认识一下RAG

1.RAG技术背景与挑战 2.RAG的核心概念 3.RAG的工作流程与架构 4.RAG的优化方法 RAG的提出 •Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks是一篇重要的论文(2020年5月) •REALM: Retrieval-Augmented Language Model Pre-Training (2020)就将BERT预训练模…

Unity URP Release-Notes

&#x1f308;Unity URP Release-Notes 收集的最近几年 Unity各个版本中 URP的更新内容 本文信息收集来自自动搜集工具&#x1f448; &#x1f4a1;URP Release-Notes 2023 &#x1f4a1;URP Release-Notes 2022 &#x1f4a1;URP Release-Notes 2021

Unity URP 2023 Release-Notes

&#x1f308;Unity URP 2023 Release-Notes 本文信息收集来自自动搜集工具&#x1f448; 版本更新内容2023.2.13URP: Ensure motion vector depth buffer is valid for cameras with motion vectors enabled.(UUM-61466)2023.2.2Universal RP: URP: Fixed an issue where scr…

家居网购项目(三)

文章目录 1.后台管理—添加家居1.需求分析2.程序框架图3.修改FurnDao添加方法add 4.修改FurnDaoImpl添加方法add 5.单元测试FurnDaoTest.java 6.修改FurnService添加方法add 7.修改FurnServiceImpl添加方法add 8.单元测试FurnServiceTest.java 9.修改furn_add.jsp10.修改FurnSe…

向量数据库之Lancedb学习记录

简介 Lancedb是一个用于人工智能的开源矢量数据库&#xff0c;旨在存储、管理、查询和检索大规模多模式数据的嵌入。Lancedb的核心是用Rust编写的&#xff0c;并构建在Lance之上&#xff0c;专为高性能 ML 工作负载和快速随机访问而设计。 快速开始 安装 pip install lance…

【面试经典 150 | 数学】阶乘后的零

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;数学优化计算 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结…

安秉信息桌面监控软件为什么这么受企业的欢迎

如今&#xff0c;软件市场上的桌面监控软件的类型丰富&#xff0c;种类齐全&#xff0c;几乎每个消费者都可以在市场上找到一款适合自己需求的桌面监控软件。不过&#xff0c;在市场经济调节下&#xff0c;软件行业的竞争也变得更加激烈&#xff0c;而竞争也能让真正受欢迎的桌…

CJS的module.exports 、 exports和ESM export default和 export详解

webpackg公共源码 function __webpack_require__(moduleId) {if (__webpack_module_cache__[moduleId]) {return __webpack_module_cache__[moduleId].exports;}var module __webpack_module_cache__[moduleId] { exports: {} };__webpack_modules__[moduleId](module, modu…