回味在CSDN上的那些过去-那篇关于我的迷茫

Author Avatar
在路上 12月 20, 2011

CSDN最近遭暴库,今天看了CSDN的公开致歉信后,发现2009年4月份的密码是加密处理的,我就急着想知道我的注册时间,于是这才在CSDN上的提示下,登录CSDN后修改了我的密码。其实我是在09年6月注册的,哈哈,我的密码是加密处理过的,心里乐呵呵的。

登录后,在自己的博客上转了转,有几篇旧文还是值得回味的。 2011年5月份的那篇关于迷茫的总结是我最欣赏的。现转到我的新窝:

我的迷茫,将在何方结束-

——程序员?科学家?

首先,留给我的时间已经不多了,一年就快毕业了。对自己过去的迷茫稍微做一总结。

首先简单地枚举下瞄过的语言:

     C:

     C++:

     Java:

     PHP:

     JS

C是最初接触的语言了,可是却不是很精通。其高效,精简。

C++也许是语法看似最复杂的语言了。

Java也许是语法不复杂,但体系最庞大的了。

对于PHP,与C可以比比,其语法也比较简单。

Js已经变成网络的宠儿脚本了,其与PHP颇有些相像,但js的事件处理机制无疑占上风了,我接触PHP的那些日子,从没接触过PHP的事件处理机制。随着网络盛行,用户体验需求逐渐日涨,js的开源库也越来越贴心程序员们了,如JQuery、Ext、Dojo、prototype等等。

对于C,我更是越来越热爱它了。只要懂得其基本语法,我们在解决问题时,没在必要太关注语法上的东西,而把注意力放在算法上面,当然C能让我从底层更好地认识计算机。 我们知道,linux是用C做的系统,而对网络上的大型系统,企业应用,Java或.Net是更好的选择了。这让我们从一个高层抽象地高度去构建人类社会生活中的系统,这不同于C构造的底层操作系统。Java已经是一个很庞大的体系了,其开源的类库,在各方面的类库已经很多,Sun自己的,包括Apache的,还有其他开源项目等等。Spring、struts、hibernate是最常用的开源架构了。在GUI上,其除了AWT、Swing、SWT外,又推出JavaFX技术。技术是越来越多,什么JSF、EJB,只让人学得喘不过气来,时间久了,学了这个,忘了那个。

语言除了上面说的外,大家也许都了解过其他一些语言,Python、Scala、Ruby等等。

现在在重点谈谈C++吧。说真的,C++是曾经让我很痴迷,可是最后还是因为WinAPI、MFC中奇观的类型和数据结构的定义,以及一大堆方便而无聊的工具,开始让我思考,整天学这么一大堆工具,有意思么。自己从思想上能够提高多少呢? 最后逐渐倾向Linux、倾向Java。现在又反而感觉Java又是一大堆库,哎,其GUI又不是其专注的。想想C++,系统、游戏、桌面软件、嵌入式,它的身影也是无处不在啊。

不扯这些东西了。说说我最近我总结的一些方向吧。

算法方向:

Java企业应用方向:

密码与安全方向:

嵌入式方向:

C++游戏方向:

算法方向:算法还是最本质的吧,技术再怎么发展,算法的发展不会向技术那么快的发展,其说起来就是数学。虽然可能不像MFC那 样,我做一个能看见的窗口,但是算法能让我变得更加有内涵,不再仅仅是调用别人的库函数,调用别人的类库,我可以自己思考,记得高中老师说得好:数学就是 一种思维体操。其实这几年,我也发现,离开数学,一个人的思维真的很容易迟钝下来,变得懒于思考,不会自己主动去解决问题。

算法的应用不仅仅停留在某一个学科某一个方面,它往往再各学科在现实生活中都是相同的,如我们所了解的蚁群算法和遗传算法。如Floyd算法,无论在运筹学中,还是在网络路由,我们都需要寻找最短路径,使成本降至最低。也许算法的通用性和算法的强大,让我对它更加疯狂。因为它值得我去疯狂,其实这还要感谢July,他向我们传达了一种精神——执着。

