您当前的位置:首页 > 电脑百科 > 程序开发 > 程序员

我的编程能力从什么时候开始突飞猛进?

时间:2022-09-21 10:54:13  来源:  作者:扶余城里小老二

作者:扶余城里小老二
链接:https://www.zhihu.com/question/356351510/answer/1595886454

这可能是一个长篇。会陆续更新30天。先上图,证明自己学过编程


 

陪伴我20年的显示器


 

20年了,还没坏。sun公司都倒闭了。当年我也是JAVA的迷弟。只不过后来,我转了全栈。专心搞c++了。我是看《java未眠夜》,入了java的。后来买了这台显示器。好家伙21寸,1600x1200。现在都够用。

正题:先说一下学习历程,再讲突飞猛进的点

1 20世纪八十年代,我爷开了一个超市,里面有个合作伙伴,上了一台雅达利游戏机


 

当时,我是茶饭不思,等机器没人玩的时候,我就玩玩《钓鱼》这款游戏。爸爸跟我说,你想不想将来长大了也做一款? 我当时就暗下决心将来要做游戏。

2 我妈在某行工作(保密),有供员工学习的80486电脑,我每当有机会,就去跟班上的程序员学习。那个时候,他用debug调试+basic编程,还有cobol语言。我就跟他学如何用basic做数学题,画几何图形。

3 后来pascal来了,turbo c也来了。一路买书跟上。特意买了本强哥写的《C语言程序设计》。


 

4再后来windows3.11来了,3。2也来了。我就开始学习wordExcel了。当然wps也一起学了。


 

5然后win95来了,3d max也来了。特意买来学习。那个时候,我是全校最靓的仔。


 

6 win98来了,vc6来了,delphi,c++builder也陆续进入眼帘,


 


 

太震撼了,


 

最终,我在mfc和bcb6里,选择了bcb的拖拽组件。写代码。

你问我那个时候靠什么挣钱?


 


 

7 互联网来了,qt来了,lua也来了。 java,js ajax 都来了。连php也来了。php,js ajax 还有java都是走马观花,在图书馆里,看了半年,都没看进去,继续坚定走c++和lua配合路线。

8网络游戏来了,大名鼎鼎的《传奇》《千年》《红月》等等。。看雪论坛也出现了,我们讨论的当然是怎么通过 ollydbg 来了解 网游的构造的。(别多想,纯技术学习)

9《天龙八部》来了,这个对我影响巨大,此时,圈内的技术讨论已经日益成熟,各种应用库雨后春笋般出现,只要想学技术,大约20w就能学会,就能过当时所有的驱动。很显然我没有去学(错过了几个亿)。这个游戏,有个附加程序叫《天龙扫地僧》,是用lua脚本写脚本。显然,天龙也是lua和c++,我就在这个时期学习使用lua脚本。


 


 


 

源文件


 

这是一个很好的学习宝库

10 pal5来了。不知道哪位大哥,还把它的lua源码给导出来了。又给我好好地上了一课


 

瞬间明白,当时的单机游戏的流程控制。

11 区块链来了 ,当时,我笑话那个,拿30万区块的人买一个汉堡。

12 人皇sky走了, 手游来了,错过了。虽然,育碧 tx wy的前员工出来办班,大肆宣扬手游时代来临,我还是当了耳旁风,继续在写pc端的程序。

13 区块链开始如日中天,各个群的人都开始讨论,一些执行力强的人,甚至找我参与改个hash算法,也发行这玩意。(现在想想,如果那个时候就切入,我可能早已经改变命运了,可惜只是改算法而已。)

14 我来到了知乎。我不想再沉沦下去,错过太多了,想要干点什么。于是开始重构sdlpal(仙剑1民间c源码),先是做了lua版本,然后又用c++(古典)重构。。重构完毕很是沮丧,因为感觉就像个没有灵魂的翻译。

15 打开cpp英文官网和b站的搬运c++ 11,14,17的视频教程。把sdlpal的c++重构版升级17.结果还是很不开心,因为还是那个老架构。新瓶装旧酒而已。

