第一年总结

==> 学习汇总(持续更新)
==> 从零搭建后端基础设施系列(一)-- 背景介绍


一、技术总结

二、感悟(共勉,适合迷茫的人看)

三、第二年计划










一、技术总结

总结如图:
按照时间顺序排
![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTYxMjAzMTU1NjMzMjc3?x-oss-process=image/format,png) C:刚开始学的时候,不管是老师,还是其它人,都说C最难的就是指针。这句话说得不太正确,首先指针本身不难理解,它其实就是内存中的地址而已,然后通过地址访问存储单元。那难在什么地方呢?难就难在管理它,很多人仅仅就只学会了使用它,而不会去管理它所指向的内存空间,如果你使用完成之后,没有释放掉,或者释放了,没有置为空指针,而是让它还指向原来的内存空间,但是此时这个内存段已经不属于这个指针的了,如果你还用它来访问这段空间,就会发生未知的错误。其实只要平时做到这几点,就可以轻松应付指针的管理了。 第一,创建了一个指针(一般都会给它分配内存),你就要想着,它何时要释放(成对出现)。 第二,不要出现野指针,就是指向已经释放的内存段。 第三,使用(解引用)一个指针前,一定要判断其是否为NULL。 第四,不要使多个指针同时指向一段内存,这样当你不小心释放一个指针的时候,这段内存空间就被释放了,然而其它指针不知道,如果继续使用就会出现错误了。 还有结构体,这个就真心简单了,这个其实就是把一大堆变量合在一起管理。有些初学者觉得难,估计是傻傻分不清如下代码:
typedef struct _MyStruct
{
	int a;
}MyStruct,*LPMyStruct;

int main()
{
	MyStruct ms;    
	ms.a = 0;
	printf("%d\n", ms.a);

	LPMyStruct pms; 
	pms->a = 0;
	printf("%d\n", pms->a);
	return 0;
}
其中MyStruct就相当于一个自定义的类型,由它定义的变量叫做结构体变量。(int a) 而LPMyStruct就相当于一个自定义的类型,由它定义的变量叫做结构体指针。 (int* a) _MyStruct就把它当作结构体的别名。 这样是否清晰多了? 其实根本不用去死记它,因为以后你会非常多的接触这种类型,用多了自然会。也许有人会说,我不经常用,记不了怎么办?记不了就不要记啊,多费脑啊,反正不经常用,用到了再去网上查查就好了。别什么都网脑里面塞。

windows程序设计:这个对于刚学完C语言的人(只是初步掌握基本语法)来说确实很难!也不是吓唬谁谁,因为从控制台进入到界面的程序真的是需要一段适应时间。其实学习它主要是技巧的问题,不要一开始就埋头苦干,首先去了解一下什么是GUI吧?然后还要去了解一下windows的消息机制吧?如果你一开始就去把书从头到尾看一遍,我想说除非你真的天才一看就懂,不然你就是纯属抓瞎,浪费时间。还有那些什么名词啊,数据类型啊,不要一次性都看完,用到哪个就去看哪个,而且不要纠结于是什么意思。因为刚学了C语言,对于常见的数据类型已经根深蒂固了,再去接触这些“新”类型,你自然会不适应,心里面会有抵触感。所以干脆就不要去强行理解,多用自然熟悉,自然理解。了解了windows的消息机制后,就去创建第一个自己的GUI窗口,然后尝试各种消息的使用,也是非常有趣的。

C++:说真的,C++真的是挺庞大,以至于我都不知道如何总结。C++的类、对象、模板、STL库全都学过了,但是真的就是只是模糊的知道它的原理,知道怎么用。所以想深入学习C++,那些库的源码还是得研究一番。

MFC:学这个之前强烈建议学windows程序设计,之后再学MFC你就会发现,你只需要学习控件的功能,即可对MFC的使用游刃有余了。

QT:这个没系统的看过,只是有段时间用到,去查QT文档,使用了一下。为啥我觉得事件没消息好理解呢~~~

HTML+CSS:html是标记语言,挺好学的。css样式较多,简单使用还行,想做出绚丽的画面还是得深入研究一番,然而我只是探究了一点而已。

JS:一句话,上手简单,深入难。不过里面的json真的是好用之极。

PHP:这个也就算是了解了一下,没什么可以总结~

Linux:这个逼格就高了,也只是了解了一下。想学习linux的,我还是推荐一开始先搞字符界面,这样能很快的掌握常用的基本命令啊,还有网络配置,各种服务器配置等等。

x86汇编:我学汇编主要还是想深入一下底层,看看平时的数据是如何存储的,函数调用是如何实现的,内存是如何管理的。系统是如何响应各种消息的(中断)等等。帮助甚大,不建议初学者学习,我觉得学一样东西得带着一个目的去学,这样才能有效率。

python:自己曾经用纯C语言写过一个HTML解析器,所有数据结构和解析算法自己实现,上千行的代码,类似于爬虫(简易版),也就只能爬取某个网页的信息。而python就几条语句的事,真是不能不服python,第三方库多就是方便。还有正则表达式是一个好东西,如果自己实现类似于正则表达式这样的东西,那得多难~

C/C++网络编程:也就是常说的socket,套接字编程,刚开始入门都是写一个TCP的阻塞模型,其原理非常简单。服务器端,初始化socket,创建socket,绑定server,监听client,accpet client,recv/send数据。客户端,初始化socket,创建socket,connect server,recv/send数据。完成了!当然了,这个只是最简单的,后面还有,select模型、 WSAAsyncSelect模型、 WSAEventSelect模型、重叠I/O模型。这些模型一个比一个好,性能最好的还是完成端口模型。
二、感悟

当初本来是想选计算机专业的,但是奈何被人坑了。因为有一次坐公车,遇到一个人,闲聊了一下,他问我我想考什么专业,我说计算机你看怎么样,他就问了一下我,你会编程吗?我说我不会,他说你现在还不会,我劝你还是别选计算机了。当时我就一脸懵逼的天真的信了。然后选了个电子信息工程,我的妈啊,一大堆电路设计,一大堆东西要自己花钱买,感觉自己是研究不下去了,结果打了一个多学期的游戏。最后还好,突然觉醒了,不让自己那么颓废。就想着,既然硬件弄不下去吧,那搞软件啊,这不正是以前的初衷吗?而且网上大把大把的免费资源供学习(这里我想提醒一下,真心想学习,还是在校生的话,还是自己一步一个脚印的自学下去,培训大多是快餐)。之后我就开始了疯狂的学习之路,基本就是除了上课的时间都花在了电脑上,到了大二下学期直接就是不点名的课去都不去了,只要保证最后不挂科就好(看见身边挂科的同学真的是挺幸苦的)。我一直坚信,不努力是不会有回报的,所以懒,你就别想着成为大神。很多初学者,不知道怎么入手,不知道学完某个语言后学什么,能干什么。包括我,当初我也是不懂的,也迷茫过。现在我总结的来说就是,在学校你有时间,就多学就对了,多开阔视野,喜欢什么学什么,哪有那么多条条框框,你的时间你做主,不要受别人的影响,说学哪个哪个好,哪个哪个不好。有一句话说得好,存在必定有它的道理。当你学到一定程度之后,眼界开阔了,你再可以挑一个你非常喜欢的深入研究一下,这样最好不过了。大学四年嘛,可以学的东西多到超乎你的想象,比什么打游戏好玩多了。还有一种情况就是,已经堕落了两年 三年的同学,觉得还有1 2年也干不了什么事了,这种想法真是不要不要的,不管什么时候,努力挣扎一下总好过什么都不干的好。“我就试一下,说不定成了呢,哈哈”。还有关于看书的,在这个浮躁的社会,真的,能坚持静下来看看书,是很不错的。再关于看视频学习的,如果难于理解,可以找视频看,但是像C语言真的就只适合看书,看视频太慢太浪费时间。但是忠告一下,不要太依赖于看视频学习,长期这样,第一,你的心会浮躁,第二,你的学习能力会降低。最好的学习方法是,去网上看各种针对性的文章,看过之后自己思考总结的是最精华的。还有关于贴吧提问的,我也经常逛逛贴吧,我就是想找一些有意义的问题,但是奈何,少得可怜,一进去扑面而来的都是“求大神”三个字,一看到这个,基本就没兴趣了。关于问问题,如果你的提问非常有意义,很吸引人,大把人抢着回答,然后还可以给别人装逼的机会。基本,初学者的问题,google都能找到,找不到不是没有,而是你的提问方式不对。C语言这是很多新手入门的第一个课,我觉得吧,挺有意思的,个人不太喜欢一开始就学那些封装得比较好的高级语言,因为那种给我的感觉就是知其然,不知其所以然”,这样我会挺难受的。不过有些人喜欢top to down的学习,我也不好评论什么。好了,语文不好就不写那么多了~。
三、第二年计划

1.把数据结构从头总结一遍。 2.操作系统原理 3.编译原理 4.探索移动端
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值