程序员(Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码员,但两者的界限并不是很明确。软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类。
工作职责:
1、对项目负责,负责软件项目的详细设计、编码和内部测试的组织实施,对
小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态
作为高级程序员,乃至于设计师而言,需要具备以下素质:
1、 需求分析能力
2、整体框架能力
3、流程处理能力
4、模块分解能力
5、整体项目评估能力
6、团队组织管理能力
问:怎样的程序员才算优秀的程序员,他应该具备有哪些素质
答:李天放,Join Us! http://kechenggezi.com/jobs
知无无、AlexMercer、ZETang 等人赞同
我不能算是一个很优秀的程序员,但这个问题我已经反复思考了五年了。跟大家分享一下我的看法:
首先,我认为答案绝对不是 "只要写很多年代码就好了“。我面试过不少有10年经验,代码却写的很糟糕的程序员。经验很保贵,但只靠经验是不够的。就像下棋一样,假如你用心研究,复习,不断挑战自己,也许可以成为一名大师。但不断用懒散的方式去玩棋,下20年也只是一个"臭棋篓子“。
我觉得比较有用的进步方式:
1. 学会看代码
大多数程序员都只愿意用自己写的代码,但高手一般可以轻易调用别人写的代码。表面看上去是工作习惯不同,但实际上是能力上的差别。看代码要比写代码难很多倍。
我建议上班时多给队友们作codereview,下班后试着阅读github上的开源代码。
2. 复习
程序员一般都很忙,手上有永远也做不完的活儿。但在某些公司里,你只是在反复做同样的事。偶尔放下手上的活儿,留下一部分时间来分析自己的弱点,更改坏习惯,看新书,或学习新语言。
3. 做个人项目
工作中的编程一般只能让你熟悉一部分技术,导致漏洞的形成。这就好像你长期一个人在自己后院练习投篮,但第一次打比赛才(在惨败中)发些原来还需要传球,防守,强篮板这些概念。
Facebook喜欢雇佣所谓的 “full stack programmer”,就是一个人从设计,到交互,到html, css,javascript,server,sql,架构,和数据统计都能做。成为fullstack programmer最好的方式就是不断做个人项目。
4. 问答网站
问问题和回答问题都是很好的学习方式。有的时候写出一个好问题,比写出解答次问题所需要的代码还难。写问题可以帮你整理自己的思维逻辑。你可以试着每周在http://stackoverflow.com上问一个好问题或写一个好答案。
5. 加入一个好团队
最好的进步方式就是跟比自己强的人一起做事。高手都愿意聚在一起,所以很多会选择去优秀的早期创业公司。我在硅谷和创新工场创业时遇到了很多神人,跟他们学了不少东西