移动开发最新超过三十岁就不适合写代码了?看看国外程序员怎么说(1),2024最新Android开发者学习路线

最后

**要想成为高级安卓工程师,必须掌握许多基础的知识。**在工作中,这些原理可以极大的帮助我们理解技术,在面试中,更是可以帮助我们应对大厂面试官的刁难。


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

工作、学习、生活平衡 可能是最重要的建议,记住要有其他爱好或兴趣。 我们大多数人每天约有50%的时间盯着屏幕,锻炼,外出活动等一定会帮助你不那么疲惫。

回答8


bubba:

几个月后我将年满70岁,但我仍然写一些代码。虽然不是很多,但是也有些。

我的经验是,最新技术通常只是暂时性的,从智力上讲,通常并不那么困难。计算机科学和数学的基础知识不会很快改变。

经验为你提供了新手没有的东西:对公司软件系统的深入了解,对公司业务目标的洞察力,对客户和竞争对手的熟悉度,对行业的了解,观点,平衡。可以说,它们比掌握最新技术的能力更有价值。

在某些方面,你的学习能力会随着年龄的增长而下降(尽管可能直到40岁或50岁)。另一方面,学习变得容易了,因为您拥有大量的先验知识基础,为理解新知识打下了良好的基础。

而且,正如其他人所说,一个曾经遇到过两次(或类似问题)的人解决问题的速度比以前从未见过的人要快得多。

因此,如果你喜欢写代码,请继续写代码,继续学习并且不要烦恼。

回答9


Michael Durrant:

终身学习

每个月在这些事情上花时间

  • 看书

  • 学习新语言

  • 进一步了解你已经使用的语言

  • 学习新工具

  • 学习新方法

  • 参加物理或虚拟会议

  • 从事个人项目

同时拥有生活,家庭,爱好和社交,嘿嘿,没人说这很容易!

经验的主要“陷阱”是,你最开始成为“高级”,那是因为你已经成为该技术的专家。 问题是——技术不会永远坚挺下去(尽管有趣的COBOL故事)。 了解新技术,你会OK的。 供参考:我曾经是一名BASIC程序员,虽然表现不错,但是在学习COBOL时不得不重新开始,但是最终我变得不错,但是后来我不得不学习Oracle,这很艰难,我又是初中生,但是我变得更好了,变得 高级。 现在,学习使用Javascript(ES6)和React正在继续。

如果您喜欢这门手艺,请继续学习它,你会被需要。

不用担心速度问题。 现代方法不需要它曾经提供帮助的那种速度。 现在,知道正确的方法比编写大量代码更重要。 不要关心睡觉的事。 在进行大量学习时,我确实会困倦,但这只是意味着大脑因新输入而超负荷,需要休息(实际上是逾期未交)。 一旦将该短期的化学反应刻入长期记忆后,短期暂存就会清除,我可以继续学习。 直到一定程度,然后才需要真正的睡眠。

回答10


Dave Sherohman:

别扯这些陈词滥调,你应该更聪明,而不是更努力。

你所写的问题给我的感觉是,你将编程视为主要是关于知识的广度以及无数小时的狂热投入。我几乎可以听到你说“要通宵学习最新的热门新工具!”

但这就是问题:最后,知识的深度远不止广度。我逼近50岁,我无法告诉你自从我上一次关心 “新热点” 或“处于前沿” 以来已经有几十年了,但这至少不会妨碍我的职业,因为我了解足够深的基础知识,以至于当我需要使用一种新工具时,我很快就能对它“非常好”。我不会成为该工具的高手,但是我能用它完成我需要做的事情。

那现在,我不再全职编程了。我已经过渡到75%的系统管理,25%的开发,因为我更喜欢处理各种小型的,非常规的任务,而不是长期专注于单个大型项目。即便如此,尽管编程不再是我的主要重点,但丰富的知识和经验足以使同事在编程问题或调试任务上需要帮助时,第一个想到的就是我,因为,即使我不知道他们使用的特定工具或语言,他们也知道我会立即发现解决方案,或者至少会发现解决方案的途径。

回答11


ron rothman:

不要将职业与工作混淆。

你的工作是(相对)短期状态; 你的职业生涯是漫长的。 作为一名30多岁的程序员,我向你保证,许多软件专业人员在这个个年纪都有成功的,有意义的职业。

TL; DR:你所在的团队有时会有所作为。 考虑与公司/团队一起找到更有价值的编程工作,使其更适合你当前的需求。

我是29岁的程序员

为了帮助你进行校准:你才刚刚进入职业中期。 29即使在软件开发方面也不算老。 (根据Stack Overflow开发人员调查,有53%的软件专业人员年龄在30岁或以上。)即使你已经很棒,你仍然需要学习很多东西,还有很大的发展空间,最重要的是,还有很多 为同行和雇主的利益而积累经验并随后加以利用的经验。

如果你找到了一个解决软件难题的团队(例如,某个大规模的问题),那么你可能会发现自己像在刚接触编程时一样开始重新享受工作。

我不像刚开始时那样朝气蓬勃、意气风发和精力充沛。

