记一位非科班Android程序员的进阶之路-程序员宅基地

过往的点点滴滴,

会在你未来的生命里,

以某种方式串联起来,

让你远离平凡,变得与众不同。

---乔布斯


坐标:杭州

现任职位:BAT某公司资深开发工程师

毕业院校:普通二本(化工专业)


13年,我从一个二本学院的化学专业毕业。许多同学毕业后都是在制药工厂上班,朝九晚六,拿着微薄的工资。那个时候的自己很迷茫,总觉得未来不该如此淡然无味。一波波得招聘信息里面,最热门也最诱人的是互联网/IT领域。


顺势而为勇者胜。当机立断,我决定转战互联网行业。


不过,那时的我仅仅会一些C语言,投了几十份简历都石沉大海——就我这专业,就我这经验,想要很好的offer应该有点天方夜谭吧,现实也的确给了我响亮的一巴掌。


不服输,我赌上了所有的勇气立志从头开始全面学习IT互联网相关的知识。


生活总是会眷顾有准备的人,不久我还是拿到了一个offer,虽然公司不大,但总算也是对自己努力的回报。


Part.1


对基础原理不断挖掘


进入公司,我的职位是Linux应用开发工程师,做App网络传输模块,本质上就是把本地的数据通过socket传输到服务端。用到的技术是C语言,网络编程,多线程编程。


那时是最痛苦的几个月,因为非计算机出生,很多东西都不会,经常程序段错误,都不能定位到问题代码。


当时处于试用期间,秉承着不成功则成仁的心态开始恶补相关的基础知识以及代码规范。那时网络上没有现成的视频资料,艰难地把计算机专业的书籍自学了一遍。例如,数据结构与算法,计算机网络,操作系统原理,计算机体系结构……


640?wx_fmt=png


熬过了试用期,产品也上线了,第一次体会到成就感爆棚的感觉。


现在回头看,经验就5个字:原理很重要。很多看起来没用的原理,其实是重要基础。比如:


你能讲清楚函数的调用过程吗?是怎么调用的?怎么返回的?参数是怎么传递的?函数的内存布局是怎么样的?


如果了解这些原理,就可以快速使用各种开源库。可以更快地熟悉各种中间件sdk的使用方法。刚入行技术不求多,熟练掌握一项技术,能把原理讲清楚,拿得出手才有基本竞争力。


Part.2


专注方向

了解技术全貌,做合格架构师


基础仅仅是开始,技术要有应用场景,转化为产品才能最大化地产出价值。


后来,我自学了Android开发,比如UI开发,网络开发。当时也是夜郎自大得以为UI开发就是Android的全部。投递了很多大厂的Android岗位,却没有收到面试邀请。回过头来再做分析岗位需求时,才发现自己技术栈背景确实不匹配,就算进了面试,好多问题也都答不上。比如:


1. 动态化混合渲染技术架构是怎么样?怎么提高开发效能?

2. 产品的DAU有多少,如何保证稳定性高且可用的?

3. 如何跟踪用户行为,利用大数据完善产品功能,降低运营成本?


这些问题让我意识到,语言、UI和原理只是程序员的基本技能而已。


想要进一步发展,不光只考虑个人技术,必须在整个产品生命周期、开发、运维、能效上有合理的架构,进而满足行业的发展需求。你不光需要考虑业务需求如何实现,更多的重心需要关注开发提效,大团队并行开发协作,大流量稳定性保障。


640?wx_fmt=jpeg

(文末扫码获取能力图谱)


学习Weex技术,Rn技术后,颠覆了我对移动APP开发的认识。如果写native页面,可能一天一个页面,Android iOS就需要2个人日,Weex是跨平台渲染,一份代码可以在Android iOS两个平台使用。那开发一个页面就只需要原来一半的资源。通过新技术合理架构提升研发效能,动态化技术提升发布成本。


无论程序多么完美,Bug永远存在。对于线上故障,如果不能提前预防以及快速解决,损失可能不堪设想。所以线上运维,异常监控,性能监控,数据埋点是优秀架构师的必备技能。


自学的过程是痛苦的,移动端的技术日新月异,很多前沿的技术还没有体系化的书籍,只能在论坛,博客等看零碎的文章,学习效率比较慢。要想高效的学习一线技术,网络课程是一种新的选择。有老司机指导方向,避免走弯路,事半功倍。


Part.3


沉淀经验

适应发展,做技术的领头羊


