热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

高考失利落榜,7年Android开发现已年薪60w,我的逆袭之路想说给你听

今天是高考的日子,首先祝愿所有高考学子都能金榜题名、旗开得胜。大学的目标这篇文章,想讲讲我的一些经历故事,如果你想入行编程、或者在一两年编程经验的迷茫时期。相信这篇文章可以给你带来帮助。回想7年前,我



高考失利落榜,7年Android开发现已年薪60w,我的逆袭之路想说给你听



今天是高考的日子,首先祝愿所有高考学子都能金榜题名、旗开得胜。


大学的目标

这篇文章,想讲讲我的一些经历故事,如果你想入行编程、或者在一两年编程经验的迷茫时期。相信这篇文章可以给你带来帮助。

回想7年前,我高考发挥失常,最后只能上了个普通二本,查到分数的那天,天是灰蒙蒙的,就像是我看不见的未来。

后来大学学的是当下比较吃香的编程专业。其实大学期间并没有什么将前后端和移动端分的特别清楚,开的课每个方向都是学的,C/C++、HTML/HTML5、JSP、SqlServer/MySQL、数据结构与算法、Java开发、Android 开发、微信小程序开发、框架应用。这些都是大学必开课程。

那么重点来了,在刚入大学时期,在如此庞大的编程世界里,面对这么多不同方向的编程语言。记住一句话:一定要有自己专精的一门语言,或者说是一个方向。这是在你大学时期最重要的任务

下面进行分析,为什么宁愿放弃一两门学科,都要把一门语言底子学扎实、学精通?

这是编程行业的性质所决定的。以我个人为例,我在大学主修的是Android移动应用端开发。并不是学校的主修辅修,在学校没有人会告诉你:大学学编程,一定要偏科。可以毫不夸张的说,在我的二本院校里,我的同学中,至少80%的人,出了校门根本找不到工作。

不要以为编程行业吃香,工资高,市场需求大,学了编程专业就可以轻松找到工作,轻松拿高薪。那我只好泼你一盆冷水,告诉你,不可能,完全瞎j8扯淡。

市场需求虽说没有前几年互联网爆发期那么大,但依旧是很缺编程人才的。注意,我说的是人才。何为人才?就是在某一领域有着显著成就,或者在所有领域都有所涉足的人。方为编程行业的人才。

你能在大学三年时间成为一个市场需要的人才吗?

你可以。你可以成为我所说人才的前者,也就是,在某一领域有所精通的人。本科三年在校时间,足够让你成长为满足市场工作需求的人才。但你绝对成为不了后者,这里不多做论述,等你了解到编程世界到底有多庞大,自然也就懂了。




高考失利落榜,7年Android开发现已年薪60w,我的逆袭之路想说给你听



下面讲不同工作年限对应的学习方法


以下思路按照我个人所学Android移动应用开发为例。



工作1-3年:技术积累阶段

按照我上诉的思路来执行的话,我相信你可以在大学毕业后找到一份对口的offer。年薪应该是8w-20w不等

假设本科23岁毕业,那么工作的前3年对你来说就是打基础的阶段。在这3年时间里面,你要积累足够的技术底子,打磨自己的技术实力,成为某一个技术细分领域的牛人。

我自己依然记得当年这样的场景:蹲在出租房里面每晚每晚的啃技术文档,在公司连续打地铺干通宵的场景。

只有真正经历过贫穷,经历过苦难的人,才会越早就懂得努力才自己这一生唯一的出路和唯一的机会。忘了谁说的了,大概就是这个理。

学习方法

这个阶段我建议的学习方法是:多敲代码、学会用百度

程序员入岗初期都要有的,必经之路,踩坑期。

你会遇到各种各样的bug,也会有学校没有学过的知识。你会无助,抓脑。都是正常的。要知道,每个人都有自己的工作,别人花时间教你,就得花同样的加班时间来完成自己的工作。没有人有那个义务,帮你debug,教你怎么工作。所以,除非实在找不到问题所在了,再去找老人帮你解决,而且,要虚心,也要记得感恩。

总结一下,初级程序员必备技能,学会用百度,学会自己解决问题,多敲代码,基础要扎实。


4-6年:形成思维方法论和知识体系的阶段

按照我的思路走,相信这个时候你已经成功升职为一名中级程序员了。你的年薪应该是20w-40w

当你积累足够的技术实力,例如超过10万行代码以后,你应该形成了自己的思维方法论和自己独立的学习技巧,任何新的技术在你眼中都能迅速的看到技术的本质,快速吸收成为你的知识体系的一部分。

你只要前一个阶段打的基础足够牢固,这个阶段你一定会开始蚕食别的领域,这是一定的。逐渐的不再满足于纯技术领域的探索,而是开始探索技术背后的事情:什么技术在什么样的场合能够发挥最大的价值;技术团队应该怎样构建;技术在公司未来的价值?创业公司对技术的需求?支撑技术的产品,怎样学习做产品?支撑产品背后的运营体系是怎样建立的?商业社会对技术、产品、运营等的是怎样的认知,商业社会有什么的特定规律?也许还有更多…