16 引入了boost coroutine2 将所有层级架构打散,通过协程的思想,来重构整个框架。最终达到完全解耦的目的。换句话就是说,不论 图形sdl,sdl2,qt,ue4,cocos 怎么换,只需修改代理接口即可,跟其他模块没有任何关联。脚本也是,不论是用js脚本,还是lua脚本,还是Python/ target=_blank class=infotextkey>Python脚本系统,也仅仅是更换个代理接口而已,声音引擎也是一样。

17 sdlpal将架构组件 理论化。(目前正在)

18 通过重构得来的模块化架构和调度经验,去复刻一款 怀旧游戏(Github尚没有怀旧版本的源码)。(下一步)

19 做游戏的怪 自动升级,打装备,抢玩家装备。(目前所有游戏都欠缺的内容,钱途无量)(下二步)

20 躺着挣钱。。(理想)

瓶颈1: 从0开始接触dos

dos操作系统,全是命令行,我那个时候,就翻书学会了dir cd cd.. 这样,翻阅各个目录,找exe和com文件。这个阶段很快就过去了。(其实是遍地找游戏。)


 

瓶颈2:从0 开始编程,

小学1年级,班级老师新学期要排座,同学们都充满了各种想法,都想让自己排到心仪的座位。这个时候,就开始各种不和谐出现了,我那个时候,暗下决心等2年级排座的时候,能贡献一份力,证明自己。于是,在程序员老师的建议下,开始画流程图。当然了,都是很简单的。


 

然后写成basic代码,又看了更复杂的,一些,就这样,练了1百个不到那么多流程图。


 

既然是排序,就找了最简单的 冒泡法。看着流程图的图形,就尝试自己写代码,然后测试。用文件做缓存,每个sub函数操作完就保存到文件中,然后再用另外一个sub函数读取出来,并操作。


 


 

使用edit文件 编辑文本。把同学的学号,身高,男女,都放入进去。经过冒泡排序之后,就可以了。然后将运算结果到文件中,打开文件就看到排好的序号了。就这样,再接再厉,写了 学生课程表,学生成绩查询。等软件。就这样,学生相关的微型软件和流程图,用了1年的时间,才能够流畅先写需求,再画图,再写代码,再修改,再画流程图。。。然后完成。一直都没有图形化,很是悲伤。


 

理想中,排座。可当时我的basic能力不足。


 

那个时候想做这样的游戏,可是一直没有办法。因为只要做出这样的,同学们才会认可我。

瓶颈三 试图做第一款游戏

求程序员老师,给我画了张流程图。因为这种难度的项目自己还是很难想想的。


 

想从basic开始做。于是,就从最基础的画线开始学习

 

  1. ①LINE(10,10)-(50,50)
  2. ②LINE(25,25)-(60,60),,B
  3. ③LINE(100,100)-(120,120),,BF
  4. ④LINE-STEP(20,20)
  5. ⑤LINESTEP(30,10)-STEP(60,10)

 

使用一个函数 画一种形状,这样一个一个打造函数,最后的成果类似于下图。


 

不是当时的成品图,在网络上找的类似的。

具体跟这个流程很像,命令行俄罗斯方块_精神与时间-CSDN博客

第四点。就这样,一直沉沦了好久,小学6年内,几乎没有什么像样的进展。大量时间,都在正常学习,玩游戏,抽卡,以及小姐姐的视听光盘度过之中。这些东西简直就是拦路虎。可能就是需要消化掉这些东西才行,或者说basic还是太简单了。能见到的关于basic的书,都太肤浅了。第一次就准备转行了,我跟程序员老师说:“我比别人提前学了6年的电脑编程,为什么,我的水平跟他们差不多?”老师语重心长地说:“小朋友,编程是需要过程的,小学6年级,没怎么让你做项目,是因为学业很重,毕竟一年52周,咱们在一起学习实践也就每年52天。你能学到多少呢?”我非常生气地说:“不行,我比他们提前6年学电脑,我要有一个态度,咱不能让他们随便就超过我啊?”。老师就说:“好吧,那就卷起来吧!!”于是给我一段话,让我把文字上升到图形。


 

就这张图,理解了一周时间。我问老师,什么叫抽象啊?不太懂。于是就有了下图


 

又过了一周,我基本搞明白了,从此以后,我不仅仅会画流程图了,还会画群组关系图了。


 

