作者:曹政(公众号:caoz的梦呓)

开篇必须跟我的读者坦白,这是一篇软文,但我想说,我这里发的每一篇文章,都是认真的,希望对读者有所帮助,即便刨去广告部分,我希望这篇文章仍然是可以帮助到走技术路线的年轻人,正确理解职场技能。

以我的年龄而言,我属于我们同龄人中接触编程和算法比较早的,在初中就开始接触苹果电脑,APPLE II 型电脑,是的,那个年代的苹果机属于不入流和低端电脑,能跑一点简单的 basic 语言,需要插入软盘引导工作。

高中接触到 pc 机,在同龄人中已经属于少有的际遇,上了学校的计算机竞赛班,还拿了一个市里的计算机竞赛二等奖,学了一些诸如递归,回溯的算法。

大学的专业不是计算机,但也有一些关于编程和算法的课程,成绩马马虎虎,毕业后基本都忘光了。

啰嗦几句,在同龄人中,我算是很幸运,很早就接触了编程和算法,但高中的时候,是为了竞赛成绩好获得高考加分(然而并没有),而大学的时候则是为了混学分好毕业,浑浑噩噩的学算法,浑浑噩噩的去考试,然后浑浑噩噩的忘掉。

刚工作的那几年,才意识到数据库是非常重要的,大部分常见的应用,网站,社群,背后都是数据库在支撑,但那时候也都是最基本的使用而已,对背后的原理和机制一无所知,也因此犯了相当多的错误。直到后来,对性能,负载的要求越来越高,处理越来越复杂的数据问题的时候,才开始恶补这方面的知识和内容,不怕你们笑话,都一把年纪了才把数据索引效率的问题搞清楚,还不敢说精通。而数据索引效率的理解,btree 这样的结构,说来也是算法。到后来用到 redis 的有序数组,就已经有意识主动的去看数据结构的逻辑和背后的算法,并基于此去评估其开销和应用场景。

那么,算法,说到底是什么?

算法背后其实是一种技术实现效率的认知,我们可能可以通过很多方式去实现一个解决方案,去处理一个需求问题,但我们在处理和解决的时候,是怎么判断这个方案的开销和可行性的。所以学习任何一个具体算法之前,要首先有时间复杂度,空间复杂度的概念,要知道在有限的计算资源条件下,在对系统开销有明确约束的前提下,如何有效的解决所需面对的计算问题。

中国的程序员数量庞大,已经成为一个社会存在感极为明显的职业,但其中水平层次差距之大,也是相当惊人的,郝培强老师在他最近的文章(好吧,是同一篇主题的软文)里提到说,光一个二分法(入门级的算法吧)就能筛掉很高比例的面试者,讲真,我深有同感,因为我前几年招聘,也喜欢用这个来做面试题目。但话说回来,我刚工作那些年,其实也属于被筛掉的那个阵营。即便是今天,偶尔遇到一些名校计算机系的学霸小鲜肉们在某些群里谈论各种算法的时候,我也是插不上话的,默默的后悔自己当年为啥浑浑噩噩的混学分,不说努力学习一下。

我工作最初几年,也总觉得,算法其实不实用,理解业务就够了,理解业务并实现,似乎也不是多难的事情,但那时候确实年少无知,后来才意识到性能,效率,资源紧缺是非常要命的事情,而且会极大制约一个创业企业的发展,有时候一个人黑暗中摸索,终于绞尽脑汁想出一个可行策略,觉得自己真是天纵英才,然而这种自以为是的状态过不了多久,某个机缘巧合的机会才发现,原来有个什么什么算法,跟我想到的思路类似,但是比我自己瞎琢磨的其实更简洁,更有效率,通用性更好。 举个真实的例子,当初遇到需要高效屏蔽词过滤问题的时候,我苦思冥想,自以为找到了合适的方法,后来发现有个AC自动机算法,明显比我想到的方法更高效简洁。这样的例子其实还有一些。

一些国内和国际互联网巨头都喜欢考算法,刷算法题是硅谷华人程序员最常见的求职通路,有时候你会觉得他们是不是吹毛求疵,至于么一个基层程序员也要学那么多算法,有时候我也会这么觉得,但反过来说,就算达不到那些巨头的要求,但能对时间复杂度,空间复杂度有明确的认知和概念,写出一段代码来,能立即评估其效率和性能瓶颈,这种思想意识,我认为,是每个程序员都需要具备的,而达到这一点,其实并不需要多么高深和复杂的知识。

