2021年1月

1、首先要清楚算法究竟能为程序作出什么样的贡献:

请查阅:《【算法之美】改变世界的十位算法大师》

url:https://blog.csdn.net/kexuanxiu1163/article/details/99912481

普通学生最合适的比赛:

个人赛:

蓝桥杯:https://www.lanqiao.cn/

团体赛:

ACM:https://www.acm.cat/

天梯赛:https://gplt.patest.cn/regulation

国内当前比较靠谱的比赛有:

DC竞赛:http://www.dcjingsai.com/
阿里天池:https://tianchi.aliyun.com/
京东JDATA:https://jdata.jd.com/
DataFountain:https://www.datafountain.cn/
Kesci:https://www.kesci.com/home/competition
百度大脑:https://aistudio.baidu.com/aistudio/competition
腾讯广告:https://algo.qq.com/application/home/home/index.htm
AI争霸赛:http://www.justallinai.com

其中,阿里天池和腾讯、京东、百度比赛的大神太多,AI争霸赛是新起来的小平台,最近在搞AI翻译比赛,一等奖60w人民币奖金,很多大神不知道,新手来说拿奖比较容易

2、了解一下算法与非算法的区别:

一般来说,可以把编程工作分为两种,一种是面向实现的,一种是面向优化的。前者如实现一个功能、搭建一个服务、实现一种展现交互方式等。更关注的是如何实现功能,如何对于各种复杂甚至小众的场景都不出错。互联网中典型的后端、前端、平台、网络工程师的主要工作是这一类。

如果一些功能已经实现了,你主要需要优化它,那这类工作一般比较偏向算法。其中一个关键是你的优化目标要是客观可量化的。比如一些代码优化的工作是提升代码的可维护性、可读性和可扩展性。这个优化目标具备比较强的主观性,难以形成量化的指标,属于设计模式主要关注的问题,一般不纳入算法范畴。

另一个区分算法与非算法工作的重要特征是一般涉及数学知识较多的编程工作更偏向算法。比如对于面向优化的编程工作,为了很好地衡量可量化的目标,其数学定义往往比较明确,相应引入的数学知识会比较多。

那么如果面向实现的编程工作也依赖大量数学知识时是否算作算法呢?其中一个例子是可计算性理论,它涉及到可判定性问题、数理逻辑等问题都需要大量复杂的数学知识。这种情况下,它其实更关心何种问题原则上是否可用算法解决,在实际工程领域中并没有大量的岗位与之相匹配,所以本文暂不将其作为算法工程师所考虑的范围。

3、不同种类算法之间的区别

如果你的优化目标是要降低程序的时间复杂度与空间复杂度,它们都是能够比较严格地量化定义的,就属于经典的“数据结构与算法”中关注的“算法”的问题。LeetCode中大部分Algorithm的题目都属于此类,也是互联网面试中的高频考点,如常见的分治、递归、动态规划等。在实际工作中,特别是一些架构师相关的角色,会着重关注这类问题,比如提升增删改查的速度、降低其内存消耗等等。相应的数学理论是计算复杂性理论,依赖的数学知识包括离散数学、组合数学、图论等。

如果你的优化目标是要降低在未见过的case上的预测误差,这是典型的机器学习中的算法问题。这里面涉及到一些核心的概念,包括:泛化误差、训练误差、过拟合、欠拟合、偏差等。相应的算法岗位非常多,图像算法、语音算法、自然语言处理算法、搜索推荐算法等。

这里推荐几适合大专及普通本科学习的书,个人认为内容很不错(渐进式):《唤醒思维的数学书》·张鹤、《对思想和方法的基本研究》、《计算机离散数学基础》。

机器学习算法还可以根据优化目的的不同进行进一步的细分。如果训练数据带有标签,优化目标是降低预测标签的误差则是最常见的有监督学习。如果训练数据不带标签,则是无监督学习。而如果此时又非要预测对应的标签,则有降维聚类两种算法。如果仅仅是为了拟合训练数据的分布,生成式算法。

它的数学理论是计算学习理论,依赖的数学知识包括概率与统计、最优化理论、线性代数与矩阵论等。

当然,最优化本身就是一种算法。稍微严格一点的表述是在一定的约束条件下控制自变量达到目标函数最优的问题。最优化问题也叫作运筹学,在工程界应用非常广泛。典型的如外卖骑手调度、网约车调度、航班调度、物流路径调度、广告/补贴金额投放等。

最优化算法的种类也比较多,以自变量是否连续可分为连续最优化和组合优化。很多计算复杂度优化算法可以看做一种广义的组合优化问题。机器学习算法一般是连续最优化问题。

4、搞算法的也就是面向优化:

所以,你大概知道你未来的发展之路了吧。

恭喜你,拿个国一也只是万里长征的开始。

加油,高级匠人。

