真正的程序员(转贴)

程序员转型之程序员这个职业到底怎么样? 深度长文,干货原创 这几年随着互联网行业的大火,大数据,物联网,云计算,人工智能等技术的广泛应用和相关概念的火热,导致程序员的薪资收入水涨船高,程序员高薪也经常被人提起,甚至有各种媒体动辄传出与程序员相关的新闻,以及嫁人要嫁程序员的段子。那么程序员,作为一份职业到底算不算一份好的职业呢?关于这个问题,我们不好直接得出结论,我们可以先从程序员的历史(看看上一代程序员的列子),和当下程... 阅读详情

以下文章转于网易

给编程爱好者的忠告

近来有不少人问我是学Vb好还是学C好,还有人问Vc和C++Builder哪个更好,还有人说只要是面向对象的就是好的所以C++和Java最有前途。以我从事计算机教育多年的经验我要告诉这些编程爱好者,如果只是一味追求学会一门所谓的最先进的编程语言(事实上不存在最优),而忽视了编程思想和基础知识无疑是犯了学习编程的大忌。

就拿面向对象来说,人们一提到它就赞不绝口,然而又有多少人领会到什么是面向对象的思想,我想如果没有真正做过大项目的人是很难体会到其优越性的,这不是通过学习C++或Java就能掌握的。我的意思是编程注重的是想法而不是语言,这就是计算机专业要开设“算法分析”和“数据结构”的原因,如果一头钻到某一门语言中无疑于作茧自缚,束缚了自己的思想,打一个不好的比方一个程序员的工作性质和民工没什么两样只是在垒砖头,而真正的计算机人才应该是一个设计师、工程师。

现在国外的一些优秀的计算机著作的都是一些从事如生物、化学等领域的专家,我想这是因为他们以前没学过计算机,没有被某些传统的观点所束缚,从宏观上来看待问题,反而在思想上有所突破,这是值得我们深思的。

 

真正的程序员(转贴)

作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。

1:团队精神和协作能力

把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺乏这种素质的人就完全不合格了。

2:文档习惯

说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。

3:规范化,标准化的代码编写习惯

作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助踊同技术人员之间的协作。

有些coding fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。

再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。

4:需求理解能力

程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说写一个广告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统,他也做不出太极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经验才有可能有心得。

5:复用性,模块化思维能力

经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。

复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。

一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。

6:测试习惯

作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。

测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用户潜在的异常输入情下的测试,整体系统局部故障情下该模块受影响状的测试,频发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的需求理解能力。

7:学习和总结的能力

程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。

善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高了。但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提高。

善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用状和用户反馈,随时总结,找到自己的不足,这样逐步提高,一个程序员才可能成长起来。
一个不具备成长性的程序员,即便眼前看是个高手,建议也不要选用,因为他落伍的时候马上就到了。
具备以上全部素质的人,应当说是够格的程序员了,请注意以上的各种素质都不是由IQ决定的,也不是大学某些课本里可以学习到的,需要的仅仅是程序员对自己工作的认识,是一种意识上的问题

VB教程用于编程爱好者自学  Visual Basic 是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,以用动态链接库(DLL)、对象的链接与世隔嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。随着版本的提高,Visual Basic的功能也越来越强。5.0版以后,Visual Basic 推出了中文版,与前个版本相比,其功能有了很大提升 立即下载

相关推荐

提升RAG效果:为何 JSON 格式远胜 Markdown?

在构建强大的 RAG (检索增强生成) 系统时,文档解析是至关重要的第一步。它直接影响着后续的检索效率和生成质量。在众多文档格式中,JSON (JavaScript Object Notation) 格式正逐渐展现出其相对于传统 Markdown 格式的巨大优势。本文将深入探讨 JSON 在 RAG 系统文档解析中的卓越之处,并结合具体案例,让你理解为何 JSON 才是构建下一代智能应用的更优选择。RAG 系统的核心目标是让模型能够利用外部知识库,生成更精准、更贴合实际的答案。

simoncool23的博客 2716

作为编程爱好者的我,为什么痴迷于编程?

很多人都问程序员为什么痴迷于编程,哪来的这么大的诱惑力?其实也并非非常的痴迷,只不过是喜欢创造,喜欢创新,喜欢钻研,喜欢费尽心思的思考,总之就是很喜欢掉头发。我比较喜欢一些新鲜事物,喜欢...

weixin_45967384的博客 1398

