㈠ 在大家眼中,程序员是一个怎样的职业
为什么有人在技术造神
大家应该已经感受到,技术圈这两年已经和娱乐圈创业圈差不多的氛围了,这其实是有原因的。
最主要的原因是,创业公司和创业媒体越来越多,他们需要大量的程序员投身到创业这个高风险的行业中,而造神,正是让程序员们自动跳进火坑的绝佳办法。不是说程序员不能创业,我是说,创业媒体们故意模糊了创造和创业的界限,把程序员们的创造冲动偷换概念,鼓吹了太多不适合的人去创业。
另一个原因是,招聘成本高涨,CTO 们为了能提升影响力,不得不频频出席各种大会刷脸。文笔好的再做做自媒体和技术社群,既能强化个人品牌提高身价,又能在融资的时候提升成功率。
总之,这个行业出现了各种技术大神。
这些大神在普通人类和初级程序员眼里是无所不能的,是他们向往的目标;在中级程序员和高级程序员眼里,这些大神就是他自己,只不过他还没红起来而已…
于是攀比心理也开始泛滥,全国第三的架构师比比皆是,整个圈子渐渐就浮躁起来。
然而绝大部分程序员,依然是雇员
媒体们在包装时,最喜欢按独立开发者的路线来整。“从小就对技术有天分”、“大学时曾在某编程大赛一鸣惊人”、“写了个 APP 玩结果一个月有了千万用户”、“从公司离职自立门户三年上市”。
OK,这的确是程序员的一条职业路线图。但是媒体们不愿意告诉你的是,一:只有极少数程序员是通过这个路线成功的;二:这条线其实需要太多非程序员职位的技能,比如产品设计能力和销售能力。
程序员的价值决定
绝大部分互联网公司的程序员职位,没有技术门槛
然而不幸的是,绝大部分互联网公司都不是技术驱动的公司。真的就是鸟哥说的那样,绝大部分技术岗位,其实技术门槛都不高(门槛在工程上,后文细讲)。技术不过是这些公司的护航舰,而不是破冰船。
先别打我,冷静下来想想,到底有多少你会的那些技术,是你的同行们不会的呢?不多,对吧?
几年前亿级别的搜索还是问题,现在已经到处是通用解决方案了;几年前千万到亿级别的网站和 APP 解决方案还在大公司手里,现在各个架构大会都讲烂啦,而且其实都差不多;就连 DeepLearning,带 API 接口的框架也开始涌现,只需要把图片用 REST 传进去就能取到结果了。
很多事情,已经没有难度,只需要持续投入。是的,对绝大部分程序员来讲,他们不需要成为科学家,而需要成为工程师,成为从科学家手里接过火种,去燎原大地的人。
怎样才是一个好工程师
工程的本质不是创造,而是去风险化。
工程是关于如何低成本、高效率、按时按量完成既定任务的。所以判断一个工程师是否优秀,并不是他多有创意多有名气,而是看他有多稳,看他能多 GettingThingsDone,中文就是“靠谱”。
有时候一个好的解决方案,未必采用了最新的技术和框架,而是看上去朴实无华,功力都包涵在背后的细节里。就像顶尖高手打的斯洛克台球,每一杆都平淡无奇,只是因为上一杆的回球太到位。
有同学问,那我工程做的太好,岂不是没有机会遇到一些高难度挑战了么?放心,一般公司都雇佣了产品经理来帮你制造高危事件。
同样的,一个好的工程师,会选择最适合需求和团队的方案,考虑开发效率和系统效率的均衡,从而已达到最优效果;而不是整天和别人去争论什么语言最好、哪些框架过时了。
工程的另一个要求是进度控制和质量控制。
在项目立项之后动工之前,对要做的事项作出详尽的规划,对未来一到两周的工作给出细致的排期,这是进度控制的基础。
代码的及时入库与合并,自动化测试和每日构建,CodeReview 和文档编写,这些看似无关紧要的习惯则决定了项目质量。
不幸的是,很多程序员把这些工程上至关重要的东西当成垃圾,视为对他们“创造力”的压抑。
他们总是以创造力为借口去寻求自身的自在,比如上班不带胸牌不打卡,中午休息时间在公司看视频打游戏,最好可以远程上班,项目到期之前再来检查进度,公司不要用统一框架,只有傻逼才写文档。
对职业的理解偏差和工程能力上的荒芜,培养了大批能写代码但死活写不好代码的“码农”,反而让那些有着彪悍工程能力和良好习惯的程序员变得奇货可居。
最后,来说说程序员那无处安放的创造力
有了锤子想找钉子是很正常的原始冲动,但我们必须认识到,创造力对于程序员这个职业来讲,是锦上添花的东西。如果你没有强大的工程能力,那么创造力也不过是无本之木。所以扎扎实实的把工程基础打好,这是最根本的。
在此基础上,我比较推荐程序员采用内外两条线来培养自己。在公司内的项目上采取相对保守的策略,尽力把稳定性做到最好,培养出自己卓越的工程能力;然后在公司外的开源项目和自己的独立项目上,采用一些新的技术、实践一些新的想法、充分发挥自己的创造力,梦想还是要有的,对吧。
这样做最明显的好处是,你可以了解到新技术和激进方案的优缺点,从而在进行方案选型时,有更多的依据;还有一个职业发展上的好处:如果不是主负责人,公司的项目往往不能代表你的能力;但独立项目却可以作为一个非常好的能力证明出现在你的简历里边。
你可以是一个身怀绝技的手艺人,在自己家里你尝试各种手法各种风格的个人作品;但当你参与颐和园这种级别的工程时,好好的把自己负责的石头雕成总设计师要求的样子就好 —— 毕竟这个时代一个人已经很难负责整个项目了。这就是我所理解的程序员的工匠精神。
㈡ 和杨超越做,腾讯、网易的程序员竟然争着为杨超越做游戏
这个世界太疯狂。
看到有人用它当头像的时候,我也并不意外;
“超越杯”是一场编程大赛,由杨超越的粉丝群体主办,要求参赛者以杨超越为主题开发编程作品。事件一经曝光,就凭借杨超越与程序员的诡异组合登上了微博、知乎和贴吧热榜的第一。
在决赛前一天,杨超越本人也在微博上为他们打call。
得知游戏是这场大赛当之无愧的主角,进入决赛的10款作品有8款都是游戏之后,我对它产生了浓厚的兴趣。
它草根吗?绝对草根。我刚刚进群,就有一名17岁,名叫杉杉的高中女生希望我写一段话:“超越看看你学生党的粉丝,为你和祖国发光发亮。少年强则国强”
而且杉杉显然不是最年轻的选手,因为前阿里程序员,现农民工子弟小学的支援编程教师阿达指导4名3年级小学生,做出了一款跑酷游戏《超越冲冲冲》,还闯进了决赛。
比赛的胜利标准也十分草根:投票。由于投票链接不太好找(我在网上足足搜索了10分钟),参与投票的人数有限,弹幕甚至围绕几个项目“是否刷票了”展开了一番争论。有参赛者向我抱怨:“投票消耗了大家很多热情,我们是非常不情愿的,现在又要投票,有些成员特别不积极,直接跑路了……”
直播页面的弹幕刷新极快,从未停止
可你又不能说超越杯不够专业,因为许多老司机都隐藏在参赛队伍当中。除了从业10年的原画师,满脸胡子的美国金融行业程序员之外,腾讯、网易的程序员同样随处可见,而且他们参与的几款项目都进了决赛。
例如用虚幻4制作的硬核ACT:《超越传说》的主创就是网易的实习生,此前他尝试独立做过冷兵器吃鸡、FPS、TPS等游戏,目前在浙大攻读计算机图形学的研究生学位,他说自己试着在作品中融入了黑魂和只狼的部分元素。
腾讯的参与则更为直接:腾讯课堂是超越杯决赛的直播支持方,他们邀请了腾讯的技术专家作为评委(比如魔方工作室群的一名技术总监),还在项目展示结束后,请专家讲解腾讯从T1到T6的“程序员升级之路”。即便主持人自嘲为了让自己接这个活儿,“主办方说给我2000Q币”,也无法缓解那种专业到开始无聊的氛围。
腾讯游戏魔方工作室群引擎中心技术总监,《游戏引擎架构》译者
这种草根和专业的冲突也体现在赞助方提供的奖品上面。获奖队伍既能获得倩碧护肤品、康师傅奶茶、多芬洗发水以及杨超越的周边礼品,又能获得cherry键盘或电脑外设,腾讯课堂课程礼包以及腾讯的内推名额。快消、娱乐圈、硬件和职场产品就这样诡异地结合在了一起,恐怕也只有与杨超越相关的活动才能做得到了。
在决赛前,我采访了闯入决赛作品《超越幻想录》的主创青衫隐隐,她是一名学习外国语言文学的大三学生,从来没有接触过游戏开发,但因为这场比赛,开始尝试用专业的思维做一款游戏。在她的话语中,你可以进一步了解选手们参加这项神奇比赛的历程,也更能理解他们的内心。
我们现在是糊透了,就是边吃瓜边看比赛,反正我们也得不了第一……哎怎么突然轮到我们做采访了?
进了决赛后天天都在投票,我们之前是第三,现在好像是第五?真的刚不过。没有防刷票的机制的时候,哎哟我的天呢,各地都有大刷子。本来我们只想在粉丝平台内部消化一下,但后来发现大家都在拉票,就还是拜托父母帮忙,还有组员为了投票,在年级、学校群里发投票链接。现在是都随便了,谁爱投谁投。
我最开始知道超越杯是在3月7日,当时上了热搜了嘛,我就想看看有没有队肯收我们。结果发现并没有,于是我们就自己成了一个队,现在队员有10-20个人,大家亲如一家,自娱自乐,天天在那儿吹牛。
我们这个组很神奇,大多是学生,彼此在现实中都不认识,而且都是村民——村民你知道什么意思吗?就是粉丝(杨超越曾介绍自己是全村的希望,后来他的粉丝便自称村民,而粉丝圈则是杨村)。
我是学计算机的吗?得了吧,我是学外国语言文学的。但我平时喜欢写个小说啊,画个画啊,也喜欢玩游戏,还靠辅助混上了王者段位,所以一直想做杨超越的衍生品,比如小说、漫画,还有游戏——我很喜欢游戏,因为它能部分地模拟人生。
《超越幻想录》是以超越的个人经历为样本,讲述她出道前的故事。春天是刚离家打工,夏天是进入职场,渐渐了解主播、模特行业,秋天是进入经纪公司,冬天是加入《创造101》。过程中她回遇到很多朋友,有不同的发展路线,也会提升数值,甚至通过多周目的努力C位出道,或者海外成团。
我们项目最大的创新是舆论系统,当前热度和粉丝排名会决定她能否出道,而每次黑色事件都会让节目的讨论热度上升,让她吸粉,这个系统我们设定了很多算法和模式,希望玩家可以思考偶像、舆论、社会和粉丝的关系。
很多参赛选手对超越妹妹有好感,但真不算粉丝,他们做的东西感觉是没有灵魂的,你明白吧?比如大多素材都从商城里找,只做了一个超越的模型,那个模型还很不像超越。他们做的是好游戏,但干嘛要来超越杯蹭热度呢?
我们不愿意直接用商店里的模型,系统又是原创的,所以一切都要从零开始,花了很多时间才把自己的非专业性弥补上去。别人线下10分钟就说完的事儿,我们要说2个小时。而且只有晚上9点后大家才有自己的时间,一讨论就到2-3点。
整整一个月,我都是9点工作,3点睡觉,心很累,脑子也不清楚。初赛的时候,为了赶第一期的视频,我翘了2周的课,老师说再翘你就不用来了,直接挂了你。但这个比赛有截止日期啊,只能说翘了的课已经翘了,不再想太多。
开发的时候,我会先和大家敲定大概框架,都要实现什么功能,怎么安排活儿,然后分别跟文案组、美工组开会,写大纲,分剧情,看谁是主笔,谁负责设计超越的形象,然后统一风格。后来我还要让写完剧情,没事情做的文案负责宣发,写slogan和广告词,做推广,抽奖发测试资格,在微博超话里抓粉丝。
现在《超越幻想录》已经有了20多张立绘和上万字的剧本,也做好了功能和系统架构,闲置了很久的程序员就要写代码跑程序了——我们也考虑过橙光,但不想把流量都给他们,所以还是想自己做。我希望这部作品可以“无限期开发”下去,慢慢做出来。
我不太敢让身边的人知道自己喜欢杨超越。在现实中,让别人知道你的杨超越的粉丝,做了一个项目,还要别人的支持是一件很羞耻,很难为情,要承受很大压力的事情。大家觉得她没什么实力,所以会给喜欢她的人打上邪教、脑残的标签。甚至很多人说编程大赛以她的名字开头,简直侮辱这个比赛。但这个大赛就是为她为生,因她而起的,没什么配不配得上。
我有一段时间心理状况很不好,抑郁什么的,看到杨超越后,我发现她也努力了,虽然很多事情还是做不好,但依旧能过得不错,就觉得特别解压。如果有一天这个社会允许这样的不完美存在,我觉得会好受很多。
我也有过见超越本人的机会,但一直不太敢,她对我的意义太强了,甚至有点儿符号的性质,就是近乡情怯——她是我精神上的故乡。我担心见到她之后,发现她不能承受我赋予的这么强烈的情感。如果有一天我没有任何问题,只把她当成普通的偶像,也许会愿意见她一面吧。
我不是那种狂热的粉丝,不怎么用微博,也没办法给超越很强的经济支持。但我会用自己的技能,产出小说、漫画、游戏来回馈她。在追星过程中,最重要的是找到自己存在的价值,找到虚拟中存在的真实。
许多人解读过杨超越,她身上承载了太多复杂的符号和母题:草根能逆袭吗?努力有用吗?被人喜欢就意味着优秀吗?在现代社会生活可以真实且任性吗?因此她可能拥有互联网上成分最复杂的粉丝群体,这也是此前超越杯编程大赛能够爆红的原因。
有人觉得对于开发者来说,超越杯是一个不错的曝光机会,有机会推动独立游戏的发展。我不奢望这场复杂而混乱的比赛能做到这些,但我能肯定一点:这些参赛者把对杨超越的喜爱,真的转化成了一个又一个作品。
亚军作品《杨超越秘密杂货铺》
说实话,即便是闯进了超越杯的决赛,许多队伍的表现都只是差强人意:大多数介绍VCR都十分粗糙,解说往往磕磕绊绊,讲解作品像是在背课文。但你能看得出来,游戏已经成了他们的表达方式,他们在用虚拟的作品,向虚拟的符号表达真实的自己,真实的存在,真实的热情。
偶像对人们有什么意义?相较粉丝的付出来说,他们到底能回馈什么?不同的时代有不同的答案。不过超越杯大赛的一句介绍文案回答了这个问题:我们的存在,就是要为自己和喜欢的人创造点什么。
这么一想,我还真的有点儿喜欢杨超越了。
㈢ 计算机专业学生有哪些一定要参加的比赛
一:大学生程序设计大赛(ACM/ICPC)
一.简介
ACM 国际大学生程序设计竞赛(ACM/ICPC 或ICPC) 是由美国计算机协会(ACM) 主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30 多年的发展,ACM 国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机竞赛。赛事目前由IBM 公司赞助。
二.参赛方式
教练是参赛队伍所代表学校的正式教师,每支队伍最多由三名参赛队员组成,每支队伍中至少有两名参赛队员必须是未取得学士学位或同等学历的学生,取得学士学位超过两年,或进行研究生学习超过两年的学生不符合参赛队员的资格,任何参加过两次决赛的学生不得参加地区预赛或者世界决赛。
三.大赛流程
1.参赛队伍最多由三名参赛队员组成。
2.竞赛中至少命题6题,至多命题10题,试题描述为英文,比赛时间为5个小时。
3.竞赛可以使用的语言:C++、C、java和Pascal。但final赛只有C/C++;
4.重点考察选手的算法和程序设计能力,不考察任何Windows编程知识;
5.选手可携带任何非电子类资料,包括书籍和打印出来的程序等;
6.评委负责将结果(正确或出错的类型)通过网络尽快返回给选手,除此之外不提供任何额外帮助;
四.往届作品汇集
五.大赛网址
http://icpc.baylor.e/
二:Topcoder国际编程比赛
一.简介
TopCoder一直以来关注计算机科学的基础教育,致力于提高世界各地高校计算机科学教育水平。TopCoder国际程序设计挑战赛已经访问了世界许多大学,如麻省理工学院、斯坦福大学、牛津大学、华沙大学、清华大学、北京大学、复旦大学、上海交通大学、同济大学、浙江大学、北京师范大学、武汉大学、四川大学、电子科技大学等,这些活动给学生们
带来了全新的学术体验和发展机遇。
二.参赛方式
注册为TopCoder会员:www.topcoder.com/reg
点击Registration注册。注册成功后可在Registrants中找到自己的帐号。
比赛当天网上签到:进入TopCoder Arena后,点击Active Contest, 选择此次比赛,点击
register即可。
三.大赛流程
四.往届作品汇集
登录TopCoder Arena后,同学们可以看见往届比赛的所有试题和选手的编程结果。
五.大赛网址
http://www.topcoder.com/
三:全国大学生计算机应用能力与信息素养大赛
一.简介
大赛结合国际通用的计算机基础应用能力标准与我国高等院校―计算机基础‖课程的基本要求,全面考察学生对计算机技术的实际应用能力,旨在激发大学生学习计算机基础知识、技能的兴趣和潜能,提高其运用信息技术解决实际问题的综合能力,最终提升大学生在升学、就业、职场等方面的竞争力。
二.参赛方式
参赛对象:2013年度所有在校本科生,涵盖所有专业。
参赛队伍组成:本次预选赛采用个人赛形式。
电子邮件报名:报名者填写附件一报名表后可直接发电子邮件至:jsjjc@ahu.e.cn
,邮件主题:IC3大赛+学号+姓名;
三.大赛流程
四.往届作品汇集
五.大赛网址
http://www.51ds.org/html/
㈣ 编程大赛有哪些
总结了7个编程大赛,希望能够帮助到你:
1、TopCoder
TopCoder是一家被上百万程序员喜爱的编程比赛网站。包括算法竞赛、组建设计竞赛、组建开发竞赛等。其算法竞赛在全球与ACM、Google Code Jam并称为三大赛事。
2、Codeforces
虽然介绍到了,但提醒一句,Codeforces不是给凡人准备的。这个是神仙使用的编程比赛网站,大家知道下就好。
3、CodeMonk
CodeMonk是HackerEarth推出的系列挑战赛事,让程序员们全身心沉浸在自己编写的代码中,真正地专注于问题的解决,并获得自身突破。
4、Project Euler
欧拉计划也是全球人气最高的编程挑战项目之一,深受上百万程序员喜爱。但是和Codeforces不同,这些挑战并不是高不可攀到神仙才能解答,而是非常实用的,调动大家思考与解决问题的。
5、Facebook Hacker Cup
这是由Facebook举办的国际性编程大赛。参赛者需要在一段时间内解决一组算法题,可以使用任何编程语言来解决问题。
6、ACM 国际大学生程序设计竞赛
ACM是由美国计算机协会主办,现在已经是全球最具影响力的大学生编程比赛。该比赛会综合测试参赛者创新、团队能力以及高压编程、分析能力等。
7、Google Code Jam
Google Code Jam是一项由Google主办的国际程序设计竞赛。该项赛事始于2003年,旨在帮助Google发掘潜在的工程领域顶级人才。比赛内容包括一系列的算法问题,参赛者必须在指定时间内解决。参赛者允许使用任意自选编程语言和开发环境来解答问题。
想要学习编程知识,推荐来北京尚学堂
㈤ 程序员个人工作总结自我评价
程序员个人工作总结自我评价
个人总结与计划是相辅相成的,要以个人计划为依据,制定个人计划总是在个人总结经验的基础上进行的。以下我为大家收集了程序员个人工作总结自我评价,供大家参考!
第一篇:程序员个人工作总结自我评价
大家好,我叫xxx。我性格开朗,乐于与人交往,诚实,正直,有教强的上进心,较强的学习能力,在学校团学会的工作使我组织和协调能力得到进一步加强,有较强的社会责任感。
我的计算机能力: 程序员 语言能力:英语(一般);普通话(标准)熟悉windows,能够熟练使用word,powerpoint等office软件; 熟悉c,c#,html,xml,了解数据结构(c),软件工程学,c,c++,java,ajax。 熟练掌握c#语言。 熟悉开发工具vs。netXX/XX; 且利用b/s开发过物业网络管理系统。 在公司从事教育软件的开发。
我曾经获得物业管理系统
软件环境:windows系统 开发环境:vs.net XX(c#) sqlXX 项目描述:本系统主要包括前台和后台两部分,前台主要实现了管理员登录、物业管理人员信息、公告信息、住户欠费信息、住户投诉、住户报修、欠费查询等。后台主要对本网站进行管理,主要实现了受理物业信息管理、物业管理、公告管理、基本设置、系统维护等。
XX年-XX年 “优秀团员”称号、“三等奖学金”、“校篮球比赛第一名” XX年-XX年被评为“系团总支学生会宣传部部长” 、“校书法大赛第一名”
XX年-XX年 “优秀学生干部”、“优秀团干”
通过以上的自我鉴定,我能更好地了解自己,了解自己在各方面的实力。作为一名有工作经验的计算机程序员,我为自己而感到骄傲。
第二篇:程序员个人工作总结自我评价
在这一年里,我经历了从学校到企业、从学生到员工、从理论到实践这三个转变,围绕着这三个转变,我始终保持良好的心态,一步步成长。
我于20xx年6月开始到xxx公司工作。在开始几个月的工作和学习当中,在各位领导和同事的指导和关心下,学习专业知识,向前辈请教经验,向同事学习专业技巧,正是在这个过程中,认识到自己不足,也深刻体会到了团队的力量和魅力,并且很快认识并融入这个团队,为我以后的工作树立一个良好的开端.
在这段工作时间里,我做了一个比较棘手的项目xxx在线咨询系统。为什么说棘手呢,因为我以前没有做过这方面的项目,而且我问遍了所有认识的朋友,搜遍了网络也没有找到如何解决的方法,之后我翻书籍,接着搜索网络。功夫不负有心人,终于我找到一个聊天室的小例子,但是功能差的太远,于是我把这个示例一点点的研究,从一点也不懂到后来慢慢看懂,从对AJAX技术一无所知到基本熟练运用。接下来我就开始自己开发,到最后终于把它开发了出来,虽然不是很完美,功能不是很强大,但是它是我辛苦的劳动结晶,我相信以后会把它开发的更强大,更完美。
通过见习过程,我知道短暂的迷茫和情绪的低谷,有了各位同事的帮助和关心,以及个人的努力,可以让我顺利突破困境,找回自信和充实!
在此,这就是我试用期的工作情况及心得体会的汇报,希望公司领导能对我的工作态度、工作能力和表现,以正式员工的要求做一个全面考虑,我会以炙热的工作热情继续投入到今后的工作当中,以自己踏实努力的工作,报公司知遇之恩!
年的见习期就要到了,现就本人在这一年里的工作情况先作一整理,并做如下自我鉴定:
在这一年里,我经历了从学校到企业、从学生到员工、从理论到实践这三个转变,围绕着这三个转变,我始终保持良好的心态,一步步成长。
第三篇:程序员个人工作总结自我评价
先自我简介一下,本人从事asp.net开发进一年, 09届毕业生,XX年11月开始上班,之前做asp,XX年2月后开始做asp.net,由于公司转型,现在带十几个人在一起搞asp.net开发,主要是关于准金融行业的行业管理软件,
软件开发程序员个人年度工作总结
。年度总结在会议上也写了,但仅限于对于工作总结及XX年工作计划,自我总结较少,因此今天专门做下自我的年度总结,主要从技术、管理、人生上面谈谈这一年的收获,前辈路过欢迎多多指正。
我在学校里学的是电气自动化,程序基础仅限于c基础课程的一些知识,后来由vb、html转向asp,在asp上花费了不少时间,对asp比较熟悉,后来由于公司业务需要,将开发平台转向asp.net,开始对asp.net不是很感冒,以为就是asp的一点扩展(那时还不知道三层架构,数据数据访问全在页面里——!),后来招来几个北大青鸟的过来终于意识到asp.net的强大之处,经过个人的努力已经逐步掌握了asp.net,现在层次上只能讲个人觉得是入门而已,原因是多方面的,待会儿会讲到。
相信从面向过程转向面向对象的同学都有一种感觉:面向对象开始真的有点别扭, 涉及到属性,尤其是类之间的各种关系,那时老想用面向过程传递参数多方面啊。于是老在想对象这种东西,从概念中跳中来,以自己的方式去理解才逐渐体会到页面对象的精华来,分层次展现、分级别访问、封装对象之间各种关系逐渐真正理解了,尤其是对象之间的关系,如对象a与对象b两者之间的关系,有些需要完全公开,有些需要隐藏,有些需要通过第三方传递,有些需要给自己的下级可见,有些需要让下级去完成具体操作——这不是现实的实际模型吗?应该这么理解,面向对象来源于现实,它不是一种凭空空想出来的理论,这些对象之间的关系可以将其还原为父子、夫妻、领导下属、同事、朋友之间的关系。相比之下,页面过程往往像是一股脑全部推给用户使用,其中的数据与数据访问方法层次不清晰,在模拟现实上它与面向对象相比更易于入门理解,实质上难于准确直接地表述。
面向对象上另一方面是它的设计模式,在之前的面向过程中 对这个设计模式并没有清晰地提出来,面向过程优秀的代码要求高内聚低耦合,从个人的理解上,这仅是对软件开发方法“技”上理论总结;设计模式是达到了“道”的层次,因为它从更大的方向、更抽象的层次来去表述具体的代码模块之间的关系,可以认为设计模式是完全从实际的应用来不断总结得来的经验,之间并没有这种术语,但相信前人肯定也使用到这种思想,它从实际应用于来,当然要应用于实际工作中,认真思考不断总结每个人都会有自己的“设计模式”,可以借鉴前人的思想来去提升自己,不可去为“设计模式”而设计模式。
具体到asp.net的实现模型中,真正理解它的机制与方法也就不难理解,记住b/s中离不开post或get,所有的autopostback、selectedindexchanged……都是去调用form传值,加上runat=server的服务器控件打开它生成的源文件也是普通的html标签,微软的让软件开发更容易的思路是很好的,时代在前进,很多年前你使用c写出mis证明你很牛,很多年之后你不在使用c去写“学生管理系统”、“图书馆管理系统”那只能说明你的脑子少一根筋,开发语言都有长处与不足的地方,因为它们适用的场合不同,类似不能拿匕首去跟炮弹比,也不能拿c与php比,程序员都有一种偏执的心理,但一点要记住,你面对的用户才有最终发言权,程序能不能满足需要,易用性、稳定性、成本才是应当首先放到重要位置来去谈的。
最开始担任管理一职时开发团队加我在内只有四个人,那时只是抱着接受挑战的心理去做管理,加上我本人比较重感情,团队之间关系相处都不错,但严重的问题逐渐显露出来:工作的随意性、团队精神薄弱、工作方式蛮干,印象深刻的是有几个开始承诺项目不能完工,于是最后天天加班,一直做到早上6点,睡一会7点半接着上班,几个同事都是年龄差不多的小伙子,干劲十足,
后来随着时间的推进,问题越来越摆在眼前:项目迟迟不能完工,又由于公司待遇方面让新员工感觉不值得,于是形成了老板抱怨员工也抱怨的状况,我在中间两点都要去“消火”,这期间是我们部门相对最累的时间但也是相对感觉最充实的时候,后来,之前的员工跟我说“再也找不到那种感觉了”,这是我能想象的。这期间主要是老总对我十分信任,工作上主要是管理方法上对我指点了不少。后来我逐步体会到,管理应该是“大家定规则去遵守”,而不应该是“人管人”。
人管人很容易陷入一个误区:领导去时时刻刻关注每个员工,这样最后往往后造成员工对领导的敷衍了事,管理松了员工会责任下下降,管理紧了造成员工与领导关系紧张,另一方面领导时间精力有限必然耗费大量的精力在日常的监督中而不能投入到全局的.管理中。
于是“定制度-定分工-定进度”,明确日常所有的规章制度,这期间除了公司主要的工作规章制度外其他的日常工作纪律、日常管理等规章制度都是我本人制订,然后征求大家意见最后去贯彻执行。中间也遇到了不少问题,比如开始我们内部是允许使用qq的,后来员工用qq闲聊的时间增多,大大影响了工作效率,最后决心禁止,开始阻力较大(貌似程序员都喜欢挂上几个qq去到群里搞个群主,虽然群里大多都是菜鸟),最后多次开会,逐个谈话,阐明道理,形势逐渐好转。
项目分工上针对技术水平明确分工,制订项目开发计划,由于开始技术都不是很成熟,不少时间我这边强势要求,使用野蛮方法,完不成加班——我陪着加班, 这段时间能感觉到员工对我稍有怨言但总体还是认可的。
这期间公司新招人员,人员的增多更使我意识到团队管理的重要性,这期间版本控制、编码规范、文档管理、bug管理等诸多问题都得到一一解决, 技术水平上主要是我个人利用空余时间学习新知识充电,然后展开各种培训,主要是ps/' target='_blank'>photoshop、css、js、sql等方面,培训一方面提升了员工的技术水平,一方面我本人在学习培训的过程中得到的最多,因为这个时候个人要求去思考的会更多,加上我本人对技术兴趣比较深厚,所以后期工作慢慢踏入良性循环。
待遇低、条件艰苦、工作时间长、工作压力大是团队中最大的难题,这方面公司在某些方面决策层有着严重的错误思想,造成技术人员对公司埋怨增多,在这方面我本人只能以劝架婆的身价去安慰身边的兄弟,因为我明白现在公司的问题与当前中国软件行业的通病一样,盲目追求利益最大化,不求质量,但求速度,整个社会风气造成软件行业良莠不齐发展,整个中国三四个人的开发团队组成的公司数不胜数,整个程序员阶层生存状况可想而知,疯狂加班、代码质量低下、维护成本大、稳定性差、用户体验差……。当然我们本身不能去逃避这个现状,对于个人来讲任何假大空的口号都是没有意义的,程序员作为技术人员最重要的是心态,以良好的心态去面对各种问题,发现问题、解决问题,发现问题抱怨是解决不了问题的(“it民工”是我个人认为it人最没有正确的自我定位的一个称谓,试想一个人连自己都看不起自己的职业,他能做好自己的工作吗?),最主要是解决问题。
我在面试员工时反复提到的三点是;工作态度、发展潜力、工作能力,由前向后排序,心态最重要,大公司大家都想削尖脑袋往里挤,但名额有限,所以广大的程序员同志绝大多数都集中在二流三流四流的软件公司,这个时候更应该做好个人职业定位。以我个人的经验,新员工选择一家公司往往最看重工资待遇跟发展潜力,程序员是一种不可以混日子的职业,工作能力很重要,但不是最主要的,工作态度是最重要的,工作态度往往跟个人的思想认识还有职业所在的环境有关,我个人的体会是绝不能太过于情绪化,情绪化无论是对工作还是对个人的发展都是不利的,就是说哪怕是明天你要辞职,你今天都要把今天要做的事情认真用心做好。
对于工作责任心不够的员工是尤其值得关注的,他们往往自我意识过于强烈,追求以自我为中心,很多时候伴随着工作得不到认可、工作感觉不充实不开心,我会主动找他谈话,我认识:你管理的是一个实实在在的人 ,他不是一台任你摆布的机器,人会有情绪往往是有心结,找到原因,多加开导,用心去关心每个成员。对于实在不适合在本团队发展的员工要做好最坏打算。程序员这个职业与现在的大学生具有一致的特征,一个是从天之骄子沦为多余人,一个是从高智商人士成为今天中国通行的”it民工“。另一方面是程序员往往年龄集中在20-25之间的男性中,情绪化、失落感、心理不成熟等一系列问题都会出现。但这个阶段的人往往也最易沟通,可塑性也较强,适当的引导、合理的方式会比野蛮的管理效果强上百倍。
㈥ 如何在程序员圈子混出名气
除了程序员自身过硬的专业素质和实力之外,要想在圈子混出名气衣着也是相当的重要,正所谓人是衣裳马是鞍,一定要穿出与众不同高处不胜寒的感觉,一种唯我独尊的气质才能卓尔不群。比如下面这是我程序员盆友发我的他说他现在类似这样而且很受欢迎和尊重。
㈦ ACM国际大学生程序设计大赛(ICPC)
需要跟自己学校联系,一般都是通过指导老师网上报名
一、ACM/ICPC竞赛介绍
(一)有关ACM
美国计算机协会(Association of Computing Machinery, 简称ACM) 创立于1947年, 是一个世界性的计算机从业人员专业组织,也是世界上第一个科学性及教育性计算机学会,同时它也是全球历史最悠久和最大的计算机教育和科研机构。目前ACM提供的服务遍及100余国家,会员人数达80,000多位专业人士,涵盖工商业,学术界及政府单位,并有近1000个机构会员。 ACM致力于发展信息技术教育、科研和应用。全球计算机领域的专业人士将ACM 的出版物和会议记录视做最具权威和前瞻的领导者。
(二)有关ACM/ICPC
ACM/ICPC(国际大学生程序设计竞赛)是由ACM组织的年度性竞赛,始于1970年,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事,素来被冠以“程序设计的奥林匹克”的尊称,可以说是大学级别最高的脑力竞赛。它为参赛选手展示计算机才华提供了广阔的舞台,是着名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。
大赛开始至今已有30年历史,其涵盖的范围很广,大致划分如下:Direct(简单题),Computational Geometry(计算几何),Number Theory(数论),Combinatorics(组合数学),Search Techniques(搜索技术),Dynamic Programming(动态规划),Graph Theory(图论),Other(其他)。
大赛的比赛形式是:经过校级和地区级选拔的参赛组,于指定的时间、地点参加世界级的决赛,由3个成员组成的小组应用一台计算机解决6到10个生活中的实际问题。参赛队员必须在5小时内编完程序并进行测试和调试。此种大赛对参赛学生的逻辑分析能力、策略制定和脑力方面具有极大的挑战性。大赛提倡在压力较大的情况下,培养学生的创造力、团队合作精神以解决竞赛的问题,从而挑选和发掘世界上最优秀的程序设计人才。每届ACM/ICPC竞赛都是精英荟萃、新才辈出,因而倍受全球着名信息企业的高度关注,在过去几年中,APPLE、MICROSOFT和IBM等知名企业分别担任过竞赛的赞助商。
(三)ACM/ICPC在中国的发展情况
我国大陆高校从1996年开始参加ACM/ICPC亚洲预赛,前六届ACM/ICPC亚洲区选拔赛在上海设有赛区,由上海大学主办。2002年,第七届ACM/ICPC亚洲预赛在我国设有2个赛区:北京赛区和西安赛区。北京赛区由清华大学主办,西安赛区由西安交通大学主办。随着各高校参赛积极性的不断提高,大陆地区赛站从02年有所增加。至今,中国大陆地区2008年共设置5个赛站北京、哈尔滨、合肥、成都、杭州。
2008年4月,我校将举办2008大连理工大学 ACM/ICPC程序设计大赛(暨第二届ACM/ICPC东北地区赛大连理工大学校内选拔赛),望广大同学积极踊跃参与。
二、主办单位 学生处 校团委 创新实验学院 软件学院 三、承办单位 软件学院创新实践中心 四、协办单位 冠名/赞助企业 五、参赛队员和参赛资格
1.各参赛队员须为在校研究生一年级、本科学生。 2.以个人为单位参加比赛。3.所有参赛同学必须服从赛事组委会的统一管理。
4.报名资料应具真实性。
六、报名
(一)报名时间 2008年3月19日至2008年3月31日
(二)报名方式 登录软件学院网站http://sst.dlut.e.cn或创新实验学院网站http://tianwei.dlut.e.cn
下载《ACM/ICPC大学生程序设计大赛报名表》ACM竞赛报名表.doc
打印纸档交至如下地点(视报名情况定在现场赛前是否举行网络预选赛): 软件学院报名地点:创新实践中心(教学楼110)报名;
校部报名地点:ACM/ICPC协会( 研教楼814房间)
(三)咨询电话 0411-87571518;
(四)比赛时间 2008年4月19日 下午 13:30-17:30
(五)比赛地点 软件学院实验中心微机实验室 校部同学将在4月19日中午12:00在主楼毛主席像前发车前往软件学院参加比赛。
比赛结束后校部同学17:40在软件学院信息中心楼下坐车回校部。为了方便各参赛队员与组委会的联系,我们建立了QQ群,群号码:56867105 。希望通过即时通讯来为大家提供更多的方便的服务与帮助。
七、竞赛相关内容
(一)竞赛准备
ACM竞赛不要求使用某一种特定的语言,所以各个队伍可以根据语言的特点和自己的特长选择,如果对语言的原理语法和特点均能做到成竹于胸、滥熟于心,在比赛的过程中就可以大大缩短调试的时间,从而获得优势。
然而编程之道就如武学之道,语言只是各门各派的武功招式,算法和数据结构则好比内功心法和武学原理。内力深厚,任何招式到了手上都能够化腐朽为神奇;掌握了武学原理,更能做到无招胜有招。选手在竞赛中最重要的素质,正体现于对算法和数据结构的掌握和理解上,通过对经典问题的分析,掌握各种算法的应用范围和数据结构的作用与具体实现,是每个选手在平时学习中的重点所在。
(二)竞赛策略
临近比赛,在实力上已经难有质的提高,这时我们不妨将注意力转移到竞赛技巧方面,做不成武学道师也学个韦小宝。在ACM竞赛中,一般来说能成功解决半数或以上题目的队伍已经是相当优秀的,解决所有问题近乎天方夜潭,也就是说无论你的实力如何,都还有很大的改进余地,这其中比较重要的就是竞赛的策略。
(1)分工的问题:团队的配合十分重要,三个队员之间的合理分工可以大大改进解题的效率,根据队员的不同特点,不同的队伍可以采用不同的分配方式,其间一些细节的处理需要三个人有很好的默契。
(2)算法的选择:
在所有可行的算法当中,我们选择的应该是最可行的方法,而不是最高明的方法,这是竞赛与解决问题的一个重要区别,按照熟悉的程度由高到低选择一个算法,通过计算算法的时间和空间复杂度(在必要的情况下)和特殊的测试数据找出一切使该算法不成立的理由,如果找不到就确定该算法并选用相应的数据结构。在确定思路的时候注意比较常见的思维方式分析,比如逆向的分析,对称的分析等等。
(3)程序的编写:
最好首先编写输入和输出的部分,然后逐步细化,一个部分一个部分地填充调试,其间通过适量的注释来刻画程序的逻辑结构和特殊的技巧。在完成全部代码后用一般的测试数据验证代码的正确性,然后处理特殊的情况和边界问题,试图尽可能地找出错误的情况并加以改正。关于程序的优化主要考虑的是最坏情况下所用的时间是否满足要求,优化的程度以题目要求为准,足够即可,尽量避免使用指针和动态分配,在空间允许的情况下一律采用静态分配。
(4)调试中的问题:
调试中会遇到的许多问题需要在事前有所准备并定出总体设计,当然具体的情况还要临场分析,考虑的方面包括程序中的BUG,算法的正确性和数据结构的合理性,什么时候该放弃这个问题,什么时候该返回到先前放弃的问题,是否需要做到或已经做到足够的优化等等。所有关于调试的输入输出都不要删除,将它们注释起来即可。
(5)竞赛中的杂题处理
在竞赛中有时会出现一些新颖的题型,解决它们的算法很难归到经典的算法中去,每个这类的题都有自己鲜明的特点,对于它们根本没有一般的解法。对于这样的挑战,一个新颖的数据结构或一套特殊的循环或判断常常是必须的。解决这种问题的关键在于仔细地阅读题目的叙述,灵感经常来自于将叙述的逻辑条理整理得十分清楚之后,同样,对这类题的优化也是需要的,至少需要避免过多的循环嵌套。
(三)编程与竞赛
学习编程并不是为了参加竞赛,竞赛对于多数选手的意义还是在于参与,以及在备战过程中对自己的锻炼和提高。在这一点上,ACM竞赛和其它一系列竞赛是一样的,只是它的影响力和规模大些罢了,所以笔者希望对编程有兴趣的同学都能够关注竞赛,即使不参加,通过了解竞赛中涉及的编程知识达到课内很难达到的高度,这对每个人都是有益无害的。
ACM主页:http://www.acm.org/