学习沉思录 2022-04-01 / 1,086 次 / 快抢沙发 /

记录这么多年来,针对学习的一些个人见解。

前言
本文是个人沉思录中的系列,虽然标题取名为“**沉思录”,但是内容不一定有多深度,因为个人大学是学的机械设计制造及自动化专业,毕业之后转行互联网,前些年主要是在小团队和创业团队学习和工作,做过技术开发,项目管理与团队管理,对产品很感兴趣,每样都会点,但是都不精通,所以自己的能力、经历与眼界,都有一定的局限性。不过这些内容是我这么多年学习和工作中总结提炼出来的,针对学习的一些思考和 Tips,希望能够不断的提升自己的学习方法论,改善学习方法,提高学习效率!有些内容不一定对,但是欢迎大家热烈讨论或批评指正,与君共勉!
学习基础篇
说明:此部分内容整理记录基本的一些学习理念。这些学习理念中,虽然提到的参考案例有些涉及到具体的钢铁行业或者互联网软件技术层面,但是学习理念本身无关任何特定的学习内容,基本上所有知识与能力的学习都可通用。


针对学习,如果能够掌握一些比较好的学习理念,学习必定事倍功半,而且能够带来更多的价值。

学习的总体方法论与解决问题的能力,远比你掌握细节知识点来的重要
说明:掌握一套行之有效且高效有益的学习总体方法和解决问题的能力之后,你会发现,所有的知识获取与运用都是如出一辙,水到渠成。


在学习的过程中,我们有时有些过于在意一些细节知识点,有所谓的掌控焦虑,觉得这也没有学会,那也不知道,但是茫茫的知识海洋,是无穷无尽的。只要你掌握了学习的总体方法论与解决问题的能力,所有知识的获取与运用,基本上都是一样的。


参考案例


案例 A


大家是否还记得咱们的启蒙美剧《越狱》,那个时候,我很迷男主角:温特沃思·米勒。不仅仅是因为他本人长的非常帅气,更重要的就是他扮演的 Michael Scofield 展现出来的坚韧内敛、沉着冷静、深思熟虑、随机应变的特质,最让人沉迷的就是他解决问题的能力,虽然他是建筑结构工程师出身,但是在片中所遇到的问题,绝不仅仅是建筑结构工程中的问题,而是一系列全方位的人与事的问题,而每一个问题,都是有他之前作为建筑结构工程师以及人生阅历所习得的相关的方法论来支撑,衍生作为解决问题的能力,就没有解决不了的问题,就没有搞不定的事情。


案例 B


学技术开发的朋友,开发语言里面会有一个“运算符优先级”的问题,有些细节很难记,而且偶尔还有考试题目去考这个东西。但是,真正做过开发很多年的朋友就知道,一般不需要太过于关注“运算符优先级”,因为你只需要用一招来解决这个问题:运用括号来保证你想要的“运算优先级”,管它什么谁先谁后,只要运算的流程是我想要的就可以了,而且这样做,也能够保证代码具有更良好的可读性。再不济,我直接通过运行程序,也能较好的判断好“运算符优先级”,那有人说,有的考试题会考,咋办?记住一些基本大概就可以了,而且根据多年的开发经验,过多关注这种细节的考试题,尤其是面试题,是没有太大价值的。这就是一个小小的典型案例,抽离出一个简单容易的解决问题的方法,从更高层级来掌控并解决问题。


案例 C


曾经团队 iOS 应用出现了安装异常闪退的问题,iOS 开发工程师都没有找到啥原因,问题出来之后,必须要有人去解决,作为团队技术 Leader 的我,之前只做过 Android 开发,对 iOS 技术懂的很少。但是正是由于 Android 开发积累的一些方法论:应用异常或者闪退,那么找到问题的最好方法,首先是查看相关的日志作为参考。当时 iOS 开发工程师也是找了 Xcode 里面的日志,没有找到,我一直觉得可能 Xcode 里面的日志还不够详细,秉持着这个理念,我在网上找到了一个叫蒲公英提供的“查看 iOS 安装日志工具”,在这个里面有一个查看设备日志的功能,果然通过这个工具,能够获得比 Xcode 里面的更多日志信息,最终确定了问题的所在:国际化和证书的问题。


我秉持着在 Android 开发中获得的一些解决问题的方法与理念,同步运用到 iOS 中。虽然我对 iOS 技术懂的很少,但这并不妨碍我最终解决了这个问题。


案例 D


做技术开发的朋友,一定知道 GitHub 和 StackOverflow 这两个网站,有国外网友调侃,程序员失去这两个网站,没法活。GitHub 对于代码参考的重要性,StackOverflow 对于解决问题的重要性,只有真正用过的人才知道,我曾经一次偶然的机会,发现国内很多网站资料都找不到的解决问题的方法,通过英文在 StackOverflow 搜索,最终找到了问题的解决办法,而且我遇到的 99% 的技术难题,都是在上面找到答案的。而后就有一个根深蒂固的方法理论:StackOverflow 可以解决 99% 的技术上的疑难杂症,事实上也是如此,直到现在,我想将来也是。


案例 E


