首页 > 代码库 > 坚持住,慢慢来(送给大学的程序员)

坚持住,慢慢来(送给大学的程序员)


开篇


作为一个计算机科学的学生,我们需要做的是找到一个自己感兴趣的路线,找到一个属于自己的学习方法,让兴趣驱动着自己,不断深入的探索。计算机的世界很奇妙,当你真正踏入进来后,你会感到它的魅力是无法形容的。


下面以我的个人经历为蓝本叙述一下一个计算机科学的学生的成长以及学习方法,仅为个人观点,希望能帮助到大家。


我们在学校首先接触的一般是C/C++或者是C#,我们学校就是以C为起点的。在国外的高校也有以python为起点的,但是国内却不多,所以在此我暂不供述,在我看来都很不错。首先,像C这样的静态类型语言,你需要为你的变量去声明数据类型,进一步的说,可以主动分配你需要的内存块,说白了,你做什么都取决与你自己,所以你在书写的时候需要小心。for example:


#define BUF_SIZE 50 int a[BUF_SIZE] = {1, 2, 3 ,4}; printf("%d", a[51]);

这明显是错误的。但是你在编译阶段是不会收到error的。


学习C这样的语言的好处是,可以让你对任何的数据类型都有所认识,对每一内存块都有所考虑。但是它对初学者我认为的比较大的缺点就是:写啥都是那点黑框框,写着写着就没意思了。我在我之前的学习中也体会过这种感觉,我后来也向我周围的同学们求证,我发现大部分同学也有过这样的感觉。


整天就摆弄一个黑框框,写写就不想写了


没错,就这样我们不断的学习着一门的语言的语法,马上,我们就会踏入数据结构的大门。说实在的,数据结构可以算是计算机科学的基石了,但是作为一个初学的人可能不会意识到这一点,加上数据结构一般会以我们入学时学习的语言来去实现。慢慢的,部分的人由于对学习的语言丧失了兴趣,然后又碰见”枯燥“的各种链表堆栈树图。。。等等。对知识的兴趣一步一步的降低,加上有的人本来理解能力较差,从而彻底对所学习的无感。再以后会学习数据库,操作系统,网络的知识同样也会感觉索然无味。


就这样陷入了恶性的循环,越来越没有兴趣去学习


我身处一个三本学校,我周围的大部分人都对学习这件事情报以无所谓的态度。在这些人之中,有的从一开始就是来混的,这我们不管。另外的这之中的部分人,他们一开始也有一颗向上的心,可是由于缺乏对知识的兴趣,加上差劲的学习氛围,一步一步自我放弃,到最后每天看视频打游戏,这样的例子很多,我也算是都见过了。因为我也有一段时间天天打游戏,我承认确实感觉很爽,也没有人去管自己,就玩被。


到这里,我要开始说重要的东西了。我们来到了大学,难道要浪费我们的珍贵的时间吗?我们要浑浑噩噩的度过这四年吗?在大学里,总是要生活的激情一点,天天养老也没什么意思对吧。如果你是因为我上面说的原因,想学习但是找不到兴趣点,或者是因为学的很迷茫,那么我觉得我应该能给你一点启发,就从现在开始吧。




从零开始


除去学校学习的C/C++,我第二个接触的是关于渗透方面的知识。渗透测试,在我当时看来就是Hacking,第一个使用的工具是sqlmap:一个自动化SQL注入和数据库数据抓捕的测试工具。当时看网上视频演示的时候简直狂拽炫酷吊炸天啊,动动手指头就获取了网站后台的数据库的数据。。看的我内心十分激动,所以我也下载了一个,按要求配置好,天真的扫描了一下baidu.com。。。发现并不好使啊。。。


当时想,妈蛋这怎么一到我手里就折了呢,试试别的,然后把国内的各大网站都试了一遍,结果你懂的,连根毛都不能找到。。。


一脸黑线。。然后我就从百度找了点学习视频去看,中间有一段教授各种命令,原来有可以利用google去寻找注入点的技巧啊,先试试,然后发现需要FQ。。我又去寻找FQ工具,找了半天,找到了个免费的shadowshocks,卧槽你别说,还真找出来了不少,接着一个一个试,也不知道试了多少个,最后都麻木的复制粘贴了。


突然,诶,没有红色的error!找到了!我很记得当时心情很激动,然后接着看教学视频,看看人家是怎么做的,边模仿边打命令,一步一步我查到了表,然后查找列,最后寻找user,password字段,perfect!找到了好多的用户和密码,可是密码怎么这么长,继续百度!原来是已经加密过了的,找了个MD5网站解密,成功解了出来!我也攻破了一个网站,哈哈小小的成就感(虽然后来知道了这种网站早已经没有人维护了,但是当时不太懂还是感觉很好的)。


后来紧接着大一下学期的期末考试来临,暑假来临,继续鼓捣我的sqlmap!后来(引导我上道的人)马哥告诉我,你可以试试kali linux,里面有好多的工具。啥玩意?啥linux?我先百度一下是什么。。原来是一个集成众多测试工具的操作系统。这个好啊,下载下来玩一玩,安装就废了半天劲,进去了之后,找不到文件夹。。当时用习惯windows的我真的是一脸的懵逼啊,没办法,先学学linux的基本操作,要不怎么用这些工具啊。就这样,有点闲工夫我就鼓捣鼓捣,一开始用虚拟机攻击自己主机,后来利用metasploit制作恶意程序装到了我爸的手机里,然后开我爸手机的摄像头哈哈。就这样,当时也觉得自己有了点学习的动力,找到了点学习的乐趣。


