⑴ 程序员的基本要求是啥
程序员是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类.
岗位职责
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
职业要求
一般的程序员都有四年的在专业领域的学习,需要一个在程序领域的学士学位获得者,不论是数学方面的还是工程方面的都是可以的。
大约有20%的人在这一领域的计算机科学和工程学拥有更高的学位。还有很小一部分程序员是自学的,尽管一些专业性的学校或者综合大学可以提供,但是也需要一些别的途径来提供相关的人才。尽管学历是比较重要的,但是公司经常把重点放在应聘者的工作经验上,很多刚从大学毕业的大学生虽然有引人注目的学位证书,但是他们找不到工作是因为他们缺乏经验。一个程序员虽然没有正规的学历,但是如果一个人拥有程序设计的深厚知识背景或者丰富的工作经验的话,那么他的机会要比有学历的应届毕业生大得多。所以要尽量抓住有用的工作和实习机会,这样的话在毕业后你就会发现,多实习让你有更多的经验,在找工作的时候就有更多的机会。
对于职业程序员,另外一个重要的方面就是,程序员需要不断提升自己的业务技术,他的技术必须一直保持在一个较高的水平,并且要不断发展,程序员也要寻找贸易的机会,要参加研讨会,在周刊上发表文章和接受职业教育,这些使程序员在自己的领域中分级或者不断并排前进。
做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而JAVA即其相关的技术集JAVAOne很可能会成为未来的主流开发工具之一。其次,能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,CBuilder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。
熟知数据库
为什么数据库是如此重要?作为程序员,他们自然有自己的理由:很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL,Postgres等。
了解操作系统
当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。懂得网络协议TCP/IP。
在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEBServices,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,深入掌握TCP/IP协议是非常必要的。至少,需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。
明白DCOM/CORBA/XML/WEBServices存在的意义
随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布式计算的基石之一。
不要将软件工程与CMM分开
大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。
需求理解能力
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
模块化思维能力作为一个优秀的程序员,他的思想不能局限在当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能使系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。
⑵ 鏁版嵁搴撶郴缁1-1锛氭暟鎹澶勭悊镄勫彂灞曡繃绋
鏁版嵁绠$悊缁忓巻浜嗕粠浣庣骇鍒伴珮绾х殑鍙戝𪾢杩囩▼锛岃繖涓杩囩▼澶ц嚧鍙鍒嗕负涓変釜阒舵碉细
銆銆镓嫔伐绠$悊阒舵 鏂囦欢绯荤粺阒舵 鏁版嵁搴撶郴缁熼桩娈
銆銆1.1.3.1镓嫔伐绠$悊阒舵
銆銆鍦ㄤ簲鍗佸勾浠d腑链熶互鍓嶏纴璁$畻链轰富瑕佺敤浜庣戝﹁$畻锛岃$畻链轰笂娌℃湁镎崭綔绯荤粺锛屾病链夌$悊鏁版嵁镄勪笓闂ㄨ蒋浠讹纴涔熸病链夊儚纾佺洏杩欐牱镄勮惧囨潵瀛桦偍鏁版嵁銆傝繖涓镞舵湡鏁版嵁绠$悊镄勭壒镣规槸锛
銆銆1锛 鏁版嵁涓崭缭瀛樸
銆銆2锛 鏁版嵁鍜岀▼搴忎竴涓瀵瑰簲锛屽嵆涓缁勬暟鎹瀵瑰簲涓涓绋嫔簭銆备笉钖屽簲鐢ㄧ▼搴忕殑鏁版嵁涔嬮棿鏄鐩镐簰镫绔嬨佸郊姝ゆ棤鍏崇殑銆
銆銆3锛 娌℃湁杞浠剁郴缁熷规暟鎹杩涜岀$悊锛岀▼搴忓憳涓崭粎瑕佽勫畾鏁版嵁镄勯昏緫缁撴瀯锛埚傚浘1.2涓璁板綍镄勫瀷锛夛纴钥屼笖杩樿佸湪绋嫔簭涓璁捐$墿鐞嗙粨鏋勶纴鍖呮嫭瀛桦偍缁撴瀯銆佸瓨鍙栨柟娉曞强杈揿叆杈揿嚭鏂瑰纺绛夈备篃灏辨槸璇存暟鎹瀵圭▼搴忎笉鍏锋湁镫绔嬫э纴鏁版嵁鏄绋嫔簭镄勭粍鎴愰儴鍒嗭纴涓镞︽暟鎹鍦ㄥ瓨鍌ㄤ笂链夋墍鏀瑰彉锛屽繀椤讳慨鏀圭▼搴忋
鏁版嵁绠$悊浠庝簲鍗佸勾浠e悗链熻繘鍏ユ枃浠剁郴缁熼桩娈点傛搷浣灭郴缁熶腑宸茬粡链変简涓挞棬镄勭$悊鏁版嵁镄勮蒋浠讹纴涓鑸绉颁负鏂囦欢绯荤粺銆傛墍璋撴枃浠剁郴缁熸槸涓绉崭笓闂ㄧ$悊鏁版嵁镄勮$畻链鸿蒋浠躲傚湪鏂囦欢绯荤粺涓锛屾寜涓瀹氱殑瑙勫垯灏嗘暟鎹缁勭粐鎴愪负涓涓鏂囦欢锛屽簲鐢ㄧ▼搴忛氲繃鏂囦欢绯荤粺锛屽规枃浠朵腑镄勬暟鎹杩涜屽瓨鍙栧拰锷犲伐銆 鏂囦欢绯荤粺鏁版嵁绠$悊镄勭壒镣规槸锛
銆銆1锛 鏂囦欢镄勯昏緫缁撴瀯涓庡瓨鍌ㄧ粨鏋勭殑杞鎹㈢敱绯荤粺杩涜岋纴浣跨▼搴忎笌鏁版嵁链変简涓瀹氱殑镫绔嬫с
銆銆2锛 鏂囦欢绯荤粺涓镄勬枃浠跺熀链涓婂瑰簲浜庢煇涓搴旂敤绋嫔簭锛屽嵆鏁版嵁杩樻槸闱㈠悜搴旂敤镄勚备笉钖岀殑搴旂敤绋嫔簭鍙浠ュ疄鐜颁互鏂囦欢涓哄崟浣岖殑鍏变韩锛屼絾鏄褰撴墍闇瑕佺殑鏁版嵁链夐儴鍒嗙浉钖屾椂锛屼篃蹇呴’寤虹珛钖勮嚜镄勬枃浠躲
銆銆3锛 鏂囦欢绯荤粺涓镄勬枃浠舵槸涓烘煇涓搴旂敤链嶅姟镄勶纴鏂囦欢镄勯昏緫缁撴瀯瀵硅ュ簲鐢ㄧ▼搴忔潵璇存槸浼桦寲镄勚傚洜姝わ纴瑕佹兂瀵圭幇链夌殑鏁版嵁鍐嶅炲姞涓浜涘簲鐢ㄥ緢锲伴毦锛岀郴缁熶笉鏄撴墿鍏呫备竴镞︽暟鎹镄勯昏緫缁撴瀯鏀瑰彉锛屽繀椤讳慨鏀圭▼搴忋傝屽簲鐢ㄧ▼搴忕殑鏀瑰彉锛屼篃灏嗗奖鍝嶆枃浠剁殑鏁版嵁缁撴瀯镄勬敼鍙樸傛暟鎹鍜岀▼搴忕己涔忕嫭绔嬫с
銆銆1.1.3.3鏁版嵁搴撶郴缁熼桩娈
銆銆涓轰简璇存槑鏁版嵁搴撶郴缁熺殑鐗圭偣锛屾垜浠寮曞叆涓涓渚嫔瓙銆备互瀛︽牎瀵瑰︾敓绠$悊涓轰緥銆备负绠鏄庤捣瑙侊纴锅囧畾妗f埚ゃ佹暀瀛︾$悊閮ㄩ棬鍜屽︾敓宸ヤ綔閮ㄩ棬鍦ㄦ枃浠剁郴缁熶笅宸插缓绔嫔备笅涓変釜鏂囦欢锛
銆鍦ㄤ笂杩颁笁涓鏁版嵁鏂囦欢涓锛屽瓨鍦ㄥ备笅鍑犳柟闱㈢殑闂棰桡细
銆銆(1) 鏁版嵁澶ч噺閲嶅嶃
銆銆(2) 鏂囦欢镄勯昏緫缁撴瀯鍦ㄥ簲鐢ㄧ▼搴忎腑瀹氢箟锛堜緥濡侾ASCAL鎴朇璇瑷锛夛纴鑻ユ枃浠剁殑阃昏緫缁撴瀯鏀瑰彉蹇呴’鏀瑰彉绋嫔簭銆
銆銆(3) 鏂囦欢绯荤粺瀵规枃浠剁$悊镄勬渶涓昏佺殑鐗瑰緛鏄浠ユ枃浠朵负鍗曚綅锛屾枃浠舵槸镫绔嬬殑銆佸垎鏁g殑锛屾枃浠朵粎鍙嶆椠镊韬镄勪俊鎭钥屼笉鑳藉弽鏄犳枃浠朵箣闂寸殑镵旂郴銆
銆銆鏁版嵁搴撶郴缁熷规暟鎹镄勭粍缁囧垎涓轰笁灞傦纴绗涓灞傞溃钖戝悇绫荤敤鎴凤纴鏄阍埚圭敤鎴风殑缁勭粐褰㈠纺銆傜浜屽眰鏄闱㈠悜绯荤粺鏁翠綋锛屽寘钖鍏ㄤ綋鐢ㄦ埛镓闇淇℃伅銆佸瑰叏灞镐ц兘镄勬暟鎹缁撴瀯锛岀涓夊眰闱㈠悜璁$畻链虹墿鐞嗗瓨鍌锛屽湪淇濊瘉瀛桦偍绗浜屽眰镓钖淇℃伅镄勫墠鎻愪笅锛屾寜鐗╃悊瀛桦彇镄勫舰寮忔潵缁勭粐镄勬枃浠剁粨鏋勶纴鏄鐪熸e湪澶栭儴瀛桦偍鍣ㄤ腑淇濆瓨镄勬枃浠躲傚嵆鐢ㄦ埛镓浣跨敤镄勬暟鎹鏂囦欢锛堥昏緫涓婂瓨鍦锛夊拰鍦ㄥ栭儴瀛桦偍鍣ㄥ疄闄呭瓨鏀剧殑鏁版嵁鏂囦欢锛堢墿鐞嗕笂瀛桦湪锛夋槸褰诲簳鍒嗙荤殑銆傛暟鎹鏄鎸変笁绾х粨鏋勬柟寮忕粍缁囷纴钥屼笁绾х粨鏋勪箣闂寸殑镵旂郴鐢变袱绾ф椠灏勫疄鐜般傝繖灏辨槸鏁版嵁搴撶郴缁熷规暟鎹镄勭$悊鏂瑰纺銆
銆銆杩欑嶅湪鏁版嵁搴撶$悊绯荤粺镄勭粺涓绠$悊涔嬩笅锛屽叿链夎缉灏戠殑鍐椾綑銆佽缉楂樼殑镫绔嬫э纴鏀鎸佸氱敤鎴峰叡浜锛屽苟涓旂浉浜掓湁镵旂郴镄勬枃浠剁殑闆嗗悎锛岀О涓烘暟鎹搴掳纸Data Base 绠绉瘅B锛夈