会员登录

  • 个人登录
  • 企业登录
  • 院校登录

用户名:

密  码:

验证码:

记住密码忘记密码

登 录 立即注册立即注册立即注册

为应届生/求职者提供更多职业选择

为企业提供优秀的毕业生资源

为各大院校提供学生就业的渠道

企业入驻院校入驻 全国服务热线:010-80788512

总站

 我的位置:首 页 > 就业指导 >  职业规划 >发布新职位

如何成为一个优秀的程序员而不是码农

2015-01-27来源:本站原创点击量:3250

在英文中,软件工程师有两种表达方式,一种是coder,还有一种是programer,前者的工作职责是按照需求文档、设计文档,甚至是伪代码,来编写 出能够正确执行的代码,他们的工作简单而重复,可以说从事的是体力劳动,而后者的工作职责是针对需求与业务逻辑,设计出最合理的解决方案和软件架构,并将 其实现,从事的是脑力劳动,所以说程序员与码农最根本的区别,在于一个“design”的过程。      我认为

在英文中,软件工程师有两种表达方式,一种是coder,还有一种是programer,前者的工作职责是按照需求文档、设计文档,甚至是伪代码,来编写 出能够正确执行的代码,他们的工作简单而重复,可以说从事的是体力劳动,而后者的工作职责是针对需求与业务逻辑,设计出最合理的解决方案和软件架构,并将 其实现,从事的是脑力劳动,所以说程序员与码农最根本的区别,在于一个“design”的过程。
     我认为要成为一个优秀的程序员,而不是一个优秀的码农,最主要的是学会不仅仅站在编程者的角度考虑问题,而是要站在用户的角度考虑业务逻辑和前端设计,站 在计算机的角度考虑算法与程序性能,站在管理者的角度考虑开发成本,综合这些考虑,才能设计出最适合的软件。
     一个优秀的码农往往将着眼点放于对程序设计语言的掌握的层面上,能够熟练使用多种编程语言,或者精通一种编程语言,然而,对于一个优秀的程序员来说,这虽 然也很重要,但是绝不是唯一的成功条件,想要成为一名优秀的程序员,更要着眼于高级的设计模式,设计理念,要宏观的考虑问题。

前者重质,重需求重解决问题;后者重量,不考虑复用,不考虑优秀的编程思想。
好的程序员的基本要求(我认为):
1. 学好数学:高等数学,线性代数,离散数学,算法,图论(可选),数值方法(可选),优化方法(可选),计算理论(可选);
2. 打好基础:操作系统,编译原理,汇编语言,数据库原理,计算机网络,密码学,人工智能;
3. 多动手:至少用面向对象语言(C++/Java)写5万行;脚本语言(Perl,Ruby)写5千行;至少在工作中正确实践5种设计模式;维护过10万行代码的系统;参与过一次大项目的重构(或设计);
4. 多交流: 至少做过3个新人的mentor;参与需求分析和项目计划的制定;独立领导过项目的开发进度;能建立在团队里的威信(人品和技术两方面);

1和2是一个人在学生时代该干的,本科四年足够了;工作后干3和4,一般2年也能有所心得,最好能理论联系实际,做到融会贯通举一反三。而且要放下“唯代码独尊”的优越感,能正确定义开发的目标,并不断提醒自己这个目标。到此为止,优秀的程序员应该可以出炉了。

相关文章