记得刚开始学习 Android 开发的时候,发现知识点太多了,无论是大的领域还是小的模块,内容很多,掌握不了太多,这个时候就容易陷入知识的掌控焦虑,有一种不踏实感。但是随着 Android 开发经验的积累,你会发现,很多的知识内容,根本就用不到,如果有用到的话,通过“阅读官方原版开发文档 -> 调用关键 API 接口 -> 基本 Demo 确认总体功能 -> 完善全部功能 -> 性能调优”这样的一个通用学习到运用的开发链路,可以解决大部分的未知的 Android 开发知识,这样就不必为没有掌控某些知识而感到焦虑,也不用为了遇到需要用的知识没有学习或时间感到惶恐,总之就是一句话:通过通用的方法论,快速学习来解决实际的问题。


总结
掌握好学习的总体方法论与解决问题的能力,当需要特定细节的知识,能够快速有效的对知识进行获取、加工与运用,产生最终价值。

学习是为了学以致用,创造价值的,如果仅仅为了学而学,没有任何益处的话,那还不如不学。
说明:创造价值的学习才是最好的学习。


学习一样东西,是为了创造价值的,不仅仅局限于所谓的“搞钱”,更有提升其他诸如:心理、交往、眼界甚至是陶冶情操等隐性价值。


参考案例


案例 A


大学的时候,出于兴趣爱好,有一段时间对街舞如痴如醉,参加了学校街舞社团,也结交了很多朋友,虽然没有搞出啥名堂,但是也很开心,也算是陶冶情操。大学毕业之后,在韩资企业工作过一段时间,那段时间主动的去学习韩语,因为韩语对于工作晋升有一定的帮助,上层领导都是韩国人,虽然最后因为一些原因离开了韩资企业。


案例 B


我在钢铁行业工作过一段时间之后,发现这个行业并不是我想要发展的,决定转行互联网,由于非科班出身,必须通过培训班培训才能有机会完成转行,后来也顺利的通过培训班培训转行成功,直到现在。


案例 C
后来在互联网行业,平时为了提升项目管理的理论知识以及更好的实践项目管理,报考了 PMI-PMP 项目管理,最终也是拿到了相关的证书,以及最近报考了 PMI-ACP 项目管理,由于疫情原因一直没有考试,不过也是学习的差不多了。


总结


虽然我学习的一些内容,越来越具有功利性,但是对于人到中年的我来说,面临的经济压力,使得我越来越懂得时间的重要性,将时间花费在有利于自己工作方面,以便提升自己的工作能力与价值。

不要追求所谓的知识掌控感与安全感,不要有知识缺乏焦虑感。需要用到什么知识,再去学习也来得及。
说明:别害怕,知识在需要的时候,再去开始学习也没有问题的。


有一些人会觉得自己所在的领域,知识体系与细节内容庞大复杂,有时候会有一种知识缺乏的焦虑感,这来源于对知识掌控感与安全感的缺乏,这个很正常。但是不用担心,很多知识你用不到,哪怕是你很专业垂直的领域,很多知识等你用到了再学也来得及,你只需要知道如何学就可以了!


参考案例


案例 A


就拿我最熟悉的 Android 技术开发来说,我职业生涯都是从事 Android 应用开发,对于游戏,除了在培训机构学了点皮毛之外,刚毕业的时候,在一个项目中运用过(还是会 C/C++ 的同学用 Cocos-2D 开发),都快 10 年了,没有用到过游戏开发相关的技术,这块的知识,就完全没有必要学,而且需要用的时候,再去学习也来得及,根本就不用管。

兴趣是最好的老师。
说明:很多能在一个领域做的很好很成功的人,大多都是兴趣使然,极度的热爱,催生极度的专注深入。


及早的发现你的兴趣,并在这个领域专注深入,非常的重要。


参考案例


我曾经在知乎上回答了一个问题:怎么去发现自己天赋或长处?回答就是讲兴趣与天赋之间的联系,里面有非常详细的个人及他人成长过程中的案例,也获得了比较高的赞同和讨论,感兴趣的话,可点击超链接阅读,此处就不再展开此内容了。


知乎链接:https://www.zhihu.com/question/39495493/answer/99530990
或博客链接:https://www.ifeegoo.com/how-to-find-your-talent.html


总结
一件你感兴趣的事情,你会积极主动、乐此不疲、全力以赴的想要去做,吃饭上厕所睡觉做梦都想着,甚至是开小差的时候,想的都是这件事情,那么你还有什么理由学不好?还有什么理由不成功呢?

获得一项技能,更快的方式就是去做相关的实际事情,解决相关的实际问题。
说明:将自己置身于实际之中,才是技能学习的最佳环境。


很多时候,我们想要学的一项技能,最终还是要运用它。那么更快的方式,一定是用这项技能,去做相关的实际事情,解决相关的实际问题。在“实践”中边学习,是技能获得与提升的高效方式。


参考案例


案例 A


我之前一直都对英语很感兴趣,也很喜欢学习英语,但是实际的英语口语并不是太好,也没有太多机会练习。刚毕业的时候,在钢铁行业的那三年多,我有差不多一年半的时间,我作为公司内部的技术翻译,和来自德国、美国、法国、韩国、菲律宾、越南等国的工程师用英语工作。那个时候,真的是感觉自己置身于国外的英语环境,用英语办公与生活,都没有太大问题,而且经常要用到一些机械和电气方面的专业英语,也是得心应手。这在之前是不敢想象的,虽然大学的时候和学校来自印度和尼泊尔的留学生,有过一段时间的交流,但还是比较生硬。


