一位自我怀疑的Android开发者的灵魂拷问:你够好吗?

也许没有人告诉过你,但在编程期间卡住是绝对正常的,它甚至发生在高级开发者身上。编程的很大一部分是要弄清楚为什么你预期发生的事情没有发生。如果你觉得,孩子第一次站起来的时候能够走路是荒谬的,为什么你会希望你的代码的第一稿能够完美运行而没有任何错误?

我记得当我被卡住了很长时间的时候,我想把我的头撞在墙上。我知道这很难过和令人沮丧(特别是在处理与开发环境有关的问题时)。但是就是挂在了这里。深入研究这个问题、借助 Google、问一些朋友、散步。你最终会解决它,并继续前进。而且随着你获得更多的经验,你会慢慢地陷入困境。

假如下一次你又被卡住了,别再浪费时间自我怀疑了。你应该提醒自己,这不是你的错。这是正常的。这只是过程的一部分。

如果你是初学者,花费数天时间来建立开发环境是非常普遍的,这些时刻可能会粉碎你的灵魂。你尝试按照文档一步一步向下执行,但随机的错误不断出现在每一个步骤中。文档看起来很简单,但事实并非如此。这不是你的错。阅读该教程的人中有 99.99% 卡住了。其余的 0.01% 是幸运的,恰好与编写文档的人具有完全相同的操作系统环境配置。

不幸的是,学习编程的第一步也是最令人沮丧和心灵破碎的部分。当你看到你无法理解的错误时,只需将确切的错误日志复制并 Google 搜索即可。(把错误日志加上引号或只搜索错误日志的前半部分可能会有帮助。)尝试不同的解决方案,直到找到可用的解决方案,然后继续下一步。

请原谅我再次强调:在这个阶段卡住不是你的错。大家都这样做。我保证,一旦你经历了这个阶段,编程将会变得更加有趣。

2、我们把"天生聪明"和"显得聪明"混为一谈

在大学的最后一个学期,我的朋友们对我在《高级数据结构和算法》课上的表现感到惊讶。当他们很辛苦的学习时,我看起来毫不费力。

他们不知道的是,在课前几个月,为了准备面试,我花了数小时练习编码挑战,涵盖了与课程完全相同的课题:动态编程,深度优先算法,广度优先算法等。它似乎毫不费力,只是因为我已经经历过这些努力的过程。

当我第一次自学这些概念的时候,我会花上好几个小时的时间来盯着一个问题,而且无法弄清楚它。当我放弃并在网上查找解决方案时,我努力去理解它们。当我终于做到的时候,我感到更加沮丧,因为我怀疑自己是否足够聪明,为什么自己想不出这样的解决方案。

有时甚至当我再次遇到同样的问题时,我可能仍然不知道如何解决它。我会这么强调,我不得不采取长时间的热水淋浴来让自己冷静下来。

所以,当我说我知道自己怀疑自己,担心自己做不到的时候,相信我。我以前也是这样。我可以向你保证,你并不孤单,许多伟大的开发者也经历过同样的事情。

下一次当你身边的人表现出众的时候,而你正在辛苦挣扎,不要以为是你没有足够的才能。很可能,他们只是比你更早地接触到这个主题或类似的主题。他们的大脑已经建立了“肌肉”来处理这种类型的问题。在经历了目前的挣扎之后,你也会显得聪明而轻松。

这和我们的常识一样。

你通过锻炼来锻炼肌肉。你投入的努力越多,训练的时间越长,你的能力就越强。学习编程有完全相同的过程。你花费的时间越多,你就会越熟练。种瓜得瓜,种豆得豆。

第二课:关注你的技术能力,而不是自己

不要想着你是一个多么优秀或者多么差劲的程序员。如果你处于队伍的最后 5%,你想变得更好。如果你有幸进入前 5%,你仍然想变得更好。无论你有多好或多坏,总有人在你面前,同时在你背后也有人。那么为什么浪费时间思考这个问题呢?

相反,专注于你的技术能力。别再问你有多好、问你的代码有多好。你应该思考,如何使它更好,更快,更可读?长期关注那些让你钦佩的工程师,阅读他们的代码,看看和你的有什么不同?他们最近又正在研究什么新玩意儿?

如果您已经是一名软件工程师,则有人会付钱给您编写代码。你应该停下来反思一下,因为这意味着很多:有人要么相信你的编码技巧,要么看到你的潜力。要做到这一点,唯一的办法就是把注意力集中在你的技术能力上,不断地改进。

记录你的小胜利!

你最后一次被卡住了,不确定自己是否能解决问题。而最终,你是如何解决的?

打开一个新的 Google 文档并将它记录下来。

下一次你怀疑自己的时候,看看这个文档,并提醒你自己:如果你能解决上次的问题,你也将解决这个问题。

使用该文档来记录你克服的挑战性问题的过程以及你从中学到的东西,总是庆祝这些小胜利,用这些小胜利来激励自己!

如果你看完这篇文字,留下评论,分享上次被卡住的时刻,提醒那些正在挣扎的人,他们并不孤单!

英文原文地址

最后

一天一天的过的真的是太快了,常常感到时间在前进,而我们还在停滞不前,看似每天努力的工作学习着,仔细想想其实又会发现,一天下来我们好像还真的什么都没干,看似忙碌的一天,我们把时间都用在哪了?学习!可是为什么我觉得什么也没学到呢?其实不是没有学到东西,只是我们的学习效率太低而已!

针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

需要展开的架构学习笔记导图的加群免费获取 Android架构设计大群(185873940)

PS:群内有许多技术大牛,高手如云,有任何问题,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~

如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

结尾

如何才能让我们在面试中对答如流呢?

答案当然是平时在工作或者学习中多提升自身实力的啦,那如何才能正确的学习,有方向的学习呢?为此我整理了一份Android学习资料路线:

这里是一份BAT大厂面试资料专题包:

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值