一个合格的程序员除了编程语言还要学什么?

程序人生丨程序员必会的 10 种核心技能,全掌握你就是行业高手 这都是作为程序员的基本技能,将长期伴随你的程序员职业生涯。如果你的目标是从事软件开发和编程工作,那么这些都是保持竞争力而可以学习和提高的东西。 阅读详情

软件开发的确是一个系统性的工作,需要很多方面的知识和技能。根据我的研究,一个合格的程序员,单单是专业能力,就需要从技术栈、工具链、程序设计、架构设计、工程化、软件环境、软件开发模型、业务、产品这9个方面来学各式各样的东西。

当然并不是每个方面都要学很多很多,而是根据个人所处的阶段不同,有选择的学习。选择的原则是——满足本阶段的工作需要。

你刚开始,属于新手,典型的特点是在别人指导下完成非常具体的工作,那架构设计、业务和产品这三个方面基本可以略过,所以下面我只说技术栈、程序设计、工具链、工程化、软件环境和软件开发模型这六个方面都要学点什么,然后再给出项目实战怎么学。

一、技术栈

技术栈指软件开发特定技术方向的一系列技术的组合。

你学习C++,那以这个方向为例来说明。技术栈可以细分为语言、应用开发框架、数据库这三个方面。

语言方面,C++你已经在学了,可能还会牵涉到一些标记性的语言,比如XML,还可能会有混合语言的编程,需要学JS、Lua、Python等,根据项目需要来选就好。你初学,又没有明确的项目要求的话,先搞定C++本身就好。

关于C++本身,推荐两本书。

第1本是——《C++大学教程》(英文名C++ How to program)。这是很经典的教程,写的很通俗,我家里的是第2版,现在已经出到第9版了。

第2本是《C++编程思想》。这是经典中的经典,除了C++语言和标准库,还讲了编程实践的一些东西,比如调试、极限编程、测试先行、设计模式等等。

应用开发框架方面,就特别多了,比如STL、Qt、ffmpeg、libevent、Vorbis、OpenAL、OpenCL、C++React、Crypto++、OpenSSL、CppUnit、Cocos2d-x、CEGUI、wxWidgets、Ogre 3D、Skia、CxImage、OpenCV、Caffe、SDL、GStreamer、ACE、ZeroMQ、libcurl等等,干什么的都有,根据你要做什么样的项目来选择一两个就好。

数据库方面,也有很多,MySQL、Redis、SQLite、MongoDB等等,你要做的项目需要数据库,就挑一个,不需要,就不管它好了。

二、程序设计

广义的程序设计包含很多过程,比如分析、设计、编码、测试、排错等等。我这里说的是狭义的程序设计,仅仅指如何让程序变得更简洁有效更优雅的代码层面的设计。

这块需要了解数据结构、算法、编程惯用法、设计模式等等内容,初学的话,了解一些数据结构和常见的算法就好,其他的等干上两三年再来学也成。

推荐这本《数据结构、算法与应用:C++语言描述》:

三、工具链

工具链指的是在特定平台上的一套用于支持代码编写、编译、调试、运行、分析的工具组合。

就C++而言,你可以掌握一种IDE,比如Qt Creator、VS Code,这些IDE,一般都打包了编辑器、编译器、调试器和各种分析工具,一站式解决你的问题了,初学时基本不用别的了。

用VS Code的话,推荐这本《Visual Studio Code 权威指南》:

四、工程化

工程化工具,指的是编程、调试和分析等工具链之外的各种支持软件开发工作顺畅进行的工具。

你现在是新手,掌握两个方面的东西就好:

  • 掌握一种代码版本管理工具,git、svn、github、gitlab,都可以;

  • 掌握一种安装包制作工具(C++的程序有各种依赖,不做安装包的话,装到别的机器上很费劲),比如Inno Setup、NSIS或者VS自带的,都可以。

这块推荐一本Git的书——《Git版本控制管理(第2版)》:

五、软件环境