我发现和我接触的这些外国人中,美国人的英语毫无疑问,听得最舒服,毕竟是母语。除了美国人之外,德国人的英语是最好的,菲律宾人与越南人的英语也还行,韩国人有些英语音节发不出来。印度,尼泊尔,甚至法国人的英语,有些比较浓重的口音。


案例 B


去年由于想要进一步提升项目管理的理论知识,报考了 PMI-ACP 的网上视频课程,看了蛮多期视频,觉得那么琐碎的知识点好难记,特别是敏捷十二原则,记不下来,让人有些困恼。但是后来一想,学习这个不就是为了通过考试,拿到 ACP 证书吗?通过考试的本质是为了做好一个个的单选题目,如果题目能够做对,哪还管什么记忆详细的知识点呢,理解才是最重要的。


后来通过一个个的做题,反向论证自己对知识点的理解,一下子就消除了我对于不能很好地记忆相关知识点的焦虑。


案例 C


刚入行互联网不久,为了更好的工作,买了一台 MacBook Pro,macOS 系统和 Windows 系统还是有很大区别的,刚开始用的很不习惯。当年开发 Android 的 IDE 还是用的 Eclipse,由于不熟悉 macOS,还在用 Parallels Desktop 虚拟一个 Windows 系统,在这个虚拟的 Windows 系统里面用 Windows 版本的 Eclipse 开发 Android,觉得等我适应了 macOS 再在上面用 macOS 版本的 Eclipse。就这样坚持了一段时间,每次编译项目代码都要消耗大量的性能,电脑的风扇嗷嗷叫,后来我的 Leader 一句话点醒了我:你直接在 macOS 用 Eclipse 开发一段时间,就适应了,不需要特地的去准备,随后我用了不到一周的时间,很快就适应了,也就没有再用之前的蠢办法来适应了。


案例 D


之前团队的代码管理采用的是 GitLab,由于需要备份较好的可读性的数据,需要一个个的克隆 Git 仓库到本地,作为程序员出身的自己,显然需要一个更加自动化的偷懒方式,由于对 Java 和 Git 有一定的知识掌握,便开始着手开发一个自动化备份 GitLab 上所有可访问的代码仓库,在前期技术调研的过程中,发现需要用到 macOS 底下的 Bash shell 命令,觉得是不是先要去系统的学习下 Bash shell 命令才行,找了些资料,看起来内容好多。


最后由于时间紧迫,我直接开干,先利用 Java 语言和 GitLab 官方 API 来获取用于下载的 Git 仓库相关信息,然后到 shell 命令的时候,发现只需要搞懂 for 循环和打印两个技术点就可以了,通过搜索引擎快速查找到相关代码,经过一些理解,很快就把这个自动化备份 GitLab 仓库的小工具写出来了,如果我当初觉得想要好好学习 Bash shell 命令之后才能开发的话,那我说不定到现在还不一定能够写出这个小工具了。


总结


学习一项技能,不要一味的追求学习与准备,再去采取行动。如果外部有好的“实践”环境,或者有能够立即开始着手解决的问题,那么就开始真正的“学习”吧!

是问题,一定有解决的办法,如果没有解决的办法,那么就不是问题。解决问题的韧劲很重要!
说明:解决问题的韧劲与方法论同样重要!


你要相信,遇到的问题,一定有解决的办法,如果没有解决的办法,那么这个问题就不是问题,而是一个既定的事实,你无法改变。很多的问题,其实你是可以解决的,只是搞两下就放弃了,成功可能只离你一步之遥。


当你解决了一个非常棘手的问题,那种获得感与成就感,难以用语言来描述,非常的美妙。而且这种过程能够反向促进你对自我解决问题能力的进一步认可,更重要的就是提升了自己的解决问题的韧劲,让自己更有信心面对更困难的问题,这种信心的培养至关重要。


参考案例


案例 A


这是我技术开发过程中,碰到的最棘手的问题之一。懂软件开发的朋友都知道,用 Git 来管理代码版本,里面有一个 .gitignore 的配置文件,这是一个用来确定哪些文件或者文件夹不被 Git 进行 track 记录版本变更信息。当你想要追加一些 track 的内容,往 .gitignore 配置文件里面写入配置信息,然后通过相关的 git 命令行就可以让这一动作生效。但是你会发现,你想要将一些已经被 track 的内容取消被 track,你光注销 .gitignore 配置文件里面的配置信息,然后通过同样的 git 命令行,是不能使这一动作生效,而且之前秉承的” StackOverflow 可以解决 99% 的技术上的疑难杂症.”的理念也失效了,StackOverflow 上找了很久都找不到想要的答案。


但是我相信这个问题一定有解决方法,不服输的我试过几乎所有中国人主流常用的搜索引擎:谷歌、必应、百度、360、搜狗、有道等,试过所有的中文、英文关键字,每次搜索结果都至少翻到 30 页以上,终于皇天不负有心人,我用英文关键词在 Google 上的第二十几页的一个不起眼国外个人英文博客上,找到了一个类似的问题上有一个看起来可能有效的解决办法,经过反复尝试确认,终于解决了这个所谓的疑难杂症,解决问题的那一瞬间所获得的愉悦感与成就感,仿佛就像拯救了全人类的超级英雄,那种感觉无与伦比,至今历历在目。


后面我把这个问题的答案补充到 Stack Overflow 对应的问题下面,没有想到很多人都在找这个问题的答案,而我给出来的答案正好解决了这个问题,这个回答给我带来了超过 3500 多的荣誉值,这也从侧面验证了这个问题的棘手性和我的答案的所带来的帮助与价值。


