我的编程马拉松

来源:互联网 发布:mac 最小化窗口快捷键 编辑:程序博客网 时间:2024/05/21 11:31

时光荏苒,本科四年就快到终点站了。大学三年多了,我做了什么?思考了许久,总结起来,自己就跑了一场编程马拉松。这场马拉松起点在大一,终点在未来。这场马拉松将贯穿我职业生涯的始终。

起步,入门C

相信很多选择计算机专业人都是报着美好愿望来的,谁让这个名字听起来那么高大上呢,我也不例外。这不,和很多选择计算机专业的同学一样,我怀着对计算机的美好愿望选择了这个专业。在不知天高地厚的我看来,计算机几乎和玩玩游戏,逛逛Internet等美好场景等同起来,最多也就是学习一些软件的使用罢了,没什么大不了的。恭喜你,如果你当初选择计算机的时候也这样想的话,那我们都一起掉进了一个大坑里。

相信很多计算机专业出身的编程人员都是从学C开始的,谁让C那么有魅力呢,我也一样。来到大学,开始了计算机专业的学习,发现自己掉进了一个大坑里。起初当然是各种不爽,看看人家已经去欣赏大自然的鸟语花香了,自己还在对着一个屏幕敲代码,还有各种bug缠身,简直是苦不堪言啊,这就是我一开始接触C编程的感触。

掉进坑里,当然需要爬出来,于是我开始了漫长的爬坑行动。从写hello world开始,慢慢地跟着老师学,一个字符一个字符地敲代码。这样坚持了一个月后,发现自己有点感觉了,也大概是习惯坑里的环境了,总之不再那么痛苦了。继续爬坑,当学到数据类型的那部分的时候,自己对其一知半解,只会使用,学到控制结构的时候,自己有感觉了,学习也很快,因为这玩意儿高中数学里接触过。继续往上爬,就是数组了,感觉这个就是拼各种算法,难度还可以接受,高中已经接触过一些算法,所以这一步还顺利。再继续往上走,就是函数了,这玩意儿也还好,就是把之前全部写在main函数里的代码进行功能拆分和模块化,所以这一步也爬得顺利。接下来就是指针了,这个是C的精髓,难度也是五星级的。对指向基本数据类型的指针,我很快就明白了,但是对指针更高级的特性,诸如指针数组,数组指针……一大堆颠来倒去的,绕得我晕头转向,不知所云。好在当时老师也知道这个有难度,没有对我们提多高的要求,所以这一步也侥幸上去了。最后就是结构体了,这个就是根据应用需求,通过对数据类型的组合,构造一个自己想要的数据类型。爬到这一步的时候,已经是期末了,没有继续往下学。后来寒假回家以后,自己又重新回到坑底,再爬一次,这一次顺利多了,收获也不少,很多当初一知半解的东西,现在已是豁然开朗,但是对于指针的高级用法还是不知所云。

至此,我的编程马拉松算是起步了。起步是一次艰难爬坑行动,是通过学C来实现的,现在,我姑且自认为入门C了。

加速,入门C++

入门C之后,我没有直接去学C++,我是老老实实跟着学院的课程安排走的。学了C之后,学的是数据结构和算法,这是一门有难度但是很有意思的课程,因为当时我们只会C,所以各种数据结构与算法都是采用C来实现,所以这门课程也巩固了一下C功底。

把数据结构这个披着数学面纱的家伙攻克之后,我就来到了C++的目前。C++是在C的基础上面进行了扩展,加上对面向对象的支持,所以和C类似的特性我很快就掌握了。对于面向对象的思想,我也很快就理解了。就这样,我很快入门C++,不得不承认,C++是一个极其复杂的东西,后来遇到了Java,所以到目前为止我再也没有对其进行深入学习,还是停留在入门水平,但是我相信,将来如果一定要爬C++这个大坑,我有足够的勇气。

在我的编程马拉松的加速阶段,除了入门C++,我还接触了计算机组成原理和数据库,这些知识为我的加速阶段添加了不少能量。

提速,驶上Java快车道

我的编程马拉松的提速阶段是通过掌握Java来实现的。接触Java的时候,我对面向对象的基本思想已经熟悉了,我关注的是Java对这些思想是怎么实现的以及Java有哪些独特的特性,还有Java在企业开发中是怎样大展拳脚的,最后就是接触大数据背景下的Java开发。

提速第一步,瞄准方向。Java给自己定了3大发展方向,Java ME,Java SE和Java EE,但是根据周边环境和我对未来趋势的判断,Java只在企业端和andriod移动端2大方向有优势。随着大数据、云计算和人工智能等新一波浪潮的来袭,未来的桌面应用会越来越少,未来的PC只需要操作系统和浏览器就够了,其他东西完全可以运行在云端。结合Java的优势和未来的趋势,我选择了Java企业级开发方向。

提速第二步,掌握Java SE。瞄准了方向,接下来就是脚踏实地学习了。不管往哪个方向发展,Java SE都是基础。Java SE中,以集合,泛型,注解,多线程,网络编程和反射为灵魂。对SE中的这些核心的东西,我一直在沿着接触、熟悉、使用再到深入源码的路径螺旋式前进。

提速第三步,从课程项目到企业级项目。要学会任何计算机技术,编程打造实际应用都是最好的方式,以至于有人声称计算机专业最重要的就是打字课。接触Java以后,我可以真正打造具有实际应用价值的项目了。我是从做各种课程设计项目中开始使用Java开发实际应用的,这些项目有数据库课程设计,操作系统课程设计,还有SRT的数据挖掘。当自己可以使用Java设计和写出上万行代码的项目时,自己再也不感觉计算机很枯燥,也不再觉得计算机是个大坑了,当初选择计算机的那种美好愿望再次回到我身边。带着这份热爱,我于今年暑假加入了某软件公司,参与公司的智慧城市产品研发。这其中也有一段痛苦的经历。初次来公司,发现自己掌握的东西远远不够,公司的项目是基于B/S架构的大型Web应用,显然只有Java还远远不够。于是,我继续学习了基于Java的框架Spring和Mybatis,还学JavaScript和基于他的好几个框架。此外还接触了好几个数据库,从小巧玲珑的SQLite,到开源数据库MySQL,PostgreSQL,再到内存数据库Redis,Memcahed,最后是大型关系数据库Oracle和NoSQL数据库MongoDB和HBase。

在公司的四个月是我蜕变的开始。这期间,我学会了怎么把空洞的软件工程理论体现在自己的代码中,学会了如何在上百万行代码的项目中优雅地完成自己的功能,练会了整个Web开发的基本功,学会了Storm流式大数据处理,一览数据库领域的活跃场景,接触了大数据的开阔世界。

就这样,在我编程马拉松的关键时刻,我顺利驶上Java快车道。

稳速前进,迈向未来

岁月不停,奋斗不止,博客写完了,但是编程马拉松还得继续跑下去。未来,我将一边修炼内功,一边螺旋式更新各种新招式。借助于在校的半年时间,研究一下C指针的高级特性,构建一个完整的计算机系统观,打造一个扎实的数据结构和算法功底。与此同时,报着开放的心态,接触各种新招式,如果说这样没有重心的话,那就定小目标吧,先花个10年时间,在大数据应用领域成为专家,争取为社会创造更多价值。

1 0
原创粉丝点击