c语言
楼主没说啥专业,默认就CS吧。我是CS转EE专业的,对这两个方向都有一些认识,楼主想学什么方向欢迎在评论区回复我。
先看《编码》,了解最基础的计算机通信和很基本的CPU工作原理,还能稍微了解一下数字电路的基础知识。
然后再看CSAPP,中文版也没问题,现在的翻译已经很不错了,看这本书对整个计算机架构有个宏观了解,至少知道编码,进位,CPU,内存,操作系统,网路的大致工作原理,构建宏观概念。
然后网上随便搜索c语言,socket方面的关键词,可以先写个非常简单的tcp或者udp协议的echo小程序(echo回声小程序,功能是你在控制台输入什么内容给伺服器,伺服器那边也输出什么内容给你,这个程序就和复读机一样,没有什么实际作用,但他的地位相当于是网路编程里面的hello world,是所有网路编程开发的第一步)注意,这一步最好在linux下完成。而且c语言里面的socket方面的库为了兼顾很早以前的协议兼容性,可能会有很多奇奇怪怪的写法,比如addr的转换等等,这些都是历史原因,你现在这个阶段只要知道照著教程里面这么做就对了,等你学到下一个计算机网路部分你就知道原因了。
如果要深入网路开发,看谢希仁《计算机网路》,对OSI(标准OSI是七层,书上是五层协议,作者也说了是为了学习理解方便,这个没什么问题,你照著学就对了,如果你自己能弄明白为什么是分四层或者七层,你也就已经对这方面知识了解很深入了)
如果还要进一步深入网路开发,甚至是想做工控领域的网路开发,或者做路由器,交换机等各种网路硬体设备层面的开发,可以修数字电路这门课,掌握HDL和FPGA开发。然后使用FPGA和一些常见的网卡晶元一起使用HDL完成一个最简答的UDP通信,这个阶段需要对FPGA的开发平台,以及对应厂商的网卡驱动方式,datasheet,时序协议要有了解。
如果要深入研究TCP以及更高层面的应用层开发,需要上SOCP(在FPGA上构建一个软核,你可以理解为使用HDL语言在FPGA上写了一个CPU出来,然后在这个CPU上跑微型操作系统实现的),因为传统的HDL适合的开发场景是并发的,小规模时序的,而应用层,TCP协议涉及到更大规模的时序,更复杂的应用层协议,使用HDL开发的复杂度会相当高(就像用c语言的cgi写一个知乎和用python写一个知乎,明白人都知道肯定python写起来更方便)。
更高层次,想做更加资深的网路开发可能还需要了解一些RFC规范,一些类似于乙太网802.3之类的文档。我自己也没完整读完过,不好再做什么指导。
如果想做一般的web开发,那就html5+css3+js。然后看看是想走前端还是后端,后端如果是纯web表现层方面,现在大公司用java多(ssm三大框架),小公司用php多(国内用thinkphp和laravel多),看楼主能力自行决定。前端的话直接web大前端(现在流行webpack+vue全家桶)然后再学es6,然后再学webpack掌握基于前端构建系统的开发,然后vue全家桶接著学,学完之后就掌握一些基本的前端ui框架的使用。上面这一套流程下来学完,找工作肯定不成问题了。
把你看的书扔了重新找本书学吧
这个时候你已经掌握了最基础的语言了,一门通,门门通,其他语言上手很快,可以先放一放,做点项目练练手,纯逻辑的就行,巩固和加深对已有知识的理解。可以做三四个项目。比如程序员都会幻想过电梯的调度系统,城市地铁的调度系统,俄罗斯方块,贪吃蛇等。
这之后,你就可以看看更高级点的东西了。
&
&
&
&
看完以后,你就可以发现以前的项目里有许许多多设计不合理的地方,那么就把以前的项目重新优化一下。
然后你就可以选著一下自己喜欢的语言了,python c++ java java-script ruby swift,试著找一些很语言相关的项目
这个时候你就可以了解一整个项目的工作流,差不多你就是一个入门的程序员啦。
在工作中你会发现有大量的东西要去学习。
工作一段时间后,你就可以看看程序员高阶书籍啦,比如
&
&
&
&
&
&
&
&
&
以上
unix环境编程
Unix网路编程
找C primer plus任意版本,完全忘记之前学的内容,从头重新学一遍c语言。
学一些实际操作的晶元,比如51单片机,STM32之类的。
黑客攻击手段可分为非破坏性攻击和破坏性攻击两类。
非破坏性攻击一般是为了扰乱系统的运行,并不盗窃系统资料,通常采用拒绝服务攻击或信息炸弹;
破坏性攻击是以侵入他人电脑系统、盗窃系统保密信息、破坏目标系统的数据为目的。下面为大家介绍4种黑客常用的攻击手段