Stack Overflow 上此问题与答案的链接:https://stackoverflow.com/questions/11451535/gitignore-is-ignored-by-git/32377642#32377642


案例 B

曾经在开发一个体育 App 项目,遇到一个非常棘手的应用上架到 App Store 的问题,导致我们整整三个月,应用的第一个版本无法上线。事情经过是这样的:iOS 应用上架到 App Store,被拒后,苹果公司只会告知你的应用存在违规,但是只是罗列一个非常模糊无法定位的原因。我们自己也只能反复的猜测,反复的移除或者隐藏一些可能存在问题的代码,来来回回,搞了好多次,随着时间的推移,iOS 的第一个版本 App 始终无法上架,让作为项目团队负责人的我,压力巨大。于是,一个方法一个方法的去尝试,首先我们还是尽可能的先移除潜在问题的代码及相关文案,试过几次没有用,想到了联系客服,刚开始客服回复是美国总部那边给出的评判,具体原因无法得知,然后又想到了 App Store 每年有两次机会的专家技术支持,联系了也没有得到具体原因。


后来还是再次联系会中文的客服,一遍又一遍的软磨硬泡,终于有一个客服不知道哪里来的关系,从美国那边的技术团队得到了一个比较重要的参考信息:Specifically, this app contains references to an app piracy storefront.具体来说,此应用程序包含对盗版应用程序商店的引用。


怎么会涉及到盗版应用商店的问题呢?真是百思不得其解?我们安排程序员反复核对,最终也没有找到任何和盗版应用商店相关,但我始终觉得还是代码哪个地方的问题,由于代码量巨大,很多内容又是其他之前应用里面复用的代码逻辑,一行行的代码重新查找,时间根本来不及。


