安做程序员经验3年了,现在发觉,真正编程高手其实就是算法高手,编程有点经验的同行可能都会都会有这种感觉吧,其实掌握一门语言的使用真的很简单,编写程序时,很多时候,我们都在重用一些代码,我觉得其实很多都是体力活,真正让自己费力去思考的不是太多呀,但如何用一门语言来实现人们想要的功能(是别人还没有实现的功能)也就是创新,真的很难呀.呵呵
各位同行,大家一起讨论一下吧,说说大家对"算法"的理解,及如何提高个人的"算法"能力
各位同行,大家一起讨论一下吧,说说大家对"算法"的理解,及如何提高个人的"算法"能力
2类吧。
1类是 整体的框架把握的好的
2类是 局部实现的很好的(算法就是这个)
=====================================================================
整体的框架把握的好的 本身就对整体的算法把握很透彻了
最重要的是能拿到需求 就要理解他 並能快速結合前面的人
留下來的成果 使之融合 變成自己的程序 並不僅僅能解決自己現在的問題
還要能解決 以後可能出現的問題 以及後面的人來重用我們的代碼時
可以解決更多的問題
我在的公司就是这样,架构师成堆,都不屑于编码,但是碰到很小的技术问题,就是无法解决,经常出现螳臂当车的现象。
一般行业软件虽然用不着高深的算法。但如果开发者只注重架构,不注重算法的话,系统的健壮性就大成问题。架构看起来很先进,但bug极多,到了无法修改的程度,也是失败的系统。
我在的公司就是这样,架构师成堆,都不屑于编码,但是碰到很小的技术问题,就是无法解决,经常出现螳臂当车的现象。
====================================================
没有理解架构的含义吧
数据结构与算法 其实都是 low level的模式
架构也有high level 整体架构模式
不同层次负责的人也是不同角色
构架师 与 资深程序员 是不同的
就像 软件不等同于程序 一样
刚刚做j2ee的时候,第一个项目就是维护一个电子政务,jsp+javabean的那种。业务代码全在jsp里面,神所有东西都纠缠在一起,那种痛苦估计只有搞过这种软件架构的仁兄才能深有体会。一入行就是SSH的估计没这个体验。而当时有一个任务就是优化一个查询,几十万条数据。当时的分页做法是ResultSet的absolute,也就是游标。具体说就是所有数据全Load到内存,在内存里面导航,God这还了得。后来用了oracle的rownum修改了sql才优化ok---这也是一种算法吧,但是,这种架构的程序,你优化到再好,拿出去也是当做垃圾给丢弃的。
是啊,挖坟很严重啊,见过一个五六年的坟被挖出来。估计是因为 CSDN 把前几年的帖子都弄成可回复的了,而且某人在 google 上搜到了这帖子就点开来回复了。