自己的访问计算机和网络,从大一到研一,基本上5岁月。本科主修自己“互联网project”,掌握时,他们的研究“数据挖掘”。
本科时。我们学校计算机系开设的课程还是非常多的。尤其是网络project专业,既涉及通信project专业的课程,又涉及计算机专业的课程,主要课程例如以下所看到的:
- 高等数学;线性代数;概率论;统计学。离散数学
- 电路;模拟电路;数字电路。通信原理
- 数据库;数据结构;操作系统;计算机组成原理。计算机体系结构
- 网络原理;网络管理;无线网络;网络安全;接入网;网络交换;网络project
- C程序设计;C++程序设计;Java程序设计
说明:
(1)学校组织我们參加过CCNA和部分CCNP培训。
(2)在Windows Server和Linux上搭建过经常使用的server。
(3)遗憾的是。没有开设“算法设计与分析”[已学],“高等代数”[已学],“随机过程”[正学]。“复变函数与积分变换”[已学],“汇编语言程序设计”[已学],“编译原理”[要学],“软件project”[已学]和“信号与系统”[没学]。
通过这一系列课程的学习。使自己从硬件到软件。从计算机到网络都有了一个总体的认识。即使非常肤浅,所以才有了后来的考研。时光如白驹过隙。一转眼,5年过去了。本科时用过的工具例如以下所看到的:
- Excel。Matlab
- GCC;G++。Visual C++ 6.0;Visual Studio 2010
- MASM
- Cisco Packet Tracer;小凡模拟器。GNS3
- Eclipse;MyEclipse
- MySQL。SQL Server 2005;Oracle 10g
去年我大学毕业,今年你们大学毕业。真的非常想念宿舍的兄弟们,等你们答辩完成之后,我就给你们打电话。
本来打算要回去的,因为近期繁忙。实在没法回去。真的非常遗憾。去年你们把我送走了,今年我不能回去看你们,也好久没有和你们打电话了,当你们在怀疑是否把你们忘记了没有?事实上。我想说的是。从来都没有忘记过。当得到你们当中三个人考上了名牌大学的研究生,一个人找到了好工作,我真的替你们高兴。大学结束了,事实上。真正的人生才刚刚開始,祝你们再拼再搏再辉煌。(文文君。涛涛君,召召君。楠楠君)
研一立即就要过去了,基本上包含两个部分,第一部分是读论文,估计研二开学之前,论文初稿能够完毕。
第二部分是对自己兴趣的探索,因此,自己学习的东西非常广泛,比方大数据,云计算。虚拟化。物联网。数据挖掘。机器学习,自然语言处理,搜索引擎。人工智能。模式识别,图形图像。机器视觉,推荐系统等。可是。自己学习的中心是Python和机器学习。经过一年的摸索。自己初步将目标定为“金融 + 大数据”。
因为面临着就业的压力。所有学习是不现实的,做人必需要学会舍得,有舍才有得。什么都抓,反而什么都抓不到。
自己必须熟练掌握一门吃饭的东西。详细规划。例如以下所看到的:
一、语言部署
- 汇编:工作基本用的非常少。自己学习汇编主要是为了了解计算机的工作原理和学习逆向project用的。经常使用的有Intel汇编和AT&T汇编。在DOS,Windows和Linux平台学习汇编,有不少好的參考书籍。
- C:是系统编程必备的语言,自己学习C主要是为了学习算法和ACM。
- C++:关于图形图像和机器视觉的类库都是用C++开发的,关于C++的好书真可谓汗牛充栋,通过这门语言的学习,去深刻地理解究竟什么是软件project。自己学习C++主要是为了可以读懂别人写的程序。
- C#:和Java差点儿相同。自己学习C#主要是为了可以读懂别人写的程序。
- Java:工作用的非常多,而且非常多的开源项目都是用Java写的。自己学习Java主要是为了做分布式和Web服务。
- Python:自己学习Python主要是为了做数据分析。
- R:自己学习R主要是为了可以读懂别人写的程序。
说明:
自己主要学习Python和Java。Java主要包含Java EE相关知识,尤其是分布式和Web服务编程。Python主要用来抓取数据,处理数据和数据可视化。
抓住主要矛盾。兼顾次要矛盾,全面发展,重点突破。
二、算法部署
算法是计算机科学中最具有方法论性质的核心概念。也被誉为计算机学科的灵魂。尽管。我不知道在实际的工作中。算法使用的频度,可是,算法至少是进入公司,尤其是大公司的敲门砖,是标量一个程序猿水平的重要指标。
敲的是代码,背后隐藏的却是完美的数理逻辑。正是由于算法,所以整个网络世界如此美好,否则是不可靠的。对于编程,我也一直坚信“存储是前提。操作是关键,算法是灵魂”。对于程序猿这个职业,我不想有太多的评论,我想说的是因人而异,正如其他的全部行业一样。
自己将算法分为三类。各自是“经典算法”。“ACM算法”和“数据算法”。
(1)经典算法
这里的经典算法指的是“算法”和“数据结构”。
- 《数据结构(C语言版)》[已学]
- 《算法结构(习题集)》[半学]
- 《数据结构算法解析》[正学]
- 《数据结构与算法分析——C语言描写叙述》[正学]
说明:
以上数据结构的书籍均是用C语言描写叙述的。假设想学习C++和Java版本号的。推荐《数据结构、算法与应用——C++语言描写叙述》[要学]。《数据结构与算法分析——Java语言描写叙述》[要学]。
- 《算法设计与分析基础》[正学]
- 《算法导论》[正学]
- 《计算机程序设计的艺术》[要学]
说明:
想要学好算法,非下苦功夫不可。
看得懂的书,请细致看;看不懂的书。请硬着头皮看。
化抽象为详细,重复地学,重复地做。
(2)ACM算法
自己觉得ACM可以锻炼一个人高速分析问题和解决这个问题的能力,是训练思维的体操。今后主要在刷题。
- 《算法竞赛入门经典》[正学]
- 《算法竞赛入门经典训练指南》[要学]
- 《算法艺术与信息学竞赛》[要学]
说明:
ACM刷题最最重要的是坚持,正所谓冰冻三尺,非一日之寒。
(3)数据算法
这里的数据算法主要指的是数据挖掘。机器学习,自然语言处理中的算法。
同一时候还会涉及搜索引擎,人工智能,模式识别,图形图像。机器视觉,推荐系统等中的算法。
主要目的就是为了用智能算法去处理数据。
- 《数据挖掘:概念与技术》[已学]
- 《机器学习》[正学]
说明:
其他部分依据须要进行学习。
自己觉得今后机器学习将会更好地服务于人类的生活和工作之中。
三、数据库部署
自己用过的数据库有Access,SQL Server。MySQL,Oracle,ASA(Adaptive Server Anywhere),Oracle XML DB,HBase。
事实上,熟练掌握一个关系型数据库与一个非关系型数据就可以,通过实践促进理论的学习。
- 《数据库系统概论》[已学]
- 《数据库系统概论(习题集)》[已学]
- 《数据库系统概念》[要学]
- 《数据仓库》
说明:
关系型数据库自己主要掌握MySQL,以后依据须要学习Oracle。并考取对应的证书OCA。OCP和OCM。非关系型数据库自己主要掌握MongoDB。
数据仓库自己主要掌握Hive。
四、工具部署
工具是非常重要的生产力。事实上。手机,电脑和网络等等都是工具。做数据分析也一样。有非常好的IDE。做大数据分析,则须要自己依据框架进行编程,甚至自己写框架。
(1)小数据分析工具。例如以下所看到的:
- Excel:主要学习VBA。
- SPSS:通过实践促进统计学的学习。
- SAS:通过实践促进统计学的学习。
- Matlab:有大量的工具箱,而且做图非常美丽。
- Weka:《数据挖掘:有用机器学习技术》[已学]
- Mahout:《Mahout实战》[要学]
- Linux:主要学习Shell。
(2)大数据分析工具,例如以下所看到的:
- Hadoop:主要学习Hadoop生态系统。
- Spark:一个基于内存计算的开源的集群计算系统。
- OpenStack:一个云平台管理的项目。
- Eucalyptus:Amazon EC2的开源实现。
- KVM:一个开源的系统虚拟化模块。
- Xen:一个开放源码虚拟机监视器。
说明:
自己主要学习Matlab和MapReduce编程。关注大规模数据存储,大规模数据处理和高性能计算,比方GPU,集群。分布式和并行计算等。
五、数学部署
你的数学水平。将会决定你在计算机。尤其机器学习这条路上会走多远。
- 《数学分析》[已学]
- 《线性代数》[已学]
- 《概率论》[已学]
- 《统计学》[已学]
- 《随机过程》[正学]
- 《离散数学》[已学]
- 《组合数学》[已学]
- 《详细数学》[正学]
说明:
不怕慢。仅仅怕站。凡事预则立,不预则废。
学习数学和算法都须要有点儿蚂蚁肯骨头的精神。
总之,把自己当成数学专业的人来学习数学专业吧。
六、英语部署
通过2014 IEEE-IPC。自己真正的意识到了英语的重要性。临渊羡鱼,不如退而结网。今后要在听,说。读。写。译,尤其是在听和说方便强化训练。
- 上海中级口译证书。
- 上海高级口译证书。
说明:
英语不难,贵在坚持。
七、金融部署
课余时间,多了解一些金融方面的数据分析,尤其是金融时间序列分析。
- 证券从业资格证书。
说明:
自己觉得今后计算机发展的最大潜力,在于将计算机与传统行业结合。利用计算机去解决传统行业中的问题,而且将计算机的潜力发挥到极限。务必坚持“数学 + 计算机 + 业务”这种发展模式。永远选择人生的窄门。
八、其他部署
一个真正懂计算机和网络的人。是不应该受硬件束缚的,是不应该受语言束缚的,是不应该受平台束缚的。不管是Intel还是ARM,不管是C++还是Java,不管是Windows还是Linux,差异是表面的。本质是同样的。
- 《操作系统》[已学]
- 《计算机组成原理》[已学]
- 《编译原理》[要学]
- 《TCP/IP具体解释(3卷)》[正学]
- 《Windows核心编程》[要学]
- 《Windows程序设计》[要学]
- 《UNIX环境高级编程》[要学]
- 《UNIX网络编程(2卷)》[要学]
- 《深入理解计算机系统》[正学]
- 《Windows环境下32位汇编语言程序设计》[要学]
- 《IDA Pro权威指南》[要学]
说明:
自己学习汇编的路线是《汇编语言程序设计》(王爽)——>《IBM-PC汇编语言程序设计》——>Windows环境下32位汇编语言程序设计》。由易到难,由浅入深,循序渐进。稳扎稳打。
九、符号说明
- 已学:表示以前上过这门课程。或者以前自学过。
- 半学:表示以前学习过,可是没有学完。
- 正学:表示如今正在学习。
- 要学:表示假设今后有空了。就会去学习的。
- 没学:表示以前没有学过,而且在今后相当长的时间内也不会学习。
总结了一下。貌似非常多的样子。
事实上。简单来说就是“语言(Java) + 算法 + 数据库(MySQL)”必须精通,其他的依据自己的需要进行对应的学习。可是心中必需要有计算机和网络的这个架构。
我以前试图寻找捷径,可是绕过去的路。后来又又一次走了一遍。请不要做一个浮躁的人。切勿浮沙筑高台,练从难处练,用从易处用,无速成,唯有坚持,最后,扬科老师的话作为结束它。
版权声明:本文博客原创文章,博客,未经同意,不得转载。