于是,仍然想到了苹果的技术支持客服,还是一遍遍的软磨硬泡,有一个客服居然再次联系上了美国的技术团队,让那边提供了最关键的细节信息:代码中有一段引用了 [25pp.com](http://25pp.com) 的网站资源。我们立即全局搜索源代码,找到那段巨坑的代码:先前有人写了一段包含 25pp.com 图片资源的网络图片 List 加载测试代码,直接是通过硬编码指定了 25pp.com 上的图片资源,不知道从网上哪里复制过来的!!


我们删除了这段测试代码的引用之后,再次上传到 App Store,审核终于通过了,最终上线!


用过 PP 助手 iOS 版本(已下架)的小伙伴,肯定知道这个工具是干什么的,他是一个第三方的 iOS 应用商店,这种应用商店通过破解或绕开苹果的系统签名及其他安全机制,具备自行分发免费以及破解付费 iOS 应用,这样不被苹果官方允许的第三方应用商店,自然成为苹果的打击对象,它所有的一切都会被苹果禁止,而上文中引用了 PP 助手的官方网站 [25pp.com](http://25pp.com) 上面的图片资源,就自然被苹果审核拒绝,被认为和 PP 助手有关联。而且我们的应用代码并没有通过加密或者动态加载数据,直接是硬编码的本地代码,自然很容易被苹果官方的静态代码扫描技术扫描到,这也就是为什么上文提到的:此应用程序包含对盗版应用程序商店的引用。


如果不是我们抓住核心的快速解决问题的方法论:就是抓住官方技术客服不放,只有对方提供直接了当的技术细节,才能更加高效的解决问题。


案例 C


我遇到的另外一个非常棘手的问题就是 Google Play 应用商店账号被屡次封禁的问题,封到我们束手无策。事情是这样的,我们一个蓝牙智能灯的 App,前期由于一些可能潜在的小问题:诸如 Google Play 禁止的应用自带升级机制,以及远程服务器动态加载的问题,还有一些未被列出的问题。导致最后只要我们注册一个 Google Play 账号,上传了这个应用,没过两天账号就被封禁了。我们刚开始是以为注册账号电脑所在的 IP 的问题,我们通过使用不同的电脑 VPN 全局配置本地网络,将网络环境虚拟到国外,然后用不同的信用卡,同时核对应用本身所有潜在的谷歌禁止的代码逻辑,如此反复几次,还是不行。


运营和开发人员都束手无策了,而这个时候,国外有大批量的蓝牙智能灯已经到达客户手里,并且 Android 手机用户需要用到这个 App 来控制这款产品,接收到大量的客户投诉,厂家措辞非常严厉,而且我们也尝试希望通过其他方式先把 Android App 安装到手机,由于非官方应用商店的渠道,系统安全性也好,国外用户二维码扫描下载应用的习惯养成问题,都导致这个操作没有太大的效果,因此我们的压力巨大。


当大家都没有办法解决这个问题的时候,作为 Leader 的我,必须亲自着手来解决这个问题,最后一次研讨得出的结论可能是代码存在潜在的未被发现的问题,或者是被谷歌代码静态分析技术分析出我们的这款应用与之前的那个被封的版本是同源,被无脑封杀。因此我们只能想到最后的办法,通过第三方加密工具,将应用本身进行加密,虽然我们知道这种加密很容易使应用本身出现问题(很多的第三方加密工具的兼容性并不好,很容易导致应用的崩溃闪退),这样更麻烦。但是没有其他的办法了,先这样试一下,看看能否解决问题。果然不出所料,没有用!新申请的账号,再次上传应用,没过两天,又被封禁了,应用被下架了,简直快要哭了!


厂家给到我们老板的措辞越来越严厉,老板给我施加的压力越来越大,这个问题必须得解决。究竟问题出在哪里?是所谓的网上说的关联账号(基于电脑、网络、支付的信用卡、应用本身来判断你是统一开发者)还是因为应用代码本身的问题?联系客服,谷歌官方也没有给出具体的说明,反正就是一副你自己的问题,你自己心知肚明。从零开始,核对所有的项目代码?根本来不及,时间不允许。我就先不纠结问题的原因了。


我依稀记得当年的做过的一款 iOS 体育应用(就是案例 B 提到的例子)由于长达三个月不能通过 App Store 应用商店的审核,无法上架。当时曾经想要尝试的一个办法:就是找那些网络上有丰富的 iOS 应用上架 App Store 经验的人来代上架,当时因为费用极高,而且后来由我们自己找到了根本的问题所在,就没有去尝试。这或许就是最后一根救命稻草,因为他们可能掌握着应用上架成功的“核心秘密”。


当时网上找了一些服务方,大部分都是提到将应用加密或者需要源码进行分析,但是其中一个服务商在询问我应用上架存在的问题之后,分析出一个潜在的问题:可能还是关联开发者的问题,所谓关联开发者,就是相关的开发者被封禁,而非针对单个应用。谷歌会根据各种因素:开发者上传应用的电脑信息、网络环境以及付款的信用卡,甚至是应用本身的信息等,判定如果是之前同一个相关的已经违反过应用市场规则的账号,那么就会无脑封禁。而且最重要的就是地理位置信息这个问题,通过 VPN 将自己的电脑网络环境全局模拟到其他位置登录,是没有什么效果的。


这位服务商提供了一个可以尝试的解决方案:先让我在淘宝上购买一个香港或者美国的 VPS 服务器,买一个差不多够用的配置,让卖家直接安装上带有 Google Chrome 的 Windows Server 服务器,然后将服务器远程登录信息发给他,他会在上面创建 Google Play 账号并支付 $25 的一次性账号费用,最后再由我通过远程登录的方式进入 Windows Server 服务器,并打开 Google Chrome 登录 Google Play 账号,并将文件传至服务器本地,从本地将 Android 应用包上传至 Google Play 应用市场。


按照服务商提供的解决方案来操作,果然大功告成了!我也很愉快的支付了几百元的服务费。而且直到现在两年多过去,应用也没有被下架,Google Play 账号更没有被封禁。


这种方式,一来通过 VPS 这种具备实际物理地域的服务器,而且服务提供方来用信用卡支付开发者费用,这两个关键性动作,彻底规避所谓的关联开发者问题。


问题解决之后,客户和老板给到的极大压力,立即烟消云散,更重要的就是又一次将自己解决问题的韧劲提升了一个台阶,让我以后面对非常棘手问题时候的自信心大增。


也是从这个案例中得出另外一个理论:少数人掌握的重要的知识与技能,必定有人会拿来对外提供服务赚钱。当你无法掌握并需要这些重要的知识与技能的时候,用钱买购买这些服务,是相当划算的!


案例 D


前些年,电子烟非常流行,而且网络上是可以销售电子烟的,随着电子烟的危害被国家重点关注,最终出台了禁止网络销售电子烟的政策。很多想要通过网络销售电子烟的商业项目戛然而止,此时,这个问题已经不是一个问题了,因为国家政策大于一切,你不可能去想办法解决网络销售电子烟的问题,因为根本无法解决,那么这个问题就是一个事实,学会接受它,然后再找其他的销售渠道了。


总结


是问题一定有解决办法,解决问题的韧劲是面临棘手难题时候的最大试金石,如果问题没有解决办法,那么这个问题就不是问题,而是最终无法改变的事实。

不要觉得自己状态不好就不想开始,just do it。
说明:不要过于追求所谓的状态,状态不是准备出来的,而是调整与适应出来的。


很多时候,我们迟迟不开始学习,就是觉得自己状态不够好:睡眠不充足,注意力涣散,心情不够好等等因素。你想要有足够的状态再开始某件事情,殊不知,绝大多数情况下,你很难保证在做某件事情之前,有 100% 的好状态。你只能先开始做,慢慢的在做的过程中,调整与适应状态,专注做事情之后,才能逐步的达到所谓的状态。


参考案例


我最近开始大规模总结个人的生活、学习与工作,总觉得自己状态不够好,迟迟不开始,一直都很难达到令人满意的状态,觉得时间就这样过去了,就直接开始,哪怕每天只能推进一点点,也能够往前走一步,但是我发现当我真正专注做某件事情的时候,我开始慢慢进入状态,进入到忘我的境界,而且居然能够达到超过四个小时的心流状态,这要是在平时,坚持不到五分钟就拿起手机,当我专注去做事情的时候,也就慢慢进入状态了。


总结


不要总想着先去准备状态,而是要立即行动,在做的过程中去调整与适应状态,很多时候,恰恰相反,当你以一种不好的状态开始专注做某件事情的时候,反而更容易进入良好的状态。没有前面的不好的状态做铺垫和过渡,是很难进入一个所谓的良好状态。

Don’t only talk, just show me.
说明:不要仅限于说,请给我看。


这句话与技术大佬 Linus Torvalds 说过的那句:“Talk is cheap. Show me the code.”有异曲同工。


很多时候,对于一件事物的描述再多,不如亲眼所见。就好比说问你喜欢什么长相的女孩子,你说喜欢有点婴儿肥,笑起来有酒窝,有点胖嘟嘟,会唱歌,活泼开朗的女孩子,有点想象不到。那直接说喜欢邓紫棋那样的女孩子吧,里面头脑中形象就清晰起来了。


参考案例


刚大学毕业,进入钢铁行业工作,需要学习相关的德国的精密设备构造,看到某处齿轮箱内部的 2D 机械结构图纸,不是能理解里面的构造。问了国内的工程师,他们按照图纸讲了蛮久,还不是很懂。我就直接问德国来的工程师,他没有说太多话,拉上我去工厂现场,直接把那个设备的齿轮箱顶部的盖子拆开,告诉我,这就是里面的结构,我看一下,立马恍然大悟,从这件事情之后,我就习得了一项非常关键的事物呈现方式,将最终更有呈现力最直接的结果直接呈现出来,就好比如果有的时候,图片的呈现力强于文字,视频的呈现力强于图片。


总结


对于事物描述的天花乱坠,不如带去亲身体验一把,看到实实在在的参照物或者实物。

不要过于纠结做事的方法与工具,专注于事情本身更为重要
说明:做事所采用的的方法和工具,只是一种辅助,不要忘记了事情本身的意义才更为重要。


有些有完美主义倾向的人,在没有完美的方法或者工具的情况下,会迟迟不开始做某件事情,或者是在开始做某件事情,过于追求所谓的更好方法或者工具,而变得本末倒置,大量的时间精力浪费于此。


参考案例


就拿我们最常见的写作来说,很多人一直在追求所谓更好的方法或者工具,到底是随时记录,然后整理细化,还是针对某一内容专注主题写作?又或者是做自媒体的人不断的变化写作的内容方向,亦或是不断的纠结于各式各样推陈出新的笔记软件,还有不断的纠结自己的内容该发布到知乎、头条等第三方平台,还是自建独立博客?自己的知识储备与写作能力还不够好,无法产生有营养的内容。殊不知当你纠结于此的时候,很多人都已经开始创作了几十上百篇有营养的内容,有些人就是想要写点东西,写点自己感兴趣的东西,也不纠结于笔记软件的问题,直接拿 Word 甚至是 Txt 文本来写,写作最重要的就是写,而不是外围的方法和工具。


总结


做一件事情,忘记了事情本身的意义,过于纠结做事的方法与工具,是一种本末倒置。

大脑存储知识的量是有限的,但是你有一个超级巨大容量的知识库:互联网
说明:将一些知识托管于随时可取的互联网,用的时候再去取,非常方便。


虽然说人的大脑可以存储很多知识的,但是大脑对于知识的存储机制和电脑是有差别的,一般情况下,电脑的数据,不存在所谓的“模糊不清”,有就是有,没有就是没有,不存在中间状态。很多知识存在大脑中,容易搞混,甚至是记不清楚。但是互联网上的知识就没有这样的问题。


参考案例


案例 A


比如说学习英语,我根本不需要记忆太多的单词,也不需要有一部实体字典,很多的时态和用法不太清楚也没有关系,很多的在线英语词典网站,或者谷歌翻译之类的。当我需要用英语写作或者聊天的时候,配合互联网在线资源,轻松搞定。


案例 B


诸如维基百科或者 YouTube 这样的网站,可以获取绝大部分的基础知识。基于基础知识的复杂问题解决方法等,都可以借助于搜索引擎,立等可取。


总结


借助于特定网站服务或者搜索引擎,可以将托管于互联网的海量知识,快速取出。凡事第一应该想到的请教对象就是互联网,因为互联网是一个最顶级、响应速度最快、而且态度最好的老师,没有之一!

获取或者传授知识的时候,内容的呈现形式很重要。
说明:有的时候,不一样的呈现形式,会让你快速且深刻的掌握知识。

知识本身都是一样的,但是不同的呈现形式,对于人知识的吸纳就很不一样。好的呈现形式,会起到事半功倍的效果。

我之前对历史不是很感兴趣,觉得很是枯燥,也理不清楚各朝各代,但是有一次我在 YouTube 上看了一个视频:《中国历史地图》,看完了之后,大受震撼,如果早点看到这个视频可能我对历史的兴趣就完全不一样了,视频以一种动态加载中国历史地图便签的形式,尤其印象深刻的是战国七雄,秦国如何一步步灭掉六国统一中华,还有就是清朝吴三桂所处的云南,同时看过古天乐版的《寻秦记》和陈小春版的《鹿鼎记》,对秦始皇一统天下的故事和清朝康熙擒鳌拜以及平定三藩还有吴三桂的故事很感兴趣。虽然里面很多东西都是杜撰的。感觉这样的历史知识的呈现形式,很是不错,能够更好的激发兴趣。

history-map-of-china-1

还有就是之前对英语里面的位置介词:in/on/at/under/over/below/above/around 等等,理解的不够深刻,但是在 Twitter 上面看到这个动图:各种位置介词的区别,我就觉得简直太棒了,如果早点看到这个图,我就对位置介词有更好的理解了。

different-location-preposition

Teach is the best way to learn.
说明:“教”就是最好的“学”。


最好的学习方式,就是以“教”别人的方式来反向促进自己的“学”。这个学习的方法论,也叫做“费曼学习法”:明确目标(想要学习的内容) → 以教促学(将学习的内容以理解之后的形式,通过某种方式传授给自己或者其他人) → 发现问题(发现对于知识理解错误或者不够深入的地方) → 再次总结(针对相关问题再次细化吸收)。


参考案例


案例 A


当年我作为 iOS Leader 的时候,由于也是刚开始接触 iOS 开发,然后 iOS Team 里的开发者也都经验不足,当初对于基本的 iOS 证书问题都弄不太清楚,只能我先想办法弄清楚,彻底解决这个问题。那个时候,通过阅读大量资料和反复的尝试,终于弄清楚了 App Store 应用与企业应用的区别,还有 Development Running 包/Development Distribution 包/Ad Hoc 包/App Store 包/Enterprise 包以及他们对应的证书之前的区别,以后每次遇到这个问题的时候,我都是最清楚的一个,心里特备有底。


也正是这种被动的需要弄清楚一个知识点并且需要传授给其他人的压力,促使我反向学习并最终通过教授给别人的方式,来对这个知识点深度掌握与良好运用。


案例 B


有一个十几人参与开发的 Android 项目,代码处于同一个仓库,每次代码合并都会出现各种问题,而这个时候,作为总技术负责人的我,必须要弄清楚代码合并过程中的核心关键技术点。当时印象很深刻的就是,我陪一个 Android 开发工程师一起确认代码合并问题的时候,我一步步讲解追踪代码合并步骤,发现了一个之前并没有太理解的一个主动合并与被动合并的各个分支代码覆盖的问题,而针对这个问题的理解,恰巧是在一步步讲解的过程中,灵光一现,对这个问题有一个很好的理解,也发现了问题的所在。


正是由于这种主动的发现问题,并在这个过程中,以传授者的形式来复述及分析问题,让我对其中一个没有太理解的问题有了更深刻的理解和掌握。


案例 C


我们经常看到很多人在网上写博客也好,制作播客,或者是发布一些免费的学习视频,除了兴趣爱好,获取相关的收益,另外一个潜在的好处就是通过创作,加深对知识的理解与运用,这种潜在的对第三方进行知识的传授,能够很好的帮助自己快速掌握相关知识。

有时候,知识只有到了一定的宽度,才能突破相关的深度。
说明:很多时候,对于知识的深度理解,眼界很重要。


有时候,你有没有这种感觉:你在了解到一项新事物了之后,对于曾经旧事物的一些不能理解的知识,突然就茅塞顿开、恍然大悟了?那是因为之前你只关注与旧事物本身,很难有外界新事物帮助你跳出这个认知的局限,等你跳出认知的局限,你立马就豁然开朗了。知识的横向类比学习,具有很重要的反向促进作用。


参考案例


案例 A


作为程序员出身,刚开始只学习了 C 语言,对于“面向过程”的编程语言一知半解,更不能理解“面向对象”的编程语言,但是当我学习到了 Java 语言,对于“面向过程”的编程语言有了更深的理解,同时也能理解对于“面向过程”与“面向对象”的区别。


虽然学习了 C 语言和 Java 语言,但是我不能理解“静态”编程语言和“动态”编程语言,因为 C 语言和 Java 语言都属于静态语言,当我接触到了诸如 Objective-C 和 PHP 这种“动态”编程语言的时候,我就能更好的理解“静态”编程语言和“动态”编程语言,从基本的语法类比就能够领悟。


最后通过对其他诸如 C++/Kotlin/Swift/JavaScript/Python/PHP/Go 语言的一些基本了解,对其他诸如:编程语言/编译语言/解释语言/脚本语言/强类型语言/弱类型语言等概念有了更好的理解,这在之前只了解一两门开发语言的时候,根本是无法想象和理解的。


案例 B


当年作为移动开发工程师,Android/iOS 应用开发都需要接触,随着 Kotlin/Swift 这些更优秀的移动端开发语言的兴起,只会 Java/Objective-C 的我们,必然要加快对新开发语言学习的脚步。为了提高效率,是 Kotlin 和 Swift 一起横向类比学习,我们发现这两门开发语言有很多细节设计上的相似性,而且通过一段时间的学习,甚至能够理解一些编程语言设计上的思想,同时也让我们能够意识到之前 Java/Objective-C 在移动端开发中的技术局限性。

Connecting the dots.
说明:串联生命中的点滴。


这是苹果创始人乔布斯在斯坦福大学毕业典礼上演讲中讲的第一个故事,这个演讲我反复看过蛮多遍,随着我人生阅历的增长,我越来越觉得,乔布斯的这场演讲,真的是史上最伟大的演讲之一,无论是演讲本身的结构及形式,还是其中的故事所蕴含简单且深刻的人生哲理。如果没有看过的朋友,强烈推荐去看看!


乔布斯提到的这个:Connecting the dots(串联生命中的点滴),大致的意思就是:你先前所经历的认为可能没有任何意义的种种一切,无论是出于热爱主动追寻之事,还是出于命运被动赋予经历,都会在你将来的某个时刻,通通串联起来,对你在这个时刻所做的事情,带来深远的影响与价值。


参考案例


个人经历


我曾经在大学学习机械设计及其自动化专业,喜欢踢足球,学习之余,很多时间都泡在图书馆钻研“黑客”与论坛运营。后面也在私企与外企钢铁厂工作,有与外国人共事的机会,然后也玩英雄联盟等游戏,喜欢看美剧,平时还刷着没有营养的抖音。你会觉得这些东西,在我现在工作的互联网行业有什么作用吗?


看起来似乎都对我以后在互联网行业的工作,没有什么帮助。但是,当我发现我在机械行业很多的关于规范化、标准化、流程化的理念与价值,能够很好的平移到互联网。而且在钢铁行业养成的对项目、产品以及运营的具体实践的务实与敬畏之心,能够帮助我更好的适应互联网行业。


在大学期间的计算机内容的学习,在钢铁行业那三年的反向历练,让我深刻了解自己,懂的行业选择的重要性,发掘适了合自己的行业方向,也增强了我转行的信心与能力。大学里面喜欢踢足球,在互联网行业通过足球认识了很多好朋友,到现在还能够带来很多的互相帮助。


在钢铁行业的英语的书面与口语的练习,以及意识到英语的重要性,使得我在互联网行业,依然享受着英语带来的红利。


而参考美剧第 N 季模式的围绕公司现实工作与生活相关的年度年会节目也成为我展现导演+编剧+主演才华的试炼场,成为大家每年都期待的终极节目,而策划的每年的公司年终视频之公司大电影系列,也是大家喜闻乐见,乘坐年度时间机的美妙时刻。使得每年的年会节目和年度回顾视频,具有很强的延续性与期待性。


曾经一次部门的年终报告以开发成抖音 App 并以都抖音短视频内容交互的形式,还有团队介绍(当时团队正好十个人)的时候,模仿英雄联盟职业比赛场景,让公司上下觉得年前一亮,非常创新的汇报形式。


以上种种后来发生的印象深刻,有些价值和意义,甚至是值得回忆的事情,无不有前期各种看起来不太相关,甚至没有太大意义的事情串联起来,产生的最终效果。


总结:(引用乔布斯演讲中的原话)


当然,在大学的时候,我不可能预见到他们之间的联系,但是今天回首往事,一切都非常明了,同样的,你们也无法预知未来,只有回头看时才发现他们的关系,所以你必须相信,你现在获得的点滴,会在未来联接起来,你必须相信一些东西,直觉,命运,人生,因果,什么都没关系,因为如果你相信这些点滴联接起你未来的道路,你就会拥有跟随自己内心的自信。即使你的选择不被主流认同,这将使一切都变得不一样。

知识点的关联、联想、总结、归纳、体系、产品、价值
说明:如何一步步的从知识点到最后创造价值。


我们不要过于关注知识点本身,当你眼光不断的往知识的宽度和高度上延伸,你对待知识点的思维方式和其最终的价值与意义,会有很大的不同。


参考案例


案例 A


我依然记得刚做程序员的时候,第一个工作任务,就是调研 Android 手机的定位问题,领导也没有告诉我要做什么产品,那我就查找资料调研 Android 定位的 API,使用的是 GPS,可以通过 API 接口打开和关闭 GPS,同时能够获取地理位置信息:经度和纬度。当时想着还有没有其他获取定位的方式呢?


后来了解到 A-GPS(结合 GPS 与基站定位),又了解到 Wi-Fi 定位与室内定位,还有诸如其他特殊情况下蓝牙的定位。但是这些定位技术的用途有哪些呢?考虑到当时公司正在和地产公司营销部门合作,我就想到了可能和办公有关系,办公有关系的话,定位是不是为了“监控”员工呢?果然,后来领导说要做一个营销人员的上班打卡办公工具。那时候在想,这种办公工具是否有市场场景呢,能否作为一个创业产品来做?针对特殊领域工作人群?后来也没有再进一步往下思考,毕竟自己的思维能力和眼界视野也不够。


经过几年之后,当时的公司领导有聊到自己创业的事情,讲到当时如果顺着地产行业把行业内的垂直领域服务做好,也还是蛮有意义和价值的。当时的办公定位打卡,在后来的钉钉已经能够更好的实现,以及地产行业中的室内定位与导航。还有就是当年凯立德导航盛行的年代,没过几年,就被高德地图和百度地图打败。一个定位技术与功能衍生出来的产品与服务,还有最终的价值,是不可估量的。


我们没有几个人能够从一个小的技术点、功能点,推理出一个行业甚至是一个时代的变迁,从而去把握所谓的潮流。但是,如果我们自己每次遇到一个小的有价值和意义的技术点、功能点,能够想的更宽点、更高点,那么你练就的这项不断对知识本省的价值和意义追溯,终究会在将来给你带来巨大的帮助。

尝试去学习甚至喜爱一门外语,它将带你看到不一样的世界
说明:外语不仅仅是一中语言工具,它能带你见到不一样的思维方式、人文风情、历史文化等。


此内容待续

学习细节篇
说明:平时个人学习过程中的一些方式方法、网站工具等。


由于时间有限,以下内容,有的仅仅只是记录一个小的 Tips,以后有机会再慢慢细化整理。

学习工具篇
说明:此部分内容整理记录个人学习过程中的一些工具。


*大脑中的记忆是最保险
*各大论文数据库
*官方的重要性(官网、官方文档、官方客服、官方门店等)

不断迭代,持续更新中!
Constantly iterating and continuously updating!
打赏
本博客所有文章如无特别注明均为原创。复制或转载请以超链接形式注明转自ifeegoo,原文地址《学习沉思录
上一篇: « 下一篇: »
暂无相关文章
Copyright © ifeegoo Time is limited, less is more! / 粤ICP备15109713号 / Theme by Hang & Ben / WordPress / 知识共享许可协议