数据这个概念,可能以前比较模糊,但是近两年来,已经越来越为人所知。为什么数据越来越重要?我们到底处在一个什么样的时代?
数据结合算法的应用
数据之所以重要,是因为可以对未来的趋势进行分析,为决策的准确性提供保障,避免不必要的运营战略,为不同标签用户提供最准确的服务,进行广告文章推送,提供节日祝福,对用户近期的消费状态进行匹配,制定商品排列推荐,包括现在一号店等公司的小区雷送等,都是基于数据的分析,为用户提供服务。往来,一个产品的定位和包装,往往是一个PM或运营一个个调研,一个个人去问,岂不是很麻烦且没有任何效率可言?而今利用算法去对不同地区,时段,年龄的用户进行分析,根据不同比例的权重去编写算法,快速的利用历史数据推算出下一步产品的方向,岂不是很完美?
其实就我个人而言,我觉得算法的应用可以普及到生活的方方面面,hr可以用简单的算法来对简历进行快速筛选,这对一个编程人员来说,可能只是十几行代码的事情。他可以为每一个线下零售行业提供对地段流量,房价租金的统计,最终通过用户输入的启动资金,地区规划得出准确的经营计划。
人工智能是当前的一个热门话题,它也离不开算法的支持,更需要一个稳定的结构去支持针对不同机器学习的算法分配,对内容进行过滤,针对标签进行分类,最后完成了类似于天猫精灵这种居家可爱的人工智能音响。
合理结构思维的重要性
再来说说结构,可能算法对刚开始从事编程行业的人来说还太远,但是如果能够对结构的节点,链接,稳定性有所认知,那对代码的优化可以说是不可量记。为什么我可以这么说呢?因为我最近接触到的一个关于链路流程的项目就用到了对链式结构的发散节点链接,通过递归返回确定对应关系,这本是很基础的结构,但是我发现周围居然鲜有人能想到这一点,以至于我开创了他们认知的一个先河:在数据库中设立每一条数据的上下节点,从而把数据拆分开来,遍历时通过一个个节点集合去判断,前端显示排列用递归进行节点归属,从而链接,也大大提高了后续开发的扩展性。我看到周围同事的代码,大多数都有反复对数据库连接的问题,很少有人考虑这样会为程序带来多大的负担,针对对数据库的迁移,如果反复链接,这其中对速度的折损何其之大?往往对代码的优化难点就在于,整个架构崩溃了,难道我要重新组织架构吗?
一个懂数据结构的人在项目前期的讨论中,能为公司带来的贡献是不可估量的,我相信一些拥有复杂架构的公司都能深深体会到这一点。
总结
大到人工智能的时代趋势,中到一个大型商业公司的运营策略,产品方案,小到一个线下商店的地段,资金预估,数据结构和算法,是这一切实现的基础。
偶然间和朋友聊到,那么多的数据,仿佛并不缺乏这种机器训练需要的元素,但是为什么常常无法得到很好的利用,关于这点,我们各执己见。他从产品出发,看到的是因为无法对产品的需求作出判断,所以无法很好的利用数据。我从技术出发,看到的是一个优秀的算法工程师一定可以透过产品的需求,通过算法,针对不同标签,训练出最终合适可用的数据和推算结果。其实也不算各执己见,只是互为补充。
那么,数据结构和算法的重要性也就不言而喻了,这可以说是当下的大话题了,曾经冷门的数据分析师,一下子成为了炙手可热的人物。数学这个程序员的不变追求,对于公司来说的难点程序优化,离不开数据结构。
从这篇文章开始,我就将把我对数据结构和算法的一些学习和个人见解,带入到一部分真实需求中,展现在我的技术分享中。