我来告诉你:零基础如何成为高级Android开发,入职字节跳动,年薪40万!
同步滚动:开
0基础自学的流程可以分为以下2个部分,基础篇,学习篇。接下来我将结合我自己的经历和一些经验,告诉大家如何体系化的学好Android应用开发。让0基础也能学好Android,年薪百万不是梦!基础篇
1、找系统的学习大纲。
找几家培训教育机构询问,最好是直接一对一咨询老师,咨询完以后不要把老师删了,再想办法获得他们的教学大纲,然后多个大纲一起对比整合。这样可以高效的提升你的系统学习能力。
2、招聘网站实际调研。接下里需要你去一些招聘网站上找一部分岗位招聘详情来进行分析,总结出哪些技术是必须要学习的。也许你会纳闷,为什么已经有了培训机构的大纲却还要去招聘网站调研呢?
一是因为怕你遇到那种三年课程都不更新的不良机构;而是技术的更新迭代很快,基本每半年企业的招聘需求就会有一定的变化。这样做,能够保证你学习的是刚需性技术知识,自学完后能够真正的找到一份入行工作。
3、规划出学习的大纲。面已经把多家培训机构的课程大纲进行了整合,且把企业招聘需求进行了调研,那么接下来就要花时间做一份详细的学习大纲,包括学习时间,学习规划。因为一份好的学习计划能达到事半功倍的效果。
4、接下里就是找课程,分享一些学习技术的免费网站。
1).Codecademy
国外在线学习编程的网站,它为用户提供了一种学习编程的新方式,是最受欢迎的免费编程学习网站之一。基于网络编程教学,手把手帮助用户了解JavaScript的一些基本原理。更重要的是,使用Codecademy学习编程充满了趣味性。Codecademy目前开设的课程有HTML&CSS,JavaScript,jQuery,PHP,Python和Ruby。事实上,已经有超过2400万人通过它学会了编程。
2).Udemy
Udemy成立于2010年,是一个在线学习平台,可以帮助你改善或学习工作技能。虽然有部分课程需要付费,但也有大量的免费编程学习课程,通过视频讲授。demy 这个名字有它特别的含义。“Udemy” 是由 “you” 加上 “academy” 合成的,意思是 “你的大学”。与其他在线教育平台不同的是,Udemy 不仅开放各种课程,更开放了教学的机会。也就是说,只要你愿意,你也可以成为老师。
3).GitHub
GitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱、代码片段分享等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。
4).edXedX是另一个领先的在线学习平台,重点是它不是以营利为目的,而是开源的。edX是由美国哈佛大学和麻省理工学院于2012年联合创办的,所以你将会在这里学习到先进的技术和理论。如今,edX已涵盖了60所学校。此外在这里,你应该不会错过哈佛大学的计算机科学导论的,免费的哦。
一定要明白,技术是永远看不会的,并且就算你会敲代码,也不代表你掌握了它。如果真正的要把所学技术运用到一个项目中去,那你可以在网上找一些项目来做,或者参与一些付费项目。如果你觉得以上方法太麻烦,那么直接某宝上买课程即可,几块、几十块、几百块不等,等市面上培训机构的课程基本都有。另外,关于就业,其实就是你的沟通表达能力了,当你把一个项目或者某一个较难的技术掌握之后,你一定要尝试去把它说出来。因为对于一个技术人员而言,团队沟通能力也至关重要。
最后,很重要很重要的一点,不要他娘的只是三分钟热度,自律性是你做成这件事的最最根本的保障,无它,狗屁都干不了。读到这也别杠精附体尝试反驳,难道忘了从小到大数次制定的计划和目标你实现了吗?姐们儿,一不小心就年纪不小了……
五、选择一家靠谱的IT培训机构
1.教育背景看下是否具备教学资质,优秀的培训机构是需要长时间接收相关部门监督并且审核通过后颁发培训资质的,不然可能存在教学质量不佳、跑路或者换壳经营的风险。
2.线下面授既然都要参加培训了,最好还是找家线下面授教学的,面对面学习有问题可以及时探讨、请教和解决,更能保证学习效果。如果觉得自己自控力和学习能力没问题,那更没必要花这个钱了,某宝上几块钱就可以买一套教程,是吧?
3.机构口碑
纸是保不住火的,一家不负责的机构网上肯定会有人跳出来去批判和揭露他。而一所好的IT培训机构,在口碑和知名度方也肯定比一般培训机构高很多。PS:不排除同行竞争,恶意诋毁。对于那些靠着投机取巧或者歪门邪道忽悠招生的机构,我们会看到一些甚至是铺天盖地的负面消息,绝大多数声音代表着他的形象和真实反馈。如果对于外界声音实在拿捏不准,最好的办法就是去考察培训机构的时候利用机会和在读老学员多多交流,亦或是想办法在网上加上他们已经毕业的学员,再去判断真实口碑到底怎么样。
4.课程体系靠谱和负责的IT培训机构,它的课程体系一定是在持续更新的,对于IT行业来说,技术更新日新月异,市场需求、企业用人需求也会一直进行着变更,那么相对应的,培训机构就需要对课程体系进行持续更新,和市场进行完美的结合、匹配,也正是基于此,普通的高校计算机专业毕业生明显竞争不过培训机构,一个重要的原因就在这里,一套授课PPT长期不变。当然,还是有很多的高校在培养牛逼的计算机人才,这里说的是普遍现象,杠精请绕道。
5.师资力量
师资力量是一个培训机构的核心所在,我一直觉得就业是教学成果的直接体现,一家培训机构应该把所有的精力放在教学上而非为了应付企业教着大家如何进行学历和简历造假,以谋得一份高薪。而想教学优秀,就得有优秀的老师。一个教育背景深厚而又真正想做好教育的培训机构,必须要招聘大牛级别的讲师才是可行的,不然是禁不住市场的考验的,师资不牛何以让学员成才?
学习篇
无论做什么事情之前呢,第一步选择很重要,编程也不例外!
第一步:选择一门语言Javascript:web前端开发,在node中可以做后端,互联网以及无数浏览器仍然坚持使用JavaScript,而Node.js的出现甚至迫使我们在服务器端也要使用JavaScript。HTML/CSS:标记语言,主要是给前端工程师构建页面使用C++:图形图像、科研、通信、桌面软件、游戏、游戏服务器C#:Windows桌面软件、.NET Web、服务器Java: Java SE:跨平台的桌面应用,Android;Java EE:企业级应用,web开发、服务器后端;GO:高性能服务器应用,比较年轻Erlang:高并发服务器应用,多用于游戏Python:Web、科学计算、运维Ruby:webPerl:运维、文本处理,用的较少Lisp:科研,一种逻辑语言,用于人工智能Node:一个JavaScript运行环境(runtime)Haskell:Haskell是一种标准化的、通用纯函数编程语言,数学逻辑方面Scala:一种类似Java的编程语言,集成面向对象编程和函数式编程的各种特性等等。
第二步:找适合自己的学习方式现在网络如此便利,找学习资源个人觉得不成问题,当然了,学会利用网络找资源是你必须会的,将来大有用处。总结了下,大概有这么几种方式:网络搜索/查找(google、baidu)购买书籍(根据自己的水平)适合自己的视频或者博客多码 demo,多认识同行,多交流试着去写博客,做记录以上几种方式个人建议最好能结合起来,要知道,编程本来就是一件很辛苦的事。三步:基础不留痕我所说的基础是指基础知识,千万不要心急,所谓“欲速则不达”,急于求成反而会功亏一溃,其中,语法和编程习惯很重要,没有掌握好一门语言的语法,等于没有灵魂的画家,出不了惊人的作品;而一个良好的编程习惯,则会给你带来很多益处,想想此时在你面前有两个项目,一个所有 code 都加了详细的注释,变量定义遵循一定的规则,而且代码都是经过格式化的风格,而另一个则看不到任何注释,而且代码格式乱七八糟,更不要说什么变量定义规则了,此时,你会觉得那个好呢?“天下大事必作于细,天下难事必作于易”
第四步:三看两不厌我是这么总结的:1、多看效果2、多看技术分享(博客、论坛、各种分享平台、已发布 APP)3、多看代码
所谓的看效果包括两个方面,自己需要实现的效果,别人已经实现或者相似的效果,多做收藏,有空拿出来练练;多看技术分享,要知道技术在于分享,在编程这个路上,有很多同行都是乐意分享的,多看他们的分享,既是学习也是铺垫;作为编程人员,最终都是要落实在 code 上,所以要多看 code,多敲 code;不厌 bug;不厌枯燥
可能对于开发人员来说,最不想听见的就是有人对你说:“出 bug 了”,这个时候不能厌烦,如果投简历的时候仔细看过招聘信息的朋友应该会注意到有时候会包括这么一条:“对 bug 不厌烦,能适应需求变更”,所以,正常应对策略应该这样想,出 bug 那就说明是正常的,因为没有那个程序是不存在任何 bug 的,有 bug 正是我们提升技术的一个途径啊,要坚持“不忘初心,方得始终”;编程前期感觉到枯燥无味那就对了,说明你正在入行,坚持一段时间,你就会发现其实也没有那么枯燥啊,因为你会慢慢认识很多有趣的人,知道很多有趣的事。
第五步:学习资料搜集去多种技术平台,如CSDN,简书,把好的文章搜集下来,有时间自己可以拿出来学习,毕竟接近成功最快的方法就是吸取别人成功的经验,还有一些视频网站B站啊,腾讯课堂课堂都是不错的选择。近年来,我和一些朋友面试收集整理了很多大厂的面试真题和资料,还有来自如阿里、小米、爱奇艺等一线大厂的大牛整理的架构进阶资料。在这里分享出来,希望可以帮助更多的朋友快速成长。如果你有需要的话,可以私信我【进阶】我分享给你。或者点击下面链接获取。
第六步:进阶编程呢,一般都会认为有这么几个成长阶段:初级——>中级——>高级——>资深或者管理岗等,这条路是漫长而又艰辛的,且每个阶段需要掌握不同的知识点,对应每个人的领悟不同在时间长短上就不一样,需要做的,一步一个脚印,搞好该有的技能,别妄想有什么 XX 天精通等途径。
经典编程书籍大全100+ 经典技术书籍,涵盖:计算机系统与网络、系统架构、算法与数据结构、前端开发、后端开发、移动开发、数据库、测试、项目与团队、程序员职业修炼、求职面试 和 编程相关的经典书籍。
计算机系统与网络《图灵的秘密:他的生平、思想及论文解读》《计算机系统概论》《深入理解Linux内核》《深入Linux内核架构》《TCP/IP详解 卷1:协议》《Linux系统编程(第2版)》《Linux内核设计与实现(第3版)》《深入理解计算机系统(原书第2版)》《计算机程序的构造和解释(原书第2版)》《编码:隐匿在计算机软硬件背后的语言》《性能之颠:洞悉系统、企业与云计算》《UNIX网络编程 卷1:套接字联网API(第3版)》《UNIX网络编程 卷2:进程间通信》《Windows核心编程(第5版)》《WireShark网络分析就这么简单》《WireShark网络分析的艺术》
编程通用《编程原本》《代码大全》《UNIX编程艺术》《代码整洁之道》《编程珠玑(第2版)》《编程珠玑(续)》《软件调试的艺术》《修改代码的艺术》《编程语言实现模式》《编写可读代码的艺术》《解析极限编程:拥抱变化》《精通正则表达式(第3版)》《编译原理(第2版)》龙书《重构:改善既有代码的设计》《七周七语言:理解多种编程范型》《调试九法:软硬件错误的排查之道》《程序设计语言:实践之路(第3版)》《计算的本质:深入剖析程序和计算机》《设计模式 : 可复用面向对象软件的基础》
算法与数据结构《算法(第4版)》《算法导论(原书第2版)》《Python算法教程》《算法设计与分析基础(第3版)》《学习 JavaScript 数据结构与算法》《数据结构与算法分析 : C++描述(第4版)》《数据结构与算法分析 : C语言描述(第2版)》《数据结构与算法分析 : Java语言描述(第2版)》
职业修炼与规划《大教堂与集市》《卓有成效的程序员》《程序员的职业素养》《程序员修炼之道:从小工到专家》《软件开发者路线图:从学徒到高手》《我编程,我快乐: 程序员职业规划之道》《程序员的思维修炼:开发认知潜能的九堂课》《高效程序员的45个习惯:敏捷开发修炼之道(修订版)》
大师访谈《编程大师智慧》《编程大师访谈录》《编程人生 : 15位软件先驱访谈录》《奇思妙想 : 15位计算机天才及其重大发现》《图灵和ACM图灵奖》
架构/性能《微服务设计》《大数据日知录》《企业应用架构模式》《Web性能权威指南》《SRE:Google运维解密》《发布!软件的设计与部署》《高扩展性网站的 50 条原则》《大型网站技术架构:核心原理与案例分析》《恰如其分的软件架构:风险驱动的设计方法》《软件系统架构:使用视点和视角与利益相关者合作(第2版)》
Web前端《高性能 JavaScript》《锋利的 jQuery(第2版)》《JavaScript 忍者秘籍》(感谢@joker-danta补充推荐)《编写可维护的 JavaScript》《你不知道的 JavaScript(上)》《JavaScript 权威指南(第6版)》《JavaScript 语言精粹(修订版)》《JavaScript DOM编程艺术 (第2版)》《JavaScript 高级程序设计(第3版)》《JavaScript 异步编程:设计快速响应的网络应用》《Effective JavaScript:编写高质量JavaScript代码的68个有效方法》《HTML5 权威指南》《HTML5 秘籍(第2版)》《HTML5 与 CSS3 基础教程(第八版)》《CSS 揭秘》《CSS 设计指南(第3版)》《CSS 权威指南(第3版)》《深入浅出 HTML 与 CSS》
Java开发《Java8 实战》《Java并发编程实战》《Java性能权威指南》《Java程序员修炼之道》《实战Java高并发程序设计》《Java编程思想 (第4版)》《深入理解Java虚拟机(第2版)》《Effective java 中文版(第2版)》《Java核心技术·卷1:基础知识(原书第9版)》《Java核心技术·卷2:高级特性(原书第9版)》
NET《精通C#(第6版)》《深入理解C#(第3版)》《CLR via C#(第4版)》
Python《集体智慧编程》《笨办法学Python》《Python基础教程》《Python源码剖析》《Head First Python》《与孩子一起学编程》《Python学习手册(第4版)》《Python Cookbook(第3版)》《Python参考手册(第4版)》《Python核心编程(第3版)》《Python科学计算(第2版)》《利用 Python 进行数据分析》《Think Python:像计算机科学家一样思考Python(第2版)》《Python编程实战:运用设计模式、并发和程序库创建高质量程序》《Python绝技:运用Python成为顶级黑客》《Flask Web开发:基于Python的Web应用开发实战》
Android《Android编程权威指南(第2版)》《移动应用UI设计模式(第2版)》
iOS《iOS编程实战》《iOS编程(第4版)》《Objective-C高级编程》《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》
PHP《Head First PHP & MySQL(中文版)》《深入PHP:面向对象、模式与实践(第3版)》C语言《C标准库》《C和指针》《C专家编程》《C陷阱与缺陷》《C语言接口与实现》《C程序设计语言(第2版)》《C语言参考手册(第5版)》
C++《C++标准库》《C++编程思想》《C++语言的设计与演化》《C++程序设计原理与实践》《C++ Primer (中文第5版)》《C++ Primer习题集(第5版)》《C++程序设计语言(第1-3部分)(原书第4版)》《Effective C++:改善程序与设计的55个具体做法(第3版)(中文版) 》《More Effective C++:35个改善编程与设计的有效方法(中文版) 》
机器学习和数据挖掘《数据之巅》《矩阵分析》《机器学习》《统计学习方法》《机器学习导论》《推荐系统实践》《机器学习实战》《Web数据挖掘》《深入浅出统计学》《模式分类(第2版)》《概率论与数理统计》《统计学习基础(第2版)(英文)》《数据挖掘:概念与技术(第3版)》《数据挖掘:实用机器学习工具与技术(原书第3版)》《大数据:互联网大规模数据挖掘与分布式处理(第2版)》
数据库《SQL应用重构》《SQL Cookbook》《高性能MySQL (第3版)》《深入浅出SQL(中文版)》《MySQL技术内幕 : InnoDB存储引擎(第2版)》《深入浅出MySQL : 数据库开发、优化与管理维护》
测试《探索式软件测试》《有效的单元测试》《Google软件测试之道》
项目与团队《人月神话》《快速软件开发》《人件(原书第3版)》《门后的秘密:卓越管理的故事》《极客与团队:软件工程师的团队生存秘笈》
求职面试《程序员面试金典(第5版)》《编程之美 : 微软技术面试心得》《金领简历:敲开苹果、微软、谷歌的大门》《剑指Offer:名企面试官精讲典型编程题(纪念版)》
按照题主要求的,列举出来的书籍,希望能对大家学习编程有所帮助。如果大家想学习一门比较好入门的编程语言,建议可以去学习Web前端。前端是一个相对比较新的行业,互联网发展早期(1995年~2005年)是没有专业的前端工程师的。随着互联网的发展,大约从2005年开始,正式 的前端工程师角色被行业认可,到了2010年,互联网开始全面进入移动时代,前端工程师的地位越来越重要,前端领域的技术发展也越来越快,各种新的思想、 设计模式、工具和平台都快速发展,对前端工程师的技能要求也越来越高。有一些数据可以说明前端行业的发展迅速。
在2010年之后最流行的新编程语言中有相当部分和前端有关,比如 Dart、Clojure、CoffeeScript 和 TypeScript。作为前端最重要的编程语言 JavaScript,在最近几年里不论是代码量还是关注数都稳居 Github 平台热门编程语言榜。行业对前端需求量持续增加,前端程序员薪水在行业里面处于较领先的位置。
近年来最流行的编程语言很多都是JavaScript替代语言
Web属于用于前端开发的浏览器语言。它不需要太高的逻辑思维能力,也不需要像应用程序一样被审计。一般来说,只要你正确地输入代码,无论你输入什么内容,首页都会显示什么内容。基于0的合作伙伴可以理解,Web前端正在使用编程语言对语句进行排序。
0基础可以很好地学习web开发,与Java开发、PHP开发和其他后端开发语言相比,对于基础为0的学生来说,Web开发仍然很低。即使是那些在网络前端工作的人,在不那么受欢迎的行业也会发现移动互联网行业的新突破。另一方面,与Java相比,Web需要更少的逻辑思维,对计算机和物联网的知识也比嵌入式系统少。所以,只有你想进入网络行业,才有正确的学习态度,学习的耐心,即使你是0的基础,你也可以学习。