1. 为什么越来越多的人不想做程序员了
作为一个在帝都混日子的程序员,经常能看到不少同事转行。
最开始是一位年纪比较大了(快40岁,在这个行业算老了)的,回家开个小店去了。后面聊了聊,非常庆幸自己做出了辞职的决定,现在日子过得是滋润得很。
再之后,有回老家小县城干别的去了的。要准备好回县城,恐怕就很难找到IT行业的工作,除非是自己干。但小县城能干起来的活不多,加上那里这方面的人才也难找,也就基本认为是已经换行了。
最近,甚至身边有刚在17年毕业后加入来的成员,都不想干了,想要考公务员。现在究竟是一些什么原因,导致这样了了?
7.要创业了
不能光是说一些不好的,不想干了的人中,肯定有不少是想要自己出来单干的。创业也基本分为两种,一种是自己出来接单,成立公司开始为别的企业做项目。另一种是自己做产品。这两种其实都比较好起步,特别是第一种,有活就会盈利。而且成本基本只有人力和应酬,机器大部分也都是用户负责的。第二种则是比较赌的,要么很成功,要么很快烧钱结束。不管怎样,这都是不少程序员不再愿意为别人码代码的原因。
2. 想做程序员,要些什么条件
程序员是一种技术工作,在IT的发展中有相当重要的地位,从底层硬件通讯协议的建立, 到数据传输层的处理,到操作系统的建设,到数据库平台的建设,一直到应用层上各种数 据营销平台的搭建,程序员在里面都扮演着举足轻重的角色并为IT事业的发展做出了巨大 的贡献。
中国有很多精于编码的人,但是中国软件行业,尤其是网络应用开发方面误区很大,很难 形成有规模的软件开发力量和产品能力,不但比美国差距甚远,和印度相比也是颇有不 如。这些问题不是在于中国程序员的智商和工作努力状况,也不是在于国家和民间对开发
的投入程度,而是很大程度上,有一些对技术,对程序开发,对项目设计方面的思想误 区,这些误区,导致了软件行业的产品化能力不足,缺乏规模化和大型复用系统研发能 力,可以说,改变认识误区,是解决软件行业小作坊模式和个体英雄模式所带来的局限性 的重要工作。
中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有的代码写的 很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些错误的认识和观点左 右,缺乏对系统,对程序的整体理解能力,这些人,一个网上的朋友说得很好,他们实际
上只是一些Coding fans,压根没有资格称为程序员,但是据我所知,不少小网络公司的 CTO就是这样的coding fans,拿着吓人的工资,做着吓人的项目,项目的结局通常也很吓 人。
程序员基本素质:
作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具 有的素质。
1:团队精神和协作能力
把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最 重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有 限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球
的为linux写核心的高手们,没有协作精神是不可想象的。独行侠可以作一些赚钱的小软 件发点小财,但是一旦进入一些大系统的研发团队,进入商业化和产品化的开发任务,缺 乏这种素质的人就完全不合格了。
2:文档习惯
说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中 非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级 程序员和系统分析员,这个比例还要高很多。
缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇 到极大的麻烦。
3:规范化,标准化的代码编写习惯
作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌套中行缩 进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和 纠错,也有助于不同技术人员之间的协作。
有些coding fans叫嚣高水平程序员写的代码旁人从来看不懂,这种叫嚣只能证明他们自 己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需求。
再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝对不可 想象的。
4:需求理解能力
程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求,他们把性 能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾 经放言说写一个广告交换程序很简单,这种人从来不知道在百万甚至千万数量级的访问情
况下的性能指标是如何实现的,对于这样的程序员,你给他深蓝那套系统,他也做不出太 极链的并访能力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程 序员需要评估该模块在系统运营中所处的环境,将要受到的负荷压力以及各种潜在的危险
和恶意攻击的可能性。就这一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经 验才有可能有心得。
5:复用性,模块化思维能力
经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都是重复写 一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一些重复性工作变成 了熟练程序员的主要工作,而这些,其实是完全可以避免的。
复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一 些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在, 是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样就能极大避
免重复性的开发工作,如果一个软件研发单位和工作组能够在每一次研发过程中都考虑到 这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投 入到创新的代码工作中去。
一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为功能模块 都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就动辄全部代码重 写,大部分重复性工作无谓的浪费了时间和精力。
程序员应具备的素质中
6:测试习惯
作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是说有了专 职的测试工程师程序员就可以不进行自测;软件研发作为一项工程而言,一个很重要的特 点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行
认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效 率和可靠性就有了最大的保证。
测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否能在正常 调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了唯一的测试任务, 实际上还差的远那;第二方面就是异常调用的测试,比如高压力负荷下的稳定性测试,用
户潜在的异常输入情况下的测试,整体系统局部故障情况下该模块受影响状况的测试,频 发的异常请求阻塞资源时的模块稳定测试等等。当然并不是程序员要对自己的每段代码都 需要进行这种完整测试,但是程序员必须清醒认识自己的代码任务在整体项目中的地位和
各种性能需求,有针对性的进行相关测试并尽早发现和解决问题,当然这需要上面提到的 需求理解能力。
7:学习和总结的能力
程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两年内具有 领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的技能。
善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求就更加高 了。
但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能力,一 会学会了asp,一会儿学会了php,一会儿学会了jsp,他们把这个作为炫耀的资本,盲目 的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传输协议,做应用程序不懂
中断向量处理,这样的技术人员,不管掌握了多少所谓的新语言,永远不会有质的提 高。
善于总结,也是学习能力的一种体现,每次完成一个研发任务,完成一段代码,都应当有 目的的跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,这样逐步提高, 一个程序员才可能成长起来。
3. 学计算机的,不想做程序员,转行之后发现自己越走越远,越来越后悔当初的选择。该怎么办
任何工作都不是有趣的,我有朋友一个行业做了七年,才开始有点点喜欢上了。
工作应该看重价值感,解决问题不仅带来成就感,也会带来一定的价值,这才是你坚持的动力。
程序员不是麻木的工作,而是要解决一个又一个问题的,可能更多是跟需求相关,下面有很多人说转行产品经理,那也需要解决产品开发的问题,不能留下一个烂摊子。
如果你想转行,给自己一个机会了解物联网新技术,选择大于努力,说不定很快就有就业方向了。推荐一下3D可视化开发师,【官网注册ThingJS】,1周内学会开发一个3D项目!ThingJS支持最轻松的开发方式,不用重复造轮子,腾出精力来解决项目问题,让你的思考更有价值~
3D隧道案例 - 物联网可视化PAAS平台 ThingJS
4. 为什么很多人后悔学计算机,做程序员很开心吗
不是开心的问题,就是一种职业选择,后悔是自己的选择。问起很多人对程序开发这个行业的感受时,很多人经常说的一句话就是:外面的人想进来,里面的人想出去。
有的人在做了一段时间的程序员之后,他们觉得,既然自己已经入了程序员这个行业,既然这个行业的工资还不错,那自己就先好好干吧,趁着自己年轻,趁着自己还能加班熬夜的时候,自己就先多挣点钱,等到以后他们在三四十岁加不动班的时候,等到他们和年轻人拼不起的时候,他们再真正的去做点自己想做的事情。
做程序员需要的技能
1、基本功
这里说的基本功是会程序语言,程序语法,如果你是java程序员,就需要知道java语言语法,如果你是php程序员就需要知道php语言的语法,如果你是c++程序员就需要知道c++语言的语法,因此可以肯定的是学习一门计算机语言也是没问题的。
2、逻辑思维能力
程序中的运算无非就是数值运算和逻辑运算,数值运算无非就是加减乘除,函数,公式什么的,逻辑运算无非就是满足什么条件做什么事情,90%的逻辑都是因为逻辑if、else什么的,在什么情况满足什么条件下做什么事情。还有就是循环逻辑,无非就是做什么,做几次,每次有什么变化,什么时候终止。
5. 做什么职业,也别做程序员
程序员的快乐和痛苦:
编程是快乐的,也是痛苦的,这也将是第一篇用辩证的思维来探讨关于程序员人生的文章。大量的编程工作或许给你的生活带来了很多枯燥和痛苦,但是换个角度,程序员也应该是快乐的,这种快乐往往无法用言语表达,只
编程是快乐的,也是痛苦的,这也将是第一篇用辩证的思维来探讨关于程序员人生的文章。大量的编程工作或许给你的生活带来了很多枯燥和痛苦,但是换个角度,程序员也应该是快乐的,这种快乐往往无法用言语表达,只可意会,不可言传。那么编程会给程序员带来什么样的快乐呢?
1、成就感
“成就感”毫无疑问是程序员快乐的首要原因,编程是一件普通人无法完成的事,尽管很多软件项目都由一个团队小组共同完成,但是作为个人来讲,你在其中完成的工作就是个人劳动的一部分。一段代码、一个函数、一个模块、一个软件都是程序员自我实现的过程。成就感意味着自己做了一件了不起的事,做了一件非常有用的事,做了一件有价值的事,做了一件别人做不了的事。程序编多了,无论是编程的结果还是编程的过程,都会产生这种感觉。
2、被认同感
程序员原来对程序的无知、恐惧心理,通过大量的编程逐渐地克服了。程序员的自信心也逐步强大起来,而周围的同事往往比他自己先一步看到这种的进步,从而率先对他进行认同。尤其是原来自己初来乍到,水平、能力不能充分展示,自己内心也很着急,但是同事并不当回事,对自己不温不火的。随着工作的开展,自己的能力逐渐显示,同事也开始转变对自己看法,从各个方面或明或暗地表现了对自己的认同,这种认同往往会让程序员内心涌出一种满足感。尤其当程序员的上级甚至老板表扬自己工作成果的时候,这种被认同的感觉让人有一种飞上天的感觉。甚至用户对自己的认可都会让程序员倍感高兴。
3、团队氛围
程序员在成长中,一定会和其他程序员以及项目经理打交道。每个程序员和每个项目经理由于个性、能力、经历的不同与之交往的方式和结果都会不同的。随着时间的推移,程序员在这种不断的交往过程之中,增加了团队的意识,增加了软件中团队凝聚力。程序员在团队中一方面能够获得团队成员的帮助和支持,另一方面作为团队一分子,也在为团队整体作出贡献。每当一个项目在千辛万苦之后完工的时候,那种团队集体相拥的开心是难以言表的,有的男女甚至因此而结缘。也有个别程序员不能处理好和其他同事的关系,那工作起来就会感到很别扭。
4、技能熟练
在编程初期,程序员编起程序起来可以用“一步一个跟头”来形容,编程速度慢的不可想象。随着编程大量积累,程序员逐步找到编程工作流程和窍门,编程速度大大加快。到后来他们几乎到了“兵来将挡,水来土掩”的境界。原来要好几天要才能编好的程序,现在只要分分钟就摆平了。有时这种熟练程度连自己都会不敢相信的。
5、学生变老师
程序员开始的时候绝对是一个学生,干着干着学生变成了老师了,而后面进来的则当起了学生。当学生们问起自己曾经问过上一任老师的问题的时候,那种老师的优越感不由你不产生,不由你不认真去解答。有的甚至有主动教学的冲动。
6、扩大朋友圈
编程多了,自然项目就多了,项目多了,接触的人也多了,接触人多了,就会让程序员交友的机会多了,程序员在这个过程中,无论是和程序员同行、软件设计师、项目经理、上级主管、公司老板、用户、合作伙伴甚至是网友都会有所接触,许多程序员因工作需要经常在用户单位进行开发和维护和用户打交道机会很多,因此,会结交上用户朋友。在IT人员稀缺年代,有些用户对看中的程序员,常常会挖墙角,项目验收后,程序员由乙方变成了甲方。
说完了程序员的快乐,再来说说程序员的痛苦,每一个程序员都有自己的痛苦。
1、遇到问题
程序员最大的问题就是要遇到问题。编程遇到的问题可以说千奇百怪,因人而异。常见的问题就是不会编,编不好,调不通、运行错、查不出错、效率慢等。尤其遇到那些无从下手,查不出问题,同时又找不到懂的人来问的时候,最为心急和苦恼。这些问题困扰越深,解决后就越兴奋。
2、加班劳累
加班是很劳累的事,尤其是那种连续加班更是如此。许多时候,我们都以不愉快的心情在加着班,无论是从效率还是从最终结果来看,都不是一件太好的事情。程序员真的要劳逸结合,累的时候,休息一下,保持自己的头脑的清醒,这样才能编出好的程序来。
3、 编程厌倦感
编程如同开车,开始时候感到新鲜,有冲动、有瘾,有一种如痴如狂的感觉。过了一段时间后,累了、疲了,竟会有一种不想开的感觉。编程多了也是如此,有一段时间你见到程序就有一种想吐的感觉。那真的是编多了。程序员到了这个阶段,就要特别小心,因为这种厌倦感加上其他周围发生的事,会产生一种合力,让你有一种强烈地要求离开这个职业的意识。
4、 技术水平提高不快
虽然程序编的很多,编程速度也很快,但是,很多人在时间的压力下,往往只关心能否编出来,而没有时间关心编的好不好。复制粘贴、复制粘贴,你都没有时间和心情去品味程序的好坏,去思索程序的优劣。很多程序员尽管编了好几年的程序,你要去问问他,编过什么让自己或是别人叫好的程序,他一定是不会给出直接肯定的回答。时间有序地增长,而程序员技术水平却不见得在提高。能提高技术水平的程序员一定是有心要提高,那些把编程序纯粹当作混饭吃的程序员,100个中有100个是没有水平的。
5、 收入和劳动不成正比
每一个善良的劳动者都希望自己的劳动和收入成一种正比的关系,但是这个世道,只是保留了这个希望,无法实现这个希望。现实中,你付出的和你得到的很难成正比的。这种情况在程序员工作的初期特别常见。因此,很多程序员都心生怨言。也有少数水平高的程序员拿着相对高的工资,但是,我想这些程序员过去也是当过几年“媳妇”的,否则,他们也熬不成这个“婆婆”。
6、找老婆困难
程序员难找妹子这个话题已经被定性为IT界最古老而纠结的话题,不想多说,都是泪。
6. 我35岁了,还能做程序员吗
首先,程序员这个行业和年龄没有很大的关系,前段时间还有新闻报道一位80岁左右的老奶奶自己学编程做出了游戏呢,你还在担忧什么呢?如果你不清楚自己是否适合做程序员,看看这几点你达标了吗?
1、逻辑思维能力(或推衍能力)
这个是做程序员的底线。比如不能写的代码出个Exception就抓瞎不知道哪里出了问题,而是有能力从Exception顺藤摸瓜反推出哪里出了问题。Code即逻辑,Code有问题即逻辑有问题。没有逻辑的人是无法找到逻辑漏洞的,也写不出条理清晰的代码。
2、抽象思维力
这个能力大体可以决定一个程序员的上限。没有这个能力是做不出一切皆文件这种抽象的,可以试试学习函数式编程,如果无法理解并使用高阶函数,你不适合做程序员。再来几个更初级的例子:如果你学写代码的过程中,理解指针的指针的指针这个东西的时间超过了一天,那你不适合当程序员。
3、专注力
我理解的专注力只是兴趣的衍生品,你打Dota,打CS打几个小时能越打越有兴趣,为什么?因为你觉得有趣。如果也觉得写代码有意思,那专注自然不是个事。
4、想象力与记忆力
这个不是说过目不忘的那种,只是说你大概记得有什么类,都有什么函数,每个函数里的大体过程是什么样的。然后走路、坐地铁的时候就可以用想象力在脑子里做代码的重构啦,找Bug啦什么的,然后回到电脑前就噼里啪啦敲代码。我听说有人在梦里也能写代码,我还没有锻炼出这个技能。当然,这些能力不是必须的,你随身带个笔记本也行,就是效率低些,影响职业成长的上限。
5. 英语
很遗憾地,目前多数有价值的东西都是英文的。所以无障碍阅读Stackoverflow的回答是起码的。
7. 觉不觉得当程序员很可悲!!!
在什么下都可悲...
程序员的生活是永远在意料之内的...
一般发生了意料之外的事情..别人也许是惊喜..
而程序员就是焦头烂额...
有时...停了电...程序员的生活将昏天暗地...
但是..有时不停电..程序员的生活将更加昏天暗地...
8. 当程序员有哪些危害和后果
对眼睛伤害大,长时间坐着对身体不好,不过现在都有升降桌子了,当程序员只有极少数像楼上说的那样,相反一名真正得程序员表情一点都不木讷,由于大脑不停的思考,所以会有一种程序员独特的气质,这种气质绝不是木讷,现在得程序员都怕死,所以健身是必不可少的,语言表达能力特别强,因为程序员的逻辑能力很强,工作的时候也需要和同时进行沟通,况且现在的公司越来越注重沟通成本,所以语言表达能力是绝对ok的,人际交往能力看你怎么理解吧,不同的程序员都有自己的圈子,可能他们的朋友是通过业余爱好认识的,可能是程序员或者程序媛,现在生活质量提高了,哪个人没有除了工作以外业余爱好?至于那些一新做程序员的,人家绝对不缺朋友,至于难找女朋友,这不仅仅是程序员吧,只能说情商低的人可能会过得不如意,这点再任何领域都适用,并不仅限于程序员,再来说说直男和生活邋遢还有加班,
我认识的程序员,只有极少数是生活邋遢,直男,还一直加班,真实情况是这样的,这种人有两种情况,一种是再生活上受了极大的打击,另一种是技术太差,又不肯继续学习,最后的结果就是被解雇
9. 你为什么不当程序员了现在在做什么
搞技术的接触的东西相对比较窄,眼界也不会太宽,有些人能自我调整却学习更多的东西。销售管理什么的。缺少大局观。技术的变化太快,随着年龄的增加,学习的速度越来越吃力,搞技术年龄越大越吃香不假,但是这个。
10. 学计算机专业的不当程序员还能做什么
我毕业之后就没有做程序员,主要是对编程不感兴趣,不喜欢每天跟机器打交道。当时我花了一天的时间做了一次职业规划,决定还是去互联网行业,但是不做程序员。去知乎、悟空问答了解了一下互联网行业除了程序员还有哪些岗位可以做,然后又去暖石看了下哪个岗位适合转行,最后选的是运营。自学的过程很愉快,三个月就入职了一个互联网公司,我觉得这个选择没错。