找回密码
 立即注册
查看: 310|回复: 1

在本科阶段如何提升算法能力?

[复制链接]
发表于 2022-1-14 14:31 | 显示全部楼层 |阅读模式
在本科阶段的学习除了大学课程中学习的基础理论之外,主要要侧重算法设计思路并从实际遇到的问题出发,要经过不断深入的、具体的分析引出相应算法,并且能够对算法的正确性和复杂性进行合理的分析和论证,这种学习路径将会对你的算法能力有很大帮助。
一、算法学习的基础
有两方面分别是时间复杂度和空间复杂度。需要掌握概念以及如何计算,主要有最大复杂度、平均复杂度等。
二、算法能力是算法的核心竞争力
很多算法工程师对于编程语言或操作系统或网络等方面的知识较薄弱,但具有很强的算法设计能力,这正是算法工程师岗与其他IT岗的距离所在,同时也是人工智能时代极为需要的能力。
算法能力不是仅仅局限于常规的算法知识,同时也含有模型建立、数据分析等方面的能力,而这些能力都极为考验思维能力。学习算法的过程,是训练机器程序思维的过程,要多辩证地思考,学会考虑到很多性能方面的事情,会极大程度的减少时间复杂度、空间复杂度非常高的垃圾代码出现的频率。
数据结构研究的内容就是如何按一定的逻辑结构,把数据组织起来,一般学习算法都是先从数据结构开始学习,先根据实际问题确定数据结构,然后在数据结构的基础上进行算法设计。常见的数据结构有:栈(Stack)、队列(Queue)、数组(Array)、链表(Linked List)、树(Tree)、图(Graph)、堆(Heap)、散列表(Hash table)。
特别是对于在校生的不要觉得算法多学习困难,对于我这个过来人说这些都是经验之谈,学了一定是有好处的,知识都进你自己的脑子里了,很多算法知识可以不用很懂,但至少得了解。
三、学习书籍和资料
如果基本数据结构对你来说学习起来也很困难建议看《数据结构与算法》相关书籍,例如《大话数据结构》、《数据结构与算法分析》。如果你有一定的基础,例如知道链表,栈,队列,那么可以看《算法第四版》,不过这本书是用 Java 实现的,不过我觉得你只要学过 C,那么是可以看懂的。
当然仅靠自己看书一定会觉得晦涩难懂,除了书籍之外还可以在《贪心科技AICareer起航计划》里学习,学习过程中有专业mentor和导师能够帮助你从最基础能力开始培养,导师都是大牛,李文哲博士徒手撸算法。不再让你依托于单一的demo项目,在项目聊天机器人中的意图识别中通过意图识别,机器才能知道用户到底想做什么,还会想解决某一个特定的问题。几乎任何的对话系统都包含意图识别模块,它是后续执行对话的基础。但实际上,意图识别也是经典文本分类任务。通过完成此项目,你将会掌握SVM、词向量、BERT、文本处理等技术的使用。学习这个课程能够帮助你有效解决在学习或者阅读中遇到的问题。



在课程中能够从本质上提高你的学习和完成项目的能力,即使是复杂的算法你也可以从容面对。并且学习掌握凸优化技术,通过demo中打车软件中的拼车路线优化,课程通过如何规划一个路径使得让乘客的体验好,同时最大化司机的利益? 根据公开数据自行设计一个优化算法来解决此问题。在学习的过程中提高你的自主创新能力,更高效提升工程能力。

最后你还处于本科阶段有足够的时间可以充足利用去学习,把握好时间吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2022-1-14 14:39 | 显示全部楼层
在本科阶段的学习除了大学课程中学习的基础理论之外,主要要侧重算法设计思路并从实际遇到的问题出发,要经过不断深入的、具体的分析引出相应算法,并且能够对算法的正确性和复杂性进行合理的分析和论证,这种学习路径将会对你的算法能力有很大帮助。
一、算法学习的基础
有两方面分别是时间复杂度和空间复杂度。需要掌握概念以及如何计算,主要有最大复杂度、平均复杂度等。
二、算法能力是算法的核心竞争力
很多算法工程师对于编程语言或操作系统或网络等方面的知识较薄弱,但具有很强的算法设计能力,这正是算法工程师岗与其他IT岗的距离所在,同时也是人工智能时代极为需要的能力。
算法能力不是仅仅局限于常规的算法知识,同时也含有模型建立、数据分析等方面的能力,而这些能力都极为考验思维能力。学习算法的过程,是训练机器程序思维的过程,要多辩证地思考,学会考虑到很多性能方面的事情,会极大程度的减少时间复杂度、空间复杂度非常高的垃圾代码出现的频率。
数据结构研究的内容就是如何按一定的逻辑结构,把数据组织起来,一般学习算法都是先从数据结构开始学习,先根据实际问题确定数据结构,然后在数据结构的基础上进行算法设计。常见的数据结构有:栈(Stack)、队列(Queue)、数组(Array)、链表(Linked List)、树(Tree)、图(Graph)、堆(Heap)、散列表(Hash table)。
特别是对于在校生的不要觉得算法多学习困难,对于我这个过来人说这些都是经验之谈,学了一定是有好处的,知识都进你自己的脑子里了,很多算法知识可以不用很懂,但至少得了解。
三、学习书籍和资料
如果基本数据结构对你来说学习起来也很困难建议看《数据结构与算法》相关书籍,例如《大话数据结构》、《数据结构与算法分析》。如果你有一定的基础,例如知道链表,栈,队列,那么可以看《算法第四版》,不过这本书是用 Java 实现的,不过我觉得你只要学过 C,那么是可以看懂的。
当然仅靠自己看书一定会觉得晦涩难懂,除了书籍之外还可以在《贪心科技AICareer起航计划》里学习,学习过程中有专业mentor和导师能够帮助你从最基础能力开始培养,导师都是大牛,李文哲博士徒手撸算法。不再让你依托于单一的demo项目,在项目聊天机器人中的意图识别中通过意图识别,机器才能知道用户到底想做什么,还会想解决某一个特定的问题。几乎任何的对话系统都包含意图识别模块,它是后续执行对话的基础。但实际上,意图识别也是经典文本分类任务。通过完成此项目,你将会掌握SVM、词向量、BERT、文本处理等技术的使用。学习这个课程能够帮助你有效解决在学习或者阅读中遇到的问题。



在课程中能够从本质上提高你的学习和完成项目的能力,即使是复杂的算法你也可以从容面对。并且学习掌握凸优化技术,通过demo中打车软件中的拼车路线优化,课程通过如何规划一个路径使得让乘客的体验好,同时最大化司机的利益? 根据公开数据自行设计一个优化算法来解决此问题。在学习的过程中提高你的自主创新能力,更高效提升工程能力。

最后你还处于本科阶段有足够的时间可以充足利用去学习,把握好时间吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-24 05:41 , Processed in 0.110796 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表