CSRT跟踪算法的使用

Fu Xianjun. All Rights Reserved. 文章目录 前言 一、CSRT跟踪算法是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、CSRT跟踪算法是什么? 在具有通道和空间可靠性的判别相关滤波器(DCF-CSR)中,我们使用空间可靠性图将滤波器支持调整为从帧中选择区.

sinat_53821602的博客 7903

一爱就是一辈子:坚持4年的编程爱好

有些爱好可能一爱就是一辈子,其实最初学编程的时候也不知道编程能带给我什么好处,纯粹的热爱喜欢敲代码的感觉而已,经常一有空余时间就开始实践网站、APP、小程序、Linux服务器等各种小Demo,转眼间已有四年之久。后来编程这个爱好也带给了一些好处,包括取得北大新材料学院夏令营的offer等。现在更发现编程是学术科研工作之余很好的一种休息放松方法,等一天的实验工作结束了,可以试者在网上接个小单敲敲代码赚点小钱吃吃喝喝,很快一天的疲劳就消失殆尽了,以更加饱满的精力迎接下一天的实验工作。可能这是爱好的魔力吧,包括但

科大云炬 740

二进制、八进制、十六进制、十进制转换详解

二进制是计算机的语言,正如我们使用汉语表达与交流信息一样,任何信息在计算机中都以二进制的形式存储和计算。了解二进制与十进制等进制之间的转换方法,有助于我们了解计算机内部的数字计算过程,可以帮助我们在一定程度上理解信息在计算机中的编码和解码过程。本文先简单介绍位置化数字系统的概念,然后详细讲解二进制、八进制、十六进制、十进制之间的转换方法与原理。

2301_81674797的博客 2097

Mac新手必看:nvm安装全攻略(含常见错误解决方案)

本文为Mac开发者提供nvm安装与使用全攻略,涵盖环境准备、安装步骤、Shell配置优化及常见错误解决方案。详细讲解如何利用nvm管理多Node版本,提升开发效率,特别针对国内用户提供网络问题解决技巧,是Mac新手必备的Node版本管理指南。

weixin_28839699的博客 1608

编程人生 | 一位半路出家的程序员的“天命”之选

金从军:编程之旅踏遍万水千山,归来之路是App Inventor。

图灵教育 1105

datax web升级springboot3 jdk17

datax web但GitHub上还是springboot2,没有升级过,最近扫漏洞发现spring-core漏洞必须升级到6.x才能解决,这时不得不将springboot升级到3.x,随之而来是jdk、mybatis-plus等等的升级,调整了几天才没问题,痛苦的开发人生~~以上,有疑问欢迎留言。

liyinglong1023的博客 973

盘点那些编程界的天才少年,11岁参加国际比赛,靠奖金赚了40万

① Python所有方向的学习路线图,清楚各个方向要学什么东西② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论④ 20款主流手游迫解 爬虫手游逆行迫解教程包⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解⑦ 超300本Python电子好书,从入门到高阶应有尽有⑧ 华为出品独家Python漫画教程,手机也能学习。

xiangxueerfei的博客 2506

[信号与系统]一阶与二阶连续时间系统和离散时间系统

定义:一阶连续时间系统由一阶线性常系数微分方程描述: dy(t)dt+ay(t)=bx(t) \frac{dy(t)}{dt} + a y(t) = b x(t) dtdy(t)​+ay(t)=bx(t)时间常数:时间常数 τ=1a\tau = \frac{1}{a}τ=a1​ 是系统响应速度的衡量指标。时间常数越小,系统响应越快。冲激响应:一阶系统的冲激响应是指数衰减或增长的形式。例如,对于一个单位冲激输入,响应为: h(t)=bae−at h(t) = \frac{b}{a} e^{-at} h(t)=

Andius的博客 2121

ARFoundation系列讲解 - 手部跟踪编程

通过使用ARFoundation的手部跟踪子系统,我们可以轻松地在AR应用程序中实现与用户手部的交互。通过设置AR环境、创建场景和相机、添加手部跟踪功能以及编写相应的脚本,我们可以开始在AR场景中跟踪和操作用户的手部。在Unity中创建一个新场景,并将AR Session组件添加到场景中的一个空对象上。手部跟踪的具体实现可能因AR设备和平台的不同而有所差异,你可能需要根据你的使用情况进行一些适配和调整。当你将手部放入AR场景中时,手部跟踪系统将触发相应的事件,并调用脚本中的回调函数。

