`

程序员高薪的秘诀

阅读更多

一、程序员高薪的秘诀
 
无非一个:机遇+经验+灵感。 
程序员的薪资与所用语言关系不大,并且高薪的程序员的学历也参差不齐,而从业的时间和业绩更大程度上影响了程序员所能得到的待遇,如下表所示
  
年限
月薪
0
800-3000
2
3000-6000
3
5000-15000
4年以上
6000-40000
一个合格的程序员应当具有敬业、灵活、创新、博学等全面优秀的素质。很多程序员抱怨自己待遇不公,但往往忽略了自身的因素,首先程序员在要求月薪之前,就应当首先考虑自己在所在的企业的位置,自己的能力专长是否正是该企业所需要的,能给企业带来多少产出。当然,初入行业时,也许会因为管理的因素造成不公的待遇,但是当逐渐融入工作之后,对企业以及环境有了一定的了解,就可以根据自己的实际情况理直气壮地提出要求。同时,由于软件行业的变动很大,程序员跳槽或“下课”是常有是事,有时候一些工作岗位也不能只注重它的薪酬多少,关键是看自己能够得到多大的提高与发展,某些时候,低薪但富有挑战力的工作也不失为开拓自己以后道路的跳板。
一个小网络公司的招聘广告:
招聘程序员,要求熟练掌握 VC、 VB、JAVA脚本、 SQLServer、 Access、 月薪800-1500、 包食宿。
 
二、程序员的报酬有几种方式:

1、传统的月薪或年薪+奖金
追求稳定的程序员可以选择基础好的企业以薪金谋生,并求稳步发展。
2、期权方式
有创业精神的则可以选择有发展前景的企业或团队,获得效益分享,期权曾经造就了不少程序员暴富的神话,但其风险也比较大。
3、临时工
只做一两个项目,做完走人,按项目获取相应酬劳。
 
三、软件公司对软件开发人员的资源分配
1、传统意义的软件公司??大公司
       一般有明确的分工,各个流程或模块由不同的程序员完成。也许你是相当优秀并且知识是相当全面的,但是实际上的工作当中并不需要你做超出范围的事情,工作一般比较单一,同时也能得到稳定的收入。
2、作坊式的软件公司??小公司
       一个技术人员通常要完成更多方面的工作,诸如需求分析、系统设计、详细设计、编写代码、软件测试、撰写文档、安装调试、系统维护等,这些工作通常会混在一起,而不是按照什么软件工程的顺序来完成。

注: 在从创业的趣味性来说,有的程序员会更加喜欢后者,但是这同时也要考虑到薪酬的分配是否合理,自己所付出的劳动是否得到了应有的回报。 

四、将自己改造成为一个复合型人才

具备多种能力和素质,并能够将多种能力进行综合运用
1、软件开发的技能水平
(1)、对使用的开发工具要了解透彻;
(2)、对使用的开发语言要熟练和精通。
2、应用行业的了解程度
(1)、对应用行业方面的知识要了解;
(2)、对应用行业的运作模式要了解。
3、软件开发技术知识与行业知识的结合
(1)、将行业中的管理流程进行转化,用计算机代替手工;
(2)、在转化过程中不断提高程序开发的水平。
注:仅仅只会计算机的程序员是不可能适合这些专业性极强的行业的,对特殊行业本身有深刻了解的程序员到这些部门肯定会大受欢迎
五、软件企业要求基础软件工程师具备六大基本素质
1、良好的编码能力
软件人员的一个重要职责是把用户的需求功能用某种计算机语言予以实现。编码能力直接决定了项目开发的效率。 
2、自觉的规范意识和团队精神
程序员分为两种,一种是程序“游击队员”,他们可能对编程工具很熟,能力很强,把编码编得很简洁高效,但却缺乏规范和合作的观念;另一种程序员编程不一定很快,但是很规范,个人能力不一定很强,但合作意识很好。
3、认识和运用数据库的能力
信息是以数据为中心的,因此与数据库的交互在所有软件中都是必不可少的,了解数据库操作和编程是软件工程师需要具备的基本素质之一。 
4、较强的英语阅读和写作能力
编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与世界各地编程高手交流、发布帮助请求同样离不开英文。 
5、具有软件工程的概念
从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作 
6、求知欲和进取心
软件工程师应具有较强的学习总结能力、需求理解能力和对IT新技术比较敏感,同时,掌握最新的IT实用技术。 
六、必须掌握的开发方法
采用瀑布型和快速原型法结合的开发方法,
 即:系统需求分析->开发方案设计->子系统实现->系统集成与确认下,
图为开发模型示意图
 
七、独立设计开发软件必须经过的九个过程
 
1、需求分析
从用户的业务中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,规划出我们的软件产品。 
A、 提取出核心、主要、急迫的业务,明晰业务流程 
(1)针对客户对软件项目或产品的最初提出的需求目标和范围,为用户解决什么样的问题,从众多的业务中提取出用户核心的、主要的、急需的业务。 
(2)从用户繁杂的业务中进行业务、业务流程的提取,把那些分布在各个部门的同一种业务提取出来。分析用户的这个业务流程中哪些是系统能帮助管理的,哪些是要在系统外处理的,充分分析用户现有的业务和业务流程。 
B、 运用管理思想,优化业务流程 
(1)采用网络计算机这些新的技术手段代替原先手工、电话等方式在信息的传递、信息的共享、数据的处理等方面将会带来新的方式,必将改变原有的业务流程。 
(2)根据对用户业务的理解,考虑是否可以运用先进的管理思想,比如MRPII、ERP、JIT等等管理模型,进行现有业务流程的重组或优化。 
制造资源计划管理系统(MRPⅡ)、企业资源计划管理系统(ERP)。
C、要求最终用户参与到项目的整个开发过程
   一个软件项目在需求分析阶段时的信息收集非常重要,但由于每个企业的管理模式不同,企业内部各部门所需要的软件功能也不同,在收集信息时,公司高层提供的信息量为实现软件项目80%的内容,部门主管根据公司高层提出的要求进行理解能提供本部门80%的内容,具体岗位的工作人员根据主管提出的要求进行理解能够提供本岗位80%的内容,根据三方面收集到的信息能够在软件项目完成后实现预定目标的
100*0.8*0.8*0.8=51.2%,剩下的48.8%要经过很长时间,开发者与企业各部门之间进行协商,再原来80%的基础上提取出15%的信息100*0.95*0.95*0.95=94.12%,最后剩下的5.88%只能做为软件项目完工投入使用后的维护升级中进行解决
 
2、系统设计
A、 根据需求分析绘制出系统框架图和系统流程图
(1)、 系统框架图要体现出软件的整体架构;
(2)、 采用松散组合式设计,使各功能模块间即相互独立又可相互配合;
(3)、 系统流程图要体现出客户的业务流程;
(4)、系统框架就象人的骨架、系统流程就象人的神精、血液?环系统和肌肉
(5)、系统框架、流程的设计直接影响到软件的开发周期和最终产品的质量。
B、 制定项目实施计划
(1)、 项目总体需要多少时间、多少人、多少设备、多少钱;
(2)、 每个功能模块需要多少时间、多少人、多少钱;
(3)、 对每个功能模块的测试需要多少时间多少人、多少钱;
(4)、 培训需要多少时间、多少人、多少钱;
(5)、 软件过行后期维护需要多少人、多少钱;
3、详细设计
A、 根据系统框架图对每个功能模块进行分解设计;
B、 根据系统框架图绘制各功能模块的子框架图;
C、 根据系统流程图绘制各功能模块的子流程图;
D、 各子功能模块之间要做好数据接口;
E、 根据子框架和子流程设计数据字典;
F、 数据字典要结构设计合理,不合理的设计将给软件造成巨大的隐患;
<td s
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics
Verify(用户信息及密码验证表)
序号 主键 字段名 中文对照 数据类型 长度 小数 默认值 允许空
1 ID 用户ID varchar 10     Not Null
2   password 密码 varchar 72     Not Null
3   level 等级 varchar 10     Not Null
4   name 姓名 varchar 10     Not Null
5   station 岗位 varchar 30     Not Null
6   dept 部门 varchar 10     Not Null
System_Function(系统功能表)
序号 主键 字段名 中文对照 数据类型 长度 小数 默认值 允许空
1   akey 主功能键 varchar 10     Not Null
2   bkey 次功能键 varchar 10     Not Null
3 mkmc 模块名称 varchar 20     Not Null
4   id 用户ID varchar 10     Null
5   enabled 功能使用标记 bit     0 Null
6   imageurl 功能图标名 varchar 30     Not Null