时间:2017-1-2来源:本站原创作者:佚名

昨天看到有一位铁路工作的工程师说想要放弃现在稳定的职业,投入码农的怀抱,我觉得很多人把码农这个职业看得太高,也许是社会浮躁的气氛造成的,我作为一名大漩涡的坚定捍卫者,入行也快8年了,有义务进行一番科普,让漩涡众找准自己的定位。申明一点,我说得一切都是站在我自己的角度,周围的环境进行阐述,可能有坐井观天的情况,其他码农不认同也希望说出您的观点,大家互补。自我介绍:我以前得帖子介绍我自己不少了....还是简单介绍一下,我自己毕业于某渣的计算机学院,从毕业到现在工作接近8年的时间。标题说了我自认为是一名乞丐版的全栈工程师,所以我身上的技能包很多,有的比较精,有的比较浅,后面再介绍。因为我接触的东西很多,所以对码农的各个方面都略知一二,各种文档,各种语言,各种主流的设计模式都略知一二。我下面就把整个码农的框架以及里面细项写出来,不敢保证非常准确,但是至少是有实践过的。1.码农的角色1.1编码人员编码人员会收到需求文档或者设计文档,被要求要实现什么样什么样的功能,然后进行编码实现和需求文档,设计文档要求一致的东西。编码问题具体后面说。1.2设计人员(我们所说的系统架构师其实就是高阶的设计人员)设计人员分2类,一类是UI设计人员,一类是系统设计人员会收到需求文档,被要求要做一个什么功能,要实现什么为目的,设计文档包含系统架构,语言,数据结构,数据流向,安全性评估,可行性评估等等等,产出一份设计文档交给开发进行开发。1.3需求人员需求人员会和用户或者产品经理进行需求访谈,引导用户交出合理并且准确的需求,准确的逻辑,然后产生一份需求文档,并将需求文档交于设计,进行可行性分析。可行性分析通过则设计人员会开发进行设计,编写设计文档。需求人员要求必须能够拿到准确的需求并且传达给设计,因为一旦需求错了,整个设计和开发都要重新来过,浪费的人力物力可不是一点半点。用户或者产品经理提出问题,需求人员根据需求问题找到可以实施的解决方案或者优化现有的作业流程。在完全需求的同时,提出的解决方案要尽可能的为设计开发考虑,降低设计开发成本。1.4产品经理(创意团队)考察市面上的产品,针对自己的产品进行规划,要做哪些功能,什么样的功能受众大,什么样的功能可能能打击到竞争对手等等情况进行分析,然后发展产品,对产品周期进行规划。产出为产品规划书,产品生命周期,产品介绍等等相关文档,并且和需求人员合作产生需求文档。1.5测试人员当然了就是对开发的功能,模块,产品根据需求文档进行测试,有猴子测试,白盒测试,灰盒测试,黑盒测试,压力测试,测试工具测试,自己编写代码测试等等等.....产生的文档就是测试计划,buglist文档回馈给开发人员。补充一句,所谓的bug是指凡是和需求文档不一致的结果都是bug,并不是代码出了问题才叫bug。1.6运维人员运维人员就是有管理员权限,可以操控产品,功能的一些参数来管控,对产品和功能使用是非常熟练,并且会一些简单的编码和数据库原理,第一线对系统产生的问题进行处理并且修复数据,如果能找出根源的问题就是优秀的运维。产出的东西有troubleshooting文档,问题反馈文档,另外很多运维也会写用户说明书,因为他们对系统是最熟的。1.7项目经理(PM,PMA)这部分人不是严格意义上的码农角色,只是管理项目的进度,风险,人员,成本,协调资源(和建楼房的项目经理没有本质区别)。这里就不写了。2工作流程所以整个工作流程大概就是这样用户/产品经理---需求人员---设计人员----编码人员-----测试人员-----运维人员。不是指等级越高的人员编码能力越强,只是在上流的人员的容错率很低,所谓差之毫厘谬以千里,上游错了一点点,下游必定错得很惨。人员越多,也会导致流程越长,耗费在沟通上的时间就越多,沟通上容易出错的风险就越大。所以很多公司基本是设计/编码或者需求/设计是同一个人。或者一个人身兼数职,比如我,就是兼了所有角色.....3码农的基本素养3.1逻辑能力逻辑能力一定要强。逻辑能力可能有天赋的原因,可能也有后天学习的原因。逻辑能力强的人一般体现为数学,化学,物理等方面比较出众,所以理科生转码农会容易很多(比如码农里面有大量的自动化,物理系,数学系的学生),因为理科生在逻辑方面被训练得很多。虽然我大学是混过来的,但是高等数学上和下我都拿了90多分.....逻辑能力强会让你在写代码的时候看到推算,各种算法,加减乘除的时候不会紧张,操作链表,堆栈,数组的时候得心应手。做需求分析的时候能够抓到矛盾点,能够分析出流程,功能是否合理,是否能够实现等等等。所以逻辑能力是很重要的。3.2沟通能力沟通能力可以让你快速融入团队。沟通能力体现在你能够快速接受并且正确理解别人告诉你的事情,你也可以清晰并且准确的表达出你自己的想法。这样你的沟通成本就会大大降低,然后你就能够花更多的时间在代码的编写,需求的分析上面,提升自己的工作效率。3.3学习能力旧的技术你可以通过一些例子,项目代码,文档然后快速进行掌握,并且在项目上可以开始快速上手开发新功能。新的技术进来,你有兴趣花个人的时间去专研,并且能在你们团队第一个的搭建出模块,平台供你的团队成员学习,使用,那么毋庸置疑你在哪个地方都会很吃香。3.4阅读文档能力(英文水平)很多旧技术,新技术其实都是要靠阅读文档,和自己尝试编写代码结合进行学习的。这样学习起来效率会很高,所以会阅读文档,并且理解文档就显得格外的重要的。对于旧的技术或者问题有很多中文文档进行阐述,但是更多的新技术,新问题只有英文文档进行描述,这个时候你的英文水平就显得格外重要了,因为好的文档可以减少你学习的时间,提升你学习的效率,而大部分好的文档其实真的都是英文写的。所以要成为高阶的码农,英文是要有一定的水平的。3.5搜索引擎的使用能力其实现在码农这个职业现在使用搜索引擎是必不可少的,百度,Googel,github,stackoverflow,csdn都是比较主流的。我一直坚信一个理论,你所做的东西你所遇到的问题肯定已经有人遇到并且解决,你要做的就是去网上有目的的海底捞针,然后看别人是如何解决,你进行复制和简单修改。不要认为这就是复制就能解决,前提是你要能找到在哪里可以复制。当然大部分的东西还是英文的比较好,所以这里又考验你英文水平的时候到了。(我们经常调侃,现在已经不是面向对象编程了。而是面向搜索引擎编程,网络挂了,今天就不要做事了。)举个简单例子,我曾经接收到一个需求,用户经常要把上万的数据导入到系统里面,因为数据库是sql,而系统是.net的平台,后来我google到可以使用bulkcopy来进行处理,接收这个需求之前我是完全不知道bulkcopy的。这样你在使用搜索引擎在完成任务的同时自己也得到了提升,学到了你周围人都不知道的知识。3.6态度态度决定一切,你必须有好的态度,好的职业修养,才能被人看得起。遇到问题不甩锅,有责任心,是自己的东西就有一定要把它干出来为止的那种冲动,不眠不休的尝试解决!我手底下曾经有一个程序员,职高毕业,也没参加什么培训。逻辑能力,基本理论知识可以说是差极了,沟通也挺费劲,如果是我去面试,这类人我一般来说是不通过的,不过是老板派给我的,我也只能收着。还好他大部分是做UI和H5的样式,CSS3的动画。可是后来我发现他的态度非常的端正,责任心很强,自己也很有耐心去学习新的技术知识并且运用到实际进行解决。虽说进入状态花的时候有点长,他写的JavaScript代码也是乱得不行,但是能帮到我解决问题,而且态度很好,不管工作难或者不难都不推诿。所以最后还是可以的,现在也慢慢开始成长,转到了其他团队。3.7定位其实码农是属于第三产业,服务行业,你怎么样让你的上司爽了,让用户爽了,你就牛B了。不一定要用写代码的模式才可以,好的创意,好得理念,好的沟通,好的态度,都在这范围里面。写代码做功能做产品的终极目的就在于做服务,提供服务。你能搞清楚你服务的对象,搞清楚你服务对象想要什么,你能提供什么服务满足他们,并且你实现了,你就成功了。4最后来说说我的整个成长过程,给大家一个启发。4.1.最开始入行,接手一个asp.net+sqlserver的项目,开始学习asp.net+sqlserver4.2asp.net+sqlserver有了一定能力,并且熟悉了业务,开始做一些简单得设计,和需求,开始学习设计模式,什么工厂模式,批处理模式,单例模式,建造者模式等等等....并且编写概要设计文档和详细设计文档4.3本来开始做设计了,一心要往构架师上靠,可是公司缺需求分析人员,怎么办没办法,自己顶上,开始编写BRD,TBD,SOW等等一些列需求人员的文档并且和用户沟通需求,提高自己提出解决方案的能力。4.4好了,有项目来了,我最有经验,组织就决定你来当项目经理了。好了又要开始做项目经理的事情,写项目风险评估报告,写人员评估报告,每天写项目进度,和各个部门leader进行撕逼,拿资源(真新累,不想当项目经理)4.5好了公司决定要做一个产品,你这方面经验最多,你来当。好了开始写竞品分析报告,产品生命周期,产品发展概要,产品功能预想......4.6这个产品不行,公司决定组织一批精英另外做一个产品,你来负责web端和移动端,对就你一个人负责。日了狗了!但是我不会java不会Object-C我做毛的移动端啊。好了发现市面上流行用hybird的开发模式用H5+简单原生来进行移动开发。研究了国内的DCloud和国外的CordovaApache,开始一步学习,H5和JavaScript加上简单的Object-C和java,毕竟C#好几年经验,面向对象语言学起来快。JavaScript也还行。后来也算做出来点东西了。4.7嗯,美国有项目,但是我们人手不够,你一个人去国外把这个项目吃了吧.....好的,我现在一个人只身来到国外,没有其他人员的支持,得益于我乞丐版全栈工程师这个项目也顺利完成。就在今天!本来已经计划好了下周回国,可是国内一个电话过来,“你签证停留时间明年才到期吧,另外有一个州也需要你,机票给你改签了,你直接飞过去,再干2个月再回国.....回国之后去把加拿大签证办了吧......”4.8我的技能包4.8.1C#方面:ASP.NET(精通)Winform(熟练)WPF(熟练)(其他.netwcfws等等也算比较熟了)4.8.2其他语言:H5(熟练)JavaScript(熟练)Java(入门)Object-C/Swift(入门)abap(入门)4.8.3数据库:SQLSERVER(精通,如果我说我是DBA,别人也信),mysql(熟练),DB2(入门),Oracle(入门)4.8.4网络以及安全编程:AESDES加密,ajax以及跨域调用,网络爬虫,







































北京治白癜风
北京治疗白癜风的多少钱

转载请注明原文网址:http://www.helimiaopu.com/cxfz/4285.html

------分隔线----------------------------