软件环境指的是完成开发所需要的支持环境和软件产品运行所需要的支撑环境。

假如你用C++编写的软件,在Windows下运行,就需要Windows操作系统、Windows上的各种运行时,这些也是你需要了解的,比如C++的运行时库、MFC的运行时库、OpenSSL的运行时库,起码要了解他们是什么,从哪里可以找到,应该放到系统中的什么地方。

如果你在Linux环境下开发,软件在Linux下运行,那你就要熟悉Linux的常见命令、脚本(Shell/Python)等。

除了操作系统和各种运行时,还有你软件所需要的协作软件,比如你用了数据库,那你还要了解数据库的安装、驱动的配置等等。

这块推荐三本书。

第一本是操作系统基础,看经典的《深入理解计算机系统》:

第二本是Linux的基础学习,看《鸟哥的Linux私房菜 》:

第三本是一本老书《程序员的自我修养:链接、装载与库》,能帮助你更好的理解C++程序是怎么运行起来的。绝版了,可以买到二手的。

六、软件开发模型

软件开发模型是指软件开发全部过程、活动和任务的结构框架。常见的有瀑布、迭代、精益、敏捷等。各种模型现在都有在用,推荐看经典教材《软件工程》,里面有各种开发模型的简要介绍。

七、项目实战

以上分门别类介绍了要学什么,但往往是,我们学了很多东西,不知道怎么做项目。对初学者,我建议是分三个阶段:

  1. 刷题

  2. 照抄项目

  3. 自己设计项目

第1个阶段——刷题,一方面你要做你用的C++教材上的课后练习和小项目,另一方面,也可以使用leetcode来刷题。

第2个阶段——照抄项目,可以找专门的项目类的图书、课程等,跟着学,跟着。这里做推荐一本书好了,《C++项目开发实战入门》,上面有一些项目,可以参考。

第三个阶段——自己设计项目,可以从自己看到的需求出发,比如图片浏览器、音乐播放器、录音机、文件管理器等等,都可以做做看。这个阶段你做出来的,就属于真正的程序了。

等你完成这三个阶段,能自己搞定一些小项目,基本上,C++就算是入门了。以后,再做个十年八年,差不多就能精通了。

程序员必须掌握哪些算法_介绍 一.基本算法:枚举. (poj1753,poj2965)贪心(poj1328,poj2109,poj2586)递归和分治法 立即下载

相关推荐

Unity游戏开发实战:用Flow Field实现RTS百人军团流畅寻路(附完整代码)

本文深入探讨了在Unity中利用流场寻路技术解决RTS游戏大规模单位移动性能瓶颈的实战方案。通过解析从Dijkstra算法生成成本场、积分场到最终向量场的核心原理,并结合分块、缓存及与DOTS/ECS架构集成的优化策略,实现了百人军团的流畅群体寻路。文章提供了完整的代码示例,助力开发者构建高性能的RTS寻路系统。

weixin_28363123的博客 587

学编程不只是学编程语言,还要学这些核心知识!

如果你想成为一名程序员,你可能会认为只要学会一门或几门编程语言就可以了。毕竟,编程语言是用来写代码的工具,只要掌握了它们的语法和特性,就可以实现各种功能和需求。但是,这样的想法是不够的,因为编程语言只是程序员的基础技能,而不是全部技能。如果你只会写代码,那么你只能算是一个码农,而不是一个优秀的程序员工程师。那么,除了编程语言,你还需要学什么呢?下面,我们就来介绍一些你必须要学习的编程知识。学好数据库,你就像拥有了一个强大的数据魔法门,可以轻松地存储和管理海量信息。

xx16755498979的博客 278

ur3手眼标定+realsenseL515

知乎 csdn

AI_future的博客 978

小白,想入门程序员,应该从什么开始学,顺序是什么?

