美文网首页Android技术知识Android开发经验谈Android开发
“我天天curd,怎么才能成长?” 老板:别长了,你这样挺好!

“我天天curd,怎么才能成长?” 老板:别长了,你这样挺好!

作者: 字节跳不动 | 来源:发表于2021-02-25 20:30 被阅读0次

    你要真是天天curd,怎么可能会有成长?怎么滴,怕成长起来了,老板没钱给你涨工资呀?那您可真是“赤胆忠心”。每一个IT公司可能都缺不了一个天天curd的“人才”,但愿那个人不会永远都是你!(想啥呢,能撑过35岁吗?还有永远)

    起因

    “天天在那curd,能有啥出息”

    “你就是一个curd boy”

    “就你叫curder啊”

    “你不写代码,你只是代码的搬运工”

    上面几段话,程序员是不是经常听到或者看到。这几句话说明了什么?

    • 高度概括能力:用几个单词组合,就概括了多数程序员日常的工作情况。
    • 自嘲:自嘲有时是一种乐观的品质,用一种调侃的方式来看待自身情况。
    • 乐观:上面说了,自嘲是乐观表现之一,但这种乐观中带着些许无奈。

    所以说,程序员还是很可爱的一群人儿。

    除了“自嘲”外,我们是不是应该多想一想,是不是应该多分析一下原因,是不是要找出一些方法,来改善“天天curd”这种状况。


    分析原因

    没有意识到

    自己刚开始做的时候,可能没有意识到这种情况的存在,久而久之,你才慢慢意识到了这种情况的存在。但是,时间已经慢慢流逝了。你要尽早意识到这种情况。

    天天加班

    每天任务都很多,老板还爱催时间,导致天天加班到很晚,回到家就很累,只想上床睡觉,根本没有心思想这些,哪有时间去改进。从而就造成一个死循环,没有时间琢磨,改进程序,每天继续重复写代码,回家睡觉。明天,又重复同样的事情。

    业务代码

    “我就是底层天天写业务代码的,不curd我还能干啥。” 这里不要把写业务代码和curd相混淆了,写业务代码并没有什么不妥,它是创造价值的地方。多数公司都是靠程序员写出的业务代码形成的功能来服务客户赚钱。我所说的是不要天天curd,自己要动脑袋想一想,能否有更好的方法改进代码写法,提高产出的效率。这是你创造价值的一种方法。

    没有方法

    有的人自己知晓这种情况的存在,苦于没有找到好的解决方法,无法打破这种魔咒。下面我说出一些方法,欢迎大家留言讨论。集思广益,共同探讨,找到更多,更好的解决之道。

    解决方法

    前1、2两种情况(没有意识到、天天加班)

    第一种情况:当然是你要尽快意识到这种情况,不要浪费太多的时间。“你还年轻,还有时间” 这是一句安慰的话,不要轻信,时间是用一天就少一天。熟练了curd之后,就要自己琢磨向更高层次进发了。

    第二种情况:就要评估下,是自己工作效率问题,导致加班到很晚,还是分配的任务确实过多,如果是任务确实过多,超过了自己负荷,那么就要向领导提出来减少任务,如果不行,那么考虑跳槽到好一点的公司。

    后3、4两种情况(业务代码、没有方法)

    后面2种情况的改进方法,也可以作用于前面2种情况,改进前面2种情况。

    复用

    “复用”的思想。大家在平实的开发中,应该经常会碰到这种思想。比如java语言,“一次编译,到处运行”,这就是一种复用的思想,编译一次之后,可以在多个平台运行代码。

    那我们开发时候能不能用到这个思想,“一次开发,多处运行”。而不要做那种ctrl+c,ctrl+v的选手,“一次开发,到处copy”,这样到处copy,重复代码多,那么代码维护起来肯定困难,如果想修改,就要修改多处重复的代码。有什么改进方法?

    能不能更好的抽象复用?经常的这样想一想,促进自己改进,成长。还有一个好方法:去看设计模式的书籍,比如大话设计模式。

    重点:抽象复用,不断改进,促进成长。

    向上

    向上,就是向上思考。找到为什么要写curd?它产生的价值在哪里,有没有可以改进的地方?你做的这块越来越好后,上面会给你更大的责任,让你负责更多任务,如果你做的继续超出预期,那么你很有可能,以后会负责更多,拥有更大的抉择权,包括技术的选择。这时你也许会脱离curd初级阶段,进入程序设计,研发管理的进阶阶段。

    有的放矢

    有的放矢就是要找到自己的那个“的”,也就是目标。那怎么找到自己的目标?

    很多人告诉你,要结合自己优势、兴趣等,然后在纸上列出一个清单,在根据自己列出的清单去寻找自己的目标。

    还有的告诉你,列出一大推要学习内容,从java基础到Android进阶。这种方式不是不好,是学习的内容太多,而学习是一件反人性的事情,太多就容易累,也很难确定自己的阶段性操作目标。

    我这里给一个简单可操作的方法:找自己心仪的公司。怎么说?就是自己心里想一想,盘算盘算,自己心仪的1到2家公司是哪2家,不要太多,太多精力会分散。找到了之后,去官方网站或者招聘网站,看它的招聘要求,根据上面的岗位要求,找出自己需要学习的内容,列出一个清单,制定学习计划,然后执行计划。这时才是像上面所说,找出基础到进阶等需要学习的内容。要有目标感的学习,才是好的方法。

    这样就可以了吗?不一定!你按计划学习了2到3个月之后,去其他公司面试下,检验一下学习成果,然后根据面试结果,在回来调整学习计划。继续学习,学习半年后,这时可以给心仪公司投简历,或者找人内推,再次检验学习的成果。

    如果面试不上心仪公司怎么办?不要怕,一次不行,接着调整学习计划,继续学习。很多情况下,不是一次就能成功,那就多试几次。要有屡败屡战的精神。

    有的人说,简历投递有时间限制?那你可以投其他部门,还可以说明情况找人帮忙内推。总会有办法的。再一个面试前,可以看看其他同学的面经,学习学习,不打无准备的仗。还有,如果真的面不上,可以退而求其次,去找一个二级公司,把这家公司当作一个跳板,然后再去努力学习,来年再战。


    深入方法

    说实话,我自己是做Android开发的,从一开始每天的curd再到现在成为一名阿里p7工程师,我花了整整4年的时间。我自我觉得自己也算是那种不是很开窍的人,从10多个人的创业公司到如今的阿里,也没有别的方法,就是不断的尝试,试错,复盘,改变。争取掉过的坑,不要再掉进第二次就算是一种成功。

    一次次的总结复盘,也是必不可少的。在我“进化”的4年里,我也整理归纳了一套我认为适用于进阶Android高级工程师的一套学习体系路线及笔记。如果你已经决心改变,这些或许能给你一些思路和帮助!

    • 架构师筑基必备技能

    目前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内核解析

    Android框架体系架构
    • 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、机器学习

    NDK模块开发
    • Flutter学习进阶

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

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

    本篇知识要点:
    1、Flutter跨平台开发概述
    2、Windows中Flutter开发环境搭建
    3、编写你的第一个Flutter APP
    4、Flutter Dart语言系统入门

    ......

    Flutter学习
    • 微信小程序开发

    微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。

    本篇知识要点:
    1、小程序概述及入门
    2、小程序UI开发
    3、API操作
    4、购物商场项目实战

    微信小程序开发
    • Android相关源码解读
      只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
    Android相关源码解读
    Android相关源码解读部分内容

    由于篇幅原因,需要以上完整学习笔记pdf如有需要,可以 点赞+评论 支持下我,然后点击这里免费自取

    相关文章

      网友评论

        本文标题:“我天天curd,怎么才能成长?” 老板:别长了,你这样挺好!

        本文链接:https://www.haomeiwen.com/subject/dwkkfltx.html