做一个好的程序员难吗?只需要这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、有更好的方法吗?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】 2724. 排序方式

排序方式 给定一个数组 arr 和一个函数 fn,返回一个排序后的数组 sortedArr。你可以假设 fn 只返回数字,并且这些数字决定了 sortedArr 的排序顺序。sortedArr 必须按照 fn 的输出值 升序 排序。 你可以假设对于给定的数组,fn 不会返回重复的…

记录Python链接mysql的数据库的2种操作方式

一、使用pymysql库方式 import pymysqldb pymysql.connect(hostlocalhost,userroot,password123456) #创建链接,在3.8以后好像已经不支持这个种链接方式了, #db pymysql.connect(localhost,root,123456) cursor db.cursor()#拿到游标这样我们就拿到了…

DataX-Web,介绍-安装-部署-启动

使用文档:GitHub - WeiYe-Jing/datax-web: DataX集成可视化页面 目录 1、DataX-Web介绍 2、DataX-Web部署 3、DataX-Web启动命令 1、DataX-Web介绍 GitHub - WeiYe-Jing/datax-web:DataX集成可视化页面,选择数据源即可一键生成数据同步任务…

iOS依赖库版本一致性检测:确保应用兼容性

一、背景 在 iOS 应用开发的世界里,每次 Xcode 更新都带来了新的特性和挑战。最近的 Xcode 15 更新不例外,这次升级引入了对 SwiftUI 的自动强依赖。SwiftUI最低是从 iOS 13 开始支持。 这一变化也带来了潜在的兼容性问题。如果您的项目在升级到 Xcode…

使用 npm 工具高效更新项目依赖包

团队内部会用工具定时检查包的最新版本并通知,以便我们及时跟进社区进展,避免和技术栈出现版本脱节导致无法使用最新特性和优化内容 这里只说明手动查看和更新包的主要几个命令。 npm outdated:检查项目中过时的依赖包及其最新版本。 npm i…

在 Vue 2 中动态赋值 img 标签的 src 属性时显示为图裂

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的全栈工程师 欢迎分享 / 收藏 / 赞 / 在看…

Java-通过Maven导入本地jar包的常用方式

1.首先创建一个用于创建jar包的项目,进行测试 2.测试成功后进行项目打包 3.创建一个要导入本地jar包的项目,在项目下创建lib目录,并将刚才打包好的jar包复制进去 4.在pom.xml文件中引入 5.运行测试

02-攻防世界PHP2

题目 authenticate:证明什么是真的 解题 观察题目可知,访问index.phps可能会有不一样的发现 http://61.147.171.105:51671/index.phps访问该链接,可以得到下面的界面 这里只显示出了部分代码,右键该界面,点击查看源代码&#xf…

引领软件供应链安全 比瓴科技位居安全牛全景图第一

近日,安全牛第十一版《中国网络安全行业全景图》正式发布,比瓴科技入选全景图软件供应链安全赛道中开发流程安全管理、DevSecOps和软件成分分析三个重要细分领域,并位居开发流程安全管控领域第一。 安全牛本次全景图研究工作于23年正式启动&a…

一文了解Activiti7

文章目录 ☃️1.1 Activiti 介绍☃️1.2 Activiti 开发流程☃️1.3 BPMN 2.0 规范是什么☃️1.4 BPMN 2.0 基本流程符号❄️❄️1.4.1 事件 Event❄️❄️1.4.2 活动❄️❄️1.4.3 网关 Gateway ☃️1.5 Activiti API 服务接口❄️❄️1.5.1 核心Service接口及其获取 ☃️1.1 A…

M2 运行 llamafile

安装llamafile很简单,进入官网,按照步骤安装运行即可。 https://github.com/Mozilla-Ocho/llamafile 下载 llava-v1.5-7b-q4.llamafile赋予运行权限chmod x llava-v1.5-7b-q4.llamafile运行 ./llava-v1.5-7b-q4.llamafile -ngl 9999 速度确实是比 olla…

HBase2.x学习笔记

文章目录 一、HBase 简介1、HBase 定义1.1 概述1.2 HBase 与 Hadoop 的关系1.3 RDBMS 与 HBase 的对比1.4 HBase 特征简要 2、HBase 数据模型2.1 HBase 逻辑结构2.2 HBase 物理存储结构2.3 HBase的表数据模型 3、HBase 基本架构3.1 Master3.2 Region Server3.3 Zookeeper3.4 HD…

哪个牌子的电视盒子好用?经销商整理线下热销电视盒子排行榜

在选购电视盒子的时候许多朋友并不了解哪个牌子的电视盒子好用,如何才能买到最满意的电视盒子呢?我身为数码实体店老板,做电视盒子这块有七年了,经常会有用户问我电视盒子相关问题,我按照店内销量整理了电视盒子排行榜…

微信小程序英文版:实现一键切换中英双语版(已组件化)

已经重新优化代码做成了组件,需要可自取:https://github.com/CrystalCAI11/wechat-language-compoment 所有操作都打包在组件里不需要在额外的地方添加代码,直接在你需要的页面里导入组件,再在对应页面的onLoad()里set文本就行了。…

difference between make and cmake

链接: https://earthly.dev/blog/cmake-vs-make-diff/#:~:textIn%20summary%3A%20The%20difference%20between,used%20to%20create%20a%20Makefile.

OpenHarmony开发案例:【自定义通知】

介绍 本示例使用[ohos.notificationManager] 等接口,展示了如何初始化不同类型通知的通知内容以及通知的发布、取消及桌面角标的设置,通知类型包括基本类型、长文本类型、多行文本类型、图片类型、带按钮的通知、点击可跳转到应用的通知。 效果预览&am…

✯✯✯宁波 IATF16949 认证:助力汽车企业迈向卓越✯✯✯

🌈🌈🌈宁波IATF16949认证:💝助力汽车企业迈向卓越💗 🕵️‍♂️宁波,这座繁华的🦊港口城市,不仅以其🐯独特的地理位置和丰富的🕊️历史…

霍夫曼编码(含完整源码)

1.第一步 统计所有的字符【*】出现的频次并按频次进行从小到大的排序 2.第二步 进行权值的合并 3.第三步 编码 左0 右 1 huffman编码大致分为以下步骤: 统计所有字符出现的频次构建huffman树huffman树生成huffman编码将源文件压缩成huffman编码结构收到源文件之后…

JavaScript入门--数组

JavaScript入门--数组 前言数组的操作1、在数组的尾部添加元素2、删除数组尾部的元素,也就是最后一个元素3、删除头部第一个元素4、在数组的前面添加元素 小案例5、数组的翻转6、数组的排序7、数组的合并8、数组的切片 前言 JS中的数组类似于python中的列表&#x…