写在程序员转读博士第四年

        06年毕业后为了养家糊口没有继续读博士,转去公司做软件开发了,2012年觉得生活还可以就去中科院读书去了。

        对编程有狂热的爱好,最长的编程时间是24*3小时,中间除了上厕所,吃盒饭没有任何停顿。不是计算机专业,只是爱好,希望写这篇博客鼓励喜欢从事程序开发,并且热爱编程的人。

        不要因为自己不是计算机专业的或者软件开发专业的学生而自卑。很多因素会影响人的心理 与决策,但凡有兴趣,人是可以克服环境因素的,专业只是某个时间点你可以主观或者客观的被要求做一件事,而且不用花费多大力气。真正的计算机爱好者应该是这样的人,有事没事愿意扩大自己在计算机方面的知识面,去读书去搜刮一些自己不清楚或者还不了解的技术或理论。但凡下定决心做一件事,5年即可成为这个领域的专家或者专业人士。做软件是我的爱好,学习是做好软件的第一方法,兴趣是能够长期坚持下来的第一动力。

        什么事真正的程序员?并不限于写代码,而是在于领域知识的转化。如果一直停留在代码的细节上,只能成为一个熟练的代码工人,可以挣到差不多的钱,但是不会有太多的发展。真正的程序员是一种信仰,能够转化需求,能够抽象需求为领域模型,用抽象能力的高低度量程序员之间的差异,程序员自身所处不同阶段的差异是最有效的。抽象能力是建立程序的基础,但凡离散数学,组合数学,又或者是两者基础的集合论,都是通过最本质的抽象来解决问题的。能够通过逻辑组合,解决复杂问题的过程就是抽象具体问题为模型的过程。但凡棘手的问题都能映射到某类数学问题那就是程序员能力的体现。除此,无它。

        如何训练自己计算机编程方面的能力?功夫在不在编程的训练,而在对问题的感悟。所谓感悟即对问题抽象为数学问题的思考。大学阶段的编程是命题式编程,给出题目,用一些常规的思路解决。博士阶段很少编程,而主要关注如何理解问题,把复杂问题转化为一些数学命题,求解这些估计有解的命题。大学阶段拼命阅读的是关于类库与模式的书,从北京大学出版社的win32编程,到清华大学出版社的数据结构,又到马丁福勒的企业级开发,再到四人帮的模式设计,又或者是posa系列,这些都是我特别想了解的,也许很多人认为到此就可以沾沾自喜,但是这仅仅只是个开始,掌握这些,只能说可以做一个稍微高级的程序员。

        什么是最优秀的程序员?看到问题共性与特性的程序员。现代科学研究的发展已经转向实证,即通过实验结果反应理论的正确性。如果是程序员道理同样适合,只是程序员不能通过实验,而是通过项目来验证自己的理论。为什么越是优秀的程序员价值越高,因为失败项目的成本更高。模式只能在形式上给出粗泛的共性,真正的本质是由数学原理精确定义的。不同领域知识决定了特性。这种特性可以是语义的不同可以是形式的不同。

        博士阶段的学习与本科阶段的学习对程序员能力的不同影响。形式化与求解是永恒的主题。我个人认为计算机专业和数学专业的学生博士阶段的工作就是一种对形式化工作的努力,以及在此形式化基础上的求解方法的需求。不再被算法束缚,而是对算法的更深入的理解。最好的例子是人工智能的发展,Luger的人工智能一书中,对读者的称呼就是程序员,在演绎推理方面追求形式化的证明与递归求解,在归纳推理方面追求符号表示,连接表示,由此产生符号推理,分类和聚类方法的发展。

        本科和工作阶段较多的关注如何使用或精通一种编程语言,编程的时间更多;可是在博士阶段,我感觉最多考虑的是如何设计一种我需要的语言,思考的更多。

        写给周围的年轻人,不要认为读书无用,只是抽象的层次太低会阻碍思考的深度。

        

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值