这里就比较多了,比如数据库、一些基本的项目设计、项目实战等等,根据你希望的工作有针对性的去了解,或许有不小的帮助。按照上面这几个步骤进行下去,可能确实需要投入一定的时间和精力,但是一旦你选择希望成为一名程序员,就一定要坚持下去,才能取得更好的结果。读者福利:如果你也喜欢编程,想通过学习Python转行获取更高薪资,那这套Python学习资料一定对你有用!对于0基础小白入门:如果你是零基础小白,想快速入门Python是可以考虑的一方面是学习时间相对较短,学习内容更全面更集中。

h1453586413的博客 5053

TI 实时操作系统SYS/BIOS使用总结

1:概述: SYS/BIOS 是一个可扩展的实时的操作系统。具有非常快速的响应时间(在中断和任务切换时达到较短的延迟),响应时间的确定性,强壮的抢占系统,优化的内存分配和堆栈管理(尽量少的消耗和碎片)。能够实现系统的模块化并可裁剪。 最大的特点就是:实时。 2:XDCtools: XDCtools 是SYS/BIOS引用的一种实时的软件组件技术(RTSC),它包括一些有用的工具,标准的AP

带头奋青的博客 5万+

低光照图像增强:从传统方法到深度学习

低光照图像增强:从传统方法到深度学习​ 人工智能,计算机视觉,大模型,AI,本文聚焦视觉模型的偏差与公平性问题,阐述了偏差在性别、种族、年龄等方面的表现及对医疗、司法、安防等领域的影响。分析了偏差源于数据采集与标注问题及算法局限。介绍了准确率差异等公平性评估指标、相关数据集和工具,还给出数据处理、算法改进、模型训练等避免歧视的策略,并附代码示例与实际案例,为提升视觉模型公平性提供多方面参考。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 2万+

一名【合格】程序员的详细学习路线

一个合格的企业级开发程序员需要具备多方面的技能,以下是对所需技能的详细阐述以及对应的学习路线:

Tommy_____的博客 1397

【WRF数据准备】海温(SST)数据替换

【WRF数据准备】海温(SST)数据替换

WW、forever的博客 1118

程序员要学哪些课程?有那些岗位?证书有哪些、程序员需要具备哪些能力?

5. 项目管理专业人士认证(Project Management Professional - PMP):虽然不是专门的编程证书,但对于从事软件开发项目管理的程序员,PMP认证是一项有用的证书。随着技术的发展,新的课程不断出现,因此持续的自我学习和不断迭代自己的技能树是非常重要的。随着技术的发展,IT行业中程序员的岗位也在不断更新和演变。总的来说,作为程序员,除了技术能力,还需要具备良好的沟通能力、团队合作意识、解决问题的能力以及持续学习的精神,这样才能在不断变化的技术领域中取得成功。

3203

触摸芯片RM1015B基本使用方法

RM1015B触摸芯片使用指南:该芯片采用4通道设计(实际使用3通道),通过I2C接口通信(设备地址0x2B)。硬件设计需注意中断/复位引脚复用,需上拉处理。软件配置包括初始化、中断处理和定时器扫描,通过设置各通道阈值(0-300W)调节灵敏度,值越小越灵敏。调试时可调用rm1015B_debug_func()输出波形数据。典型应用场景包括接近检测和手势识别,中断触发后需在8ms内响应。特别注意不同通道的寄存器映射关系及校准流程,确保检测准确性。

云淡风轻 176

【深度学习新浪潮】Nano Banana(Gemini 2.5 Flash Image)技术解析与开发者实操指南

重新定义了 AI 图像生成的产业标准。它不仅是“平民化的视觉工厂”,更是推动内容生产从“创意试错”转向“精准制造”的关键工具。未来,随着视频生成能力的加入(谷歌计划支持“文字指令 - 动态场景 - 多平台适配”全流程),Nano Banana 有望进一步颠覆影视、广告等领域的创作范式。:批量生成多场景图,模特姿态自然,服装褶皱和材质细节高度一致,节省 90% 拍摄成本。模型的非正式代号,是一款革命性的 AI 图像生成与编辑工具,主打。:生成细节丰富的厨师特写,光影自然,皮肤纹理和刀具反光逼真。