一个程序员的价值,有几个关键的体现方式。

1、对业务的理解力。

能够正确理解业务诉求,能够从业务中发现问题和甄别问题,这其实是很重要的,技术人员的职场宽度会得到极大扩展,实际上我也认识很多技术出身,但后来成为成功创业领袖的人。也有一些技术出身但转型投资,运营管理的高手,这些都可以说是业务理解力很强,而利用技术人员特有的逻辑分析能力对业务诉求进行拆解和归纳,让自己拥有更多优势,从而让自己的职业道路变得宽阔。

2、沟通交流的能力。

很多技术人员欠缺这一点,这块我觉得怎么强调都不过分,闷头做事,大量无用功,分不清主次重点,以及莫名其妙成为背锅侠,还有就是自己的职场权益无法保障,说到底这里很多都是沟通交流能力欠缺导致的。

3、技术理解力。

技术理解力决定了你能达到的技术的高度,决定了你在技术团队中不可或缺的位置。

而技术理解力里面,很关键的就是时间复杂度,空间复杂度的认知,和在现实研发过程中的体现。这里,其实就涉及了大量的算法基础。

我反思自己当年读书的时候,浑浑噩噩的学算法,其实并没有从时间复杂度,空间复杂度去思考,只是因为老师讲了,书上写了,代码实现了,就以为自己懂了,后来自然也就忘了。在职场为了补回这些课,花了数不清的时间,而由此,可能也错过了数不清的机会。

其实,技术理解力在其他领域也是互通的,你有这样的一些认知,你对处理业务诉求,运营诉求的时候,也可以使用到这样的思想,如何降低复杂度,提升效率。

那么下面,是我最近超过一年半的时间,第一次付费软文广告。

为什么发这样的广告,因为我认为它对我的读者有用,我也会要求我公司的研发同学去学习(嗯,学完回来要考试的)。

比如旧文,一个至简推荐系统的实现(附源代码) 这个是我自己实现的土法推荐系统,那么有没有更经典的推荐算法呢,其实是有的,这个课程里有一讲就是。

alphago 横空出世后,人工智能已经是非常重要的前沿领域,那么这个领域的核心技术要求,就是算法。

区块链这个概念被太多骗子和炒作者玩坏了,我有点不愿意提,但假设区块链存在真实落地发展的机会,那么核心技术是什么?还是共识算法。

好吧,最后,即便你忽略掉广告,我希望我的文章也能让你对自己的职场发展,对你的技术发展有帮助。

学习算法是手段,职场提升是目标。记住一点,你每站的高一阶,你的竞争者就会少一大批,职场上最紧缺的,永远是最优秀的那一小撮。

特别是研发领域,top 1% 的薪酬,可能比 top 5% 的高一倍不止,top 5% 的比 top 20% 的高一倍不止,top 20% 的比 top50% 的高一倍不止。而很多企业老板经常提及的,要求不高,就想招个能用的程序员,这个所谓能用的标准,据我观察,基本上要求是 top 20% 的水准,那么,你想站在哪里?

特价最后 1 天,课程已开始更新,点击链接试读购买。