在这之后,我每每遇到看不懂的内容,就用群组关系图,来表达一些复杂的分支结构。然后不断进行细化,层层分级,最终落实到叶节点。

再比如,当时为了阅读一本厚书,画过类似的图


 

第五点,突破 ifelse难题。

程序做不大,主要是我对流程控制和数据转发的不理解。于是,我很气,气自己这么不聪明,明明就是9年义务教育出来的人,为什么,他们就行,我就不行呢。后来,走投无路了,我就用编辑器,做了一个ifelse软件


 

自从做了这个软件,ifelse 和switchcase,就是拖拽实现了,每当有看不懂的逻辑,就让小精灵sprite来演示。每一个方块里,都是一个数据包,这些数据包由lua来安装初始化。就这样,慢慢地我的ifelse逻辑越来越好了,写的代码逻辑bug少了很多。当然了,光是这样,也不能挨个点每个方格看啊,于是,就做出来内存


 

这个就好很多了,逻辑变换,一目了然,内存数据也一目了然,随时暂停。观看数据组,反正32g内存,大到,根本用不完。

这个软件就是c++做的,可以看得出来c++操作内存的功力特别雄厚。

第六点:内存变量可视化,破解盲人摸象误区


 

再后来,连表格都不用了,直接在背景里画数据。这么庞大的数据量,其实就是使用指针关联的。这样的话,哪个npc动了,朝向。坐标,触发事件id,拥有的物品。。等等,都一目了然。就是因为这样,所有参与者的数据,在第一时间内,都了解到了,对整个编程环境的变化就有了直观的感知,所有的算法和数据结构,能用游戏内容来表示,就坚决使用。不仅仅自己看得懂,朋友们也看得懂,还有趣。


 

然后,配合命令行,找触发的内容


 

就这样,很快就把游戏的运行流程,和数据流通,以及触发机制,搞明白了。


 

为以后的,模块分离做好了坚实的基础。比如这个是sdl版的pal。将来要做成qt版的pal呢?


 

第七点:如何让自己脱离沉迷游戏的误区。这个学会了,绝对突飞猛进。而且是火箭发射。


 

这是好多年前做的了,都忘记了什么游戏了,这个就是研究路该怎么走的。你想想,astar是可以的,navmesh也是可以的。总之有了 走路,就可以节省很多时间了。然后就是 找怪,看血,看蓝,分析怪的等级,然后查表,选择打还是跑。再做的就是捡包啊。这些满满的都是数据结构和算法,指针 还有汇编的应用,走的是算法岗。当然还有另外一个途径,那就是看图找色。绿色安全,走图形学路线。


 

这种实战,绝对是成就感爆棚,可做多了,就是千篇一律,毫无挑战,毕竟这些游戏就是做给青少年的,他们的智力也就那样了。所以技术会了,就赶紧继续前进。停留的话,过几年,你发现,你落伍了,时代变了,你的竞争对手也变了。因为后面,还有opencl和cuda,以及各种多线程算法在等着我们去挑战。反正就是,会搞这个了,基本上,对各种游戏都是,喜欢了,做一套工具,然后就不在玩了,继续学习新技术去挑战了。

大家都知道,编程是需要可持续性的,也就是说,要不断地学习和实践。第一次突飞猛进的点就是接触了思维导图,可以一张图涵盖一门编程语言的所有的知识点,这张图该怎么画呢?很显然,最初的时候却只能看大佬们的作品,可大佬们的作品该如何落地,被我们进行拆解,然后再进行重组,变成自己的理解方式。这就是事一门学问。对于任何一个编程人士来讲,越早接触,越容易,建立起一套属于自己的知识树体系。边学习,边构思思维导图,


 

然后再建立起卡片式记忆法。各种抽象知识点图示化。

想要学习这套方法的同好,可以在关注夜曲编程之后,回复“免费教程”,就可以领取一份为期20天左右的交互式教程。

要知其然,更要知其所以然。这虽然是一套免费教程,可内容的构思极其精妙。把原本正常的教材里枯燥又孤立的知识点,于是初高中学英语的卡片式相结合,更加符合既有的学生思维模式。构筑技巧。以及拆解技巧。

