当我意识到编程本质是什么时,我的编程能力就突飞猛进了!
而我独特的经历,我觉得更有必要把自己的认知贡献出来给大家提供有意义的参考!
编程本质上是把事物的逻辑用某一种编程语言正确的表达出来。所以它分成两部分,
第一部分是你对需求的逻辑分析与逻辑表达;
第二部分是把你的逻辑表达用某一种编程语言更有技巧的表达完成。
当然我的个人项目经历也给了我极大的帮助。
我本人学的是电子信息工程,也就是偏向硬件一类的,可以说对于CPU、内存、IO、网络通信一类的东西差不多学的还算可以,但是没办法理解模拟器件的东西,尤其是高速高频天线是什么(智商不够不要学高频相关的)。。。。
于是我就转到了只要我正确结果就一定正确的CS工作中去了。
工作开始就是编译器前端的工作(严格来讲是代码检查工具),然后是3GPP相关的模拟器,再然后是3G网关。再然后是类似Java框架(类SpringFramework)的开发与维护。然后转向了人工智能业务开发,再到人工智能的编译器开发。
做为不可重复的经历,我把这些有意思的项目经验与个人的认知总结了一下,也就是我的编程能力不断前进的方法与知识。
但是ChatGPT 出现以后,我发现以前所有的经验、方法、原理,都不太适用了,现在几乎所有的软件,都值得借助大模型做一遍,比如百度几乎所有的产品,都变的AI化、智能化。这让我深刻意识到,AI躲不过去,要么拥抱,要么落后,所以,我入局了。
AI+的这个过程也释放了很多机会,现在很多技术岗位再加点 AI 能力,年薪基本都是 50w 起步。
不过懂大模型的人其实不多,很多人只知道名词,不知道原理,不知道具体应用角度的很多的经验。所以现在学习大模型,是属于弯道超车,属于超前的一种方式,能让自己获得特别的提升。如果你对大模型相关专业知识不太懂,建议听听知乎知学堂的AI大模型公开课,里面有大模型的底层原理与技术,很先进很实用。入口我直接给大家找过来了,直接听就可以↓
🔥技术岗高薪必学:AI大模型技术原理+应用开发+模型训练
¥0.00就业无忧
公开课是业界精英研发的,实力不用多说,趁着现在还免费,建议IT人都去看看,如果了解Python的话收获会更大!
下面这些是我过去的总结,也许还有参考意义,如果有兴趣,你就再多看一下!
逻辑分析与逻辑表达能力,这个是关键吧。我个人的感觉是逻辑能力可能没有在学校的哲学教育体系中得到一个很好的教育吧,或者说我学渣一个。所以当我意识到“逻辑”的重要性以后,我就开始不断的阅读相关的书籍,期望能找到一本比较合适的《简明逻辑学导论》与《简单逻辑学》我觉得是程序员的必要读物。当你能熟练使用“逻辑”去分析问题时,你会发现你的编程能力是有很大提高的。
在思考或者处理一个问题时,永远记住,在大脑中完成详细的逻辑,相当于你自己用母语或者某一种自然语言完成它了,你用来编程时,只是简单的描述它。
永远不要边写代码,边想处理逻辑,这样你就会永远处于新手村,不可能得到提高!
永远不要边写代码,边想处理逻辑,这样你就会永远处于新手村,不可能得到提高!
永远不要边写代码,边想处理逻辑,这样你就会永远处于新手村,不可能得到提高!
一个人是不是一个成熟的程序员,一定是他是不是能先完成整体逻辑再去写代码。
但是,你的人际交流能力可能会下降,尤其是与女性的交流,你可能要放弃“逻辑”,考虑一下“对方一直是对的”!
上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以为道。
接下来就是编程语言或者说编程的技术,这个方面的提高吧,其实来源于实际项目、阅读、培训。如果你是一个自驱能力比较强,获取知识能力也同样强的人,我推荐你自己在完成项目的同时,大量阅读与动手实践,这样是能比较快的提升自己的。当然了,这个东西现在有了更方便的形式。
我先推荐下面的书籍。
《代码大全》、《深入理解计算机系统:CSAPP》、《编译器设计》、《计算机网络:自顶向下方法》、《算法导论》
如果你能有效的阅读完这些书籍,那你可能就有了足够的去深入任何一门编程语言或者编程技术的基础,具体的方法要继续在自己的目标中结合具体的实际去学习。当然也欢迎私信探讨。
而我说的方便的形式,就是人工智能,做为未来唯一的正确的方向,我想人工智能已经是任何一个编程人员必要的技术了。它既是未来,又能同时提高你现在的工作效率。
在前面的逻辑与表达能力的基础上,我真的是觉得有了大语言模型的能力后,我的编程能力得以了质的飞跃!以前没有一个团队完不成的项目,现在都是可以一个人顶一个团队干活的!
比如以前吧,你用Django、Vue3、Vuetify搞个基础的应用,可能至少用两个人,一个前端一个后端;现在不同了,只要你会用GPT4,同时懂前后端的基础知识(都可以用GPT学),你一个人可以差不多以两个+的速度完成这个APP。
而且你还可以把LLM相关的能力,以Agent、Chat等形式嵌入到你的应用中,它不好吗?
只是相对于过去的单纯的编程需要的是你的逻辑能力与表达能力,现在你要掌握人工智能,尤其是大语言模型LLM的能力,你可能需要的是 数学+Python+Pytorch的基本要求。
这样你就能比较顺利的开始你的人工智能的工作。另外就是要不断的去看最棒的开源项目。
比如,最近我在不断的思考GPT时,就看了很多有意思的项目,最觉得有收获的是 “karpathy/llm.c”, 当你觉得好的时候,就自己动手重写一遍!
当然,如果你就想自学,我下面推荐一下免费的知识体系
基础要求
不多,大学的数学还记得就成了
- 线性代数 矩阵运算
- 高等数学 导数、偏导数/亚导数
- 概率
- Python开发(熟练级别以上,楼下有门课程是Python)
- Linux基本操作
- 基本的操作指令
- nvidia的驱动安装(建议会)
- docker基本使用方法(可选)
数学知识
- 6.042J. 计算机科学的数学基础. Mathematics for Computer Science. MIT 麻省理工
MATH100. 微积分I. Calculus Ⅰ. UC 辛辛那提大学 ***
- MATH101. 微积分II Calculus Ⅱ UC 辛辛那提大学
- MATH1071 离散数学 Discrete Math UC 辛辛那提大学
- ENGR108 线性代数与矩阵方法导论 Introduction to Applied Linear Algebra Stanford 斯坦福
编程基础
- 6.0001 计算机科学与Python编程导论 Introduction to Computer Science and Programming in Python MIT 麻省理工
机器学习课程
- CS229. 机器学习 Machien Learning. Stanford 斯坦福
- AndrewNG-ML. 机器学习专项课程. Machine . earning Andrew NG
- 6.036 机器学习导论. Introduction to Machine Learning. MIT 麻省理工
- CS234. 强化学习. Reinforcement Learning. Stanford 斯坦福
深度学习课程
- CS230. 深度学习. Deep Learning. Stanford 斯坦福 ***
- AndrewNG-DL 深度学习专项课程. Deep Learning Specialization Andrew NG
- CS50-AI. Python人工智能入门. Introduction to Artificial Intelligence with Python. Harvard 哈佛
- 6.S191. 深度学习导论. Introduction to Deep Learning. MIT 麻省理工 ***
- HYLEE. 机器学习(&深度学习). Machine Learning. NTU 李宏毅
- CSW182. 深度神经网络设计、可视化与理解. Deep Learning: Designing, Visualizing and Understanding Deep Neural Networks. UC Berkeley 伯克利
- FSDL 全栈深度学习训练营 Full Stack Deep Learning UC Berkeley 伯克利 ***
- CS294. 深度无监督学习. Deep Unsupervised Learning. UC Berkeley 伯克利
- UC Berkeley Full Stack Deep Learning
自然语言处理课程
- CS224n. 深度学习与自然语言处理. Natural Language Processing with Deep Learning. Stanford 斯坦福 ***
- CS124. 从语言到信息. From Languages to Information. Stanford 斯坦福
- CS520 知识图谱 Knowledge Graphs Stanford 斯坦福
- CS685. 自然语言处理进阶. Advanced Natural Language Processing UMass 马萨诸塞
- LLM AI Foundation Models Yale CPSC 488/588 Fall 2023
- Stanford CS25- Transformers United
相信你学完这些,自己已经入门了人工智能了,那么你的编程能力与人工智能的能力也肯定是突飞猛进了吧!