作为一名干了十年Android开发的过来人,给后辈的一点建议

重视基础课程,深入学习一两门语言和技术,理解透彻了,以后学习别的新技术自然触类旁通。没事看看就行,别去跟风凑热闹。你上的是大学,不是技能速成培训班。

总结一句, 码农喜欢说颠覆 喜欢说取代 更喜欢扯布道者。天天喊着新技术。程序员专注基础能力,谈业界影响,说贡献,谈价值。

二、短期不要高估自己,长期不要低估自己

绝大多数人都会犯的错误就是“短期高估自己,长期低估自己”。除非你天资聪慧,否则别想着大一就捣鼓出什么牛逼程序来一鸣惊人。

学编程的过程会经历数个瓶颈期,中间你也许会数次感到万分绝望,甚至开始怀疑人生。但你要相信,只要坚持写下去,瓶颈总会突破,成为一个超越平均水准的职业程序员是没有什么大问题的。

毕业三年拿到15到20k 的人不少,不代表你牛逼,因为行业曲线就这样。但是你想6年拿60k 确实没几个人,毕竟50w年薪是大部人的天花板,所以也别灰心 。

三、少说废话,多写代码

废话有很多种,程序员届最多的大概就是整理哪个语言/框架/平台/技术好,准程序员则喜欢问,我是不是应该学Java Python php……学了是不是有用之类。

我学习什么技术好?技术讨论并不完全无意义,但在你打好计算机基础、数据结构,熟练掌握至少一门语言、开发过一个能看的项目之前,这些讨论对你来说就是浪费时间的废话,而不是今天跟风学这个,明天又听人说那个好。不要等毕业的时候说出XX技术学校没教过,所以我不会这种话。

有这时间多写点代码,刷刷算法题,找点项目做做,找不到就从自己日常身边找点需求去用代码实现。

不要说你觉得没有什么可写的,如果是这样,那你要反思下自己适不适合编程这条路。

我能告诉你的是 接下来几年内不会算法是不行的。不要说我进去公司用不到这些话 如果你拒绝学 那没必要做程序员了。

华为 ,头条面试对算法要求越来越严格 ,或许几年后全民算法。 不代表我本人对算法有什么兴趣,只是是市场需要。

四、有危机感,但不要失去信仰

王小波在《黄金时代》里写道,“那一天我二十一岁,在我一生的黄金时代。我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云。后来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消失,最后变得像挨了锤的牛一样。可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。”

随着年龄增加,随着每年面试境况的逐渐下行,很多同行越来越怀疑“努力”的价值,也渐渐能理解年轻时听到的那句话:“所谓悲剧的人生,并不仅仅在于被不幸击中,更在于这种不幸的不可避免性”,而“中年危机”就是这样一个不可避免的人生悲剧,就绝大多数人来说,无论如何挣扎,都逃无可逃。只不过我们想的太过悲观罢了。

五、做好技术储备

职业现状我想大家心里也清楚,没办法变改职业,就只能想办法改变自己。自我审视,持续学习,做好规划,以10~20年的职业生涯为基础,未雨绸缪。不要等到40岁还在到处投简历面试,家里等着米下锅,那就太被动了。

做为一名Android开发者,我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

1.2020大厂面试高频知识点

一、图片

二、网络和安全机制

三、数据库

四、插件化、模块化、组件化、热修复、增量更新、Gradle

五、架构设计和设计模式

六、性能优化

七、Android Framework

八、Android优秀三方库源码

2.Jetpack架构组件从入门到精通
  • Android Jetpack - Navigation

  • Android Jetpack - Data Binding

  • Android Jetpack - ViewModel & LiveData

  • Android Jetpack - Room

  • Android Jetpack - Paging

  • Android Jetpack - WorkManger

  • Android Jetpack架构组件之Lifecycle

  • Android Jetpack Compose 最全上手指南

3.Framework精编内核解析

主要内容包含:

  • 深入解析Binder

  • 深入解析Handler

  • Dalvik VM 进程系统

  • 深入解析 WMS

  • PackagerManagerService

4.Kotlin强化实战(附Demo)

第一章 Kotlin入门教程

写在最后

本次我的分享也接近尾声了,感谢你们在百忙中花上一下午来这里聆听我的宣讲,希望在接下来的日子,我们共同成长,一起进步!!!

最后放上一个大概的Android学习方向及思路(详细的内容太多了~),提供给大家:

对于程序员来说,要学习的知识内容、技术有太多太多,这里就先放上一部分,其他的内容有机会在后面的文章向大家呈现出来,不过我自己所有的学习资料都整理成了一个文档,一直在不断学习,希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!

Android架构师之路很漫长,一起共勉吧!

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

还在满足于现状内心在窃喜!希望读到这的您能点个小赞和关注下我,以后还会更新技术干货,谢谢您的支持!**

Android架构师之路很漫长,一起共勉吧!

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

[外链图片转存中…(img-VDEdELgr-1720122398392)]

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对你的问题,我来回答一下。 1. 根据指定记录的id,查询该记录关联的所有祖先记录,并按层级返回祖先记录name: 这个问题可以通过 MySQL 的递归查询来实现。假设我们有一个表`my_table`,它的结构如下: ``` id | parent_id | name -------------------------- 1 | null | A 2 | 1 | B 3 | 2 | C 4 | 3 | D ``` 我们现在要查询 id 为 4 的记录的所有祖先记录的 name,并按层级返回。可以使用以下 SQL 语句: ``` WITH RECURSIVE cte AS ( SELECT id, parent_id, name, 1 AS level FROM my_table WHERE id = 4 UNION ALL SELECT t.id, t.parent_id, t.name, cte.level + 1 FROM my_table t JOIN cte ON t.id = cte.parent_id ) SELECT name FROM cte ORDER BY level DESC; ``` 这个 SQL 语句使用了 MySQL 的递归查询(也称为递归公共表表达式)。首先,我们在 CTE(WITH 子句)中查询出 id 为 4 的记录,并将它的 level 设为 1。然后,我们将这个记录与它的 parent 记录进行连接,使用 UNION ALL 将结果合并。这里使用了 cte 表达式来表示递归查询的结果。最后,我们从 cte 中选取祖先记录的 name,并按照 level 降序排序,即从祖先到自己的顺序返回祖先记录的 name。 2. 根据指定 parent_id,查询其关联的的所有后辈记录id: 这个问题可以使用简单的递归查询来实现。假设我们有一个表`my_table`,它的结构如下: ``` id | parent_id | name -------------------------- 1 | null | A 2 | 1 | B 3 | 2 | C 4 | 3 | D ``` 我们现在要查询 parent_id 为 2 的记录的所有后辈记录的 id。可以使用以下 SQL 语句: ``` WITH RECURSIVE cte AS ( SELECT id FROM my_table WHERE parent_id = 2 UNION ALL SELECT t.id FROM my_table t JOIN cte ON t.parent_id = cte.id ) SELECT id FROM cte; ``` 这个 SQL 语句也使用了 MySQL 的递归查询。首先,我们在 CTE(WITH 子句)中查询出 parent_id 为 2 的记录的 id。然后,我们将这些记录与它们的子记录进行连接,使用 UNION ALL 将结果合并。这里也使用了 cte 表达式来表示递归查询的结果。最后,我们从 cte 中选取所有记录的 id,即为后辈记录的 id。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值