关注我,带你学习更多编程技巧。



Tags:编程   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
JavaScript的异步编程常见模式
在JavaScript中,异步编程是一种处理长时间运行操作(如网络请求或I/O操作)的常见方式。它允许程序在等待这些操作完成时继续执行其他任务,从而提高应用程序的响应性和性能。JavaS...【详细内容】
2024-04-12  Search: 编程  点击:(2)  评论:(0)  加入收藏
Rust编程语言的内存安全与性能:如何平衡?
Rust编程语言自诞生以来,就以其独特的内存安全特性和高性能而备受瞩目。然而,如何在保证内存安全的同时,实现高效的性能,一直是Rust开发者们面临的挑战。本文将深入探讨Rust的内...【详细内容】
2024-04-12  Search: 编程  点击:(2)  评论:(0)  加入收藏
腾讯首款自研 Switch 游戏上线:《腾讯扣叮-编程第一课》
IT之家 4 月 11 日消息,腾讯 Nintendo Switch 今日官宣,Nintendo Switch 趣味编程学习软件 ——《腾讯扣叮-编程第一课》已于今日上架 Nintendo e 商店,建议零售价 4...【详细内容】
2024-04-11  Search: 编程  点击:(2)  评论:(0)  加入收藏
“不懂编程就是文盲”?别用焦虑论调裹挟家长
据3月17日中新网报道,随着科技的发展和社会的进步,科创教育逐渐走入千家万户,少儿编程作为代表,近年来更是备受瞩目。然而,“未来的文盲,就是不懂编程的人”的论调也甚嚣尘上。必...【详细内容】
2024-03-19  Search: 编程  点击:(11)  评论:(0)  加入收藏
编程二十年,38岁谷歌程序员的16条建议,涉创业、技术淘汰、拿大厂offer……
以能够让项目自负盈亏,并在这一约束下优化其增长的方式来管理和调整项目,这是这个世上最厉害的本事。距离我正式开始编程的工作已经过去二十年了。在这些年里,我有以下收获: 获...【详细内容】
2024-03-10  Search: 编程  点击:(5)  评论:(0)  加入收藏
C#异步编程:Task.Run vs. async-await,掌握基础与高级用法
概述:C#中的异步编程有两主要方式:Task.Run用于在后台线程执行同步操作,而async-await更适用于清晰表达异步流程。基础用法展示了它们的简单应用,高级用法则演示了它们的结合使...【详细内容】
2024-03-09  Search: 编程  点击:(27)  评论:(0)  加入收藏
C++多线程编程:解锁性能与并发的奥秘
今天我们将深入探讨C++中的多线程编程,揭示多线程如何解锁性能潜力,提高程序的并发性能。什么是多线程?在计算机科学中,多线程是指一个进程(程序的执行实例)中的多个线程同时执行...【详细内容】
2024-02-03  Search: 编程  点击:(70)  评论:(0)  加入收藏
主流编程语言哪个更容易学?
主流编程语言哪个更容易学?在当今数字化时代,编程语言已成为一项重要的技能,越来越多的人开始学习编程。然而,对于初学者来说,选择一门容易入门的编程语言是至关重要的。在本文中...【详细内容】
2024-01-31  Search: 编程  点击:(139)  评论:(0)  加入收藏
用于人工智能开发的主流编程语言都有哪些?
在人工智能开发领域,编程语言的选择至关重要。目前,主流的编程语言主要包括Python、Java、C++、JavaScript和Swift等。这些语言各具特色,适用于不同的人工智能开发场景。首先,Py...【详细内容】
2024-01-31  Search: 编程  点击:(133)  评论:(0)  加入收藏
不容错过的4款宝藏GPTs:程序员新宠,让编程不再枯燥!
原文来源:硬 AI自从GPT Store“开业”以来,我们就一直在使用不同的GPTs,尝试自动化一些重复繁琐的日常工作。在浩如烟海的GPTs中,虽然真正有用的并不多,很多GPTs的功能都比较局限...【详细内容】
2024-01-24  Search: 编程  点击:(47)  评论:(0)  加入收藏
▌简易百科推荐
AI程序员上岗 垂类大模型应用迎来井喷期
能自动写代码的“AI员工”、逐渐告别不够好用的智能客服,无需费时费力开发的工业AI控制器……随着人工智能大模型能力开始深入多个行业,IT、工业生产、金融、服务...【详细内容】
2024-04-07    千龙网  Tags:AI程序员   点击:(4)  评论:(0)  加入收藏
首个AI程序员上岗,码农们暂且不必过度焦虑
“AI程序员上岗”或许是噱头,但淘汰焦虑仍然近在咫尺,需要积极面对。全文2418字,阅读约需7分钟 撰稿 / 马尔文(媒体人)编辑 / 何睿 校对 / 张彦君▲随着相关技术的突飞猛进,AI也在...【详细内容】
2024-04-07    新京报  Tags:AI程序员   点击:(5)  评论:(0)  加入收藏
为何大语言模型不会取代码农?
译者 | 布加迪审校 | 重楼生成式人工智能(GenAI)会取代人类程序员吗?恐怕不会。不过,使用GenAI的人类可能会取代程序员。但是如今有这么多的大语言模型(LLM),实际效果不一而足。如...【详细内容】
2024-03-21    51CTO  Tags:大语言模型   点击:(24)  评论:(0)  加入收藏
AI程序员Devin:通过了面试,但不一定适合职场
昨天,AI圈上演了第一场“大男主爽文”:一个少年成名的编程天才,组建起仅有10人的编程界奥林匹克“梦之队”,在全球瞩目的科技风暴正中心创办了一家公司。成立不到两个月,其推出的...【详细内容】
2024-03-18    甲子光年  Tags:AI程序员   点击:(14)  评论:(0)  加入收藏
微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%
新智元报道编辑:桃子 润【新智元导读】全球首个AI程序员Devin诞生之后,让码农纷纷恐慌。没想到,微软同时也整出了一个AI程序员——AutoDev,能够自主生成、执行代码等...【详细内容】
2024-03-18    新智元  Tags:AI程序员   点击:(20)  评论:(0)  加入收藏
李彦宏称程序员职业将不复存在,周鸿祎:程序员热十年内不会减弱,AI时代更需要程序员
李彦宏称程序员职业将不复存在,周鸿祎:程序员热十年内不会减弱,AI时代更需要程序员3月10日,360创始人周鸿祎在社交平台上发文称,“大模型将替代程序员?未来不用学编程了么?我认为,程...【详细内容】
2024-03-11    九派新闻  Tags:程序员   点击:(23)  评论:(0)  加入收藏
李彦宏最新发声,“程序员”职业将不复存在!
在3月9日央视的《对话》·开年说节目上,百度创始人、董事长兼CEO李彦宏表示,以后不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力。“未来的编程...【详细内容】
2024-03-11    红星新闻  Tags:程序员   点击:(22)  评论:(0)  加入收藏
编程二十年,38岁谷歌程序员的16条建议,涉创业、技术淘汰、拿大厂offer……
以能够让项目自负盈亏,并在这一约束下优化其增长的方式来管理和调整项目,这是这个世上最厉害的本事。距离我正式开始编程的工作已经过去二十年了。在这些年里,我有以下收获: 获...【详细内容】
2024-03-10    CSDN  Tags:程序员   点击:(5)  评论:(0)  加入收藏
鸿蒙开发岗平均月薪超1.8万,成为计算机人才和程序员的求职新选择!
智联招聘发布的《2024年春招市场行情周报(第一期)》显示,2023年9-12月,鸿蒙相关职位数同比增速从33.8%攀升至216.1%,鸿蒙相关职位的投递人数同比增速从132.1%攀升至380.1%。春节...【详细内容】
2024-02-26  晓枫侃科技    Tags:鸿蒙开发   点击:(25)  评论:(0)  加入收藏
AI最先砸了程序员饭碗?90%码农认为找工作变难,大学生也要调整职业规划
图片来源:由无界 AI生成想不到AI最先影响到的打工人,居然是程序员。最近外媒一个有超过1万程序员参与的职业调查显示,90%的程序员都认为现在找工作变得更难了。仿佛一夜之间,程...【详细内容】
2024-01-12    新智元  Tags:程序员   点击:(80)  评论:(0)  加入收藏
站内最新
站内热门
站内头条