`
fantaxy025025
  • 浏览: 1309753 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

(摘)编程经验分享(二)

阅读更多

十年编程经验凝结 与新人们分享(转自csdn.net)

有天和朋友聊天,朋友是国内一家大型互联网企业的一位技术主管,朋友把他将近十年研发工作积累的心血总结成两点,这两点朋友刚一提出来我并没有马上明白, 只是大约有这么一个概念,我还没达到朋友在技术领域的那种高度,不能彻底领悟他深刻的思想。但我想与众多刚刚踏入IT技术研发领域的新人们分享一下这位朋 友的思想,我尽全力来解释阐述朋友的话语,希望能给大家带来一些启发。

第一点是:不断抽象已知的东西。现实生活总是包括很多零散的东西,待解决的问题不会只有一面,所以抽取零散东西的共同属性,聚合不同角度的同一面向,成为从问题领域进入编程领域的第一步。抽象的层次越高,你架构设计就越简单。

第二点是:面对未知的东西用已有的抽象经验来模拟体验,从而不断调整直至达到可以控制未知东西的程度。有了上面第一点的基础,才可能到达这第二点 的境界。现实问题总是不断变化着的推陈出新的,从未知到半知到已知,是人认识客观世界的一个过程,恰如人生从天真到懵懂到成熟的过程。

天才是什么?聊着聊着我们突然说到比尔盖茨,说到那些天才黑客,朋友和我都很兴奋。我问朋友,从他总结的两点来看天才是怎么实践这两点的?朋友想 了一下说,天才就是生来就有那种抽象的能力,他并不一定局限于计算机领域的空间来看待问题,他拥有从这个世界其他领域来模拟体验计算机领域的天赋,他甚而 可以抽象整个世界。

朋友的思想太博大高深,如我这般入行不久的初级程序员怎能领会?但我还是装作深有体会的不断点头,同时把朋友从山巅拉到山脚下。我说:“你说得太 抽象了,不如你告诉一个起步阶段的程序员应该怎么慢慢通过实践来逐步达到这种境界吧。”我知道朋友在这方面颇有体会,他以前曾跟我提起他毕业后在第一家公 司是怎么接受锤炼的。果然朋友很快开始阐述:“很简单,起步阶段就是专心的模仿。切记不要被那些乱七八糟的东西晃花了 眼,什么j2ee与.net之争,什 么soa的革命等等,你不要去关心这些东西。当你在公司上班时,会有这样一个矛盾,当你完成公司交待的一个任务时,你可能为了尽快完成任务用了很多别人现 成的框架。这本身没问题,但何谓专心的模仿?就是说你在工作之余,需要来研究这些框架,你可以不用这些框架,而是用最原始的方式来写,你会慢慢体会到框架 的约束,进而有对框架进行改进的欲望。但是最终你也会发现:其实任何一个框架都比你自己写的要好。然而在你不断模仿的同时你就得到不断的提高。”朋友越讲 越起劲,又开始分析高手和低手在起步阶段的差异,“其实所谓学得快,所谓高手,就是说他在模仿的过程中不断比较自己写的东西和框架本身的差异,不断发现问 题,想尽办法解决问题,思考得越多,你碰到的问题就会越多,这是一个正向循环,最终你的技术能力就会螺旋式的上升;而低手只会被动的等待问题,一旦问题自 己觉得解决得差不多就放下了,这样自然就不会产生更多的问题,最终技术能力就始终停留在那个菜鸟阶段。”

朋友的话让我惭愧不已,我就是典型的不求甚解啊,问题解决得差不多就行,能运行就万岁,总是不去深究,这样给系统留下多大的隐患啊,而且也是对自己极大的不负责任。

聊完了技术方面的东西,我们想聊点轻松的,但是话题仍然离不开那些搞技术的新人们。朋友正好最近替公司招聘人才,面试了很多名校的计算机相关专业 的一些毕业生。朋友说他们技术功底不够扎实,我说他们除了这个,心态也很浮躁,恨不得一参加工作就拿大几千的工资,一进公司就做项目经理,太眼高手低。朋 友也深有同感,说面试的时候就有一种怪怪的感觉,而且朋友进一步将这种心态问题提升到编程提升到认识论的高度,“其实我觉得他们本质上是一个不能够正确认 识自己的问题。认识论其实很简单,首先认识问题,然后解决问题。你说你想做项目经理,那么你需要具备哪些技能,技术上的,管理上的等,你需要多长时间来磨 炼这些技能等。 编程不也就是这样嘛,认识问题,抽象问题,进行设计编码最终解决问题,其实做所有的事情都是如此。”

跟朋友的这番聊天让我受益匪浅,而让我感受最深的不是上面提及的这些关于编程和心态两方面的道理,而是我体会到:技术人员并不像人们想象中的那么 呆板,每个人都在以自己的方式活着,不断参悟人生的玄妙,而技术人员以一种更为奇特的方式和电脑搏斗,付出了更多的心血,当然体悟得也更加深刻,然而最终 每个人都会殊途同归

 

分享到:
评论

相关推荐

    华龙图摘

    可能是代码示例、编程心得、项目经验分享,或者是对中国IT行业的分析文章。熟悉编程语言如Python、Java、C++等,以及了解开源社区、软件开发流程的读者可能会对此感兴趣。 4. **网摘**:网摘,也称为网络剪贴簿,是...

    [摘]语言只是工具

    博主可能分享了自己的编程经验,解释了如何根据项目需求选择合适的语言,并可能提到了一些实际案例,说明不同语言如何帮助解决特定问题。他们可能还讨论了工具有助于提高开发效率,比如IDE(集成开发环境)、版本...

    ASP源码—天空网摘建站系统.zip

    这个"ASP源码—天空网摘建站系统.zip"文件似乎包含了一个基于ASP技术构建的网站系统源代码,可能是一个允许用户收集、分享和管理网络内容的平台,类似于网络书签服务。天空网摘系统可能是为了方便用户保存和组织他们...

    springboot游戏分享网站 LW PPT

    则对于进一步提高游戏分享管理发展,丰富游戏分享管理经验能起到不少的促进作用。 游戏分享网站能够通过互联网得到广泛的、全面的宣传,让尽可能多的用户了解和熟知游戏分享网站的便捷高效,不仅为群众提供了服务,...

    精品网摘精品网摘

    【标题】:“精品网摘”通常指的是网络上搜集的高质量、有价值的信息集合,可能是技术文章、教程、...无论是初学者还是经验丰富的专业人士,都能从中找到自己需要的养分,不断更新知识体系,跟上快速发展的IT行业步伐。

    某大学毕业设计书(各种文件格式非常的全,人事管理系统,VB6.0 )

    "XXX学生毕业设计成绩报告单.doc"记录了该学生的毕业设计成绩和评价,反映了设计完成的质量和水平,同时也可能包含导师的反馈和建议,对于后来的学习者来说,这是非常宝贵的经验分享。 "摘 要及目录.doc"是设计报告...

    梦和现实_csdn

    在IT领域中,CSDN(China Software Developer Network)是一个知名的中文IT社区,通常用于程序员和技术人员之间交流知识、分享经验。因此,标题可能暗示了这篇文章或课件在探讨与IT相关的一些哲学思考,例如:在编程...

    我的暑假生活作文.doc

    8. **实践操作**:在农村捉鱼、摘水果等体验,强调了实践经验的价值。在IT学习中,动手实践如编程练习、硬件拆装等,能够加深理论知识的理解和应用。 9. **自然与环保**:提到的瀑布和动物保护,体现了对自然环境的...

    计算机行业Anthropic:专注研发安全可靠的AGI, 对标ChatGPT推出Claude

    为了实现这一目标,Anthropic采取了多方面的策略,包括构建前沿AI系统,深入研究其行为模式,以及负责任地部署AI技术,并定期分享关于安全性的见解。 Anthropic的创始团队阵容强大,汇集了来自OpenAI等顶级机构的...

Global site tag (gtag.js) - Google Analytics