我的经历
昨天收到了心仪企业的口头offer, 回首当初什么都不会开始学编程, 到现在恰好五年。 整天在社区晃悠, 看了不少的总结, 在这个时间点, 我也写一份自己的总结吧。
我一直在社区分享, 所以, 这篇总结也是本着一种分享的态度, 希望相比我还年轻的同学们, 可以从中找到一些让自己成长更快的文字。
先介绍下背景:
1. 2013年3月开始学习编程, 目前2020年3月;
2. 2014年6月专业本科毕业;
3. 大学期间, 基本稳拿班级倒数第一, 高考英语49分, 大学英语除了补考没及格过。
接着, 是一份总结:
1. 5年间60%以上的时间, 每天凌晨2-4点睡觉;
2. 为学习编程花费的总时间超过6000小时;
3. 手写了超过50万行代码;
4. 记录了超过100万字学习笔记;
5. 录制了两份视频教程;
6. 翻译了小型技术文档5份以上, 5个php扩展的官方文档, jqueryui官方文档一份, 书籍《php扩展和嵌入式》
7. 供职过4家公司;
8. 获得两次优秀员工;
我想对你们说
1. 不要担心自己没有计算机基础,不用担心自己跟不上。
我刚上大学的时候也很羡慕那些高中就学习了编程的同学,看着他们潇洒流畅地敲击键盘,而自己因为一个小小的循环语句就折腾了半个晚上。但等我毕业了再回头看,其实当时大家都还是在一个水平线上,都很基础,都啥不会,都是从头在学。
2.大学知识不是无用,只是它的重要性要在你工作很多年才后体现出来。
我大学时候因为觉得用不上,不影响解决问题就没有去认真学的算法,以及觉得很难搞懂就没有去搞懂的数据结构,在我工作很多年后仍然还得从头学起,因为很基础,因为常用到。
3.数学很重要,也许这是你最后一次有大把的时间来好好学习数学。
等你参加工作了想回过头来恶补,很难。你的工作不允许,你的家庭不允许,归根结底你的时间不允许。工作是你靠知识赚钱的时候了,没有太多时间留给你学习知识。
4.对程序员来说,学好英语真的很重要。
能否使用英语查阅资料,是区分技术人员水平的重要指示之一。寄希望于“有人迟早会翻译成中文”的人是愚蠢的、是会被淘汰的。而且永远拿着二手资料,你如何把控风向,紧跟潮流?

5. 能大规模商用的技术,都不需要智商,否则这种技术就不可能规模化。
所以准程序员们一定要时刻警醒自己,「会一两门编程语言只是职业的开始」,持续学习,深入学习才是你的出路。
6. 学会使用百度和Google
上面提到的那些你看不懂的东西,在编程领域太常见了。不只是现有的,还包括每年新出现的。很多你的同事、你的老师可能都不了解。但是Google和百度了解,前提是你学好英语,所以不要忘了上面的第四点。
7. 理论基础很重要,入职之后的差距就是这些看上去无用的基础知识拉开的。
数据结构,操作系统原理,PC原理,数据库原理等……这些基础知识决定你在技术上能走多快和走多远。如果你不知道应该学习哪些基础知识,也不知道该如何提升自己的话,下面我会详细说说怎么学习效率高,学习又系统!
8.虽然技术是程序员的根本,因为没有技术你就没有钱。但是也一定要记住,技术并不是你的全部。
因为你的身体你的健康比钱更重要,也因为你很难搞一辈子技术。所以,早点开始健身、早点为你的职业发展做规划。
9.通过技术兼职来接私活赚钱是可行的,但是一定要找靠谱的平台。
系统学习内容
基础篇
技能:
- 基础的组件的使用,熟悉Java基本的语法,Gson,xml数据解析
- 第三方框架的使用,熟悉android的常用API
- 熟悉网络框架或者API的使用,掌握数据库相关知识点
- 熟悉android的四大组件、生命周期
- 熟练掌握界面布局,了解android项目目录的组织架构等等
中级篇
技能:
- 了解android的签名机制(实现原理,具体操作等等),打包机制(多渠道打包,打包流程等等)
- 了解apk安装文件压缩(压缩图片,代码压缩,.so文件压缩等等)
- 事件分发,View绘制流程,webview相关知识点(与Native的交互,性能优化等)
- 熟悉数据库的使用(基本API,第三方ORM框架,ORM框架的实现原理等等)
- java反射原理与简单实践等,activity的启动模式,activity,service,fragment,broadcastreceiver广播生命周期
- 屏幕适配,AIDL与messager的简单实用,自定义组件(自定义View与自定义ViewGroup)
- 动画(补间动画,帧动画,属性动画),通知栏消息,版本新特性等等等等;
高级篇
技能:
- 手动编写框架,设计模式,代码规范,项目进度,时间估算
- 启动流程,性能优化,OOM,没存溢出与泄露,JNI,脚本开发
- activity启动流程,android中的IPC机制(Binder原理),对iOS等其他移动开发现学现用等等
尾声
对于新技术的热爱不仅可以拿来装13,而且可以变成创业的优势exp:朋友是极客学院的CTO,他们两个创始人是国内第一批安卓开发者,写了国内第一本这方面的技术教程,后面围绕着读者衍生出了eoeandorid开发者社区,再演变出了当前的在线技术教育项目极客学院,目前已经超过200万用户,而且获得B轮融资。 所以,谁说技术的热爱不能成为你技术创业过程中的优势呢?
网友评论