大专普通本科、搞算法的(蓝桥杯、ACM、天梯赛)-后续成长之路相关推荐

  1. 【PTA】2022年蓝桥杯及天梯赛赛前训练(C++练习)

    [PTA]2022年蓝桥杯及天梯赛赛前训练(C++练习) 前言 L1-1 嫑废话上代码 L1-2 猫是液体 L1-3 洛希极限 L1-4 调和平均 L1-5 胎压监测 L1-6 吃火锅 L1-7 前世 ...

  2. 算法比赛经历--蓝桥杯,天梯赛,力扣,牛客,cf,acwing,acm

    第一次蓝桥杯,是去年,用c++写,混了个省二等. 今年蓝桥杯,用java写,水进上海前三,混了个省一等,国赛混了个二等 天梯赛混了个团三... 然后是查缺补漏,扩展算法知识点,真枯燥,临近白发,刷题太 ...

  3. 2021年 第12届 蓝桥杯【备赛直播公开课 —— 软件类(本科组、高职高专组)】

    蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:部分 ...

  4. 【算法】蓝桥杯dfs深度优先搜索之排列组合总结

    [导航] 上一篇文章 → <[算法]蓝桥杯dfs深度优先搜索之凑算式总结>   为了重申感谢之意,再次声明下文的大部分灵感均来自于[CSDN]梅森上校<JAVA版本:DFS算法题解两 ...

  5. 【算法】蓝桥杯dfs深度优先搜索之图连通总结

    前言 上两篇文章 → <[算法]蓝桥杯dfs深度优先搜索之排列组合总结>      → <[算法]蓝桥杯dfs深度优先搜索之凑算式总结>   为了重申感谢之意,第三次声明下文的 ...

  6. 蓝桥杯嵌入式——第十二届蓝桥杯嵌入式国赛

    蓝桥杯嵌入式--第十二届蓝桥杯嵌入式国赛 之前准备省赛的时候用的是旧版的STM32F103,从准备国赛开始就用新版STM32G431平台了,主要是想经过新版的准备学习一下HAL库以及CubeMX的使用 ...

  7. 第十四届蓝桥杯大赛软件赛省赛JavaB组解析

    目录 说在前面 试题 A: 阶乘求和 代码: 题目分析: 试题 B: 幸运数字 代码: 题目分析: 试题 D: 矩形总面积 代码: 题目分析: 试题 G: 买二赠一 代码: 题目分析: 试题 H: 合 ...

  8. c++判断奇偶_第十一届(今年)蓝桥杯省模拟赛 试题+源码 C/C++详解

    后台回复开发工具,免费获取C语言常用编译器 本文章来源:CSDN|亓官劼 本文是第十一届蓝桥杯省模拟赛的试题和部分题解,博主参加的是4.13日的下午场,也就是本次模拟赛的第一天了吧,不知道有没有上午场 ...

  9. 英雄之盾-第11届蓝桥杯Scratch省赛真题第4题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第58讲. 第11届蓝桥杯青少年组省赛原定于2020年3月7日举行,因疫情延期到2020年6 ...

最新文章

  1. 2011-2012年《软件工程》本科期末试卷
  2. R语言ggplot2可视化在图像边界内绘制geom_text文本标签实战
  3. SAP PM 入门系列14 – PM模块与其它模块的集成
  4. 新的一年你该如何起飞
  5. 我们常用的 Integer 内部为什么会去实现 Comparable 接口?
  6. u-boot分析之内核启动(五)
  7. java web 刷新_Java Web项目的保存和刷新
  8. oracle数据泵导入分区表,数据泵导入分区表统计信息报错(七)
  9. [转载] Java反射是什么?看这篇绝对会了!
  10. matlab中模块封装,MATLAB/simulink模块的封装
  11. java hashmap putall_Java ConcurrentHashMap.putAll方法代码示例
  12. java条件触发_java – 当给定75:android时,条件不会触发
  13. 线程概念 多线程模型
  14. MySQL基于日志还原数据
  15. 1.Web前端之CSS3中3D立方体以及3D轮播图
  16. SLAM_VIO中的IMU模型
  17. axios token失效刷新token怎么重新请求_Token 刷新并发处理解决方案
  18. 测试用例方法----正交试验(实验)设计法(黑盒)
  19. ckfinder的使用
  20. 绘制网络组建拓扑图方法分享

热门文章

  1. 10-异步爬虫(线程池/asyncio协程)实战案例
  2. 限界分支法:01背包问题,优先级队列(包含解的追踪)
  3. 学习伟大的Python的第七天
  4. Deploy One Project on Heroku (Week IV)
  5. 解决Linux下音乐乱码的问题:
  6. s11.9 sar:收集系统信息
  7. 迁移到php7,迁移PHP版本到PHP7
  8. 汉诺塔算法python_经典算法:汉诺塔
  9. c# 无法加载oraops.dll_Robotstudio软件二次开发:基于C#语言的Smart组件开发基础
  10. 使用饼图_【Excel饼图使用系列】之使用饼图的注意事项及几个小技巧