Java企业方向:Java在企业中的应用包括很多,公司网站、ERP等,其涉及的技术更是庞大:包括J2SE、我们还要学习JSP、Servlet、JavaBean、JSTL等基本技术,还有Spring、Struts、Hibernate、EJB等技术,还要学习Tomcat、Weblogic等服务器的配置使用。在架构上,我们不能不了解设计模式,这是精髓之所在啊。对于Java的类库的掌握,恐怕已经足够我研究了吧,其对IO处理、线程、并行计算、XML的处理、正则、数据库操作、安全的保证、日志记录、邮件、事务、网络等都遍历个精光。如果要加上其他开源的类库,恐怕

更庞杂了,如果单从灵活使用上来说,都让我没有精力,更别说其中所蕴含的思想以及系统架构和设计模式。

     Java的另一个方向:也许就是Android了。Android又是另一套系统,需要在Java的基础上重新架构我的思维。要学会Android处理问题的方法,以及比较其与其他技术如JavaMe的不同。

密码与安全方向:这很大一部分其实涉及的就是算法,如RSA、DES、AES、MD5等。但其安全方向还得需要搞一些应用上的东西,如软件加密与破解等、网络安全、数字认证等,展开后其技术面也开始扩展开来,让人无从下手。这不是简简单单的Hacker、也不是纯数学家所干的事情,而是综合地去学习真正的安全专家和数学家所需掌握的东西。

嵌入式方向:其包括硬件方向和软件方向。硬件方向自然偏向电子工程、自动化、控制方向了。其所需要了解的知识也不少,模电数电必须的吧,单片机必须的吧,好一点掌握DSP,计算机组成原理、C语言、汇编语言少不了吧,控制理论对于自动化也不必说了吧。

嵌入式软件方向,其中之一就是偏于移动化,就是上面所说的android和JavaMe了,这里就不谈了。还有一个就是驱动了,USB驱动,各种硬件驱动。有Linux的,有Windows的,其所需要掌握的也不必搞纯硬件和纯软件的少吧。

最惊心动魄的莫过于游戏了:首先现在的大型游戏采用C++的比较多,而Windows的GDI、MFC得懂吧,各种游戏中使用的算法,就如云风《我的游戏编程感悟》一书所讲的,什么A*算法,什么掌握一门脚本,如Lua都是需要的。DirectX、OpenGL更不用说了吧。什么OGRE、这个那个乱七八糟。关于图形图像也许也算一个方向,如OpenCV。其实游戏不是简单地涉及娱乐,它不仅是娱乐,不仅是一门艺术,而且还真称地上是一门科学,一门很综合的科学:其中,不仅包括各种算法,寻路等算法、数据结构,还包括物理知识、

音视频处理、图形图像处理等等。也许很多还涉及到计算机前言,如人工智能等,不知道神经网络、机器学习算不算,甚至涉及到传感器等知识,这让我想起了XBOX360啊。

这么多方向,拿什么拯救我已经时间不多的大学以及那渺茫的人生。

对于基础课:如离散数学、数据结构、操作系统、计算机组成原理、数据库、编译原理的学习掌握,更是将我的时间再一次压缩、、、那什么拯救,数学、算法、C、足够了。可是我真的放不下….

我喜欢思想,因为思想能缔造一个新鲜、永不停息的大脑。

不是我不喜欢形式,只是形式化让我感觉那么如浮云飘渺,随时都可能烟消云散。

看完这篇旧文,我发现未能按自己最初决定的走下去,但是我现在对自己做的东西也十分投入,也非常感兴趣,也非常喜欢玩一些新奇好玩的东西,玩一些古老的技术——Lisp或新的技术前沿——HTML5和NodeJS。

现在我处于非常肤浅的层面,不管是对于技术中思想的掌握还是硬编码能力,这都是我非常欠缺的。从零开始,不管是形式还是思想,我都很在意,思想可以启迪一个人,而形式传递的视观感受可能会给我带来思想上的灵感。

选择,有时,无所谓选择,只在踏踏实实地去坚持。

2017-08-27 整理