专注:太空算力、AI infra、异构调度、大模型成本工程 889

程序员之路:如何成为一个合格的程序员

小白路漫漫,让我们一起加油!

weixin_52473844的博客 1700

【QNX+Android虚拟化方案】129 - USB眼图参数配置

【QNX+Android虚拟化方案】129 - USB眼图参数配置

|~~~热爱生活、努力学习的小伙汁~~~| 821

作为一个合格的程序员,你除了会写代码,还要拥有哪些能力?

撤离一线城市工作已经接近一年时间,工作环境发生变化,让我印象深刻的应该是公司周围同事的工作状态。身处环境氛围的改变让我略感恐慌,总结一篇文章我认为好的程序员应该是什么样的,写出来提醒自己。 1、技术能力 技术是一个程序员吃饭的本钱,你可以什么都不擅长,不擅长沟通、也不擅长表达更不擅长管理,但是作为一个以技术名义拿工资的人,具备对应职位应有的技术能力这个是一定不能改变。 初级工程师能按照设计文档很好的完成工作,中高级工程师能提出自己的设计思路、实现想法并且高质量完成工作等等。那种平时不太活跃但是能凭借自身能力

weixin_48655626的博客 3923

避障仿真在carsim中如何配置相邻车道车辆.zip

换道过程中 相邻车道可能存在车辆对换道造成干扰,这里在carsim设置了相邻车的位置及行驶状态,包括capr文件及word讲解

营改增对服务型制造业研发投入的影响.docx

营改增对服务型制造业研发投入的影响.docx

如何成为一个合格的程序员

在数字化时代,程序员已成为最具价值和前景的职业之一。然而,要成为一名真正合格的程序员,远不止学习几门编程语言那么简单。本文将系统性地介绍成为合格程序员的全过程,涵盖技术能力、思维方式、职业素养等多个维度。

as_asdf的博客 660

第四张报表:银行价值管理白皮书:从第四张报表看价值构成、价值驱动、价值增长(2021)(36页).pdf

第四张报表:银行价值管理白皮书:从第四张报表看价值构成、价值驱动、价值增长(2021)(36页).pdf

合格程序员应该具备的12种能力

毕业四年来,感觉自己也是从一名不合格的程序员一步步走过来的。回头反思一下,合格的程序员有很多标准和要求,下面是我总结的一个合格程序员应该具备的 12种能力。中国软件行业的崛起,靠的是合格的程序员。任何华丽的管理制度都不能保证软件项目的成功交付,合格的程序员就是有力的保证,是项目成功的基 础。写下这些,是为了给刚刚进入程序员这个职业的新同学们一点参考。我一直以为,当程序员是很辛苦的,如果不是真正

恶魔的眼泪 4707

RK3588 DMA与RGA优化指南[项目代码]

本文详细介绍了在RK3588平台上如何通过DMA、RGA和零拷贝API实现视频流解码、数据预处理及推理的优化。文章首先讲解了DMA缓冲区的创建流程,强调了DMA在数据传输中减少CPU资源消耗的优势。接着,介绍了RGA数据预处理的操作,包括如何将DMA缓冲区包装成RGA可处理的格式,并通过RGA实现高效的数据转换和预处理。最后,详细阐述了零拷贝API的使用方法,包括输入输出数据的设置、与RGA和DMA的结合使用,以及推理执行和结果获取的具体步骤。通过这一系列优化,RK3588的CPU资源消耗显著降低,为其他功能腾出了更多资源。文章还提供了优化前后的CPU消耗对比数据,展示了DMA、RGA和零拷贝API在实际应用中的性能提升。

怎样才算一个合格的程序员?

  给立志成为优秀程序员的你们 虽然大家都自称"码农"、"IT民工",但我相信,这仅仅是自嘲或者自黑,大多数程序员应该还是认可自己的这个职业的,当然,我算不上一个优秀的程序员,因为我都不曾在开源社区贡献过代码、也不精通白板算法、对技术也不狂热、不geek。我的目标是做一个合格的程序员:把本职工作做好,对得起自己的薪水,在生活与工作平衡,996什么的我是难以接受的。 对于程序员而言,技术...

