谈谈我自己的经历
初入大学其实是又迷茫但是有很有一颗渴望强大的心, 在高考结束,得到通知书的那一刻得知了自己将要学习计算机的这样一个结果.
打小就是小地方,小镇子,山里面走出来的,我对于编程本就是一张白板。当时打字都是二指禅。当即在哪个暑假,心里面抱着不能让自己被小瞧了,连打字都要一个一个找. 于是当时的我打开了B站,开启了我人生中的编程苦修之路。当时买了一本C语言从入门到精通,就开始了自己的学习道路。
最开始最难的还不是抄代码,抄代码也没啥困难的,是搞编译环境,咋运行都不懂,当时用的是VC++6.0。但是慢慢的也熟练了,至少能运行起来了.
进入大学开始军训,在军训期间我依然是C语言小白,为了熟练编码,就在网上找了公众号找了C语言的各种入门实例,每天打,抽军训空闲从新区跑回老区来打.完了又回去军训。就这样,我至少能敲代码不用二指禅了.
当时我找到的第一个课程其实讲的并不好,于是我慢慢的在网上听公开课,终于找到一个自己当时觉得讲的很好的课程,并且体验了下VIP课程。我属于性格冲动派,当时毅然而然的找到父亲要了钱买了课程。
课程讲的很快。很快我了解了C++.(大一下)跟数据结构了.于是我又跟着机构快速学习了C++跟数据结构的基础. (但是其实并不牢靠,后面也是通过刷题熟练了各种数据结构的特性的 + 算法思想)
大二上当时自己一直默默地刷LeetCode, 题量达到接近500
校赛的失利并没有打消我的念头,想着自己去参加蓝桥杯肯定可以得奖,于是报名了,由于是末流211,于是跟别人一起参加A组。难得批爆,打到抑郁。
终于了解了竞赛真的要看点天分。但是好在我一直一来基础的沉淀,于是我定下来方向,搞服务器开发方向。专心的学习网络编程,打好基础。学习框架,仿写框架。然后就是最近了。一个偶然的机会让我有了提前实习的想法。于是自己临时写好了自己的简历。开启了投递。但是奈何时间太晚,都已经是五月中旬,也可能是自己太菜了。简历显示初筛过了,然后一直泡水。连笔试的机会都没有,我一度怀疑自我,应该是自己太菜了,非常emo, 沉寂的不想学习,可是那行嘛,责任,家人的希望,各种压力,还有学校的期末考试。
在今早,我也得到一个前辈人的提点,对此我也是非常感谢他。他人特别好,很是谦逊友好,一点没有那种大佬的傲娇,而且还愿意跟大家分享技术.
博客名称: 老王随聊
在这样的经历过程之下,我决定写一篇这样的博文,一来是想让自己决心沉淀自己,二来也是想帮助像我一般的博友们看清道路,少走弯路.
应不应该大二那么早实习
适合的
大一大二期间沉淀的已经很好了,有着扎实的基础。符合面试要求。咋知道是不是符合面试要求的。多看几份面试的需求就OK了. 而且一定是大厂,或者是适合自己所学的厂,能把自己学的东西用起来,或者学到相关的新知识,近期很迷茫,找不到学习方向的,可以进去。还有那种特别能吃苦,能乐观面对新的东西,及时在实习期间也能抽出时间去学习自己所需的。
不适合的
沉淀不足,未达到面试需求的,还没完成自己所学方向的知识沉淀,很明确自己的方向,也很明确自己接下来还要学习什么,怎样提升自己的技术的,还有着初心的,能够静下心来继续学,钻技术,哪怕当前技术给自己还带来不了什么好处,但是在将来一定有用的。这种兄弟我建议可以再沉淀学习一年,大三再去实习。
核心的关键暑期实习一般是找大三的,大二去基本无望,大二可以投日常实习,但是大二的身份真实是很尴尬,很难找到实习不说,也难以确定这份实习是否符合自己所学,实习一定要找符合自己所学的,能提升自己的,不然要是方向不符我建议各位兄弟不要贪这份钱,毕竟知识会遗忘,何况我们现在根基并不扎实,要是贸然学习相差较远的东西,会得不偿失
自己适合竞赛吗? 竞赛可以给自己带来什么?
说个实话,竞赛这个东西,那真是因人而异的。它真不一定是熟练度可以弥补的了的。
我们可以崇拜他,但是绝对不要盲目的选择它。因为这个选择可能决定了你整个大学三年的知识沉淀欠缺, 最后不得已考研保研
如果要搞竞赛,一定要乘早,绝对乘早,大一感兴趣可以尝试去搞高,大二都有点晚了,大三可真不建议了,除非你有一击必中的把握。大佬。
ACM是真的需要天分,不只是勤奋。这里的天分不一定是聪明才智,而是适不适合。比如你就是那种超级喜欢刷题,对刷题有着蜜汁狂热的心,那就是超级适合,还有就是有大佬带着,是真的大佬带着,一定要有团队感,大家一起练习,练习完之后相互交流,遇到错了的每一道题目都要像你高中啃一道高考题目那样去钻研它
可以跟网上的老师学习入门方法,但是不要看讲题目了,或者自己先刷一道题目,不懂的再看。跟着老师刷题只能是了解思路,但是达不到锻炼自己能力的要求。。。这个绝对是真话,老师绝对只能起到入门作用,或者帮你见识更多方向的题目,但是绝对办不到帮你提升自己的AC能力... AC能力只能是狠心大佬,花时间去练习
服务器开发方向要学什么,几乎所有C/C++后端开发方向都必须学什么?
几乎所有C/C++后端必学
C/C++语言特性 大方向叙述: 面向对象之继承多态,异常,智能指针(防内存泄漏),C++11新语法, 新特性,STL泛型编程(看STL源码,模仿造简单的轮子).
设计模式(单例,工厂)
Linux基本命令熟练, Linux环境熟练, Linux系统编程,网络编程熟练
多线程,多线程下的线程安全问题. (生产者,消费者模式...)
数据结构 + 算法
Linux下面的IO, 阻塞IO, 非阻塞IO,同步,异步IO,IO多路复用技术
数据库(redis, mysql), 操作系统, 网络基础知识,不要死背,一定要理解,扩展,不然死背面试遇到那种喜欢扩展的面试官死的梆硬.
vim, git, makefile这些工具,软件会用
服务器开发学那些
网络
网络io, select/pool/epool
网络框架reactor
http协议/websocket
网络的并发
reactor各种版本, 单线程reactor / 多线程reactor / 多进程reactor
posix api深入协议栈理解
UDP的可靠传输
协程框架实现
用户态协议栈的实现
基础组件(造轮子, 深入理解)
- 池化技术:内存池,线程池,请求池,数据库连接池
- 手写定时器
- 消息队列
- libevent/libev
- openssl传输加密
- protobuf/thrift
中间件
- mysql,curd, 存储过程,索引,视图,触发器 :索引原理,事务原理,缓存原理,mysql集群
- redis
- Nginx
- MongoDB
内核
- 内存管理
- 进程管理
- 文件系统
- 设备模块
开源框架
- skynet
- zeromq
- dpdk
分布式
- ars
- etcd
- docker
- k8s
- p2p
误喷小杰, 小杰仅仅只是就自己的经历分享给大家,如果对大家有些许帮助,我就很高兴, 或者帮助大家有个方向也挺好. 服务器方向所学我基本也就一个入门,可能网络IO学的还行,我只是入门的小白,上述我仅罗列所需所学, 我还没完全掌握,有一颗积极向上的心, 继续沉淀自己,也希望大家多沉淀技术. 如果有想法的,想吐槽的今年面试形式的,都可以评论区探讨一下, 相互学习,共同进步 ---- 望有心人都有所成,一起加油