有良好的技术基础,学会了行业流行的框架,可能只是获得了进入大厂的敲门砖。多少人努力进入大厂,最终默默无闻地进去,悄无声息地出来。没错,平台很重要,但更重要的是你能在这个平台上发展到什么程度。


这个日异月新的时代,不光需要Follow一线技术,更重要的是要引领时代,才能在技术快速发展的阶段不被淘汰,或者才能在下一次技术革命中抓住机会。


如果仅仅只掌握Android本身的技术是不够的,比如说在iot时代有这样一个需求: 做一个APP完成智能硬件的一键WiFi配网。这个就需要对TCP/IP协议栈,WiFi加密,网络抓包等有深入的理解。


所以最重要的是突破当前岗位需求的设限,对各种技术融会贯通,创造新的技术框架,做技术的领头羊,适应时代发展。


技术人成长不能再单打独斗,要学会与人交流,学会将别人的知识为自己所用。如果你依然觉得有些茫然,不如跟有多年Android开发经验的资深工程师聊一聊。


1月22日-1月28日,网易云课堂将会开展为期一周的Android进阶免费系列直播课。


网易资深工程师带你突破Android开发技术瓶颈,向你传道UI/NDK开发 · 性能优化 · 架构设计 · Flutter开发,每天2小时,密集输入Android开发相关知识及经验,帮你快速实现技术和职业成长上的突破。


福利1  免费直播课程


网易云课堂Android进阶免费系列直播课

适听人群:Android初、中级开发工程师


1.22-1.28  连续7天每晚8点准时直播

1月22日:不用覆盖安装,静默修复bug。安卓顶尖技术:热修复

1月23日:事件分发机制完全解析,带你从源码的角度彻底理解

1月24日:饿了么跨进程通信架构分析-带你手写最优异的进程通信架构

1月25日:Android人工智能离你并不遥远,OpenCV实现人脸识别

1月26日:安卓组件间通信非常麻烦?事件总线框架让你不再纠结

1月27日:RecyclerView你还没触及的架构秘密, 今天带你从零手写RecyclerView

1月28日:安卓黑科技:图片终极压缩,支持自定义配置、不失真和批量处理


报名方式:

扫描下方二维码添加助教小姐姐微信,

通过审核后即可免费报名

640?wx_fmt=png

640?wx_fmt=png


福利2  Android开发资料包



640?wx_fmt=png


想要参与Android进阶免费系列直播课

获取Android开发工程师资料包

扫描下方二维码,

添加网易云课堂Android课程助教小姐姐


网易云课堂Android进阶免费系列直播课报名通道

640?wx_fmt=png

640?wx_fmt=png

免费课程,名额有限,先到先得~~2_06.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/c10WTiybQ1Ye3/article/details/86635303

智能推荐

C#工具箱的几个基本控件的使用_c工具箱控件作用-程序员宅基地

文章浏览阅读9.5k次,点赞2次,收藏24次。一、不管是使用哪个控件,我们把它拖到页面上后首先要做的就是修改其的ID,一般使用控件的缩写格式可以是驼峰法,有Text的也要修改,一般要改成和其功能有关,每一个控件都有很多属性,使用前可以逐个点击看下方的功能介绍了解一下二、具体应用(1)Checkbox控件和CheckboxList控件 例如,我们要使用Checkbox和CheckboxList这两个主要控件相结合来实现一个还能全选的功_c工具箱控件作用

Unity URP高度雾效果Shader_unityurp屏幕后处理效果全局雾-程序员宅基地

