精华内容
下载资源
问答
  • 软件测试工程师职责是发现BUG,此外,如何体现个人价值?那么我们试想,只提出问题而不解决,问题就永远得不到闭环。所以,一个资深测试人员基本功应该是这样:深挖业务和功能需求,找出BUG,定位BUG,...

    测试如何判断是前端的bug还是后端的bug

      软件测试工程师的职责是发现BUG,此外,如何体现个人价值?那么我们试想,只提出问题而不去解决,问题就永远得不到闭环。所以,一个资深的测试人员的基本功应该是这样的:深挖业务和功能需求,找出BUG,定位BUG,提出解决方案。这里我们就来说说,当我们找到了BUG,应该把BUG提交给谁去解决,这属于BUG定位的问题。

    一.为什么要区分前端/后端BUG?

      如果是一个多人开发的系统,不能明确定位到这个bug是谁造成的,容易提交给错误的开发人员,我们又不可能把这些bug同时提交给前端和后端一起去解决,同时提交给前后端开发人员,每个人都会有依赖心理,就像我们在家里一样,兄弟姐妹多的,干家务活总会想着给对方做,一样的道理。bug会像皮球一样被开发踢来踢去,耽误开发解决bug的时间。

      另外,如果团队规模较大,或者由各地的项目组拼凑而成,势必会增加沟通成本,这更需要我们在类似禅道或者Jira等项目管理软件中提交bug时,先指明是谁的bug,避免互相踢皮球的现象。

      所以测试必须要自己学会区分出是前端还是后端bug,就好像时下流行的词“垃圾分类”,经过bug分类处理,整个团队的效率都会有所提高。

      但说实话,能真正区分并准确判断是什么错误需要很有经验的测试,并且也需要测试懂开发技能。目前我这方面能力真的欠缺,我也需要加油~。虽然初级中级的测试不能做到完美区分所有bug,但一定要学会简单的区分bug的能力。

      所以,为了提高团队效率,测试人员尤其要做好bug分类。在测试过程中,如何判断是前端的bug还是后端的bug?

    二.如何定位前端/后端BUG?

    通常可以利用抓包工具来进行分析。可以从三个方面进行分析:请求接口,传参,响应。

    1. 请求接口url是否正确

    如果请求的接口url错误,为前端的bug

    2. 传参是否正确

    如果传参不正确,为前端的bug

    3. 请求接口url和传参都正确,查看响应是否正确

    如果响应内容不正确,为后端bug

    4. 也可以在浏览器控制台输入js代码调试进行分析

    如果定位为后端的bug,可以进一步通过以下方法精确定位是哪里出bug

    1. 查看报错日志,通过日志分析问题点

    2. 查看数据库确认数据的正确性

    3. 查看缓存是否正确

    前后端BUG各有什么样的特点?

    前端BUG 后端BUG
    界面相关 业务逻辑相关
    布局相关 性能相关
    兼容性相关 数据相关
    交互相关 安全性相关

    定位BUG属于前端还是后端,有什么方法?

    这里提供了几个方法,可以给大家一个思路,让大家能在学习和工作中了解如何去区分BUG属于前端还是后端。

    接口查看法

    这种方法是最常用的,我们必须掌握的,常用于查看是后端返回给前端的数据有误,还是前端显示有误。

    大多数浏览器都有自带的接口查看工具,如Chrome,FireFox等都可以通过F12开启抓包,在NetWork中可以看到当前页面发送的每个http请求。要想通过接口查看法来判断,你需要先了解Chrome浏览器的Network面板介绍

    日志查看法

    当我们发现一个bug,并不确定这个bug属于前端还是后端,可以查看后端服务的日志,复现bug时,查看日志中有没有相关信息。基本可以认为,如果日志没有输出,很可能这个功能并没有与后端交互,也就不存在后端的问题。反之,如果日志有输出,可以进一步查看有无错误日志信息,进一步分析。

    经验法

    经验法就只能是慢慢积累了。负责的项目多了,自然对功能的实现过程有了解,也就明白如何分类bug了。在平常的工作和实践中慢慢总结,不要只是一味的点点点测测测,总结复盘很重要。

    展开全文
  • 千人千面”》主题演讲整理,从判断企业是否需要千人千面、如何实现千人千面以及效果追踪三大方面展开。(文末附 PPT 下载地址) 一、判断企业是否需要“千人千面” “千人千面”很容易理解,即找到对人,用对...

     本文根据神策数据业务咨询师潘书荟《数据智能打造“百人百态 & 千人千面”》的主题演讲整理,从判断企业是否需要千人千面、如何实现千人千面以及效果追踪三大方面展开。(文末附 PPT 下载地址)

    一、判断企业是否需要“千人千面”

    “千人千面”很容易理解,即找到对的人,用对的形式送达对的信息。目前,几乎所有的互联网头部产品都做了“千人千面”的规则推荐,以至于我们有时候看到自己不喜欢的内容时,反而会去怀疑自己是否真的不喜欢、是否有还未挖掘的兴趣偏好等。

    在这样的市场环境中,是否要随波逐流,全部“拿来”呢?我认为,企业首先需要考虑“千人千面”能够给自己带来的价值,核心在于以下两点:

    第一,提升内容到用户的分发效率 。

    如果使用人工策略或不使用任何策略,用户也能看到自己喜欢的内容,但搜索成本较高且需要用户承担;通过机器学习等智能策略,可以降低用户的搜索成本,实现内容到用户的分发效率提升。

    第二,提升内部工作流程执行效率 。

    部分企业常用手工方式跑运营闭环,从活动策划到执行,到监测,再到复盘,如果在此过程中采用数据智能,那么提升的不仅仅是工作效率,更对效果有正向驱动力。也就是说,企业需要将更多的时间花在策略调优上,而不是执行落地的过程。  也就是说,如果以上这两点的提升能够帮助业务增长,那就代表着企业可以着手去做了。

    二、如何实现千人千面

    如下图所示,千人千面可以分为三个阶段:  接下来我们将从数据智能应用场景做进一步了解。

    1.低阶:人工决策配合智能执行。

    场景一:计划营销,通常表现为单次性、周期性运营策略。

    举个例子,电商企业在大促的前 7 天或者前 1 天,企业对用户的一次性信息推送就属于单次性计划营销;每个月的工资日、还款日的消息提醒需要重复、有规律地执行,这种就是周期性的营销。

    场景二:分层推荐,即基于用户分层的差异化展示。

    当用户到达产品环境,企业可以有效利用分层推荐实现效果提升。常见的形式有:开机图、Banner 图和轮播图,这三种推荐的物品量级往往较少,且更新迭代速度较快,除此之外,在设计这三种推荐规则时基本上已经明确了目标受众。在这个场景中,采用人工决策基本上可以实现分层运营的目标。

    2.进阶:人工与智能共同决策。

    在此阶段,我们梳理出触点营销和精细化分层推荐两个场景。

    (1)触点营销通常是指通过人工决定策略方向,机器辅助计算决定触发时机。

    比如,当用户多次浏览产品但没有实现转化时,可以通过机器设置:在用户浏览产品 30 分钟后无购买行为的情况下及时触发优惠券推送等策略,提升用户转化效率。

    再比如,对于新客来说,我们希望一步一步加深其对产品价值的体验,往往会在新客进入的第 1 天、第 7 天、第 30 天的时候进行用户触达,如果单纯依靠人工拉名单完成推送,耗时耗力,而通过机器实现对新客的行为追踪,就可以轻松实现特定日期的自动化推送。

    (2)精细化分层是在产品内部,针对用户的个性化行为进行精细化推荐的过程。

    举个例子,银行业的功能推荐菜单,一般包含 100 个以上的功能,当用户进入产品后很难第一时间判定哪个功能是该用户真正需要的,这个时候就需要企业针对这 100+ 个功能进行梳理,每个/每类功能适合哪些用户,然后基于用户过去一段时间的访问频率路径对功能展示进行排序,也就是说人工 + 智能共同实现精细化推荐。

    3.高阶:从决策到执行到反馈,全流程智能推动。

    提及“千人千面”,大家第一时间想得到的多数是全流程智能,也可以按照当下流行的机器算法、深度学习概念去理解。其应用场景如下:

    第一,智能营销,即基于算法程序实现的自动化、个性化营销,依靠机器识别并触发的营销推送,目前该场景还未广泛应用。

    第二,智能推荐,基于算法模型实现的个性化推荐,多用于信息流、相关推荐、热门推荐等。

    企业落地“千人千面”的核心是 ROI,在此原则之下还有一些硬性条件:

    (1)用户量级和物品量级。在神策智能推荐产品化的解决方案中,我们对于客户拥有的物品库有一定数量要求,低于 5000 的物品量级或者日活没有达到特定级别时,是不适合做算法推荐的。

    (2)用户标签和物品标签的建设程度。在企业面向用户进行精细化运营时,如果没有足够数据支撑用户分层和识别物品特征,那么精细化运营的工作将难以开展。

    (3)实时行为数据流。无论哪一个阶段的数据智能应用,都依赖对数据的实时收集,然后才有可能基于用户的浏览行为实现个性化推送。 在以上三点都满足的情况下,企业可以基于其现阶段的 ROI 决定场景及优先级。

    对于算法实现的“千人千面”来说,它的流程一般从数据系统开始,采集用户行为数据并灌输至算法推荐系统,经过一系列的处理,推荐最合适的结果,然后再将结果返回用户前端做展示,同时监测用户点击效果,以此判断本次推荐效果的质量,持续优化,形成算法推荐的完整闭环。如下图所示:  在以上闭环中,模型训练对于业务人员来讲是一个黑盒,它主要分为三个步骤:

    1.物品召回,针对用户个性化展示适合其看到的物品。

    2.排序,基于各种各样的判断条件对挑选出的物品进行排序,以确保其能够产生较好的曝光和转化效果。

    3.重排序,该阶段需要较多业务输入。举个例子,运营人员对于产品调性和多样性有一定的要求,比如某个用户更倾向于看与宠物相关的短视频,但很难有一个产品能够只播放宠物类视频,这就需要企业清楚认识到对长期用户行为的判断是否应该完全依赖于算法产出的短期效果。

    而想用好算法推荐,需要基于算法的数据智能依赖于技术与业务的双重护航: 

    第一,高效运作的智能推荐系统。

    首先,它的前提是可获取到准确的用户行为数据。

    其次,算法模型本身。神策的算法功能,比有些客户之前用的自荐或其他模型写出的推荐效果更好,我们甚至没有进行深度调优,这就充分体现了算法模型本身的优越性。

    第二,基于业务逻辑进行系统调优。

    算法并不能帮助我们解决所有问题,其典型代表场景是冷启动。针对此,我提出两点建议:①从新用户进入产品前的渠道做信息和内容的承接,确保用户进入产品后,可以看到符合他预期和需求的内容;②设计好的策略主动向用户收集信息。

    很多时候,算法并不依赖于用户标签和物品标签的建设,所以有的业务人员会忽略对标签建设的重视;但算法解决推荐问题的效果需要通过数据分析来做判断,本质上是对一个指标进行层层拆解的过程,如果用户画像标签/物品标签建设不完善,就会对推荐效率和质量的判断产生一定的影响。因此,虽然算法可以帮助我们解决很多问题,但同样要求我们重视本身数据的建设。

    对于人工干预来说,它涉及到的通常是一些特定环节,比如,对于特定物品的封禁行为,参数调整,重排序阶段的策略等。

    通过以上,我们可以了解到算法本质上要结合业务去实现,且有一定的门槛,具体表现在业务、技术和人三方面:

    1.业务模式是否适合用算法解决“千人千面”的问题。
    首先,算法的最大价值在于内容到用户的分发效率,那么企业的商业模式下对内容到用户的分发效率是否重视,影响力如何等。

    然后,在业务发展的阶段,我们势必会优先建设内容以及拉新的动作,那么此时是否需要投入大量精力去做算法的系统,实现“千人千面”呢?

    最后,物品量级和用户活跃数量是否达标。

    2.是否有足够的技术资源和大数据基础支撑企业做好算法、或通过其他形式实现“千人千面”。

    3.参与人员是否具备人工智能的理论与实践的能力。
     在人工与机器智能落地方面,它的本质很好理解。首先,我们会基于特定的条件去挑选出满足条件的用户,往上可以跟一些通道系统、营销系统做对接,名单就会被自动推送,我们接下来要做的是发短信、推 push、发优惠券、发红包等一系列动作,这个是针对我们圈选的人群做的一些针对性运营设计;往下走可以对接内容营销,配置展示的内容以及顺序,通过人工决策指明方向,然后再由机器自动化去实现。  如何组建整体运营系统?我们可以从点、线、面三个层面对运营动作进行梳理:

    点,断点营销。梳理业务流程中用户流失原因,并针对性地做一些挽回措施。

    比如用户访问理财详情页但并没有在指定的时间内完成转化,或者因为某些原因造成登录失败进而导致用户流失……梳理完用户行为流程之后,针对各个环节的流失风险针对性制定策略。针对访问未购买的用户,推送 push 为其推荐更加合适的理财产品;针对提交订单未支付的用户,站内 push 配合短信触达,发送优惠券等促成用户转化。  线,流程推进。面向特定功能、特定业务、特定活动去做的持续性推广,设计一些流程性的任务,比如在进行优惠券推送时,如果 5 元优惠券带来的转化效果并不好,那么改为推送 10 元的优惠券,根据效果层层递进,试探性地触达,所以该方法适合针对特定用户达成的目标需要做持续运营的场景。

    面,分层运营。通过对所有用户进行分层,规划每一个分层适合的运营方式,以此实现千人千面。业务人员通常不知道该如何着手设计运营计划,我们建议可以通过一个比较通用的模型,诊断产品现存问题,然后针对问题环节设计优先级较高的运营策略。

    通常情况下,会分为以下两种场景:

    场景一:基于产品外的推送,主动触达用户

    举个例子,基于客户生命周期模型,在“拉新效果较好但转化不尽人意”的情况下,我们需要从新用户旅程中筛选出重点环节,制定拉新、激活转化、复购、流失召回等全流程的自动化运营策略;同时,也可以明确在激活环节的运营策略是否对转化提升有所帮助,洞悉运营质量与效果,提升运营效率。

    场景二:配合产品内展示,提升用户转化

    首先要对产品内的运营位进行梳理,在制定策略的时候重点体现用户分层运营,比如面向新老用户分别设置功能菜单运营计划、产品推荐计划等。在推荐计划设置和运营的过程中,可以结合用户标签体系,面向特定人群做差异化内容展示,实现千人千面。

    综合来说,千人千面是一件有门槛的事情,具体在建设过程中需要注意以下问题: 

    1.数据基础及技术支撑

    (1)推动用户和物品标签的建设;

    (2)数据流和业务流的融合程度,它直接决定了我们制定策略以后,机器的执行效率和质量;

    (3)通道建设与管理,这个是困扰很多运营人员的问题。在通道建设方面,可以选择优质的第三方工具、自建系统等,确保 push 能够被成功送达;在解决通道建设的技术难题后,需要选择合适的场景请求用户把通道打开;在打通触达用户的路径后,要注重对通道的管理,就像神策智能运营系统,它可以帮助客户主动选择某一时间段内对用户触达的次数等。

    2.业务实战经验积累与复盘

    (1)体系化的运营思路,基于上述方法论,梳理运营策略,以便于对全局运营有一个完整认知。

    (2)效果验证与知识沉淀,通过机器进行效果记录和展示,打破人员流动带来的经验流失。其本质上是帮助我们提升策略上线效率和对结果评估效率的实时监测。

    3.效率工具

    效率工具如果能够发挥出价值,就可以直接实现低阶运营,即人工决策后,由机器执行释放人力成本,提升人工决策与评估效率。但在此过程中,效率工具需要具备以下能力:

    (1)与数据和产品打通的可视化策略编辑能力;

    (2)上线管理的能力;

    (3)行动效果回收与评估的能力。

    只有具备这三方面的能力,才能够帮助运营人员真正意义上提升工作效率,解放人力资源。

    三、如何判断千人千面的落地效果?

    从指标效果评估上来看,可以分为三个层级:

    1.场景转化类,它适用于点击率、点击人数比、人均点击次数等,可以直观地告诉我推荐对于用户转化是否有效。

    2.内容满意度,它可以通过消费完成率、消费市场、留存率的提升等进行评估。

    3.业务目标达成,可详细拆解为活动的参与转化、业务的交易转化、ROI 的提升等。

    以上三个层级其实存在递进关系。在效果评估的过程中,有时候我们会发现点击率有所提升,但并没有带来转化率的提升,这是为什么呢?事实上,业务转化率受多种因素影响,包括内容本身、产品质量、价格等。

    从评估方法来看,需要结合公司业务表现来开展,往往分为两种形式: 1.版本对比,无论是灰度测试也好,策略上新前后对比也好,都需要考虑大环境和目标人群的变化。

    2.A/B 测试,它可以在同一时间排除外部因素的影响来进行效果评估,但企业要想进行 A/B 测试,必须要确保有足够的样本量,以保证业务效果和数据统计效果足够显著。神策数据 A/B 测试功能已全新发布,欢迎新老客户体验!
    另外,企业要明确认识到效果评估始终依赖于数据基础的建设。  1.行为数据对用户识别尤为重要,用户识别机制的打通直接决定了我们对于用户行为的判断是否准确;准确的行为识别和丰富维度对数据分析结果有这毋庸置疑的影响。

    2.标签体系的建设。

    3.效率工具。针对某个主题做细致的效果评估时,往往会涉及到不断探索、不断提出假设与验证,如果在此过程中没有数据分析平台发挥作用,就会造成跨职能线的低效沟通与执行。

    希望大家能在本次分享之后,能够对于数据智能实现千人千面这件事情有更进一步的认知。谢谢大家! 

    展开全文
  • 作者:jsonchao 作为程序员,我们几乎每天都在...在学习一个技术之前,判断一个技术是不是真正有价值? 一个技术是不是值得我们花费足够精力深挖?是非常重要,关键就在于在未来几年甚至十几年,它是否能真正.

    作者:jsonchao

    作为程序员,我们几乎每天都在接收非常大量的信息,其中不乏有很多的知识,当然学习不是一味的灌输,确实是有一些不错的方法可以辅助我们学的更好。

    相信大家都好奇 jsonchao 为何如此高产,而且每篇文章既有深度,又不缺广度,我之前也好奇 jsonchao 的学习方式,之前还提过一次,太好了,现在他终于分享出来了。感谢~

    前言

    在学习一个技术之前,判断一个技术是不是真正有价值?

    一个技术是不是值得我们花费足够的精力去深挖?是非常重要的,关键就在于在未来几年甚至十几年,它是否能真正地解决项目研发过程中的一些痛点,让企业的收益最大化。而且,「个人的技术成长(硬实力)与软技能(软实力)是密切相关的」,可以这么说,「要想保持长久的技术提升效能与持续成长,就必须有全面、强大的软实力做支撑」。

    从我们认知的整个思维结构上来说,软技能是比数据结构与算法、计算机基础更加底层的东西。「越底层的东西它的持久力、生命力以及带给我们的收益就越大」,并且,从某种程度上来说,软技能的学习比算法、计算机基础这些底层知识的学习难度要低不少,所以,这就是我为什么一直要在每周坚持抽出20%的时间去系统地学习软实力方面的内容。

    在软技能的知识体系中,对于我们程序员来说最重要的莫过于学习方法了。我们应该如何释放自己的内在潜力去像海绵一样地吸收知识呢?

    在本篇文章中我们将深入探讨如何成为一个顶尖的学习者。

    一、如何成为一个高段位的学习者?

    1、建构式的学习模式

    对问题的好奇、对答案的渴望,是驱动我们学习和探索的主要动力。

    「知识不是简单的记忆,而是由我们主动地去建构而来的」。

    我们必须充分利用现有的知识,在主动性目标或核心问题的引导下去积极地进行探索,只有这样,我们才能够把得到的新知识与旧知识糅合在一起,并在头脑中建构出新的知识体系。

    「一个好的长时程问题,能让我们成为“构建者”,因为我们不仅在学习知识,还在“建构答案”,在努力回答问题的过程中,我们筛选、评判与整合新旧知识,并把它们融汇而成一个知识体系。」

    「一个好的长时程问题,能让我们成为“探索者”,主动地去探求未知的领域,扩宽“未知的未知”的边界,而不是仅仅满足于对现成的、边界明晰的知识的掌握。」

    因此,「提出一个深入的探索性问题是一种学习效果非常好的方法」。在问题牵引下的学习,会帮助我们连续不断地构筑着知识之间的联系,最终便会形成针对于该问题的思维导图之解。

    「提问是将我们引向深度学习的起点。一位优秀的学习者,一定同时也是一个优秀的提问者,他会从阅读、观察、思考的过程中产生问题,先解答表层的、容易的那部分,留下深度的、探索式的问题给自己,并在由此问题招致的持续困扰和折磨中开启卓越的心智旅程。」

    2、通过解码,深入事物的深层

    我们不要只做信息的搬运工,而应该通过解码,去深入事物的深层。

    一个高段位的学习者,通常都是一个适应性专家,他们可以有意识地构筑一个信息解码与知识扩展的良性循环—不断地从一些高质量的学习资料中通过 「学习、思考、实践」 去获取深度知识以扩展与修正我们现有的知识体系。

    最常见的一些高效的解码方式有如下三种:

    • 「不仅要去寻结论,更要去寻过程」:不言而喻,过程比结论更加重要。
    • 「不仅要去做归纳,更要去做扩展」:归纳的同时,我们应当注重保留其中的核心知识与关键细节。
    • 「不仅要去比较相似,更要去比较不同」:不同才有知识,才有新意,才有新的发现,才能实现真正地自我提升,在差别中我们首先应当选择最受强调的东西,这不仅仅是因为它们最引人注目,而且是因为它们也最富有启发性。

    而这,大概就是解码的要法了。

    3、技能—才是学习的重点

    只有最后能够作用于现实的学习,才是唯一有效的学习。最有效的学习方式,即「做中学」,它是学习真正为我所用的关键一步。

    目前「最有效的两种通用学习方式」:

    • 「不断地测试练习」:即高频次的重复练习。
    • 「分散练习」:分散练习即在一个较长的时期内使用较长时间间隔的分布式训练,,例如「1小时、1天、1周、1个月、3个月」的时间间隔。

    获得技能也就意味着我们拥有了改变世界的能力,哪怕一开始这种能力非常弱小。「高效实践的方式有三种」,如下所示:

    • 1) 写作式练习

    写作是一种「典型的知识建构或重构活动」。

    一篇文章如果要被人读懂、要把人说服,需要缜密的思维、清晰的表达和翔实的依据,这些都需要我们对知识的编码与组织达到一个相对较高的水准。

    而写作的另一个优势在于能「获得外界的反馈」,我们可以「根据读者的评论去提取出对我们有用的信息,以此来完善或修正我们的知识体系」。

    • 2) 游戏式练习

    我们可以「使用“思想实验”来实现一个虚拟的游戏式练习」,思想实验就是构造一个现实中并不存在的假想情境,然后运用所学的知识,来设想事物在这个情境中的变化。在这样的练习中,我们往往可以得到比原先更为深刻的洞见。

    • 3) 设计式练习

    调用已有的知识,「设计某一种解决方案,来解决某个特定的问题」。这种练习我们通常会在架构与系统设计方面应用的比较多。

    可以看出,「知识的练习迫使我们对现有的知识进行更加深入的审视,对现实的情境和问题进行更加细微的观察,并且致力于创造两者之间的关联。它使我们不再固守书本,不再去做僵化的记忆,而是让我们赋予知识以灵性,以更好地适应这个变化莫测的世界」。

    4、调整努力的姿势

    具备成长性心智的人,会比平常人成长地更快,他们都坚信——「只要够努力,就能变得更好」。以大多数人的努力程度之低,根本轮不到拼天赋。根据当前的神经科学的研究表明,「人的大脑具有相当大的可塑性,因此后天的努力对人的改造作用可以是惊人的」。

    我们在不断地学习和思考的过程中,其大脑内部会产生剧烈的神经活动,这迫使脑神经之间建立了更多的连接。随着神经元之间连接越来越多,我们对问题的认识也就越来越深刻,遇到类似的问题反应也会越来越快。不仅如此,甚至还能触类旁通,举一反三,乃至和其他的领域结合,产生创新性的想法。

    「努力,不是一场意志力的较量,而是一种需要学习的策略」。努力本身是一种具有策略性的活动,这体现在如下「三个方面」:

    • 1)「个人资源的调配。」
    • 2)「行动方向的选择。」
    • 3)「执行进度的把控和调适。」

    而这种策略是需要我们不断地学习与优化的。

    5、专注在一个领域走到最后

    在这个互联网上,信息是爆炸的,知识是过载的,观点是鼓噪的,热点是速朽的。而反过来,「专注在一件事上,精益求精、持之以恒的态度和行动,则是最为稀少与珍贵的。」

    我一直都相信一句话——「具备突出的优点比没有明显的弱点要重要的多」。

    对此,我自然而然地就想到了业界常说的“T”型人才,要高效地成长为“T”型人才,我们得先做出那一竖,即「应先在某一领域深入钻研后再去涉猎其他领域,这样更能触类旁通,对提升那一横的含金量也很有好处。」

    而不少事实也证明了,「浅尝辄止的人很可能将一无所获,而专注投入走到最后的人将会获得超额收益。并且,每个人的精力都是有限的,如果你不专注,就很有可能永远在多个“缓慢起步期”徘徊。

    并且,人是无法做到十全十美的,因为可提升的方面实在太多,在有限的精力与时间之下,我们只能竭力发挥自己的优势,将其发挥到淋漓尽致。对此,我们需要「学习齐白石先生那种长期专注和一丝不苟的精神,去把一件事情做到极致。」

    6、花费20%的时间去涉猎不同领域的知识

    「学习高手通常都会有意识地把不同领域甚至不同学科的知识摆放在一起,然后尝试去分析、比对它们之间的潜在关联,甚至当那异质的素材堆叠在一起时,仅仅是潜意识的推动,就可以让这种隐藏的关系浮出水面。」

    在当今,有很多医学的难题长期无法解决或者没有进展的一个主要原因就由于大多数的医学研究者因为多年专业教育塑造的知识壁垒导致缺乏足够的知识广度而造成的。

    因此,我们需要需要去花费20%的时间去涉猎不同领域的知识。在学习时间的分配上,我通常会采用「二八分配」的原则,即把80%的时间专注在主业上,把剩余的20%的时间用来去接触各种不同领域的知识或补足自己的知识短板。

    知识短板会严重阻碍我们进步。准确识别它们的最佳方式之一就是「看看自己在哪些工作上花费了大量时间,或者一直进行重复性的劳动」。例如没有掌握键盘快捷键可能就是一个知识短板。

    7、构建呈阶梯式难度的关卡

    人是需要一些挫折、失败或者高难度的挑战来刺激的。如果总是一帆风顺,就会一直待在自己的“舒适区”里不肯出来,潜能就无法被充分地激发。

    因此,我们应该「为自己的学习适当地增加必要的难度,例如在学完知识后延迟一段时间再做练习,而这种稍难的考验正好能强化我们对这些知识的存储和构建。」

    我们应该学会去「构建适合自己的“个人挑战阶梯”」,拿学英语来说,一个比较好的”英语学习挑战阶段“如下所示:

    背单词 => 考托福 => 考 GRE => 听英语电台(VOA、BBC)=> 听各种地方口音的英文 => 英语脱口秀
    

    遇到的挑战越大,获得的快感也越强。好的挑战阶梯的设计能够给与我们足够的挫折与失败,而这将会大大加速我们的成长速度。

    「我们应该做一个主动探索的学习者,不断地为自己设计出有难度的”非标准动作“,在挑战中获得才能的提升与飞跃。」

    8、如何更加高效地读书?

    要想真正掌握一本书的核心内容,需要读三遍。

    • 第一遍:「细读,目的在于完整阅读全书,并且划出重点,写上读书笔记。」
    • 一个月后读第二遍:「扫读,主要快速翻阅第一遍阅读时做的笔记和划的重点,目的在于加深记忆。」
    • 半年后第三遍:「忆读,读的时候只看目录,然后去回想内容,如果回想不起来,再去进行扫读。这样三遍下来,基本上一本书的核心内容就能够很好的吸收。」

    9、切忌完美主义

    学习不是要么0分,要么100分的。80分是收获,60分是收获,20分也是收获,「有收获才是最重要」。但是因为着眼于自己的不完美,最终放弃了,那就是彻底的0分了。

    「不完美其实是常态,根本不会影响我们学习更多更深入的内容」。但是在自学过程中,很多同学却要求自己在自己制定的每一步计划中都达到“完美”,才进行下一步。最终结果,通常都是“放弃”。

    而不要“完美主义”,不代表学习可以草率前行。「每个人都必须要找到适合自己的学习节奏」。如果在自己又因为自己的学习进度而沮丧的时候,问自己一句:是不是自己又犯“完美主义”的毛病了。

    10、不要过度“学习路径依赖”,学习要冲着自己的目标去。

    例如想学机器学习,就去直接学习机器学习。学习过程中发现自己的数学不够用,再回头补数学即可。例如我之前在写 深入探索 Android 内存优化(炼狱级别) 与 深入探索 Android 包体积优化(匠心制作) 时,发现有不少优化方式都使用到了「编译插桩 + Gradle 自动化构建」相关的技术,因此,我又回过头去系统学习了编译插桩与 Gradle 自动化构建的知识。

    11、不要迷信权威的“好”教材、不要看不起“薄薄”的“傻”教材

    每个人必须要去探索学习如何寻找适合自己的学习材料。适合你的教材不一定是权威的,「可能有一些你看不起的学习材料,就是是你入门某个领域的关键。」

    「**先用薄教材入门,再找“厚”教材,是我百试不爽的学习方法。因为“薄”的教材能让你以最快的速度看完,对整个学科有一个全盘的认识,薄会将你入门这个领域的难度降至最低,短期学习完之后会让你产生更多的兴趣与成就感。**这一点往往更加重要,因为学习,不是100m短跑,而是加长版的马拉松。」

    12、不要迷信单一教材。

    在大多数情况下,学习不是一本固定教材可以搞定的。非要找到一本“最适合自己的”教材,然后就一头扎进去,其实是不科学的。

    建议每一个技术点都需要「筛选多个优秀资源去进行 学习、实践、思考、总结。因为不同的作者对同一个事物会从不同的角度做解读,这能够帮助你更深刻的认识一个概念。」

    13、学会复盘

    「在每天晚上睡觉的前半小时之内,我们需要复盘当天的学习情况,哪些完成哪些没完成的需要记录,为明天做一个衔接的准备,以确保当前的学习进度是可控的。」

    14、量变到质变

    仅仅对着一个问题思考,很多时候都是死胡同。因为我们见识的还不够多,就不足以帮助我们去总结出更加“普遍”问题解决的规律。

    我们不要企图通过一个问题就理解问题的本质,这其实和企图通过一本教材就精通一个领域的想法是一样的,是不现实的。

    其实大多数问题,都是需要“回头看”的。对一个领域理解的越深入,回头再去看那些曾经的问题,都会产生新的视角,对于很多曾经想不明白的问题也豁然开朗。这也是“进步”的根源。「很多时候,你发现对一些问题“百思不得其解”,或许不是因为自己“笨”,而是因为“还不够努力”。」

    二、如何分析问题?

    1、分析问题的重要性

    只有「挖掘出问题的核心和根本」,才能针对性地提出改进或者完善流程,来避免类似的问题再次出现。

    2、5WHY 分析法

    核心是「追究根本原因」。例如针对线上的屏幕适配问题,我们可以提出五种对应的改进方案:

    • 1)、开发者要吸取经验,尽量采用普适性较强的写法。
    • 2)、对一些组件进行封装,避免类似的适配问题。
    • 3)、有新设备上市,要尽早采购。
    • 4)、QA 的测试用例要多人评审,尽量保证用例覆盖全面。
    • 5)、通过一些自动化检测手段,对适配问题进行检测。

    3、第一性原理

    有问题时,运用第一性原理,多读官方文档或源码。阅读源码的本质:优秀框架背后的「设计模式与架构」。

    此外,对于一些难以用技术解决的问题,可以从需求的角度去解决。

    三、学习十步法

    对技术人成长最重要的三个因素通常都包含如下三个要点:

    • 1)、「学习-不断提升自身深度与广度的能力」。
    • 2)、「思考-即解决问题的能力」。
    • 3)、「实践-大量的实践能让我们真正地理解一个技术的本质」。

    而学习十步法的精髓就在于「学习-实践-(思考出问题-学习-实践)-掌握-教授」这一系列过程。注意()内的过程(这个过程也被称为探索)通常需要多次反复进行直到最终掌握这个技术点。

    「学习十步法充分利用了人天生的好奇心来帮助我们吸收更多的知识,这将会持续不断的激励我们通过实践向着目标前进,而不仅仅是读书或者听教学视频。」

    在开始使用学习十步法之前,首先需要明确的是,「学习计划最好能结合工作计划,理论结合实际,快速学以致用」。因此我们应该「优先学习的是工作中会用到的或将会用到的技能」。

    在完成了自己的本职工作之后,我们应该去尽量地考量公司中各个系统和业务模块,看看有哪些不合理和可以改进的地方,然后尽力地提升自己相关方面的技术,并去识别和优化它们,在优化的过程中我们可以优先参考其它公司的技术方案。

    1、了解全局

    了解全局的作用在于我们可以「快速甄别,决定哪些事情值得花费时间」,例如「做一些基础性的研究,例如网络搜索、查阅一下该主题的书的介绍性章节。」

    2、确定范围

    我们应该「聚焦学习范围,关注重点内容」。这儿需要充分利用自己在第1步中收集到的信息,找出自己的学习范围,也可以借助自己的学习理由来决定学习的范围。

    选择一个专注而聚焦的范围,「明确学习范围的时候需要尽可能地充分考虑时间因素与衡量时间成本的性价比。」

    • 那么,如何衡量时间成本的性价比呢?

    • 1)「评估掌握一项技能在短期和长期内对我们的重要性。」

    • 2)「我们应该对需求和时间成本评估,决定需不需要学,以此确定学习的目标。」

    • 3)「一些简单、仅仅需要了解的知识点利用碎片时间去完成即可,但如果是需要掌握甚至“精通”的一些知识点,我们需要为它划分出一整段的时间。」

    此外,在这一步中,有两个点需要注意:

    • 1)有些知识的获取是需要「循环渐进」的,除非你已经有了非常扎实的基础,否则跳级进阶只能是吃力不讨好。
    • 2)有些知识点例如「源码、晦涩的一些概念」等等,只要它们是足够「重要」的,弄明白它们就是「非常值得」的。

    3、定义目标

    好的成功目标应该是「具体的、无二义性」的。例如在学习 ASM + Gradle 时,我定义的目标是:使用 ASM + Gradle 完成一个全局的 Bitmap 监控组件。

    https://juejin.im/post/5e780257f265da575209652c#heading-70

    4、寻找资源

    目前,我学习的主要信息来源包括如下 「九个渠道」:

    • 1、「官方文档」:第一手资料。
    • 2、「源码」:第一手资料。
    • 3、「Github 开源项目」:定期查看 GitHub 的热门榜,看有没有需要的优质项目(至少每周一次)。
    • 4、「Awesome-Android-NoteBook && 豆瓣读书 - 计算机科学经典书籍」。
    • 5、「开源的权威资料」:例如《On Java8》即 Java 编程思想 (第五版)https://lingcoder.github.io/OnJava8/#/book/01-What-is-an-Object
    • 6、「极客时间」
    • 7、「慕课网」
    • 8、「百度云盘」
    • 9、「WanAndroid 优秀文章」

    鸿洋注:开心,提到了 wanandroid.

    在这一步,记得也要寻求一些好的薄教材/入门文章,在我们刚开始学习这个主题时,便会从它们开始。

    5、创建学习计划

    我们需要「根据自己个人的时间去制定适合自己的学习计划」。这一步我们可以把它看作自己写书时候的大纲,这里通常可以通过查阅图书的目录进行。

    6、筛选资源

    计划学习前要考虑清楚,一旦开始执行学习计划,就应尽量保持少的变更,除非后续发现计划有问题。因此这里我们需要多加一步去「选取品质最高的资源覆盖学习计划,对于一些购买性的资源可以通过查看评论的方式进行评估。」

    7、开始学习,浅尝辄止

    这一步的关键在于「过犹不及」。你会很容易就失去自控力,开始消化计划学习中列出的所有资源。但是,你会发现,如果你能经受住这样的诱惑,你会取得更大的成就。我们应该要「专注于掌握自己所需的、能在下一步动手操作的最小量的知识。」

    「好记性不如烂笔头」,在学习的过程中,学习的东西至少要做好笔记(印象笔记、有道云笔记),并且后续需要「按照一定的间隔时间去反复复习」。

    8、动手操作,边玩边学

    万事无他,唯手熟尔。教育的首要目标,并不在于”知“,而在于”行“。

    对于计算机领域的学习来说,教材的意义其实远远小于实践的意义。

    真正动手实践去编程是异常重要的。这就好比学游泳,必须下水去游泳;或者学开车,必须亲自上路。否则你说的再头头是道,一个小学生文化水平的人,只要他开过车,游过泳,都能在这两个领域瞬间秒杀你。

    真正的学习上的提高,就发生在实践的过程之中。例如,「debug 就是一种高效的实践方式。它不仅仅是找到代码错误,解决错误的手段,其实更是一个重要的学习手段。

    因此,我们应该「通过探索和实践进行学习,在实践中碰到的问题会引导着我们走向真正重要的方向。当回过头寻找问题的答案时,不只是这些问题迎刃而解,而且你记得的东西比你学习到的东西多得多,因为你所学到的都是对你很重要的东西。

    此外,在实践中,「在某些关键动作上刻意练习,也会取得事半功倍的效果」。因为不停的练习和思考可以改变大脑结构,大脑像肌肉一样,挑战越大,影响越大,学习更高效,并且也会产生突破性。

    9、全面掌握,学以致用

    我们「没有必要把收集到的所有资源全部仔细看一遍,而应该以解决在动手操作中发现的问题为主要目的」。试着把自己正在学习的内容与最终目标关联起来。「你掌握的每个模块,都应该以某种方式推动着你向着终极目标前进。」

    在这一步中,我们可以将测试练习与分散练习这两种学习方式结合起来使用,以达到最佳的学习效果。同时,我们最好能给自己设置一系列的挑战阶梯,例如对于学习音视频的同学可以给自己设置如下的挑战阶梯:

    使用 Android 音视频 API实现一个播放器 
    => 使用 FFmpeg 与 OpenGL 实现一个播放器 
    => 定制 FFmpeg 的源码、掌握 OpenGL/Vulkan 的高阶用法实现功能更加强大的播放器
    

    学习某一个技术其实到最后会形成一颗「技术树」,我们可以使用「思维导图 => XMind || 幕布」进行描述。而对于一些涉及「流程」相关的技术点,我们可以使用「ProcessOn」来画流程图。

    10、乐为人师,融合贯通

    如果你能将自己所学的东西都教给别人,那么你不仅能够记住,而且还能够理解得更加深刻。

    重点在于,我们需要花时间将自己所学到的东西从大脑中提取出来,以别人能够理解的方式组织起来。「在经历了这整个过程之后你会发现,有很多你以为自己明白了的知识点,其实并没有摸透。这一步对保持信息以及深入理解知识而不仅仅只是流于表面至关重要。」

    在教学的过程中,有一些内容是必不可少的,例如:

    • 「是什么?」
    • 「为什么?即它解决了什么问题。」
    • 「优缺点。」
    • 「对比同类技术的不同/相同点。」
    • 「如何使用?」
    • 「如何解决问题的?即内部的实现原理。」
    • 「归纳时注重核心知识与关键细节,并尝试去类比不同领域或不同学科之间的知识。」
    • 「重要的过程、结论。」

    分享就是一种很好的教学方式,而且它的时间成本也相对较低,目前常见的有「三种分享方式」:

    • 1)、「博文文章/专栏」
    • 2)、「慕课网技术视频」
    • 3)、「部门/社区内的技术分享」

    技术分享的真正意义在于,「总有一部分知识我们并没有真正理解透彻到可以向别人解释,而”教“的过程能够迫使你面对这一部分。在教别人的时候,我们迫使自己面对课题中的难点,深入探索,从只知皮毛变成完全理解。学习知识暂时的,而理解是永久性的。

    「在我们试图教别人的时候,会强迫自己重新组织大脑中的资料」。最好的思维方法就是解释某样东西并将其记录在纸上,或者记录到 Word 文件或者幻灯片中,使你可以将这些互不连贯的碎片信息收集起来,并以一种有效的方法重新组织起来。「要想教人,我们得先把自己教会。」

    而在教别人的过程中,最好的教学方式就是「心态谦卑,信心满满——以谦虚的视角来观察问题,以权威的口吻去诠释问题。」

    最后,不要忘记进行隔期复习,对于一篇文章来说,可以「先扩展出它的知识树,然后再尝试去描述其中每一个知识节点的核心内容与关键细节。」

    开源自己造的轮子也是一种很好的分享方式,我们应该学会造轮子,去写一些框架或组件,建议设置简单到复杂的挑战阶梯。

    最后,我就以最近正在学习的 Android 网络优化为例来实践一下十步学习法,其思维导图如下所示:

    四、重要问题解答专区

    1、怎样由浅入深地学习一个技术点?

    建议大家先选定一个自己最感兴趣的方向,后面一段时间就专攻这一个方向,拿 Flutter 做例子,可以先将所有 Flutter 相关的专业文档、优秀书籍、视频教程、文章等搜集起来,将其中涉及的知识大纲列出来,对其中涉及到的每一个知识点(如今天或这几天要学的是布局类组件)需要的对应资料列出来。

    然后去学习、实践它的基本用法,接着可以再深入一层看这个知识点涉及到的内部原理(如 Flutter 中常用布局的实现原理),最后总结出对应的学习笔记(供以后复习)。这样学习起来就比较有效果,而且刚开始可以根据自身的状态去调节计划时间的长短,建议开始计划定松一点,确保每天都能完成。

    养成习惯并完全适应后,可以加大学习量。这就跟健身的原理一样,刚开始锻炼的人一般都体质比较差,所以需要从最基础的动作开始练,等将基础打好了,体质提升上来了,才能去适当地做一些力量训练,增加肌肉。

    2、怎样才能很好地把安卓零碎的知识点串起来?

    这可能说明学习的时候没有注重体系化地学习与思考,而是东学一点西学一点,那这些知识自然而然地会零散地遍布在我们脑海的各处。

    为了解决这个问题,我们需要首先需要把目前所学的知识列出来,然后可尽可能地找到这些知识点的联系,把它做成思维导图。

    由于可能有很多联系点我们之前学习的疏漏而没有把它纳入我们的脑海中,但是,这并无大碍,后面我们可以围绕这张 1.0版本的安卓知识思维导图 不断迭代,最终,它就会日渐完善,发挥出想象不到的威力~

    3、对未来很迷茫,天天都在学习但是技术就是提升不上去?

    其实,对于大家来说,最重要的事情就是 如何去从最本质、最底层的层面去打磨自己?

    如何培养兴趣、深入钻研某一个领域从而成为专家?如何具备快速、高效、不断深挖某一技术的核心能力(即一通百通的能力)?

    这些问题的答案很难在短时间让大家去明白、理解。其实,我「今年的整个文章路线」就是围绕这些内容而定制的,其共分为几个核心路线:

    「软技能、高效构建算法知识地图、性能优化领域专家、NDK 高手之路(偏向于 Native 层的性能优化、Hook 实现)、Flutter(从最重要的核心点 自上而下打通 Flutter 的整个架构体系)」 ,明年上半年的路线:架构师成长之路(从易到难具备强大的架构设计能力) 。

    可能有的同学认为我学的好像很杂,其实不然,我一直都专注于一条路线,就是「基础架构研发」,它涉及的主要工作内容就是「架构设计、性能优化、前沿新技术预研(Flutter、JetPack」)。

    建议大家选定一条路线,也不一定要是上面的路线,专注于音视频、图形处理 或 AI 移动、大前端 的路线都可以,今年大家一起加油,希望年底能给自己一份满意的答卷~

    4、如何更高效地学习技术视频?

    学习视频的时候建议「开 2 倍速看,对于 不熟悉/偏难 的知识,每看一个小的技术点之后,就实践一遍,然后把实践的成果写入 笔记/你的初稿博客 中,对于 比较熟悉/简单 的知识,一般是看一小节/两三个技术点之后再实践、写入 笔记/你的初稿博客。」

    5、如何选择第三方库?

    • 确定这个库是否是必需的。
    • 这个库能否带来开发效率的提升,降低代码的维护成本。
    • 这个库的学习成本如何 比如 rxjava 其实学习成本会相对高一些。
    • 这个库的质量如何,不要仅仅看 star,更要看 issue 的处理情况。

    6、怎样练习算法题?

    • 每道算法题都先自己去实现,理清思路后自己去实现一遍。(超过5分钟没思路跳下一步)
    • 然后再看看答案,记住答案的思路,手写一遍。
    • 第二天再重新按照答案的思路再手写一遍。
    • 等到要面试的时候再系统地将所有的题型按类别进行手写即可。

    7、如何阅读源码?

    1) 准备

    • 1、Java设计模式(模板方法,单例,观察者,工厂方法,代理,策略,装饰者)。
    • 2、Java高级相关(泛型、反射、IO)。
    • 3、在官方文档上了解软件的整体架构设计、主要功能。
    • 4、熟练掌握这个库。
    • 5、搭建系统,把源码跑起来。

    2) 开始阅读

    • 1、根据你对系统的理解,设计几个主要的测试案例,定义好输入,输出。(Debug一 遍肯定是不行的,需要Debug很多遍)
    • 2、第一篇抛弃细节,抓住主要流程,第二篇,第三篇,再去看各个部分的细节。
    • 3、阅读的时候同时使用 UML 画出系统的类图。主要的测试案例明白了,丰富测试案例,考虑一些分支。
    • 4、这一步会非常非常地花费时间,但是你做完了,对系统的理解绝对有质的飞跃。

    3) 流程小结

    • 1、准备。
    • 2、网上搜索针对该开源项目进行分析的优秀文章。
    • 3、对开源项目提出自己的疑问,并带着疑问阅读源码。
    • 4、阅读源码过程中多添加注释、笔记.
    • 5、做阅读总结/写文章,吸收和再创造

    8、新技术频繁出现,我们应该采取有效的针对性措施?

    一项新技术的出现,我们应该先去了解它,看它是否对自身的技术成长有比较大的帮助,有的话按优先级加入学习计划表,而不是立马去学习或否定它。

    五、总结

    对于大多数人来说,可能关键不在于学习方式的优劣,而在于「如何不痛苦地坚持下去」。而要解决这个问题,最大的利器便是兴趣。

    「只有真正深入到一个领域,才能培养出对其的真正兴趣。如果对一件事的了解不深、不透,总是浅尝辄止,那自然体会不到这件事的妙处,也自然不会产生持久的兴趣。这让人容易滑入一个死循环:了解不够导致兴趣不足,而兴趣不足又无法加深对它的了解。」

    「如果我能长期地坚持去做一件事,一定是这件事带给我的丰盈感和满足感超过了我的所有付出,一定是这件事日日夜夜萦绕在我的心头让我欲罢不能,一定是这件事唤起了我内心深处最强烈的兴趣」。


    这里小编也分享一份资料,内容包含:Android学习PDF+架构视频+面试文档+源码笔记,**高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 **这几块的内容。分享给大家,非常适合近期有面试和想在技术道路上继续精进的朋友。希望可以帮助到大家提升进阶

    如果你有需要的话,可以点击Android学习PDF+架构视频+面试文档+源码笔记获取免费领取方式

    喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~

    展开全文
  • 而不用关心内容组织结构。 下面就来具体说说,如何解决上面两个核心问题。 <h2>3. 如何“加高亮背景”? 根据动图演示我们可以知道,用户选择某一段文本(下文称为“用户选区”ÿ...
  • 如何做到能发现未来前景,并不是盲目跟风,如何判断未来该朝哪个方向走以及判断做这件事是否值得,是否有价值,是否值得投入。 社会发展趋势:朝着像生产率高方向发展,简单地可以概括为:省时、省钱、爽。...

    创业选题

    1、社会发展的趋势

    如何做到能发现未来的前景,并不是盲目跟风,如何判断未来该朝哪个方向走以及判断做这件事是否值得,是否有价值,是否值得投入。

    社会发展的趋势:朝着像生产率高的方向发展,简单地可以概括为:省时省钱。这种思想适用于 判断一个产品、商业模式、管理体制。

    2、什么是需求?

    每一个需求的背后都隐藏着一个未被满足的需求,而每一个需求的背后必然隐藏着一个巨大的市场。需求的本质上是满足人性,当我们做一件事的时候应该想想背后的驱动是什么?当我们看到抱怨时应该是更好的想办法去解决这个抱怨。

     

    科研选题

    1、来源

    2、总结

    为什么没有一个好的想法?为什么找不到一个好的课题。主要原因是:读书不够

    学某个东西要跟这个方向的牛人请教学习,这样会十分高效

    选题要求:找到一个好的选题,需要有深厚的知识积累,解决问题的时候不要想着什么都要创新,要学会借鉴

    展开全文
  • 运维阶段不可能让你调试程序,发现各类问题,我们只能通过各种系统日志来分析网站运行状况,对于部署在IIS上网站来说,IIS日志提供了最有价值的信息,我们可以通过它来分析网站响应情况,来判断网站是否有...
  • 如何去判断一个网站的质量从而评估网站的价值多少呢?别看帖子的信息写得天花乱坠,如果不想花费太多的冤枉钱,以下这些因素是你应该留意的。 网站的权重 网站的权重分谷歌值与百度权重。虽然谷歌早已退出了中国...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    6.22 如何在一个文件中判断声明为extern数组大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。 6.23 sizeof返回大小是以字节计算,怎样才能判断数组中有多少个元素呢? 第7章 内存...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    1.30 如何判断哪些标识符可以使用,哪些被保留了? 15 初始化 18 1.31 对于没有显式初始化变量初始值可以作怎样假定?如果一个全局变量初始值为“零”,它可否作为空指针或浮点零? 18  1.32 下面...
  • 1.30 如何判断哪些标识符可以使用,哪些被保留了? 15 初始化 18 1.31 对于没有显式初始化变量初始值可以作怎样假定?如果一个全局变量初始值为“零”,它可否作为空指针或浮点零? 18  1.32 下面...
  • 使用豆瓣是为了获取信息,但信息的获取是基于条目和算法,还是基于友邻和人,这个问题在豆瓣的多次改版中大概一直悬而未决。 这次,一个叫“豆瓣”的应用选择的是基于条目的推荐。但我个人作为一个重度豆瓣用户,...
  • 推荐系统整体知识体系梳理

    千次阅读 2018-08-21 11:35:24
    推荐系统就是根据用户历史行为、社交关系、兴趣点、所处上下文环境等信息去判断用户当前需要或感兴趣物品/服务一类应用。 二、核心业务目标及价值 随着信息技术和互联网发展,人类从信息匮乏时代走向了...
  • (我觉得学习如何把人们积极性调动起来,以及如何配合协同团队精神,是我行政工作主要目标。) A:I have refined my management style by using an open-door policy. (我以开放式政策,改进我行政管理...
  • 破茧成蝶-用户体验设计师.pdf,中文版 第一篇:成为用户体验设计师的信念 第 1章 什么是用户体验设计 1.1 设计≠艺术 1.2 邂逅用户体验设计 1.3 用户体验设计的特征 ...12.3 实现用户体验设计师的价值
  • LINGO软件学习

    2009-08-08 22:36:50
    学完本节后,你对基于建模技术如何引入模型会有一个基本理解。 2.1 为什么使用集 集是LINGO建模语言基础,是程序设计最强有力基本构件。借助于集,能够用一个单一、长、简明复合公式表示一系列相似...
  • 商城默认中用户积分和预存款兑换比率一直是一比二,很多用户不知如何修改,本次更新中增加了用户积分和预存款兑换比率设置,在后台可以方便设置兑换比率,方便用户进行修改设置。 二六、帮助中心栏目无限量...
  • 所以第一步,我们将学习如何得到oSIP静态和动态链接库,以便我们自己程序能够使用它们来成功编译和执行我们程序。 第一阶段: ----------------------------------...
  • EDA的价值主要在于熟悉数据集,了解数据集,对数据集进行验证来确定所获得数据集可以用于接下来的机器学习或者深度学习使用,是数据科学从业者进行数据处理以及特征工程的前提,使数据集的结构和特征集让接下来的预测...
  • MUP6050传感器可以采集周围环境温度数据,主控芯片通过分析MPU6050所采集到温度数据,可以判断出车内温度如何,是否过高。 12、报警模块 报警模块在接收到主控芯片报警信号后通过GPRS模块(sim900a)发送...
  • 上下文构建 我们还需要给合约执行构建合理的上下文环境,提供必要的内部模块和数据以供合约使用,包括: 区块链账本实例,提供区块、交易等信息的调用接口。 状态数据库实例,提供状态数据的增删改查的调用接口。 ...

空空如也

空空如也

1 2 3 4 5
收藏数 84
精华内容 33
关键字:

信息的价值如何去判断