计算机专业学习路线及经验

简介: 计算机专业学习路线及经验

前序

笔者目前就读于网络工程,已经是马上步入大三了,写这篇博客是想以此为基础开启我的博客之路,总结我目前的学习经验和学习计划,并且或许还能对刚步入大学校门的学弟学妹们一点帮助。


       回顾之前的学习经历,满是迷茫,大一刚进学校什么都不知道,甚至连自己选择的专业“计算机类需要专业分流”都不知道,还没有从高中那种学习方式思维中转变出来,也发现了大学并不是我想的那般美好,种种的不适应,慢慢的一学期的时间就匆匆过去了,总感觉没学到任何实质性的东西,就只是为了期末考试不挂科而“学习”。课余时间也不知道怎么度过,就是没事了打游戏,一边在焦虑这样下去真的能获得能力和就业机会吗,一边在惶惶度日。等回过头打算必须做出点什么改变了的时候,大一学年已经过去了。


       到了大二却发现再也不像大一那样有那么多的课余时间去做自己想做的事情,学自己想学的东西,学业压力也越来越大,一天都是做不完的实验,写不完的报告,准备不完的考试,一天学没学到什么,玩也没玩好,慢慢的也越来越焦虑,看到朋友圈里朋友们多姿多彩的生活,或是什么什么又得了个什么奖,再看看自己整天不知道怎么利用时间,就看着时间从手中如流沙般流逝,心里面很不是滋味,于是我下定决心,一定得做出改变了,既然我玩的没别人玩的舒服,那我就多提升自己,总归是要做些什么有意义的事情的,不然枉费了美好的大学时光,也是因为兴趣使然,我对于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个小时往上,锻炼自己写码和读码的能力。在有一定学习能力后,积极的寻找并且参加实习,积累工作经验,争取有朝一日能进入百度这样的大厂。 

目录
相关文章
|
6月前
|
前端开发 程序员 开发工具
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
|
关系型数据库 应用服务中间件 Python
Linux运维工程师面试题全面汇总(2023)
Linux运维工程师面试题全面汇总(2023)
1339 0
|
存储 运维 Linux
Linux运维工程师面试题(7)
Linux运维工程师面试题(7)1 常用的 ansible 模块有哪些2 说一下 ansible 使用 roles 编排的目录结构3 docker 六大命名空间 namespace4 cgroups 的作用5 runc 的作用6 docker 常用的命令7 docker 存储引擎有哪些,区别是什么8 进入 docker 容器有几种方法,区别是什么9 Dockerfile 常用指令10 容器数据持久保存方式
140 1
|
SQL 关系型数据库 MySQL
Linux运维工程师面试题(6)
Linux运维工程师面试题(6)1 数据库事务的四个特性及含义2 mysql 的 sql 语句怎么优化3 varchar 与 char 的区别是什么?大小限制?utf8 字符集下 varchar 最多能存多少个字符?4 索引有什么用?5 sql 注入是怎么产生的,如何防止?6 csrf 是什么?如何防范?7 如何加强 MySQL 安全,请给出可行的具体措施?8 如是数据库慢导致网站打开慢,如何排查并解决?9 MySQL 有多少种日志10 MySQL 数据库 cpu 飙升到500%的话他怎么处理?
131 1
|
网络协议 应用服务中间件 Linux
Linux运维工程师面试题(2)
Linux运维工程师面试题(2) 1 访问一个网站的流程 2 TCP 三次握手,四次挥手 3 apache 和 nginx 有哪几种虚拟主机 4 TCP 和 UDP 的区别 5 nginx 和 apache 的区别 6 什么是反向代理,什么是正向代理,区别是什么? 7 cookie和session的区别 8 nginx 调优 9 系统出现大量的 time_wait 问题怎么解决 10 拿到一台新服务器后需要干什么,做哪些系统优化
142 2
Linux运维工程师面试题(2)
|
运维 Java Linux
Linux运维工程师面试题(1)
Linux运维工程师面试题(1) 1 别名、内部命令、外部命令的执行顺序 2 linux 系统启动流程 3 忘记用户密码的方法 4 忘记 grub 密码怎么解决 5 硬盘空间满了怎么处理,怎么找到硬盘中的大文件 6 硬盘明明有很多空间,为什么无法存储文件 7 进程使用内存问题 8 进程、线程和协程的区别 9 使用 find 命令找出/data目录下15天以上以log结尾的文件并删除 10 su、su - 和 sudo 的区别
236 1
Linux运维工程师面试题(1)
|
运维 Kubernetes Linux
Linux运维工程师面试题(9)
Linux运维工程师面试题(9)1 pod 的生命周期2 探针类型3 探针方式 4 探针结果 5 Pod 重启策略6 镜像获取策略7 k8s 的服务类型8 k8s中 service 和 ingress 的区别9 有状态和无状态服务的区别10 k8s 中 service 是做什么的?
167 1
|
运维 Linux Docker
Linux运维工程师面试题(8)
Linux运维工程师面试题(8)1 docker 的网络类型,使用场景2 CMD 和 ENTRYPOINT 的区别3 怎么减小 dokcer 镜像的大小5 如何临时退出⼀个正在交互的容器的终端,而不终止它?7 COPY 和 ADD 的区别8 制作镜像方式9 K8S 有那些组件,都是干什么用的10 K8S 创建一个pod的流程
127 1
|
运维 关系型数据库 MySQL
Linux运维工程师面试题(5)
Linux运维工程师面试题(5)1 SELECT 语句处理的顺序 2 MySQL 高可用方案有哪些 3 mysql 主从复制原理 4 mycat 读写分离原理 5 MHA 高可用原理 6 mysqldump 备份的原理 7 drop, delete 与 truncate 的区别,哪个最快 8 判断主从延迟的方法 9 MySQL 主要的索引类型 10 MySQL 中 myisam 与 innodb 的区别
117 1
|
缓存 NoSQL Linux
Linux运维工程师面试题(4)
Linux运维工程师面试题(4)1 redis 常用的数据类型2 redis 数据持久化有几种,区别是什么,如何选择3 redis 有哪些架构模式4 什么是缓存雪崩?如何解决?5 什么是缓存穿透?如何解决?6 什么是缓存击穿?如何解决?7 redis 为什么这么快8 Redis 常用命令9 SQL 语句分类10 多表查询
116 1