[原创][活动]42岁编程大叔的具有23年的编程生涯遇到最常见的技术难题

本文分享了作者42年来对编程的热爱,特别提到C/C++、C#、Delphi等语言的魅力,以及编程中的技术难题如界面开发、文档缺乏、多线程处理等。作者强调了英语和数学的重要性,并提供了解决问题的方法,旨在帮助初学者理解编程领域的挑战和乐趣。

[序言]

        本人已经42岁了, 19开始学习编程, 已经快23年了, 一眨眼就过了大半辈子. 为什么说是大半辈子呢?因为自嘲也活不过80岁.  但是至今对编程很着迷, 因为我喜欢深挖编程所遇到的细节问题, 每一次攻破问题, 就是一份喜悦, 一次小的进步.  

[最喜欢的开发语言]

1> C/C++ : 该语言有一种无穷的魅力, 在语法糖上直接炫耀. 当初没有C#的时候, C++各种炫耀语法糖的写法让我痴迷. 虽然现在C#语法糖赶超了C/C++, 但现在它没有承认失败, 现代C++开始吸取最好的语法糖. 所以至今我保持C++的学习动力.
2> C# : 该语言真心强大, 各种绚丽的语法糖, 强大的开发库, 让我的开发效率大大提升. 可惜唯一让人不痛快的是.NET 至今没有能完整的native发布. 直到.NET 8发布才有大幅度的改进. 但还是可惜.NET Framwork没有支持native. 这是一大遗憾.
3> Delphi: 其实说它是语言, 有点错误的. 他其实是一个强大的开发工具. 让我足以可以抛弃 C/C++和C#, 因为它具有强大的可视化开发能力, 光是VCL可以吊打目前一切桌面开发IDE. 尤其最近发布了V12版本, 它可以目中无人. 开发23年了, Delphi一直是我的首选, 然后在配合C/C++和C#辅助, 进行混合开发. 那是一个爽字来形容.
4> 汇编: 为什么喜欢?原因很简单, 我喜欢研究Windows系统底层机制, 研究各种偏门奇葩的开发技巧, 喜欢逆向, 所以才选择学习汇编. 汇编语言, 是从19岁开始学的, 这个语言一耍, 就20多年了, 至今还是魅力十足.

[为什么喜欢编程, 其实编程很重要, 也很有趣, 个人觉得也很伟大]

        现在已经是高科技发展时代了, 尤其现在是人工智能AI的风口, 不管你是否存在计算机编程领域,作为一个普通人都能感受到全球顶尖的编程高手创作出来的高科技产品, 给你的生活带来的极大的便利. 在生活中, 对着AI随口说一句: 今日气温多少度?AI就会在1秒杀内或者更快地给你汇报当日的气温, 并给你最好的当日活动建议以及注意事项. 一切都是那么神奇. 但是谁又会想到, 这样简单的对话背后, 却隐藏着全球顶尖的编程高手, 把他们自身的超高智慧浓缩在一起, 并实现了这一小小的对话内容. 真是太不可思议了. 在几十年前很多普通人也没有人想到, 家用电话能演变成一个大手机, 然后大手机再次演变成现在令人惊讶的智能小手机, 不仅给生活带来便利, 也带来了很多创业机会. 这一切只能说, 编程太重要,  因为这一切都是靠编程来实现.... 生活中有太多的例子, 突显编程的重要性, 再比如现在处于超级风口处的顶尖人功能智能技术, 它包含了 机器人, 无人机, 自动驾驶 等等方面的延申研究...这些都是靠编程实现的, 所以我们只需要用心体会, 才能体会到编程这个职业是多么的伟大,多么的有趣, 并且多么的重要.

