三年,足以完成从双非到互联网大厂的跳跃
根据上述策略,刨除我踩的一些坑,我把学习征途划分四个阶段,实现学习效率的最优解。 第一阶段:新手入门 在我入门的时候,我遇到的最大困难是代码不会写,DEBUG不会做,程序报错不会看毫无头绪,甚至大家常说的百度一下的关键字我也不知道搜。 这时候,最大的目标就是根据百度/查文档/看视频,把程序调试出预期结果,甚至你抄代码都行,很多时候抄代码你都不一定能DEBUG出预期结果。这就是现实,主要就是要把对编程的排斥消磨殆尽。 这个阶段,不需要太关注底层实现原理,最重要的工作就是把应用层面的技术,不断练习直到熟练掌握上面提到的应用「 编程语言、Linux、数据库、HTTP网络协议 」。 •时间:3-6月 •目标:会调试、会查文档、会用搜索引擎 •内容:JAVA基础语法、MYSQL数据库、Linux操作系统、HTTP通信协议 •方法:只关注如何使用技术,难以理解的背下来,不关注底层原理。 •成果:实现常见的管理系统模块,能部署在服务器上,供他人访问。 对于现已从事计算机行业的同学,其实这部分内容非常简单,可能按照正常水平少则几天,多则不超过一周就能开发出简单模块。简单说,它顶多是普通本科毕设设计水准,主要是让新手在感官上体验软件产品。本质上,在计算机世界里,抽象来看就是数据的计算、传输、存储。随着你的经验增多,你会发现很多技术的诞生或优化性能都是在解决计算、存储、传输的问题。 在这里,主要让大家在系统的角度感受最简单、最初级的技术模型。 1.Linux操作系统:承载应用程序、数据库的运行,提供CPU供应用程序计算。 2.应用程序(Java/Python/Php):JAVA主要采用Servlet、JDBC承载网络的传输、数据库连接管理。 3.数据库(MYSQL):主要理解关系类数据库的存储,对数据进行操作。 4.HTTP/TCP:熟悉重点网络协议,它分为包头/包体进行传输,包体格式可能分为json、pb、二进制。 第二阶段:项目练习 通过第一个阶段学习,你对编程从一无所知到有所斩获,对计算机世界充满了好奇,甚至有所开心。这时候,你最应该做的就是去满足你装逼的梦想。 假设你是爬虫方向,你应该去爬表情包、爬知乎数据、自动抢票,去满足你无数个装逼梦想。 假设你是算法方向,你可以去研究推荐算法、图像识别模型,去做个商品推荐、人脸识秀一秀。 假设你是后端方向,你可以去研究下网络编程/网站开发开发个仿微信聊天应用,体验下lowB版微信。 画外音:多做项目,坑是一步一步踩出来的。 作为大学生,实验室、软件设计比赛、开源社区都是你发挥想象力的天堂,这些倒腾的经历将是你毕业时最宝贵的经历。 第三阶段:强化理论 经过前两个阶段实践,时间来到大三,这时候基本的软件开发已入门差不多达到普通培训班毕业水平。同时,专业课如数据结构/操作系统/计算机网络也上的差不多了,对概念多多少少有初步了解。 这时候,你会发现很多原理你不懂,将很难更上一层楼。 •你不知道使用ArrayList还是LinkedList? •你不知道为什么要使用线程池? •你不知道为什么分层设计使用分布式场景? 你将处于写代码一时爽,一直写一直爽,遇到性能问题直接土崩瓦解。所以,你不得不去学习理论知识让你走得更远。 问题:为什么在这个阶段强化理论知识? (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |