大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
事实上,我大三,就在一个月顶多初中,而且也没有资金格在这里班门弄斧,其平均大一的孩子写了一封信,做一个概述和总结,谈一谈经验和教训,能给新人们一些借鉴 便足矣.
我呢,就读在一个不知名的重本大学,学计科的,众人口中的二流学校的三流专业. 上大学前,我也没有接触过编程,小时候家里有一台windows98不能上网也玩的不亦乐乎,再后来就跑到朋友家上网打游戏,凭着这一腔热血和父母的任我选择迁就我的态度,我就走上了计算机的道路,立志学好计算机,由于它实在太奇妙,对我太有魅力.(^-^)
上大学之前,我对自己的概括就是喜欢思考,喜欢数学.高考后那两个月里,我有幸认识了一个学长,我呆在家里没什么意思,就向他请教计算机要学什么(事实上他也就比我大一届),他告诉我要学c语言,这差点儿是全部学校选择的入门语言,于是我就这样開始接触了编程——->谭浩强,c程序设计语言.. 我还顺便找他要了一个编译器,vc++6.0 . 就是这样 无聊的我天天在家看c, 我的非常认真,也没有认为太难, 遇到问题就把书上的代码写到vc里面编译执行一下,也经常由于少了个分号而头疼了几个小时..(毕竟那个时候还不知道有调试这样的东西).于是就这样 一点点的把这本书看完了. 事实上总结下自己能看完这本书的原因有一下几点:1.这书写的非常基础,易于理解,基本没错误.2.自己有兴趣能认真看下去. 唯一不懂的地方当然是指针了.对于那时的我的理解就是 指针就是一个 地址的东西,地址是什么 我也不知道.. 反正就是这么回事(A是B,B是C ,但是我不知道B是C是什么意思,但老师也不会问,仅仅要你能说出来A是B即可….Σ( ° △ °|||)︴)
于是就这样,我来到了我的大学,大一上的专业课就是离散数学和c语言了,c语言我听起来当然非常轻松,可是几门数学就让人非常难受了,有高等数学,离散数学,线性代数, 每次上这些课 我的头都晕晕的, (这里先不吐槽,放到后面一起谈).. 对于一个刚上大学来学离散的人,没有点基础说能听懂都是骗人的. 刚上大一的孩子, 眼里仅仅有从高中数学继承而来的数学观念,似乎从来没有想过为什么会有这么多数学,离散数学作为一个计算机的核心课程,不是可以轻松讲明确和轻松理解透的.事实证明 既没讲明确也没理解透.
大学的时间 对于大一的孩子来说总是忙碌的,经常要早早的赶着去上课,下课后又赶着去开社团的例会,隔三差五还要举办些凭空而来的活动,或者经常收到一个 下午**点在**办公室开会 的触目惊心的短信.
只是在我大一上的时间里,也有幸增加了ACM社团,学长们说,搞好算法,以后就会变得了不起,就会….就会XXX.. 算法在我心目中的位置顿时高大上了多少倍,于是每周都会有培训,大家在一起做题,刷题,感觉还是不错的. 只是好景不长,渐渐地我发现了,貌似搞算法的学长没有那么多,学姐更是一个都没有,也没有那么多热爱算法的人,并且貌似带我们的人 也不是非常会算法, 我也有些小失望,渐渐的 似乎刷题的人越来越少 最后就没人了.. 偶尔回来看看我在hdu上刷的题, 也就200+道. 可是搞ACM确实是有收获的,就好像 c语言是一把工具,而算法就是让你通过这把工具 做你想做的事情!
大一下的专业课是 数据结构和c++ , 数据结构是什么, 事实上就是数据的结构而已, 仅仅只是大家没写过应用没做过软件,始终不能理解到这个简单的本质, 当然当时我也没理解到. c++更不用说了, 面向对象也就是OOP. 我敢肯定教这么课的老师我不知道什么是OOP, 在她眼里以及 事实上在众多的同学眼里, c++仅仅只是是有了对象的c,或者说 仅仅只是是一门基于对象的语言吧(真的谈不上面向对象设计开发)
大一就学了这么点东西,但是我真的好难受, 学了一年的计算机也就仅仅能在黑框框里面写个计算机而已,写个老师规定的input(a+b) , 我时常笑笑我自己, 尽管我非常努力,但是收获的可能有一些,但并不总是快乐的.比方我看了c语言的四书五经(c和指针 c缺陷和陷阱 c专家编程 c程序设计语言(机械工业出版社的那本)) ,非常多地方都是看了不懂,理解不进去, 自己经常非常懊恼,非常郁闷,也没有人能问,老师上完课就走,也不会关心你.似乎专业的学长们大部分也都是非常水.(我不提学校,看看就好)
显而易见,学习知识的快乐当然没有打英雄联盟来的简单和方便,就像喝酒一样, 你总是能够麻痹自己,不去想那么多是是非非,怎么学好计算机. 放下自己那颗上进心,投身到夜色下的欢乐和日光下的瞌睡中. 大一越往后 变得越不积极,不主动,偶尔也会像良心惊醒一样想想该做什么,可是看看游戏,又想想学计算机是多么痛苦,还是转身投入到自己那14.4英寸的笔记本里面的游戏中, 寝室这么多人, 开黑从来不缺人. 我比較喜欢玩打野, 我不喜欢太复杂的东西,简单点,快乐点,我就知足.就这样大一过去了
大二来了,大一就这么快的翻过去了.更过分的是,学校第一学期的课程居然没有安排专业课,唯一一个相关的勉强算得上的也就是 模拟电路,天啊 这是硬件啊, 我一个计科的学这个 确实好痛苦啊, (事实上这个东西学组成原理的时候可能会用到) 只是挂科倒是不会的,反正 大学的期末考试 你懂得.^_^
我问过非常多人,该学什么,如何能学好计算机,问过老师,问过学长,问过毕业的学长,百度搜过,csdn上也找过,各种论坛也转过.似乎答案有非常多 ,千奇百怪. 大二上我还试着看 Qt呢, 我还看了Windows程序设计呢..看的简直是云里雾里 要生要死的..尽管我没有什么进步,可是我知道不能像大一那样颓废下去,南方的冬天真是寒冷,我一个来自东北的孩子,穿着羽绒服,坐在没有空调的实验室里,简直了,,冻的要死..就这样,在一个小太阳的陪伴下,勉强度过了这个寒冷的南方的冬天.,(每次一用小太阳,烤的就想睡觉..有的时候就仅仅能冻着自己,实在不行了用一下. 本科生不给空调, 可是 老师的办公室里都有空调, 教室里, 这个学校里有天花板的地方都有空调,我真是无语,自己出钱 自己付电费装空调都不行,学校究竟是要干嘛!)
似乎我上面乱七八糟的说的太多了吧,只是我仅仅是一一的把我的经历都记下来,假设仅仅挑一些重点写写就会让别人认为我像在写传奇一样,反正能认真看下来的也会看下去,不能认真看下去的预计也看不到这句话.
事实上我就是这样,一直在尝试,学了非常多东西,碰壁了非常多次,也不知道自己有了多少想不明确的问题,也不知道自己在百度里面搜索的了多少问题. 只是功夫不负有心人, 在一个学长告诉我要看 深入理解计算机系统 后,我似乎找到了方向,(也挺痛苦)..无论怎么说也要感谢这个学长吧,毕竟保研去了中科院,果然是有实力的..
深入理解计算机系统这书,真是不薄,我就这样又開始啃了一本新的书,反正我已经习惯了, 第一章是概述,计算机系统漫游,一開始看 看的我是云里雾里的,,直接过了.第二章是计算机中的二进制, 各种二进制的表示, 看起来还是能够理解的,到了后面讲浮点数的二进制表示,我勒个去..跪了,第二章就看这么多吧 ,,于是我就来到了第三章,第三章是讲汇编的, 汇编这样的东西,看着头不头疼?
头疼! 难不难? 事实上不难. 汇编就是一种简单而十分主要的语言,1就是1 ,0就是0. 可是我还会好奇 怎么书上的汇编和别的地方的汇编不一样 怎么这里写的是movsbl 到了别的地方 还有MOV DWORD … 乱七八糟的… 晕了,无论怎么说 在这本书上 汇编的格式还都是一样的,,让我蛮欣慰的,能让我有了继续看下去的勇气,(事实上后来才知道 汇编是与硬件相关的,所以汇编有多种多样,书上採用的是ATT格式的汇编, 我看的另外的那种事IBM的汇编,不同的汇编用的不同种类的汇编器,汇编还分16位的32的64的 说不定以后还会有128的 只是从个人观点来看,短时间内临时不会到128,毕竟64位支持的内存已经不小了 是4G*4G这么大,这里的G是计数单位,不是容量).
我就这样一点一点看下去,第四章是处理器的指令流水,写这篇日记的时候这本书放宿舍了 所以我仅仅能凭记忆去想了..(我认为依据记忆写更好一点,记住什么是什么). 这一章讲了程序是怎么在处理上执行的, 事实上细致一想,处理器就是一个可以执行指令的东西,仅仅只是为了提高效率,做了各种处理,比方每一条指令都分为 取指,译码,………应该是7个步骤吧,我记得不大清楚了, 然后还涉及到了多级流水, 我记得我当时还去看了大话处理器,之类的电子书, 反正是看了,可是反正也没看懂!. 事实上这一章我看到后面也不大懂,就过了..
接下里是第五章: 讲程序优化的,从代码层次上,到深入点的汇编层次上的.反正就是优化.我就是这么理解的. 第六章讲的是 存储器结构, 不得不说 ,人类真是个伟大的发明家, 针对于冯诺依曼体系而言, 处理器+存储器 这种一个体系,对于提高性能力来说可真的是费尽心机, 众所周的存储器山 ,从上到下各自是 寄存器,cache(1,2,3),主存,本地文件系统(硬盘),远程文件系统. 就是这种一个顺序,存储速度越来越慢,造价越来越低, 可是处理器的速度非常快,而主存的读取速度根本跟不上,正是因为局部性原理, 才有了cache这种东西,并且从1级缓存開始,又有了2级,3级 各自是8位,16位和64位吧.
书中还解说了 缓存命中和不命中, 后来又提到了多线程,事实上这样的一种对快速缓存的污染,是一种内存冻伤吧, 我认为事实上人类一直在 需求与效率直接进行权衡.思想真的非常伟大.
第七章讲的是链接,当时我是没怎么看懂,当时还草草的翻了翻编译原理,看了一下词法分析和文法分析,我勒个去,头大了,不看了. 可是目的还是达到了 链接是什么,把编译好的东西 链接到一个 成为一个可运行程序(也就是exe) (这是最简单的形式,事实上还有动态链接,千万不要像我理解的这么狭隘).
第八章讲的是异常控制流,控制异常嘛,唯一的感觉就是异常并不代表错误,这里面还讲到了操作系统通过信号量控制异常,看的不是非常好懂,可是主题思想我还是领会了的,至少没算白看…(不要瞧不起我这样的阿Q精神,至少能支持我继续看下去..)
第九章是虚拟存储器了, 这一章真的是把我之前学的东西慢慢的都联系在一下了,编程事实上就是写一些人类能懂的语言,然后把这些东西翻译成计算机的能懂的语言,也就是机器指令存储在硬盘上,然后在运行,也就是把这写机器指令加载到内存中,可是操作系统做了一个非常聪明的调用,就是虚拟存储器,它给全部进程提供了一种假象,每一个进程都能够从0開始使用全部的内存,而实际上仅仅只是是当进程须要用到内存时,再把它分配到实际的内存中去, 我想再夸一下,人类是多伟大, 学计算机的过程中,渐渐的不再认为计算机是个多么奇妙的东西,它简直笨死了!
剩下几章是讲 IO.网络编程.server编写.差点儿相同是这么些吧. 事实上由于前面的基础打的不牢,并且第一次也打不牢,后面越看越吃力是显而易见的,所以后几张就没有看的太细. 只是近期我又把后面几章补了补.这本书的真的是功不可没.
事实上看完这本书,也就能够说是真的对计算机有个总体的认识了,只是这本书真的非常难,不是一遍两遍能看懂的.有的章节我都看过三遍了, 计算机系统这个东西,没有几个人敢写这种书,由于它太复杂了,我还想去看看linux内核源代码.看了一眼还是算了..我应该好好思考自己该做什么了,学会学知识,更要学会吸收和思考,这本书真的非常好,我在看这么书的时候也看了非常多其它的资料,看到汇编的时候去看了别的汇编,看处理器的时候看了看大化处理,后来还看了计算机网络,tcpip编程,还翻过编译原理,组成原理,操作系统. 这本书就想一根线一样,把我的知识脉络理清了,尽管这些书我能看懂的不多,可是我认识了计算机,知道了各种东西在计算机的体系中占领了一个什么样的地位.在学习的过程中,我也知道,我并非一个喜欢数学的人,我非常懒,懒到希望写一段code完毕我想做的事情,在这个IoE的时代,我还是对计算机充满信心的. 我也整理过大一的时候买过的书,加起来1000多元啊… 心疼..
这里写给新生们的几点建议吧,作为一个比你们大两年,(也就是刚入行两年);
1.学会百度, internet上的信息什么都有,仅仅要你学会搜索,keyword知道吧? 要是你想搜点更高深的去找找google hacking . 在谷歌的搜索框里输入一个 inurl:php?id= ,看看会发现什么?
2.学会思考.
3.要有兴趣,并学会坚持.
4.客观的看别人的见解,别人说的,别人觉得的,别人说怎么样怎么样,一定要有独立的观点,
做一个独立思考者.
5.不要太着眼于新技术, 那些赶时髦的东西也都是从 以下向上发展而来的,而他们的出现,仅仅只是为了解决低一层解决起来不方便问题是衍生的.
6.计算机科学和计算机技术是两个不同的领域,对于我的理解,就是一个须要非常nb的数学,一个不须要数学, ( 只是 貌似 底层的东西应该也须要数学吧 )
7.拓宽自己的知识面.最好也能看看这本书–深入理解计算机系统
我想到什么就说什么啊 ,怎么思考是你们的事情.我不想误导你们.
想起自己大二下的时候每天抱着这么一本圣经游走于实验室和图书馆之间,在实验呆不下去了就去图书馆看,图书馆不想看了,就抱回实验室看,骗骗自己,换个环境.翘课也翘的不少,只是时间都是用来看书的,经常上午空了两个小时去图书干看书,或者下午2点去图书管看到6点再走,或者7点看到9点 回到实验室再看, 不要以为时间非常多,有的时候两个小时也就看了几页,我也会拿着纸和笔在我的书上写来写去,能不看晕,也是个能力..嘿嘿..
多看书,才干保证自己不愚昧,想写软件,能够去看看设计模式,搞搞数学建模,看看运筹学(这个我没看过,只是这书我有) 搞搞算法 看看算法导论(这个太难),看看那个楼教主写的那本,另一本白色书皮的那个作者姓巫的书也挺好的.反正我是没坚持下来,或者搞搞图像处理,(我没搞) 我的兴趣还是在偏向底层一点,近期爆出的bash运行漏洞.,,前一阵子的openssl ,看了非常多,可是我真的看不懂..
对了,对Web感兴趣的话,看看asp,php,jsp等脚本语言,还有python,认为也不错,浏览器语言js学学也挺好的..脚本语言见效快..学起来有信心,了解一下 web页面就是dom的这种一个结构,**p也仅仅只是是一种脚本解析方式, 看看计算机网络,了解一下计算机网络体系结构也是挺好的,看过之后认为自己懂了,心里就非常舒服,你能够拿着burpsuite截获个http包看看.
底层的话看看反汇编逆向分析,0day安全那书,当时查了有好多,没记住,都存在我的电脑里了..
附一张我当时各种搜集资料的图,乱七八糟的,感兴趣的也能够依照自己的认知方向分类.
.最后提一下比較经典的书(经典的书不一定那么easy懂):
c语言的四书五经:c程序设计语言(机械工业出版社的),c和指针,c缺陷和陷阱,c专家编程
数据结构: 国内的那个考研专用书严蔚敏的,另一本是机械工业出版社的数据结构 写的不错,另一本是大话数据结构,写的简单易懂,(易懂的东西一般写的略微浅一点,可是他易懂的,都是我看过的 ,没看过的我尽量不乱推荐)
c++: c++ primer(我没看过,外人说的经典), c++ primer plus(不推荐看..太长了太厚了)
还是随便找一本的吧..
细致想想我还是不推荐了, 毕竟我就是一个小菜, 我一般看书的话都会去找各种资料,由于每一份资料都是一种观点,当有好多人在向你讲述一个东西时候你看的才会全面.
事实上我大二结束的时候就想写了,但有的时候想想还是算了,不想被说成卖弄,面对学校这种教育,以及可能会有非常多像我这种 把自己现身于水深火热的迷茫中的大一孩子,希望你们看到后,多少能有点方向,而且做好心里准备,往后的路 ,走起来不会那么easy.大家都在慢慢长大.
(我不想吐槽学校了. 它真的不重要,(不要问我是哪个学校的))
多说一句,知道为什么往往比知道怎么做要重要的多.
不知不觉写了两个多小时,希望赞同的人能支持一下,也希望能有想学计算机的人能看到这个帖子,并真心希望多少能对你们有些帮助,能简单解决的问题不叫问题,能轻松做好的事不叫大事.就这样吧
.
by 晴天小猪
2014.10.2
(转载请注明出处 :http://blog.csdn.net/airuozhaoyang/article/details/39736111)
版权声明:本文博客原创文章。博客,未经同意,不得转载。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117434.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...