A. 怎样做一名高效率程序员
1、理解编程语言的原理
三流的人才懂应用,二流的人才懂开发,一流的人才懂原理。各种语言之间存在着相似的地方,掌握语言的原理是必不可少的。最重要的,让语言去适应项目,反之亦然。
2、向优秀程序员学习
你有一个苹果,我也有一个苹果,我们交换苹果,你我还是有一个苹果;你有一种思想,我也有一种思想,我们交换思想,你我就有了两种思想。
与优秀的程序员为伍,你将吸收的最实用的经验,这远比你一个人自学、死磕编程来的快一些。有一句话说到好,与臭棋佬下棋,棋会越下越臭。不可否认这样一个事实:和什么样的人在一起,就有什么样的格局,就会有什么样的人生。
3、了解数据结构和算法
如果你要成为一个高效的开发者,就必须学会快速排序、学会辨认O(n2)程序、学会编写递归函数。
学会多种语言,你便会更清楚不同的框架是相同问题的是如何解决的。尽可能去了解底层命令(plumbing),以便能够作出明智的决定(Web框架是怎么存储session状态的?Cookie到底是什么?)。
4、精通一个编辑器
高效开发者通常是用IDE编辑器吗?其实不是的,他们更常用的文本编辑器,因为这样更会学到东西。
如果使用编辑器选择通用的Emacs或Vim,自然是最好的。其次,挑选你的首选平台最支持的。使用宏,不断地写代码;使用Visual Studio或SublimeText的自动补齐功能。
5、整洁的代码胜过巧妙的代码
如果想让别人可以轻松读懂你编写的代码,请尽量使用最少的代码来完成任务。在编写代码过程中,遵循DRY(Don’t repeat yourself)的原则,使用明确定义的对象和库,将任务分解成小而简单的代码段。
6、掌握代码调试技巧
现如今市场和需求变化相当快,项目的周期有时就会缩短。一个月的工作计划,会缩短到2个星期。项目的压力难免会导致程序员的代码质量会有所下降!
因此,调试技巧在这样的环境下就显得尤为重要。高级程序员会在函数的开始和结束输出Log,把所有的参数和返回值打印到日志系统,便于追踪。在解决问题的过程中,使用开发工具一行一行进行调试,实时观看参数的变化。
7、重新回顾代码
重新去回顾和审视自己写过的代码,通常会有两种体验,一种是我怎么写了这么烂的代码;另外一种则是对自己写过的代码充满了成就感。回顾代码有时可以触发我们新的想法,甚至还能对编码有一个更深层次的思考。
B. 程序员工作前景怎么样
首先带你来看两种不同的程序员吧:
1.某外包公司的程序员,每天的工作是这样的:合作的企业会把需要制作的软件功能、设计等等各方面都设计好,然后给程序员一串伪代码,程序员的工作很简单,就是看着伪代码敲敲键盘,算法或者是数据结构什么的都不用自己考虑,每天最累的就是手指和腰,而工作效果的检查也就是字有没有敲对。
2.某互联网公司程序员,每天的交流对象是产品经理,产品经理只会把产品prd发给程序员,里面的设计只有功能要求,具体的算法实现都需要你来考虑,而且必须保证工作的结果能够在健壮性、美观、运行速度上满足条件,一天下来工作时间很多都花费在学新的东西和设计算法上,最累的可能是脑。
这是两种完全不同的工作,但是都可以叫程序员,当然我并没有看低外包公司的意思,不过现在有很多外企在把任务发给中国的外包公司的时候都是这样的,就好像使用非洲廉价劳动力一样,你只需要知道干什么,怎么做不需要你考虑,基本就是体力活。
那么程序员有没有发转前景呢?首先要明白,第二种才应该真的算得上是程序员,那么我个人认为,程序员绝对是有前景的,未来发展的趋势必然是越来越多的计算机替代人来进行工作,所以掌握计算机编程可以说很快就会成为一项基本技能,但是怎么也需要几代人才能实现,现在已经有太多的东西离不开计算机了,程序员几乎可以出现在任何一个领域,那前景好不好呢?也就不用我说了吧.
望采纳,谢谢!!
C. 游戏程序员的基本要求
1 ,C游戏程序员现状
中国C程序员100%都是自学的。因为中国几乎没有象样的C培训机构。大家都知道社会培训是赚钱为主要目的。能在那里成才是个大运气。也不象JAVA有SUN公司一手推行。中国大学教育里也根本没有C教学。关于C/C基础课的知识,只是让学生入门。但对于实际的C软件工程应用,大学课本知识实践意义不大。最重要的是,大学里没有合格的C老师。编程是门技术,叫手艺也行。而大学是搞科研的,多的是科学家,靠出PAPER教科凭职称为生。并不是技术员。没有10万行以上代码经验和成功软件项目经验的人,很难教出中高级C程序员。
游戏制作业对C程序员的要求是比较高的。比一般行业软件高很多。因为任何一个MMO都是个中大型软件项目。日使用人次达到几十万上百万,同时使用人数几十万在线的大型网络多人交互软件,集成了超过十几项专业领域编程技术的软件,想不大都不行。
另外,中高级C程序员能力一般都很强。因为都是自学成才,这需要较高智商,很强的自学能力,解决问题能力,和克服困难的毅力。但是这种人才在游戏行业里人数并不多。抛开凤毛麟角具备整体大型软件架构能力的高级人才不谈。能够承担独立模块开发,具备独立解决问题的能力,写出在空间,性能,可维护性等几个方面达到要求的C程序员,也是很难找到的。而具备这些能力,同时又具备一些专业领域技术的人(图形引擎,网络引擎,等),更加稀少。
所以,即便是大游戏公司,对于C游戏程序员的需求,也是永远不能够得到满足。而已经在公司工作的C程序员,不经过短则3个月,长达1年的锻炼,也无法真正胜任独当一面的C游戏程序开发工作。
2 ,MMO游戏开发对C游戏程序员要求
前面提到,所有MMO游戏都是中大型软件。软件占用空间,稳定性,性能,可维护性等各项衡量软件质量的指标,对MMO游戏软件的要求都非常严格。远大于普通行业软件。这种规模和银行系统类似。而客户端和软件逻辑比一般的商业软件又要复杂很多倍。这就要求软件编写人员具备较高的程序编写素质。
游戏软件中,解决好软件工程部分,只是项目的1/3。另外两部分是策划和美术/音频。从经验来看,需求变更对于MMO游戏软件,不是偶然事件,而是一种MMO游戏软件开发的基本属性。游戏软件投入大,周期长,风险高。MMO市场变化也大,交互电子游戏发展迅速。游戏软件必须面对外界变动。又因为开发周期长,所以软件需求变动成为了软件开发的一种基本属性。犹如复杂性是软件工程的一项基本属性一样。
这导致游戏软件的开发充满了不确定性。交互娱乐不同于商业应用。娱乐是属于理性和感性之间的领域。而C开发面对就是0和1的二元世界逻辑。这两个领域存在着不可调和的矛盾。这种情况,对C游戏程序员提出了更高的要求。
首先,基本C知识,C/C运用技能,必须极其扎实。并不是游戏软件开发用到什么平时书本上很难得到的知识点或者技能点。游戏C开发的知识体系和技能体系,利用现有C书籍就可以满足。比如《CLANGUAGE》《C PRIMER》《EFFECT C》《MORE EFFECT C》等。但是在开始游戏编程之前,把这些书本吃透并且实践熟练的人,非常难遇到。当然能够真做到这点的人,已经是个中高级C程序员了。我曾经遇到过一个,毕业工作不久就去了GOOGLE
其次郑腊,对于面向对象的深入理解。是非常重要的。熟练掌握C/C语法,编程技巧,只是满足了C游戏程序员一部分要求。而面向对象观念的深刻理解,会为大型C项目开发带来翻天覆地的喊裂滑变化。有时候,在一个10人以上并行开发的C游戏项目中,面向对象方法会成为救命稻草。《设计模式》以及《设计模式解析》相关的书籍,也是必修课。
最后,好技术人员的本质是自大的。这属于正常。但是如果这种习性影响了自身继续提高和团队合作。以及影响了其成为技术管理者和项目技术核心时,那么这种技术人员的自身价值会大打折扣。如果早日越过自命不凡这一关,扩大眼界,继续在综合素质上提高。在技术管理能力,源宽架构能力上提高,其自身价值才会继续增长。落到实处,就是待遇和身家增长。
由于游戏开发的本质是团队开发。任何时候,只有对一个团队有价值的技术人员,其本身的价值才有可能得以体现。
3 ,成长和技术发展路线
一般技术人员发展有几个阶段
1 ,具备独立开发局部功能的能力
比如为某个UI编写逻辑接口函数。为某个LOGIN对话框编写自绘制控件等。
2 ,具备独立开发和攻关某个功能模块的能力
比如为游戏增加一个小型逻辑功能模块。
3 ,具备独立设计并开发某个系统的能力
比如设计和开发AUTOPATCH 系统
4 ,具备解决技术难题,设计架构的能力
比如开发网络同步仿真系统,开发一个中大型游戏制作工具
5 ,具备整体架构,管理,协调其他人共同开发一个大系统的能力
客户端主程,服务器主程,引擎主程等
6 ,技术director
制定技术发展方向,技术团队建立,技术管理等
在迈向每个阶段的过程中,伴随的都是巨大的工作量和工程压力。有时候是跨越1年的失败等等。在公司项目不成功时转换单位,重新开始,或者继续做为核心团队留在公司继续从新的机会做起,都是好的办法。但关键是吸取经验教训,尽量多学多练。并且结合自身长处发展。当然,游戏制作人员,最好还是依靠一个核心团队。成为核心团队的一员。
能够达到第三档的程序,已经是公司不可缺少的人才了。但往往程序员自身对自己的认识,和公司对其的认识,有时候会有差异。我碰到过一些人,脑子好用,写东西很快。各种技术都有涉猎。但总是不放心让他独立开发设计某个系统。哪怕是相对独立的工具。也会被搞得一塌糊涂。要后面人不停擦屁股。可自己还觉着自己水平很高。这种人浮躁,眼高手低,不愿意细致周全的做好一件完整的事。所以就可以看到他不停的跳来跳去,可在新公司的职位也没有见多么提高。公司非常重视交给一个程序员一件事,他是否能完整,考虑周全的把事情做完。哪怕时间长一点,也不能不做完。这会给工程带来致命的后果。
D. 程序员一天都在写代码吗程序员的一天除了敲代码还有做什么
程序员一天都在写代码吗?
来自我个人的感叹:如果能天天写代码,该有多幸福啊~
如果程序员的一天都在写代码,这就说明了公司的需求明确,老板的战略完美,产品经理也不会天天找人撕B,技术Leader已经把框架制定好了,大家都安心编码,安心做有创造力的工作。在这种情况之下,程序员的成长也是飞快的,心无旁骛的驰骋在代码王国。
然鹅。人生不如意事常八九。
那八九不如意的时间,大多数程序员要面临以下问题:
会跟产品经理吵架会对着搜索引擎出来的结果说卧槽,需求不明确,随意更改,架构频繁更换,焦头烂额。
测试频繁告知你各种千分之几的无法复现的bug。
各种低效会议,无形中浪费生命。
除了以上这些,可能还有:兴奋的写了半天发现编译不过。
折腾就是半天,开心的上了线,各种线上bug弄得心跳加快,血压升高。
日常情况下把每天状态最好的2-3小时拿来敲代码就可以搞定一切需求了。
因为其他时间都基本上是用来开会,跟产品经理互怼,然后就是debug整天。有bug必须赶紧找出来,如果今天没找出来,明天继续一整天,如此循环。
所以要提高水平。经常写bug的人就很忙。或者说,瞎忙。而且代码写得太多了还需要花点时间稍微整理一下文档之类的,免得以后自己都看不懂。有些东西可能也需要花时间重构一下。
但可惜,程序员的工作不是仅仅只有写代码。你得了解业务。了解功能需求。要知道代码是为了让人使用的,你需要和人打道。
真正用来写代码的时间占全部工作时间的比例其实并不高,就算是没有人打扰,也需要花很多时间去设计怎么写代码,或者是花很多时间去读懂别人的代码来找到Bug产生的根本原因。
在这个过程中看似面对的是代码,其实还是在面对人。
程序员并不是一天到晚都在写代码的,大部分程序员一般平均每天应该不超过3个小时吧,大部分时候在了解需求、各种开会、找bug、以及学习。大部分时候是在做写代码之外的事情,偶尔也会划水。
总之程序员的工作远不止写代码,花时间学习提高自己,总结沉淀一些东西来提高自己的影响力,都很重要!
最后还有句话是这么说的:栽一棵树最好的时间是十年前,其次是现在。对于学习编程的小伙伴,如果你想更好地提升你的编程核心能力(内功),在未来成为一名有为的技术人员!笔者这里或许可以帮到你~
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
E. 程序员是做什么的 ... 有能力窃取查看你电脑的东西吗这个技术难吗还是对程序员来说很简单
1,会 C++那些,纯靠书本、学校上的知识,如果不额外自学的话,是编不出黑客软件的。
2,现在的程序员,大都指做MIS、网站的程序员。不是所有的程序员,都有窥取别人电脑资料的本事。
3,有专业黑客软件,不用很高的技术也能窃取别人资料。但那个软件一般不好搞,除非有黑客朋友或花钱买。
4,一般的程序员都不会,要稍微专业一些的才会。