在这个阶段,积累技术对你来说简直是小菜一碟,你更需要磨练的是思考能力,形成自己的思维方法和知识体系,这将是你帮助你一生的武器。

学习方法

这时的你已经不能仅限于自己能解决自己工作中的问题就行了。所以学习方法不能在依托于百度。技术博客,是你的成长阵地。例如掘金、博客园、简书、CSDN、安卓巴士、云栖社区都是很优质的技术平台,你可以在上面和各种大牛交流学习经验技术。在这个阶段,我建议的学习方法有:

1.坚持写技术博客:中级工程师不只是一味的去做事、学习,其实更多的需要对知识的总结与归纳,而写博客是最好的手段,坚持写博客其实就是对你知识体系的回顾与总结。不说别的,就说一些IT界业内的大牛一般都有自己的博客,那些博客文章才是你知识沉淀的最好见证。

2.GitHub:在GitHub上参与开源项目,GitHub堪称程序员必备,聚集了全球各个领域的程序员,在上面你可以直接阅读Google、Facebook顶级公司的开源项目,可以一睹顶尖工程师的风采,在这里你绝对打开了另一扇世界大门,你可以阅读大牛源码,并试着贡献自己的代码。GitHub并不仅是一个名片,更是进阶必备神器!

3.阅读Android源码: 理解一些高级概念Java语言进阶了,同样关于Android你也需要进阶,并不能停留在一些基本api的使用上,应该往更深层次的方向去研究,比如activity、view的内部运行机制,比如Android内存优化,比如aidl,比如JNI等,并不仅仅停留在会用,而要通过阅读源码,理解其实现原理。




高考失利落榜,7年Android开发现已年薪60w,我的逆袭之路想说给你听




6-8年:有成熟的职业规划,对未来有清楚的认识

如果你坚持了我上述的思路,相信你已经是一名高工了。你的年薪应该是40w-60w

这个阶段,最关键的是了解自己。知道自己擅长什么,自己的优势在哪里,怎样才能够最大化自己的价值,同时也知道自己有什么重大缺陷。

未来是扬长避短还是不断避免自己的缺陷,这些需要提前想清楚。一旦想清楚,想透了,就剩下行动。你可以选择避开做自己不擅长的事情,不勉强自己,不让自己处于对自己不利的环境。当然,你也可以选择不断补短,把自己的不擅长点变成自己最擅长的。这个需要结合自己的情况来慎重选择,最终看你要走什么样的一条路,是打算做技术专家、管理者、还是技术结合产品,还是创业者。

学习方式:系统学习

为什么我会提系统两个字呢?先说一下新手和专家的区别,大家常常认为新手和专家的区别在于经验上,这样说也不能说是错的。因为确实这个经验是很重要的,但这个经验不是指实施某项技术获得了一个过程和记录,而是指通过实施某项技术促进了思维的改变。

如果思维没有改变,那么一个声称拥有十年经验的开发人员,实际上只是一年的经验重复了九次。

新手往往都不是特别想要学习,也不知道自己的行为是对是错,只是想实现一个立竿见影的目标。如果给新手提供一个与情境无关的规则(或者叫指命)让他们去执行,他们就会变得能干起来。

而专家更关注情境,更关注系统,而且喜欢说“具体情况具体分析”。他们往往更关注事物之间的联系,把自己看做系统的一部份,能分清和认识到系统的边界。

新手往往不把自己看做系统的一部份,所以学习Android开发也变成了一项孤立的事件,学习的模块也变得孤立起来。虽然花时间学习了很多组件或者技巧,但是却没有理清过这些模块或问题之间的关联。

然而,现实中的问题都是不是孤立的,理解系统,学会用系统思维才更有利于你去解决问题。

系统学习Android的资源和方法




高考失利落榜,7年Android开发现已年薪60w,我的逆袭之路想说给你听


Android移动开发架构师必备技能导图

如果你缺一份全套系统的学习资料和方法,我将自己7年的Android开发经验架构师成长学习笔记,整理在了我的石墨文档、以及我的GitHub中,有兴趣的小伙伴可以点击下面入口获取我的一手架构师学习笔记,以及我整理的历年大厂Android开发岗面试真题合集(皆无偿分享)。
通道:【石墨文档】Android架构视频+BATJ面试专题PDF+学习笔记

也可以关注后私信我【学习】,都可以。


总结

架构师这个词,在我大学期间也觉得遥不可及。从来没有想到过自己有一天也会戴上这个头衔。其实,只要按照我上述的思路,按部就班,脚踏实地的不断的学习、进阶,并不难的。只看你有没有这个心罢了。

并不要觉得自己离架构师的路有多少,千里之行始于足下。不要觉得自己的年纪已经成长不到架构师就要到35岁退休了,学习最好的时候,就是现在。

最后,赠与大家一句诗,共勉!


不驰于空想,不骛于虚声。不忘初心,方得始终!




高考失利落榜,7年Android开发现已年薪60w,我的逆袭之路想说给你听







推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了游戏开发中的人工智能技术,包括定性行为和非定性行为的分类。定性行为是指特定且可预测的行为,而非定性行为则具有一定程度的不确定性。其中,追逐算法是定性行为的具体实例。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
author-avatar
相思和怀恋_811_372
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有