前序
笔者目前就读于网络工程,已经是马上步入大三了,写这篇博客是想以此为基础开启我的博客之路,总结我目前的学习经验和学习计划,并且或许还能对刚步入大学校门的学弟学妹们一点帮助。
回顾之前的学习经历,满是迷茫,大一刚进学校什么都不知道,甚至连自己选择的专业“计算机类需要专业分流”都不知道,还没有从高中那种学习方式思维中转变出来,也发现了大学并不是我想的那般美好,种种的不适应,慢慢的一学期的时间就匆匆过去了,总感觉没学到任何实质性的东西,就只是为了期末考试不挂科而“学习”。课余时间也不知道怎么度过,就是没事了打游戏,一边在焦虑这样下去真的能获得能力和就业机会吗,一边在惶惶度日。等回过头打算必须做出点什么改变了的时候,大一学年已经过去了。
到了大二却发现再也不像大一那样有那么多的课余时间去做自己想做的事情,学自己想学的东西,学业压力也越来越大,一天都是做不完的实验,写不完的报告,准备不完的考试,一天学没学到什么,玩也没玩好,慢慢的也越来越焦虑,看到朋友圈里朋友们多姿多彩的生活,或是什么什么又得了个什么奖,再看看自己整天不知道怎么利用时间,就看着时间从手中如流沙般流逝,心里面很不是滋味,于是我下定决心,一定得做出改变了,既然我玩的没别人玩的舒服,那我就多提升自己,总归是要做些什么有意义的事情的,不然枉费了美好的大学时光,也是因为兴趣使然,我对于ps一直都有很大的兴趣,于是便在大二的假期开始自学Photoshop,慢慢的会的技巧也越来越多,再然后也能通过自己的能力为朋友们p图,得到了很多认可。
于是我开始醒悟,好像学习并不是那么痛苦的事情,能实际学到东西,并且能用出来,得到别人的认可,这是一件非常有成就感的事情。直到后来我看到一句话,我觉得说的很好:“种一棵树最好是十年前其次是现在”,也正是这句话,点燃了我对于编程进一步自学的想法。既然本来就是要学的,那何不从现在开始就做好准备迎接一切际遇呢?从现在起打好基础,锻炼好自己的技术,巩固好自己的实力总有一天果实会收获的。
怎样学好编程
针对这个问题,我觉得需要对比市场需求,如果以前端和后端开发为分类的话。
前端
通常意义上是指用户直接接触的端,像浏览网里的网页、手机上的app。简单的理解可以认为前端是在开发网页,让用户可以通过浏览器和手机app来访问。
后端
是用来提供数据服务的能力,比如你看的的新闻,玩的游戏,你所感知到的内容都存在数据库里,后端的程序接收用户的输入例如:点击按钮,输入值,游戏中的移动、释放技能等都对应后端的一套处理程序,最终变为数据库里记录值的变更。
对于笔者个人而言,我更加偏向后端开发,经过查阅资料后,整理出以下后端开发在就业时需要的主要的技能和知识点:
1.编程语言:掌握至少一门高级语言,如Java、Python、C++等,并对其有深入了解。
2.数据结构和算法:熟练掌握常见的数据结构和算法,如链表、树、堆、排序算法等。
3.数据库:了解关系型数据库(如MySQL)和非关系数据库(如MongoDB),以及它们的优缺点和应用场景。
4.网络编程:理解TCP/IP协议栈,熟悉HTTP协议等常见网络协议,能够实现基本的网络编程功能。
5.分布式系统:了解分布式系统的基本原理和架构模型,熟悉RPC框架(如Dubbo)等分布式开发工具。
6.Linux操作系统: 理解Linux操作系统原理, 熟悉Linux命令行操作, 能够进行基础运维工作
7.面向对象设计思想: 掌握SOLID五项原则, 设计模式
大厂后端招聘具体要求
以下是笔者查阅部分大厂招聘具体要求,从中不难看出,基本上都是对上述必备的技能和知识点的具体体现
学习方法和目标
在知道了从业必须的知识点后,我们才能有针对性的进行学习,就一个普通的在校生来说,编程语言如c/c++/java等在高校内都是有系统性的教学的,但是单单的做到学校的要求是不够的,语言的熟练度是对能力评判的重要标准,因此,多练习,多使用,多理解,多复习是必不可少的,笔者认为并不是每一门语言都要会,但是一定得有专精的一门语言,在非常熟练的掌握一门语言后,即使后来工作使用的是其他语言,也会有非常快的学习速度,毕竟计算机语言大多都是有共同性的,如“封装”,“对象”,“类”,“继承”,“函数嵌套”在很多语言中都是有的,背后逻辑也大体不差,有一门熟练的语言基础后,对于理解未知的语言也是有莫大的好处的。数据结构和算法,数据库等等一系列的知识也是如此,是需要大量的练习的,在牛客网和LeetCode上注册好账号,每天进行一定的练习,不要求量多,但要多次,把写的代码通过托管平台上传到gitee上进行总结和归纳,对于日后也是有莫大的益处的。每周都要敲一些代码,并且上传。在学习编程这件事上,坚持每周花费20个小时往上,锻炼自己写码和读码的能力。在有一定学习能力后,积极的寻找并且参加实习,积累工作经验,争取有朝一日能进入百度这样的大厂。