如何像高级Android开发人员一样思考?

436 阅读8分钟

本文为译文,作者:Ann Adaya

世上的技术千千万,你不可能将所有技术一网打尽。

因此,你需要找到理想的技术栈,找到适合你的技术,然后全力以赴。例如,对于现代Web开发来说,一个很好的组合就是MERN栈:MongoDB、Express、React和Node.js,如果你喜欢JavaScript,那么这就是完美的选择。

还有一个技术栈叫做MEAN。MEAN技术栈的开发人员更喜欢用Angular来代替React。当然,你也可以选择将PHP、MySQL,前端也可以采用基本的HTML和CSS等。此外, Ruby和Ruby on Rails也是面向后端的好技术。

无论你选择哪种技术栈,都要坚持深入掌握这些技术。对开发人员来说,广而不精是大忌。最终,你只会在原地打转,陷入迷茫。

即便没有学位,你仍然可以成为开发人员

我本人就是一名自学成才的开发人员,我通过自己的努力、耐心、毅力和高度专注,在这一领域取得了成功。

不上大学并不意味着这一行的门槛很低。软件开发的工作难度非常大,但回报非常丰厚,你遭遇的小失败不值一提。心之所向,欲之所望,事之所畅。

放弃则将一事无成。书山有路勤为径,只有每天每时每刻一次次地努力才能换来成功。即便感觉自己陷入最深的谷底,你也应该继续坚持,因为胜利的曙光就在眼前。再多一点坚持,一切困难都会化成机遇。

“当一个人面临失败之际,最容易且最合乎逻辑的做法就是放弃。而这也是大多数男人的选择。”

—— 拿破仑·希尔

掌握搜索的艺术

在学习编程的时候,妄想掌握一切是不现实的。即便你不知道所有问题的答案,也没有关系,特别是在刚开始学习编程的时候。重要的是你知道如何寻找答案。

编程就是为了解决问题。如果你不知道如何解决,那么就需要找到一种方法。通过网络搜索或找到知道如何解决问题的人,然后从中学习,这才是最佳的学习途径。

忠告:今天你所遇到的所有编程问题,可能之前的开发人员都已经历过了。不要重新发明轮子,你必须学会使用轮子。

我们永远无法恪守最终期限

无论计划多么完美,预估工时都不是一件易事。对于项目管理,各个公司都有各自的妙招或策略。在我看来,目前最受欢迎的是敏捷。

无论开发过程多么详细,中途总是会遇到困难。无论团队成员多么优秀,从业务分析师到测试人员,最终期限总是无法准时,而且总会拖延。最终期限永远只是一个估计,在大多数情况下,在大公司中,构建应用程序通常都会比最终期限晚几个月,这都很正常。

但是,对于小型项目来说,小型企业主就非常严格。如果你打算开展业余项目,那么常见的问题或要求之一便是:“预计的交付日期是什么时候?”一些商业人士并不关心程序,对他们来说重要的是交付最终结果的截止日期。

因此,在向他们承诺截止日时要格外小心。通常他们都会视之为已知前提,所以你最好留好一定的余量,让你有更多的空间和足够的时间进行一些故障排除和调试。与其让他们失望,不如给他们一个惊喜。一定要设置标准,因为他们也会给你设置标准。

60%的调试,40%的编程

我认为这条建议非常准确。

我大部分的编程时间都花在了调试上。在上一个项目中,我们构建了一款医疗保健的Android移动应用。我们使用了React Native。我是开发人员。

假设项目花费了一个月,那么我构建大约花费了10天。其余时间,我都在调试各个依赖项、版本控制以及与当前版本不匹配的其他软件包引起的错误。

这是我的第一个Android项目。我花费了数周时间来调试属性,以确保它们适合正确的版本,包括我使用的其他第三方程序。

构建的部分非常有趣,但调试却很有压力。这是工作的一部分,但很费时间。

高级开发人员给我的一个建议是,每当你在同一个问题或错误上连续工作一个小时,那么就应该尝试休息一下。做点其他事情,放松心情,因为有时问题就出在我们自己身上

不懂装懂

我就干过这种事,时至今日有时还会不懂装懂。有时,我的同事在讨论他们使用过或感兴趣的新技术时,我会一直点头假装自己听懂了。没关系,你不是唯一一个不懂装懂的人。

世上的技术太多了,谁都无法掌握一切。

不要死记硬背,你需要掌握技术背后的原理

我一直自强调学习和掌握开发与编程基础知识的重要性。

首先,你会从教程或其他代码库中复制粘贴代码开始。这没什么不好,只要你理解复制的代码就好,否则就学不到任何东西。

几个月后,你应该能够理解其中的一些内容。你应该熟悉一些语法并了解一些编程原理。慢慢地,你应该尝试自行解决问题。尝试解决问题时,不要复制粘贴代码,而是构建自己的代码块。通过自己的方法、风格和想法来解决问题。

不要在复制粘贴代码阶段花费太多时间。不要害怕解决问题或编写出自己的解决方案。你需要通过反复试验来掌握更多技术,所以请不断尝试,直到你开始理解所有的高难度代码。这是学习技术的最佳途径。学习需要时间,但学习编程需要反复尝试。

文档是救星

将来你会感谢现在的自己。

刚开始时,你会逐步参与几个项目。接下来,在漫漫长路上,你参与的项目越来越多,直到自己都记不清参与了多少个项目。

然后,某天当你做到第11个项目时,突然你的老板问你有关第2个项目的问题。他希望你回头继续处理第2个项目,而且这是当务之急。项目2是在一年前建立的,后来就逐渐被人淡忘了。

但是,你没料到会出现如今这种的情况,因此你没有想过为第2个项目创建文档。当你打开代码库时,很多内容都已经不记得了。你忘记了曾经用过的软件包、版本、要求、选择原因的原因等等。更糟糕是,你的老板希望你能在两周之内完成。

请引以为戒。下次,记得花点时间为构建的每个项目创建文档。文档可以救你一命。

需要学习的技术仍然很多

这点非常重要。

不能因为你已经掌握了几种语言或正在使用的技术栈,就沾沾自喜。别忘了继续学习。我们需要学习的技术还很多。技术日新月异,不要误以为当下掌握的知识在十年后仍然有所帮助。

我们需要不断学习,提升自己,因为Android开发在不断发展。我觉得这就是Android开发最有魅力的地方,我们永远不会错过学习新技术的机会。

机遇往往转瞬即逝。你要时刻做好准备。保留尽可能多的工具,当机遇敲响你的大门时,你已做好万全的准备。

这里小编也分享一份资料,内容包含: Android学习PDF+架构视频+面试文档+源码笔记 ,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。分享给大家,供大家学习进阶,后续会全部上传至GitHub的

如果你现在有需要的话,可以在 GitHub 上查看《Android开发核心知识点笔记》最新版,路过别忘了点个Star

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

《Android开发核心知识点笔记》