你可能从事的是错误的工作,而不是错误的职业。 在我的职业生涯中,我有各种各样的经验,我对任何特定工作的满意度在很大程度上取决于具体情况:我的老板; 我的队友; 这项工作有多有趣; 等等

对于我的情况,通常的建议是开始寻找更多的人相关工作,例如管理或领导。

与十年或两年前相比,今天的建议已经不那么普遍(适用)了。 像Google这样的软件巨头从根本上改变了软件工程师的职业道路选择。 现在,你可以上升到很高的级别(在某些“开明”的组织中——并非全部),而无需转到管理方向。

经常有人建议,我应该转到不太热的项目,这些项目不需要处于前沿

对于你来说,这听起来像是一个糟糕的建议。 你显然想对自己的工作感到兴奋; 你现在还不是。 也许有一个团队正在做的事情会让您兴奋,并且由志同道合的极客(从最好的意义上来说)组成的团队与你合作得很好?

回答12


Lawnmower Man:

转变你的关注点

我希望刚毕业的大学生关注的事情包括基本必要的方面,例如格式,简洁的样式,功能的正确性,单元测试以及在功能和类级别上全面理解代码。他们仍然要学习干活以外的知识,因为帮助他们注意提高质量的东西都是好的。这也意味着他们在实施项目时通常需要更多的指导。我对设计提出了很多建议,而且无论如何,高级工程师通常都会进行设计。

对于下一个级别,我希望工程师能够编写可靠封装的健壮的代码单元,并与系统的其他部分很好地交互。他们的重点应该是如何确保应用程序中的多个单元良好地交互而不会导致拉胯。因此,其设计范围应​​扩大以符合这些期望。他们主要编写应用程序代码,但是可以在有监督的情况下安全地更新共享库。

我希望“高级”工程师能够掌握整个服务的必要细节(不一定是整个应用程序,例如OS或主要的独立桌面应用程序)。他们应该了解代码从功能级别到服务启动和依赖级别的工作方式。仅给出一组需求(当然,我主要是在SOA /微服务环境中),他们应该能够从头开始设计和构建服务。

拥有将近10年行业经验的人应该是专家。按照最常见的标准,你至少应是“高级”工程师。那么还剩下什么呢?好吧,一切。

可以做,干。不能做,教

当然,这句话通常用于体育和教练,但是这里有一个真理。如果你觉得自己精疲力尽,可以花一些时间进行指导。如果你的所有同事,包括新来的初级工程师,比你了解的更多,那么显然你学习的并不多。到那时,你应该认真考虑切换到项目/程序/产品管理。如果你不是比大多数同行更专业的专家,将很难保持相关性。

如果你的组织雇用实习生,请主动带他。指导性地编程。做代码审查。不要只是批判…解释。不要只是解释…教学。从你最了解的代码领域开始,在这些领域中您最有信心,并且可以分享最多的价值。然后扩展到你所不了解但仍比大多数团队拥有更多经验的领域。即使您的组织没有实习生,总会有初级程序员在寻找导师。请求你的领导让你带一个

除了了解最新的编程语言范例或流行框架之外,还有更重要的事情。那就是规则。设计原则、代码质量、测试、文档。你所做的事情是团队中其他人没有的。花一些时间向整个团队介绍为什么你认为这些事情很重要。这些不是你可以通过读书或参加黑客马拉松可以学习到的东西。他们是通过多年的经验和反复试验中学到的教训。分享这些知识,它也会在你自己的脑海中成长。不要只告诉他们道理。分享你的故事和经验。这就是你一直以来积累的价值。

变强,或者回家

回到原来的话题,更强的工程师对满足一两个服务将不满意。他们会考虑大局。他们系统的架构。应该存在哪些服务,依赖项是干净的还是应该重构。由于功能欠佳的代码维护和对技术债务的不健康接受,功能是合理分配还是成为Rube Goldberg机器。有人将此阶段称为“架构师”。我不喜欢这个标题,因为我个人认为每个工程师有时都应该戴上架构师的帽子。我认为,无论谁设计系统的顶级体系结构,都应该积极参与该系统的构建和实施。

无论如何,此级别不需要专注于编码的细节。实际上,这种关注可能适得其反。当架构师告诉他们如何实现一些高级设计的细节时,例如他们是刚毕业的大学毕业生,别嘲笑他们。如果你的脚步变慢了,请继续向上。你的大脑已经饱和了(这就是为什么很难在其中填充更多知识)的原因,但这是一种资产,而不是一种责任。这意味着你需要将获得的所有知识投入工作。希望你一直关注并吸收了系统的高级体系结构。希望你可以确定其优势和劣势,并指导团队进行重构或将来进行改进以产生最大的价值。如果你可以利用积累的知识来在更高层次上工作,那么你会发现,通过阅读StackOverflow或最新的编程语言宣言,你已经学到了一些不容易掌握的知识。

当你开始职业生涯时,您必须专注于软件工程的策略。一旦掌握了策略,就该采取策略。当然,许多工程师处于高级职位,只是选择工作/生活平衡,使他们能够专注于他们真正关心的事情,同时继续使用代码来支付账单。如果使你满意,此策略也没有错。