文章浏览阅读4k次。实现原理见这篇文章Unity Shader-深度相关知识总结与效果实现(LinearDepth,Reverse Z,世界坐标重建,软粒子,高度雾,运动模糊,扫描线效果)_puppet_master的专栏-程序员宅基地_shader深度核心Shader代码Shader "Universal Render Pipeline/Dejavu/HeightFog"{ Properties { _MainTex("Base (RGB)", 2D) = "white" ._unityurp屏幕后处理效果全局雾

C/C++:个人收支系统实现_收入支出是类型 编程定义字段-程序员宅基地

文章浏览阅读7.5k次,点赞8次,收藏89次。昨天朋友委托我做一个基于C++的课程小设计,题目如下:设计一个简单的个人收支管理系统,至少包括如下功能:1、逐笔输入个人收入或支出的明细,写入到文件保存,可不断进行输入和追加。输入的明细数据包括:收支明细类别编码、发生日期、金额、备注。1)为了简化用户的输入,类别编码由字母和数字构成:“a”表示收入、“b”表示支出,数字是大类下的编号。类别编码及类别名称的对应由自己定义、组织在程序中并输出展示。比如 a1 表示收入类的生活费,b1 表示支出类的学习,编号依次递增,类别的数量和名称根据日常需要自_收入支出是类型 编程定义字段

从【简单线性回归SLR】开始_slr模型和str模型-程序员宅基地

文章浏览阅读132次。注:我的笔记是markdown,细小的公式都用了截图,虽然尝试了借用git来自动存图片,但是体验感很不好,所以全部就直接把笔记截图上传了。_slr模型和str模型

【leetcode】59. 螺旋矩阵 II_给定一个正整数n,生成一个包含1到n 2 所有元素,且元素按顺时针顺序螺旋排列的正方-程序员宅基地

文章浏览阅读116次。给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]思路:这是《算法竞赛 入门经典》里的例题:蛇形填数,方法十分套路。定义行row,列col指定当前位置,定义count指定此时的数量。最外层的循环条件为count<pow(n,2)。内层有四个并列的循环,分别是从左向右,从上至下,从右到左,从下到上。每完成一次操作后count++并将此..._给定一个正整数n,生成一个包含1到n 2 所有元素,且元素按顺时针顺序螺旋排列的正方

webView js与java互调-程序员宅基地

文章浏览阅读192次。js调用javamWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");这样就把java对象DemoJavaScriptInterface生成了js的demo对象,直接window.demo调用被js调用的java对象方法需手动加上@JavascriptInterface。调用很快40-50ms,返回值尽..._webview 调用 java 协议 原理

随便推点

An unexpected connection driver error occured-程序员宅基地

文章浏览阅读8.3k次。项目启动An unexpected connection driver error occured 报错原因:项目中的 virtual-host在rabbitmq中未配置解决:在rabbitmq中的admin模块下相应用户里面添加 virtual host..._an unexpected connection driver error occured

微信小程序基础学习(WXSS+组件)_text-stroke 小程序-程序员宅基地

文章浏览阅读4.1k次,点赞5次,收藏47次。WXSS (WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。WXSS 用来决定 WXML 的组件应该怎么显示。与 CSS 相比,WXSS 扩展的特性有:单位尺寸和样式导入_text-stroke 小程序

jQuery datatable 分页_jq datatable 分页-程序员宅基地

文章浏览阅读4.3k次。1、前台以userInfo.js为例 var tableInit 的aLengthMenu属性设置分页 [[2,15,15, 20, -1] "iDisplayLength" : 2, 设置值与[[2,15,15, 20, -1] 第一个值一致 "bStateSave":true,设置为true,这样可以防止假如已经访问到第5页,ctrl+F5 后又回到第一 页 "sAjaxS_jq datatable 分页

【抽象代数概念速查】magic square-幻方_magic square线性代数-程序员宅基地

文章浏览阅读240次。如果对角线和反对角线的数加和也都等于magic number_magic square线性代数

CGLIB原理及实现机制学习_cglib methoddelegate-程序员宅基地

文章浏览阅读330次。什么是CGLIBCGLIB(Code Generator Library)是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比较受欢迎的ORM框架,同样使用CGLIB来代理单端(多对一和一对一)关联(延迟提取集合使用的另一种机制)。为什么使用CGLIBCGLIB代理主要通过对字节码的操作,为对象引入间接级别,以控制对象的访问。我们知道Java中有一个动态代理也是做这个事情的,那我们为什么不直接使用Java动态_cglib methoddelegate

感恩过去,憧憬未来 | 数图2023年成长回顾-程序员宅基地

文章浏览阅读349次,点赞5次,收藏7次。龙腾千里,不忘初心,展望2024年,我们将继续秉持以客户为中心的服务理念,进一步提升产品质量,加大技术创新力度,以满足市场的不断变化和客户的需求,致力于为合作客户企业达成降本增效的良好成果。我们坚信,在全体员工的共同努力下,我们将在新的一年里取得更加丰硕的成果,为公司的未来发展奠定更加坚实的基础,也为我们在零售业和服务领域的广阔前景描绘更加美好的蓝图。数图在2023年取得了丰硕的成果,不仅在合作企业、荣誉奖项、员工规模等方面有了显著提升,还在质量管理、技术创新等方面展现了卓越的实力。岁月不居,时节如流。

推荐文章

热门文章

相关标签