大禹编程的博客 1413

如何从一个初学者成长为一名合格的程序员?

从程序员的发展方向和待遇这两个方面,浅谈如何从一个初学者成长为一名合格的程序员?相信看完本文,会对大家未来的职业规划和发展有所帮助。   如果你是一名初学者,对编程非常感兴趣,想成为一名合格的程序员,不妨花几分钟时间来看一下。 从初学者成长为一名合格的程序员需要一段时间的磨练,每个人付出的时间和做事的效率不同,不好评判大家需要多长时间才能学有所成。站在求职的角度,能开发出实用的软件、网站、AP...

HUYA69的博客 697

你是合格的程序员吗?—合格程序员应该具备的12种能力

毕业四年来,感觉自己也是从一名不合格的程序员一步步走过来的。回头反思一下,合格的程序员有很多标准和要求,下面是我总结的一个合格程序员应该具备的 12种能力。中国软件行业的崛起,靠的是合格的程序员。任何华丽的管理制度都不能保证软件项目的成功交付,合格的程序员就是有力的保证,是项目成功的基础。写下这些,是为了给刚刚进入程序员这个职业的新同学们一点参考。我一直以为,当程序员是很辛苦的,如果不是...

a727808的博客 352

合格的程序员是什么标准?

成为一名合格的程序员并没有统一的标准,因为不同的公司、项目和职位可能有不同的要求。

软件行业技术文化交流。 1438

问好朋友小明:怎么做一个合格的后端程序员?

后端程序员,也称为后端开发工程师,是一种专注于服务器端应用程序开发的计算机程序员。他们负责开发和维护服务器端的代码、数据库和应用程序接口(API),实现与前端界面的交互,并确保应用程序的正常运行。

百锦再的博客 1万+

如何成为一名合格的程序员

合格程序员的成长是一个螺旋上升的过程,需要技术深度与广度的平衡,工程能力与业务理解的融合,个人成长与团队贡献的统一。在这个快速迭代的行业中,唯有保持持续学习的热忱,坚守技术人的专业精神,方能在数字化浪潮中实现个人价值与社会价值的双重成就。当我们的代码改变世界时,这种改变应该是向善的、可持续的、充满人文关怀的——这才是合格程序员应该追求的最高境界。要成为一名合格的程序员,绝非简单的代码编写能力就能涵盖,而是一个涵盖技术素养、工程思维、持续学习能力和职业伦理的系统性成长过程。四、践行职业价值:超越代码的思考。

weixin_45422672的博客 519

一个合格的程序员应该读过哪些书

编者按:2008年8月4日,StackOverflow 网友 Bert F 发帖提问:哪本最具影响力的书,是每个程序员都应该读的? “如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本, 你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。” 很多程序员响应,他们在推荐时也写下自己的评语。 以前就有国内网友介绍这个程序员书单,不过都是推荐数...

justJavaC的专栏 5755

怎样才算得上合格的程序员,教你一招

对于程序员而言,技术过关当然是非常重要的,这是硬实力。然而只会技术也是不行的,毕竟大多数的程序员还是要与人打交道,软实力也是不可或缺的。怎样才能算合格,我认为有以下几点: 扎实的基础   计算机领域是一个快速更新换代的领域,每隔一段时间都会有新的语言、框架、思想产生,追随每一个新技术很累。但仔细想想,事实上并没有那么多新东西。很多新东西只不过是已有技术的封装、或者借鉴的其他领域的技术。比如缓存数据库redis、memcached,其基本思想不就是操作系统中的缓存吗;分布式存储中的分片与复制集,不就.

weixin_45820912的博客 1315
上一篇: 使用哪些工具,可以提升 Python 项目质量
下一篇: 用Python构建API的八大流行框架
Python_xiaowu
博客等级 码龄5年 3096粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值