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种黑客常用的攻击手段

1、后门程序

由于程序员设计一些功能复杂的程序时,一般采用模块化的程序设计思想,将整个项目分割为多个功能模块,分别进行设计、调试,这时的后门就是一个模块的秘密入口。在程序开发阶段,后门便于测试、更改和增强模块功能。正常情况下,完成设计之后需要去掉各个模块的后门,不过有时由于疏忽或者其他原因(如将其留在程序中,便于日后访问、测试或维护)后门没有去掉,一些别有用心的人会利用穷举搜索法发现并利用这些后门,然后进入系统并发动攻击。

2、信息炸弹

信息炸弹是指使用一些特殊工具软体,短时间内向目标伺服器发送大量超出系统负荷的信息,造成目标伺服器超负荷、网路堵塞、系统崩溃的攻击手段。比如向未打补丁的 Windows 95系统发送特定组合的 UDP 数据包,会导致目标系统死机或重启;向某型号的路由器发送特定数据包致使路由器死机;向某人的电子邮件发送大量的垃圾邮件将此邮箱「636f7079e799bee5baa631333363376364撑爆」等。目前常见的信息炸弹有邮件炸弹、逻辑炸弹等。

3、拒绝服务

拒绝服务又叫分散式D.O.S攻击,它是使用超出被攻击目标处理能力的大量数据包消耗系统可用系统、带宽资源,最后致使网路服务瘫痪的一种攻击手段。作为攻击者,首先需要通过常规的黑客手段侵入并控制某个网站,然后在伺服器上安装并启动一个可由攻击者发出的特殊指令来控制进程,攻击者把攻击对象的IP地址作为指令下达给进程的时候,这些进程就开始对目标主机发起攻击。这种方式可以集中大量的网路伺服器带宽,对某个特定目标实施攻击,因而威力巨大,顷刻之间就可以使被攻击目标带宽资源耗尽,导致伺服器瘫痪。比如1999年美国明尼苏达大学遭到的黑客攻击就属于这种方式。

4、网路监听

网路监听是一种监视网路状态、数据流以及网路上传输信息的管理工具,它可以将网路介面设置在监听模式,并且可以截获网上传输的信息,也就是说,当黑客登录网路主机并取得超级用户许可权后,若要登录其他主机,使用网路监听可以有效地截获网上的数据,这是黑客使用最多的方法,但是,网路监听只能应用于物理上连接于同一网段的主机,通常被用做获取用户口令。

5、DDOS

黑客进入计算条件,一个磁碟操作系统(拒绝服务)或DDoS攻击(分散式拒绝服务)攻击包括努力中断某一网路资源的服务,使其暂时无法使用。

这些攻击通常是为了停止一个互联网连接的主机,然而一些尝试可能的目标一定机以及服务。

这些攻击的主要目标企业或网站的大流量。

DDOS没有固定的地方,这些攻击随时都有可能发生;他们的目标行业全世界。分散式拒绝服务攻击大多出现在伺服器被大量来自攻击者或僵尸网路通信的要求。

伺服器无法控制超文本传输协议要求任何进一步的,最终关闭,使其服务的合法用户的一致好评。这些攻击通常不会引起任何的网站或伺服器损坏,但请暂时关闭。

这种方法的应用已经扩大了很多,现在用于更恶意的目的;喜欢掩盖欺诈和威慑安防面板等。

6、密码破解当然也是黑客常用的攻击手段之一。

想学黑客技术的话,可以来找我,10年技术积累

也可以找我来拿一些学习资料

参考下图找我交流

var HelloWorldLayer = cc.Layer.extend({

sprite:null,

ctor:function () {

//////////////////////////////

// 1. super init first

this._super();

/////////////////////////////

// 2. add a menu item with "X" image, which is clicked to quit the program

// you may modify it.

// ask the window size

var size = cc.winSize;

/////////////////////////////

// 3. add your codes below...

// add a label shows "Hello World"

// create and initialize a label

var helloLabel = new cc.LabelTTF("Hello World", "Arial", 38);

// position the label on the center of the screen

helloLabel.x = size.width / 2;

helloLabel.y = size.height / 2 + 200;

// add the label as a child to this layer

this.addChild(helloLabel, 5);

// add "HelloWorld" splash screen"

this.sprite = new cc.Sprite(res.HelloWorld_png);

this.sprite.attr({

x: size.width / 2,

y: size.height / 2

});

this.addChild(this.sprite, 0);

return true;

}

});

var HelloWorldScene = cc.Scene.extend({

onEnter:function () {

this._super();

var layer = new HelloWorldLayer();

this.addChild(layer);

}

});


计算机网路,数据结构,演算法导论


想从事网路,得先学会穿过G*W嗷


学 C primer plus 。难得的好书。


推荐阅读:
相关文章