Activity之间的数据传递方法汇总系列教学

本文分享了一位Android开发者在面试失败后的反思,提出了学习新知识的方法和策略。文章强调了学习的建构式模式、解码深入、技能实践的重要性,以及如何调整学习姿势、专注某一领域、涉猎不同知识、构建学习阶梯、高效阅读、避免完美主义。同时,提出了分析问题的技巧,如5WHY分析法和第一性原理,以及学习十步法,包括了解全局、确定范围、设定目标等步骤。最后,作者分享了如何应对新技术的挑战和如何选择、练习算法题,以及阅读源码的建议,旨在帮助开发者成长为顶尖的学习者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近日一好友去阿里面试,面试失败了,分享了一个他最不擅长的算法面试题。题目是这样的。

阿里面试,这道算法题不会做,面试凉凉了

题目:给定一个二叉搜索树(BST),找到树中第 K 小的节点。

出题人:阿里巴巴出题专家:文景/阿里云 CDN 资深技术专家

参考答案:

  • 考察点
  1. 基础数据结构的理解和编码能力
  2. 递归使用

0前言

成为一名优秀的Android开发,需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。

https://github.com/JsonChao/Awesome-Android-Exercise

Android进阶学习资源:【点击】

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

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

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

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

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

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

1、建构式的学习模式

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1)、写作式练习

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

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

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

2)、游戏式练习

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

3)、设计式练习

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

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

4、调整努力的姿势

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

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

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

  • 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值