2301_79325339的博客 355

程序员们辛苦啦!1024程序员节,今天,我们不一样!

1024程序员节的来历不仅仅是一个数字的庆祝,它背后是对程序员职业的认可、对程序员文化的弘扬以及对技术创新的推崇。这些活动不仅加强了程序员之间的联系,也提升了程序员的归属感和自豪感。随着人们对程序员身份的认同和文化的演变,“1024程序员节”逐渐演变成了每年的10月24日,因其对应1024(2的10次方),这一数字在计算机科学和信息技术领域同样重要。在中国,有人提议将10月24日定为中国的程序员节,因为1024不仅同样是程序员的一个常用数字,而且10月24日这个日期非常直观,也不会在平年和闰年有所变化。

csdn_aspnet的专栏,请点击博客主页右上角三个点中的私信联系 2万+

图神经网络与大模型融合的理论综述:架构、机制与未来方向

然而,它们普遍缺乏对图结构数据的原生支持,无法直接处理边、节点之间的拓扑关系,这限制了其在关系密集型任务中的表现 [23]。2020年发布的BERT [16] 开启了自监督预训练时代,而2021年后,T5 [17]、PaLM [18]、LLaMA [19] 等模型相继推出,参数规模突破千亿级,展现出惊人的上下文学习(In-context Learning)与链式推理(Chain-of-Thought)能力 [20]。例如,将医学影像作为图节点,结合病理报告文本,实现更精准的疾病诊断 [58]。

andeyeluguo的博客 295

老程序员被新程序员拍在沙滩上?

这次去深圳的时候,抽空参加了一个深圳本地的线下沙龙,去的时候这个活动已经进行开始,刚坐下来不久,就听一个新程序员问一个老程序员的一个问题,引起了大家的热议。年轻的程序员的...

纯洁的微笑 6598

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

AI程序员对程序员的影响

最近,全球首位AI程序员Devin的出现引发了广泛关注,也引发了人们对人工智能在编程领域的潜力和影响的讨论。尽管AI技术在编程领域得到广泛应用,但人们仍然在探讨它是否能完全取代人类程序员。本文将探讨AI程序员的优势、局限性以及对程序员职业的影响,并展望未来可能出现的情景。

cooldream2009的博客 1508

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何从初级程序员顺利晋升到高级程序员?

文共3080字,预计学习时长9分钟 来源:Pexels 按经验级别划分的软件开发人员可能如下: · 初级:拥有两到三年的经验 · 高级:拥有十年以上的经验 · 中等或 “中级水平”: 介于初级和高级之间 以年为单位衡量工作经验存在一个问题,即没有说明程序员开发软件的质量。工作的那几年获得了多少经验和技能?这也就导致开发人员的求职面试十分复杂。这项技能难以...

读芯术的博客 7551

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

写在1024,致程序员致程序员节致自己

目录前言冷知识简谱回忆hello world现今感慨在此总结了三点:技术更新技术类别与业务展忘多跑步多健身。精进洞箫,》》》我可是资深二次元了。naruto main theme人都是不完整的,自己缺失的角都需要她人来补。但是啥时候补。不造。看猿分吧。有人要问了,你他妈为啥瞎扯这么多?为了获取个勋章。我能怎么办 前言 冷知识简谱 啥子是程序员节? 话说在极早之前,程序员迫于加班压力严重。咋办呢?双十一,双十二都有节。他们有的我们程序员必须也有。 于是2002年,俄罗斯程序员Valentin Balt收集

王永安的博客 3976

程序员的日常:当一名程序员到底有多难?

多少次熬夜加班, 直至见到凌晨四点的太阳; 多少个早晨洗漱的时候, 看到洗脸盆掉的全是头发; 整天coding, debugging, 设计, 画图, 文档, 会议, 演示...... 看似充实饱和的工作, 又夹杂了多少苦涩与无奈; 程序员其实很难 是的, 程序员其实很难, 并没有外人看到的那么光鲜靓丽; 1.找对象, 难! 在妹纸的认知世界里, 程序员永远都是贴着"直男"标签的, 不解风情, 不懂浪漫. 嫁人就嫁程序员, 程序员有三好, 人傻, 钱多, 死得早. 2.身体每况日..

致力于C语言C++知识分享! 3785

顶尖程序员 VS 普通程序员