总结一下

  1. 我这时对渗透测试感兴趣,说明我找到了自己的可能存在的兴趣点
  2. 不会的地方多加尝试,多去百度,你就能发现自己想要的
  3. 多了解了解各种知识,不要局限于学校学习的,途径可以有多种,比如我接触到渗透测试是从我的组长(马哥)那里得知的



不断改变


后来开学了,在马哥的隔壁上课,后来可能是他问我想不想跟他写个网站(具体过程忘了),由于在暑假不断玩测试工具,也看了一点html的知识,感觉这个也挺有意思的,好吧,这次我又走上了写web的道路。一开始,我们写的是一个数据查询的页面,他负责后端,我管写点界面,ok还是老样子,先找找有没有教学视频,网上这种东西还是挺多的,就开始看。溜了一遍html标签,每个例子跟着做一做,好像写完了页面不怎么好看啊。。。当时看的是一个叫做菜鸟教程的网站,哦,原来还有一个叫css的东西可以帮我把页面做的漂亮一点,学!


一天下午,马哥看我在浏览器上量像素的时候,问我干啥呢?我说这不是比较下宽度吗。他说,你别这么写了,费劲啊,你看看bootstrap,一个框架,挺好用的。


。。。什么玩意,一脸懵逼,百度吧。看了好几个小时,可算明白了,原来是twitter工程师为了方便我们写web项目,直接提供了我们各种基本的组件啊,学!后来花了两天去学习,确实相当好用哈哈。


就这样写了一个又一个页面啊,时间也过得很快,转眼间10月1了,放了七天,也没回家,愣是在寝室用七天把C primer plus看了一遍(具体为啥看我也忘了。。),后来马哥跟我说他想写一个“真正”的网站,我说咋写啊,他说我们用python来写,还是用框架。


好啊!早就想写个牛逼点得了,天天写静态页面没啥意思啊,马上就答应了。我们预计的是11月15号写完,10月15号计划了这个工程,就这样开工了。之前听马哥的学了七八天的python语法吧,然后我就直接接触了Django框架,当时觉得这个跟天书一样,官方文档全是英文的,啃半天也啃不动多少,现在很明白的model,view,url当时却怎么也看不懂,百度的资料也都是之前的了,啊咋办啊,先模仿吧。对着文档的例子一个一个敲,买了python web开发的书,对着书上的代码敲敲敲,别人的教学博客,一个一个敲。我也不知道是怎么回事,好像懂点了,看来机器记忆也的到了一点成效。紧接着,我接触到了github,搜索了一下,哇塞,这么多别人做的Django开源项目,然后我就对着别人的源码开始敲。期间,锻炼了我的代码阅读能力,看英文文档慢慢地也不那么费力了,有的抄有的写,我一步一步的完善这我的网站,第二天,登陆注册功能完成,第四天,信息发布功能完成,第七天,前端页面接近完工。


第九天或者第十天,记不太清了,我完成了网站的制作。那几天,我把我的全部精力都放在了这个上面,课也不听了,游戏也不玩了,基本每时每刻我都在思考如何完善我的网站吧,现在看来,当初做的网站真的一般般,不过我还是肯定我当初的作品的。


这是我兴趣和努力的结晶,也是我的第一个学习成果


总结

  1. 虽然我当时不是主动接触各种新事物的,但是兴趣驱动了我去完成了我当时想完成的事情
  2. 我从那时意识到了,学习没有那么的枯燥无味,相反是那么的有意思,学习可以让我做我想做的事情
  3. 阅读英文文档,源码的能力对于程序员很重要
  4. 不要遇到困难就放弃,今天不懂不代表明天不懂

最终目标


经过上述的过程,潜在的,我发现了我不断变强的两个方面:


  1. 自主自学能力的提高
  2. 独立思考能力的增强

我转变成了我可以独自寻找我想要的东西的人。通过不断的学习,我开始寻找我最终的兴趣点,接触python,接触C++,javascript, ruby等等,我去寻找资料去了解现在世界上的主流技术,创新技术,Big Data, Mechine learning等等。发现百度搜索的东西命中率不如google的高,发现了番茄工作法,可以规划我的时间。在每个下一天我都有可能推翻我前一天的想法,不断的思考是一个能让一个人升华的事情,你可以建立一个你自己的思维模式,构建出自己的网络,拥有你自己的观点,我觉得这些都是一个人宝贵的财富。


这些不断的改变我的生活方式,我觉得也可也可以改变我的未来,也可以让我达到更高的高度。现在我已经有了我不断努力的方向,同样也是我感兴趣的方向:系统编程领域。我在不断的探索着一切关于它一切好玩的地方。


这篇文章就到这里结束了,最后的总结:


  1. 兴趣点一旦最终建立,剩下的就是为之努力
  2. 让思想不断延伸到未知的地方,让自己更充实
  3. 把自己的时间规划好,我推荐番茄工作法
  4. 拥有一个健康的身体,一个良好的作息,这可以帮助你很多
  5. 希望看到这里的人能够帮助身边的人一起成长,因为别人曾经也帮助过我,所以我有一种帮助更多的人的想法,让我们不断传递,让大家都寻找属于自己的道路

也没写过几次文章,可能语言组织不好,条理可能不是很清晰,希望大家谅解。


本文写给XYX,希望能帮助到你。学习并不难,坚持住,慢慢来。

 

 

坚持住,慢慢来(送给大学的程序员)