算法是如何体现价值的相关推荐

  1. 力扣LeetCode经典算法 礼物的最大价值

    数据结构(五十一) 学习数据结构与算法过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流. -- 礼物的最大价值 -- 1.题目描述 在一个 m*n 的棋盘的每一格都放有一个礼 ...

  2. 【金猿人物展】深演智能黄晓南:在数字化营销的趋势下,智能和算法将重塑营销价值的评估标准...

    黄晓南 本文由深演智能创始人兼CEO黄晓南撰写并投递参与"数据猿年度金猿策划活动--2021大数据产业趋势人物榜单及奖项"评选. 数据智能产业创新服务媒体 --聚焦数智 · 改变商 ...

  3. 给领导送茶怎么做能体现价值?别傻乎乎说价格,高手用3个潜规则

    有人问:某领导帮助我一个大忙,我买了两盒好茶准备送给他,但是怎么说才能让领导知道这茶礼很贵呢?很多人都笑话这位题主"格局小了".其实,大多数人都有这种心态,送礼要让对方知道&quo ...

  4. 算法-----礼物的最大价值

    题目 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及其上 ...

  5. c语言中国象棋ai算法,【中国象棋】AI算法中的棋子价值是怎么衡定的?

    棋子价值 在对弈时,双方都要进行不可避免的兑子[帅(将)是唯一不可兑换的棋子,下列子的价值如下(以车9分为例,帅(将)除外] 车--9分 战斗力最强大的棋子,是作战主力的第一位.车的价值最大,用分值来 ...

  6. 什么是视频价值?如何体现价值?做自媒体有很多人都弄错了

    大周一直在强调视频价值,有很多粉丝就有疑惑了,那些装傻充愣.徒步旅行的视频价值在哪里?看的人会有那么多呢? 今天就来跟大家好好聊一聊视频价值的这个点,有很多人对"视频价值"这个词有 ...

  7. 公众号数据分析系列之-caoz的梦呓

    导读: 关注曹大的公众号和加入知识星球有一年半了,我和大家一样从曹大那里受益良多.不过说来惭愧,明知道曹大的公众号是个宝藏,却一直没有系统学习,因为曹大真的很能写(主要因为我懒),那么该如何最高效得学 ...

  8. 软件测试-如何体现自己的价值?

    首先,我们了解软件测试从业者处于阶段:高级岗位.中级从业者.菜鸟小白. 高级岗位:部门leader.核心测试开发岗位等.->对应的上级是:质量部Leader(经理/总监).技术VP->公司 ...

  9. 从原理到落地,七大维度读懂协同过滤推荐算法

    作者丨gongyouliu 来源 | 大数据与人工智能 导语:本文会从协同过滤思想简介.协同过滤算法原理介绍.离线协同过滤算法的工程实现.近实时协同过滤算法的工程实现.协同过滤算法应用场景.协同过滤算 ...

  10. 图像技术在上亿规模实拍图片中的应用(算法好文)

    背景 闲鱼作为一个自由的商品和内容分发市场,每天有上百万的用户图片上传,其中不乏图片重复,图片描述内容不明确.图文不符等低质量的商品:也有各种搞笑.抖机灵等倒流的内容:还有色情.黑产等违规或违法灰色地 ...

最新文章

  1. 在linux环境下重启oracle数据库,解决密码过期的问题
  2. jQuery幻灯片skitter-slider插件学习总结
  3. c#中的protected和internal
  4. 【计算机网络】FDM和TDM的传输总时间计算
  5. 树的定义/性质/实现
  6. mysql 运维常见操作
  7. ecshop dizcuz会员整合
  8. 通过脚本生成Zabbix Screen报错Incorrect value for field vsize
  9. 记录一次elastic-job分片查询及基础概念理解
  10. Win10一键更换系统字体
  11. RS编译码理论介绍与MATLAB性能仿真
  12. Unity3D场景转换效果
  13. imag在matlab,Matlab基本函数-imag函数 | 学步园
  14. oracle gi和gc的区别,别装了,你肯定对GI有什么误解,这才是争取的区别不要弄错...
  15. jQuery - 基于serializeArray的serializeObject
  16. Could not load the following font :pdfFontName : STSong-Light问题
  17. 什么是DevOps的三步工作法?
  18. 用三种方式安装Nginx
  19. 禁止迅雷极速版强制升级为最新迅雷版本的方法,最简单,最有效!
  20. 购物商城实现点击商品列表某商品,进入其详情页!

热门文章

  1. 如何成为一个优秀的互联网营销人员?(互联网销售/网络营销职位从菜鸟到大神应该学习的内容)
  2. Android6.0 Qualcomm Atheros QCA6174A WiFi Model Support
  3. 小米手机 root权限 获取
  4. VLIW技术与嵌入式系统
  5. java 多文字水印_Java如何给Word文档添加多行文字水印
  6. 算法11 抓住波粒二象性的火星人
  7. DirectX11学习笔记01
  8. python解析mht文件_将不同内容类型的MHT文件提取到多个MHT-fi中
  9. 正则表达式过滤非数字字符串
  10. 霹雳吧啦Wz语义分割学习笔记P1