[那么编程是否很难?]

        首先这个问题, 是非常主观, 每个人都有自己的看法. 而且每个人的智商都不同. 那么我从事快23年的编程职业生涯中,最大的感受是: 编程难不难跟是智商有直接关系. 智商因素占到80%, 而努力因素只占到20%. 在编程领域中, 有些东西真不是靠努力就能学会的. 本人就碰到过很多这样的例子. 就举个简单的: 我一直都在从事Windows系统方面的安全开发, 由于Windows操作是闭源的, 在没有源码的情况下去深挖系统的未知漏洞, 真的很困难, 但是国外就有很多年轻的小伙子, 动不动能原创地挖出了市面上没有公开过的漏洞, 真的很神奇.  Windows系统是很复杂的, 一个普通人不花费10到20年去研究, 根本无从下手. 但是国外很多大神基本不到25岁, 甚至更年轻, 16~18岁都有. 可想而知, 这真是吃天赋. 反正我是做不到, 我现在的水平最多也就是看看国外的漏洞发布和研究成果,  根据他们的理论去深挖Windows系统的漏洞. 当然你让我去创立一套新的技术和方法去找到Windows系统漏洞, 我是做不到. 我只能是模仿, 没法创新.我承认没有这个天赋.

[那么一个没有天赋的我, 在编程中常见的技术难题是什么呢?]

1> 软件的界面开发: 国外很多绚丽的开发界面, 很多动画效果, 我是不会做的, 这里不会做是, 这些动画开发库是如何开发的? 不是说你随便套用的动画库就行了. 你要深入研究这些动画是如何实现的, 游戏有游戏动画引擎, 软件界面有软件界面动画引擎. 这是我开发中最大的欠缺, 我没有办法使我的软件界面变得更好看并且达到欧美软件的标准.
2> 就怕没有开发文档: 比如macOS系统的开发文档就很少, 尤其是涉及到macOS系统安全的, 更少得可怜. 目前我都是只能靠知识碎片的积累, 去摸索去学习. 
3> 多线程迸发问题: 不同操作系统的多线程迸发处理的机制都不一样. 虽然理论都通用, 但是代码不一样, 写法也不一样. 然后细节更是不一样. 一不小心就各种崩溃或者假死.
5> 无法重现的Bug:  当一个软件越来越臃肿的时候, Bug出现机率就越大, 而且更麻烦的是不可能重现的Bug. 一个不可重现的Bug, 有可能需要长达10多年去修复. 我的一个软件就是这样, 长达8年, 才解决. 因为它是不可重现的, 需要时间去等待, 这一等就是8年.
6> 涉及到数学理论的功能开发: 有时开发一些好用的功能, 需要一定的数学理论. 如果数学理论不强的话, 写出来的代码效率就很差, 有可能甚至根本不懂如何做. 就打一个比方: 软件界面需要一个具有衰减效果的抖动, 如果不懂数学, 你无从下手. 当然你说可以套用一个动画库. 但是要知道, 一个动画库比较大, 打包进去, 整个软件就很臃肿了. 所以有时必须要自己实现.

上面虽然列举了只有6点, 但是其实还有更多, 我一时无法完善的总结出来, 但是我能第一时间写在这里的,基本表示这些是让我印象深刻且是常见技术难题了.

[有那么多的技术难题, 我一般是如何解决呢?]

1> 首先我会去查阅大量的文档, 尤其是英文文档, 一定要认真阅读, 如果英文文档没有详细的介绍, 就考虑国外的社区和论坛进行搜索.
2> 如果文档实在搜索不到, 就会在网络上向别人咨询, 看看别人给的建议和提示
3> 找到相关的资料, 文档, 建议, 提示等等, 那么就要开始写代码, 进行必要的验证和测试
4> 平时也要多看编程相关的书籍, 通过日常的阅读, 一点一滴的储备自己的技术, 提升自身的编程水平. 
5> 有空就要多学习英文, 英文是非常重要的. 因为很多高端技术来自欧美国家, 只有通过提升英文水平, 才能弥补自己的技术差距和信息差距. 就拿目前最典型的高科技: 人工智能. 要学习这个领域的知识并处于优势, 就要时刻关注国外人工智能的文献, 因为欧美国家提供都是一手资料. 这些资料都会让你受益匪浅.
7> 数学, 太重要了. 跟英文一样,都等重要. 不会数学, 人工智能开发, 玩不动呀.  当然不光人工智能, 其他领域一样, 不会数学, 差距就很容易被拉开.


[结尾]

看到这里, 我已经把重点核心都列举出来, 希望对大家都有帮助. 尤其是初学者, 该文章会让初学者对这编程领域有进一步的认知. 如果大家有更好想法和意见, 可以在文章下面留言评论, 有对编程领域不熟悉的, 可以继续留言讨论, 我会一一回复的.
     

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不是代码教父

我的创作动力离不开你的真诚激励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值