今天我们一起聊聊顶尖程序员与普通程序员的区别~ 1. 对待需求更谨慎 顶尖程序员: 接到开发需求与任务时,会分析需求背后的业务,反复跟产品经理沟通,并且多次确认对方想要的结果,再动手写代码。 普通程序员: 接到任务就开始闷头写代码,原型是怎么样就做成什么样子,反正做错也是你们需求搞错了,不是我的锅。 2.良好的编码习惯好 顶尖程序员: 看他们的代码逻辑是清晰易懂,代码风格严格一致,遇到难理解的实...

吴小迪的博客 3万+

程序员是做什么的?怎么成为程序员?

我是一个程序员,我知道程序员是做什么的,但是我身边有很多亲朋好友并不知道。 他们经常认为程序员就是对电脑很懂得人,包括电脑的软硬件问题,包括电脑装系统。 实际上,可能不只是我的这些亲朋好友,绝大多数不做程序员的人可能都不知道程序员究竟是做什么的,也不太清楚何谓程序、何谓软件。程序员到底是做什么的,这可能是很多想要进入软件行业的人都很想知道的一个问题,那么我就根据我目前的理解说说我的看法,如果有理解有误之处,欢迎指正。 软件和硬件的区分及关系 首先,现在电脑和手机都应用非常普遍,大家都知道手机和电脑上都有很多

程序员涂小哥的技术博客 7万+

AI程序员会让程序员失业吗?

前段时间百度创始人李彦宏还在说,以后的人,会说话就具备写程序的能力。仅接着,英伟达CEO黄仁勋又说,不要再学编程了,机器会替代程序员。但是在今天,首位AI程序员就诞生了。刚刚,一家叫Cognition的10人初创公司,才成立不到2个月,就研发出全球第一款AI程序员Devin。它可以掌握云端部署、底层代码、改bug、训练和微调AI模型。这让身为程序员的我突然瑟瑟发抖起来。我心想,难道我要失业了吗?忽然一想,哦,我去年就失业了,算了,不害怕了。那么,AI程序员到底能不能写代码呢?他们官网的宣传片是否真实呢。

m0_71745484的博客 922

别人的1024程序员节VS你的1024程序员节

大家好,我是辣条。祝大家节日快乐,上线无阻符,全年无bug! 1024程序员节是广大程序员的共同节日。1024是2的十次方,二进制计数的基本计量单位之一。针对程序员经常周末加班与工作日熬夜的情况,部分互联网机构倡议每年的10月24日为1024程序员节。到今年,已经是程序员们过的第8个程序员节了。 我们今天就来看看什么是别人家的1024程序员节和你是怎么过的1024程序员节。 别人的程序员节美女热舞 你的程序员节热舞 别人的程序员节美女解压 而你身边的是:常加班,易秃...

五包辣条的博客 1万+

【AI程序员】全球首位AI程序员出现,程序员该如何适应新挑战?

在人工智能技术发展飞速的现在,我们迎来了一个非常重大的时刻,那就是全球首位AI程序员Devin诞生了。这个里程碑式的成就不仅标志着技术创新达到了一个新的高峰,也对未来的工作模式、技能需求和人机协作的发展趋势有了更深的预测。这个AI程序员的出现,预示着AI的角色正在发生变化,从原本的辅助工具或者服务对象,变成了能够独立编写代码、解决问题的合作伙伴,甚至是潜在的竞争对手。对于程序员社区来说,这个变化带来了很多影响。首先,它让程序员需要重新思考自己的技能定位和职业发展路径。

qq_70814008的博客 1525

《程序员》与我的程序员之路

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习..

刘洪峰AIoT | 一叶启帆·万物智联 2645

AI崛起,程序员饭碗岌岌可危?探究AI程序员与人类程序员的未来博弈

近期,全球首位AI程序员Devin的出场,不禁让我想到了一个有趣的问题:AI程序员会不会抢程序员的饭碗呢?先别着急下结论!虽然AI技术在编程领域越来越广泛,但它真的能完全替代我们程序员吗?随着人工智能技术的快速发展,AI程序员逐渐崭露头角,成为编程领域的新宠。作为程序员中的普通的一员,我深感这一变革带来的冲击与机遇。本文将从AI程序员的优势、局限性、对程序员职业的影响以及未来展望四个方面,探讨AI程序员与Java程序员之间的博弈与共生。

Jz_Stu的博客 968
上一篇: 程序员应具有的素质
下一篇: 今天,MM对我说:
SafeF8
博客等级 码龄22年 10粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值