话虽这么说,像架构师这样的职位是政治性的,与隐藏在角落里的处理需求相比,确实涉及更多的人际互动。但是通常,你可以控制这在多大程度上是必要的,并通过弄清楚如何在避免冲突的情况下提供价值来塑造自己的命运。有时这可能意味着放弃竞争对手愿意与你抗衡的想法。如果你退缩而不是站稳脚跟,则可以避免不愉快的互动,但是你也将失去一些直立的立场,除非你可以通过在无争议的领域进行真正出色的工作来弥补这一点。此外,架构师不能仅仅忽略新技术趋势。你仍然需要睁大眼睛,让自己了解最新的框架,库,语言和趋势。你只是不需要沉迷于它们的细节。你需要学习足够的知识,以了解它们的优缺点:看到它们所做出的取舍。最终,您了解到在阳光下没有什么新鲜事,并且工程学中的一切都归结为一系列不同的取舍。随着技术领域的变化,某些产品比其他产品具有更好的价值,你需要看到并认识到这一点。但是,没有绝对的“更好”和“更差”。这与你现在拥有的以及即将出现的一切有关。

总结

归根结底,您的职业就是您的职业。 不多也不少。 多一些或少一些编码,具体取决于你可以如何并希望如何为团队和公司带来价值。 弄清你的个人长处和兴趣所在,并专注于利用这些优势,而不是试图使自己适应人力资源和管理层所喜欢应用到机器齿轮上的小螺丝。 为你想去的地方写理想的职位描述,去参与 一种可以最大程度发挥你的价值的产品。 然后,通过将更多的时间花在重要的事情上,而将更少的时间花在无关紧要的事情上,努力将自己的职位变成这份工作。 你不需要权限即可执行此操作。 你只需要使其工作即可。

最后分享一分提升Android学习路线

如何提升

我自己做Android开发已经是第5个年头了,在毕业后的第二年,有幸加入到字节跳动这个大家庭。在字节的4年,见证了太多人的来来去去,印象很深一个同事,跳槽阿里薪资直接double,但也看到很多人镀着“大厂”的金四处碰壁,终究还是倒在了技术上!

我自己或许也算是个成功的例子,在4年的时间里从1-1做到了2-2,当然,这背后的“辛酸泪”就留到日后再说。总的来说,归功于自己不断地学习,复盘总结,提升技术!以下分享一下我4年来具体的学习路线及笔记文档,希望能帮助到有心提升技术的朋友!

  • 架构师筑基必备技能

目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

知识要点:

1、深入理解Java泛型

2、注解深入浅出

3、并发编程

4、数据传输与序列化

5、Java虚拟机原理

6、高效IO

  • 设计思想解读开源框架

随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。

所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。

知识要点:

**1、热修复设计

2、插件化框架设计

3、组件化框架设计

4、图片加载框架

5、网络访问框架设计

6、RXJava响应式编程框架设计**

  • 360°全方位性能调优

在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。

另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。

1、设计思想与代码质量优化

2、程序性能优化

  • 启动速度与执行效率优化
  • 布局检测与优化
  • 内存优化
  • 耗电优化
  • 网络传输与数据储存优化
  • APK大小优化

3、开发效率优化

  • 分布式版本控制系统Git
  • 自动化构建系统Gradle

4、项目实战

  • 启动速度
  • 流畅度
  • 抖音在APK包大小资源优化的实践
  • 优酷响应式布局技术全解析
  • 网络优化
  • 手机淘宝双十一性能优化项目揭秘
  • 高德APP全链路源码依赖分析
  • 彻底干掉OOM的实战经验分享
  • 微信Android终端内存优化实践

360°全方位性能调优

  • Android框架体系架构

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:

**1、高级UI晋升

2、Android内核组件

3、大型项目必备IPC

4、数据持久与序列化

5、Framework内核解析**

  • NDK模块开发(音视频系列)

NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。

在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。

本篇知识要点:

**1、NDK开发之C/C++入门

2、JNI模块开发

3、Linux编程

4、底层图片处理

5、音视频开发

6、机器学习**

  • Flutter学习进阶

2019 年无疑是 Flutter 技术如火如荼发展的一年。

每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。

本篇知识要点:

**1、Flutter跨平台开发概述

2、Windows中Flutter开发环境搭建

最后

这里我特地整理了一份《Android开发核心知识点笔记》,里面就包含了自定义View相关的内容

除了这份笔记,还给大家分享 Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。

分享上面这些资源,希望可以帮助到大家提升进阶,如果你觉得还算有用的话,不妨把它们推荐给你的朋友~

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

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

View相关的内容

[外链图片转存中…(img-Wf6CVlop-1715465789543)]

除了这份笔记,还给大家分享 Android学习PDF+架构视频+面试文档+源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。

[外链图片转存中…(img-6zU0nrDf-1715465789543)]

分享上面这些资源,希望可以帮助到大家提升进阶,如果你觉得还算有用的话,不妨把它们推荐给你的朋友~

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

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值