Ⅰ 程序员工作压力大,身体也垮,可是为什么还有那么多人想做程序员呢
程序员的工作其实压力非常大,经常都会有程序员因为压力过大而患上抑郁症,更有一些程序员因为长期高强度工作而导致猝死,但是每年还是很多人想要做程序员,在一些大公司,比如腾讯之类的大型公司,程序员的竞争也是非常激烈。压力这么大,身体也很容易垮,但是为什么还是有这么多人想做程序员呢?我觉得有几个方面的原因。
第三,程序员的工作每天都是和机器打交道,很多时候不需要和太多的人沟通,这样的工作对于比较内向或者不喜欢应酬的人来说还是非常不错的。有一些人有社交恐惧症,而程序员的工作多数时候都是当码农,所以他们在做这个工作的时候不需要和太多的人有牵扯觉得比较安心。
其实只要想把自己的生活过好,没有一个人的工作是不辛苦的,只是在辛苦的同时能够得到自己想要的东西我觉得就够了。不过程序员的工作压力大,所以日常生活当中也应该给自己找到合适的锻炼身体的时间,找到适合自己发泄的途径,这样身体才能正常运行。
Ⅱ 我在编写C语言代码的时候,有时候代码会有一些逻辑上的错误,就是代码可以运行,但得不到正确的结果.
新手最郁闷的事情莫过于程序可以运行但是却得不到自己的结果了吧。
老手最郁闷的事情莫过于新手问为什么我的程序可以运行但是却得不到自己的结果了吧。
比如:
你天天用操作系统。
如果你用过Windows98就应该知道那时候系统经常崩溃的。
但是微软设计的时候,不会把它故意设计成每小时或者没几天崩溃几次吧。
不崩溃的时候,程序不也是正常运行么。
为什么得不到自己想要的结果:
那是因为你的程序根本就没有写对
比如:
老师让你输出:1
你写个程序输出:2
你的代码当然编译不会出错。
而且可以很好的运行,但是结果就是2.
永远都不会是1,因为你就让他输出的2,结果怎么会是1呢。
开发人员都知道:
再也没有比修改语法错误再简单的了
直接看看编译器报的错,看看第几行,修改。OK。。太简单了
逻辑错误就得调试了
这个世界上只有调试不开发的。没有开发不调试的。
不会debug。永远都不是程序员。
你不可能一下子就得到自己想要的结果。
尤其是比较大的程序。
gdb..学习它,使用它,爱上它。
(gdb *nix平台的。如果,而且我猜你用的是Windows,Windows用vs不错)
Ⅲ 为什么程序员电脑的文本文档可以编程而我的不行
应该说说来不管是什么样的文文档都是可编程的?只不过是它的后缀名不一样而已的他是安装了不同的文件程序,所以说它的后缀名是可以更改的,是可以执行运行的,所以说如果你安装了,那种需要。比如说vc这种的它是直接可运行的。
Ⅳ 为什么程序员会有代码能跑就不要动的观点
原因如下:
任意一段代码,从修改到发布,再到投产。中间势必经过多次测试和验证,要想做到万无一失,每次改动的回归测试必不可少。有自动化测试还好,纯手工的话,测试骂娘的心都有了。
再者,生产环境与开发环境或多或少有差异。没有十足把握,不要轻易改动,不然改一个问题,带出其他问题的情况很正常。正常运行,业务可正常开展。看似简单的问题,被改出更多问题,影响业务开展,责任重大。
简介:
程序员(英文Programmer)是从事程序开发、程序维护的基层工作人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚。
Ⅳ 程序员到底是干什么的
程序员是从事程序开发、程序维护的专业人员,一般常说的程序员就是前端开发工程师或后端开发工程师。
其中Web前端开发主要是针对互联网应用系统Web前端产品的设计和开发,实现html/css,Javascript,以及JSP页面的输出;配合开发人员进行代码的调试、bug修复、浏览器兼容性调优;实现网站页面特效、JS效果;对网站的页面进行优化。
前端开发的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页,并配合后端做网页的数据显示和交互等可视方面的工作内容。
而后端开发工程师的日常工作为写注释文档、和产品对接需求、设计方案、开发、修bug等等。其中开发和修bug是工作中最常干的,所以程序员们也经常调侃自己就是码代码的。
程序员岗位职责
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
Ⅵ 为什么程序员都偏爱Linux系统
1、强大的命令行
命令行有很多功能,如快速、自动化管理系统及处理业务,这消除了开发者对鼠标或者触控板的需求,使开发者能够直接通过键盘输入指令来管理系统。自动化管理系统及处理业务可以让开发者专注于手头更重要的任务从而节省下大量时间。作为Linux的核心组件之一,尽管Linux命令行并不完美但始终保持了终端的纯度。
2、Linux非常安全
由于Linux是开源的由大型开发者社区开发和维护,所以安全漏洞被发现和修复的几率更高。
3、对开发者非常友好
与Windows相比Linux在很大程度上对用户更友好更容易被接受。如Linux有为开发者专门提供的工具,所以它在开发者中非常受欢迎。在Linux中,开发者能够拥有编译器、命令行编辑器、几乎可以调整任何内容的能力、以及自己设置快捷方式的能力,并且这一切开箱即用。
4、定期更新
由于Linux是开源的随着人们发现漏洞、安全缓存和错误脚本,开发者会定期得到大量的更新,这就是Linux用户的主要优势之一。
5、社区支持
Linux社区致力于服务所有的Linux用户,因此它将提供长期的支持。Windows社区却与Linux不同,Windows社区却与Linux不同,Windows社区之前停止为Windows7用户提供支持,因此如果开发者在Windows7中遇到任何问题或数据泄露的麻烦都将无法联系到帮助中心。但当Linux用户遇到麻烦时,可以在许多地方寻求帮助,比如:Twitter、Linkedln、Forums或重要的Stack
Overflow。
6、功耗更低
Linux所消耗的计算机资源量非常少。如果你有一台规格较低而不能工作的老旧电脑,那么在这台设备上安装Linux,它就可以恢复运作且运作得很好。众所周知使用Windows系统需要更强大的硬件。然而随着操作系统的发展支持硬件的旧电脑可能会过时,因为它将不再支持旧硬件。
7、隐私性强
Linux不会收集与任何人分享用户的信息。用户甚至可以关闭收集数据的开发建议,如果打开,也只会提供给Linux的开发团队。
8、完全免费使用
Linux已经发展成为世界上最可靠的计算机生态系统之一。当你把这种可靠性与免费使用的事实结合起来,你就拥有了理想的桌面平台。如果你想使用Windows,那你要么去购买它,要么使用破解版本,但Linux却不需要你这么做。
Ⅶ 为什么老程序员的效率如此高
程序员老师傅的解决问题能力要比初级甚至是普通的程序员都要高出很多倍,所以每个软件公司都会在保留1,2个经验丰富的资深级软件工程师,这样在遇到项目或者产品难点的时候能够力挽狂澜,这种水准的程序员也是很多公司追求的对象,而且和年龄没有太直接的关系,编程最终的就是给出解决问题的方案,从解决问题的角度出发解决方案还是非常多,但是在不同的人会给出不同的解决方案,但是有经验的程序员在解决问题的时候就会思考的比较多,不容易导致引入新的问题。
编程能力最直接的表现不是写代码的能力,因为随着时间的推移时间积累够了代码能力自然就上去了,很多程序员在工作多年之后虽然代码能力得到极大的提升,但是还是不具备独立的框架或者功能复杂的模块设计能力,所以很多人在工作多年之后工资一直不能得到上涨,这是主要原因编程的关键还是思路问题,关键点还是在于有正确的解决问题的思路,思路的切实性是需要经过项目实战的积累。
所以优秀的程序员一定是身经百战的经历过项目的洗礼,只有经历过项目才能真正意义上懂得编程是怎么回事,而且每次经历的项目都能够获取足够多的营养出来,越是优秀的程序员经历过项目之后知识体系构建越是完善,越是老程序员越是觉得程序深奥之初,所以老程序员轻易不动手都会思前想后把事情搞明白之后才去真正动手,所以讲老程序员真正动手写代码的时间还是非常短,大部分的时间都是在构思其可行性,真正动手的时间会非常短所以大家看到老程序员大部分的时间都是在看代码或者看一些资料,甚至有些人很少看到老程序员在大块的时间写代码。
越是老程序员对于编程语法看的越是淡薄,编程语言到了一定层面就是工具般的存在,就是为了编程思想服务,如果还在为了编程功能实现代码而烦恼证明了还在初级的学习阶段,度过了这个阶段之后就要考虑如何驾驭架构以及如何锤炼自己的编程思想了,编程的学习过程是需要循序渐进的不要觉得距离自己老程序员有非常遥远的距离,从开始入行就要慢慢去积累不断打磨自己的思想,希望能帮到你。
25年老程序员,20年CTO,来解答一下:
1、经验、教训使然,所谓亏吃多了,也就不吃亏了。
2、长久工作,养成了一定良好的习惯。
3、代码量到一定程度,自然而然会更熟练。
4、一些非技术的经验知识,还是需要时间来积累。
5、老程序员的思维经过多年的训练,更有利于直达本质。
6、他们的方案可行性更高,这样减少返工。
7、代码质量高,测试通过率高,考虑的因素更周全。
8、代码改起来更容易,找问题也相对容易。
9、对任务的理解更全面,能够从更多的角度去设计程序,权衡效率、速度、性能、扩展性等各方面的因素。
10、也不是所有的老程序员都能这样,这个还是跟这人的学习能力有关系,所以大家是能3年变成老程序员,还是10年,就看自己的个人努力了。
在IT编程开发的过程中,老程序员开发的效率会非常高。比如:一个网站模板,新程序员可能要花上一个星期的时间才可以完成,而老程序员却可能只需要1-2天就可以做好。这是为什么?莫非他们天生就有神相助。非也,这所以会这样,据我分析,主要有以下几点。
因为长期的编写代码,所以,会碰到非常多的问题,然后就会去解决这些问题,这就让老程序员有了丰富的实战经验。反观新程序员,碰到一个问题,因为以前没碰到过,所以要花大量时间去解决。而老程序员碰到问题,因为以前解决过,所以,很快就会弄好。
在IT编程中,很多的代码都是可以用来搬运的。因为长期的工作,老程序员会把一些功能代码记录或储存下来,以备后期使用。也就是说,他们就像记笔记一样,把一些功能代码记下来,以备不时之需。所以,在新的编程中需要用到时,他们就可以直接拿来就用,自然效率就高,开发就快。
老程序员在编写代码时,一般都会对代码的规范和格式比较重视,使用代码清晰有条理,阅读代码时就不费力气,而且还会做好每个功能代码的注释。这样,不管是对现有开发,还是对后期维护,都是非常有利的。如有代码出现bug,可以很容易地找到,这同样节省了大量的时间。
老程序员在编写代码时,会先从大处着手,把大的框架给弄好,然后,再对整个编程的细节有针对性地编写。这就好比开发一个高楼大厦,开发商会先把主体框架搭建好,然后,再一层一层地去弄每一层楼的细节。这样,往往目标会更加清晰,只要按步就班地执行计划,就可以很快完工。
熟能生巧
为什么老程序员的效率如此高?
首先, 敲代码的效率 != 工作效率
并不是老程序员效率就高,而是程序员要提高效率需要一些方法,这些 方法的学习和掌握需要一定的时间 ,结果就是老程序员的效率会相对要高一些。
所使用的编程语言的熟练程度我经常会看到一些新手程序员在写代码的时候需要频繁的去查看文档或者是网络搜索各种接口的用法,有时写一个功能要查个几十次,很多时间都浪费在了搜索上,真的写代码的时间很少。
而一个在这门语言浸淫了几年甚至是十几年的程序员,对这些接口了若指掌,使用的时候信手拈来,还知道接口里面的实现机制,可能会碰到哪些坑也一清二楚,减少了很多bug的出现。
你是不是有把那些接口拿出来反复琢磨,去研究它的源码,认真地了解它呢?
对编程工具的掌握程度工欲善其事,必先利其器。
一个好的编程工具有很多可以帮助程序员减少工作量的功能,比如代码重构、自动格式化、语法检查、代码提示和补完等等,掌握这些也能大大提高开发效率。
随着IDE的发展和进步,现在很多工具都不需要太复杂的学习就可以操作,所以这个是一个投入小而回报很高的事。
业务需求的熟悉程度代码是为业务服务的,我们首先得理清楚业务逻辑,才能知道要怎么写代码,而新手对业务不熟悉的时候,光是弄明白业务需求是什么可能都需要不少时间,有时候还可能会错误理解需求,导致写出的代码文不对题,只能重写。
所以多思考,多问,多讨论,不会花太多时间却会减少很多时间的浪费。
调试的效率写出来的代码还需要经过测试,如果有bug就需要调试了。
很多新手只重视写代码的工作,对于怎么调试却忽略了,有的人甚至只会使用打印功能一步步通过排查找bug,并且对写出来的代码没有概念,连bug大概可能在什么地方也不清楚。
老练的程序员不只是靠打印,有时候只看报错信息就能知道bug大概在什么位置,配合上打印还有断点功能很快就可以找到bug的位置,更不要说他们很清楚怎么写出容易调试的代码。他们会在写代码的时候就对可能出问题的边界条件进行检查,并且会利用自动化测试来减少工作量。
写代码之前的构思新手很容易犯的一个错误就是拿到功能需求马上就开始写代码,可能写到一半会发现前面的代码有问题需要推翻重来,或者是写错了方向。
老程序员写代码之前会先进行构思,把功能需求拆解,分成不同的小模块,甚至会在纸上把这些想法画下来,基本上在这一步就把问题已经解决了,写代码只是把解决方案用代码表达出来而已。
所以,如果你也想做一个十倍程序员,记得不要只是埋头写代码,还要刻意去练习这些提高效率的好方法!
在写代码前,代码差不多已经刻在脑子里了,写代码的时候,总觉得双手敲键盘的速度赶不上脑子的速度,写出的代码几乎不需要调试,你说效率高不高?
因为老程序员经历多了,一些常规性的BUG基本不会出现,对用户需求也能做到最大的完善,还有对需求增加和修改有个大概了解,会提前预留接口和模块,还有对用户的硬件有了解,在程序上会有相对优化。所以老程序员写的程序不一定美观,也不一定最简化,但是可能是最合适的,可惜中国的程序员刚成熟就要面临失业。年轻的程序员啥都不懂,片面追求性能,美观简洁的程序,在兼容性和实用性上大打折扣,不顾用户的使用情况和硬件情况,项目一上线问题多。
老程序员分为两种,一种是年纪老,常常被换做“老X”,一种是能力老,常被人换做“x老师”。
老程序员之所以效率高,离不开几点:
程序员是一份高强度的脑力工作,能成为老程序员者,智力,体力无一不是同龄人中佼佼者。能够更加效率的工作自然是理所应当,方符合家有一老,如有一宝的普世价值。
祝广大码农早日修炼成为这样的老程序员。
老程序员,码代码速度并不见得比年轻人快。但老程序再面对需求时,能很快抓住技术关键点,难点,重点,如何突破都了然于胸。当出现问题,老程序员有经过实践的诊断定位排错的逻辑思路与手段 。其实这些熟能生巧是一方面,学习与实践 领悟是另外的方面。年轻人观察能力强 悟性高,也会青出于蓝
老成员就是图书馆,硬盘存满了各种经过调试且运行过的程序,只需要复制粘贴,效率肯定高
Ⅷ 为什么程序员都喜欢Linux操作系统
着作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:钟宇腾
链接:
来源:知乎
是的,因为Linux目前为止,也没有为“普通”用户真正的优化过
要让“普通”用户接受Linux,除了弄一个像Windows或Mac OS一样的图形界面,没有其它办法
你不可能说服用户去尝试使用Terminal,普通用户理你才怪呢。不使用Terminal,Linux系统的优势为零,残废一样的图形界面根本无法获得普通用户的青睐,只能说是“可用”。
而作为程序员,学习和探索是一项最基本的能力
Linux的Terminal和开发环境、文件组织结构都可以大大的提高你的开发效率,尤其是Shell的命令、管道等等功能,把命令组合起来可以发挥让人意想不到的效果,也大大地提高你的工作效率
而要程序员去掌握Linux的用法将是非常容易的,因为程序员本身就有读懂文档的能力,相对于普通用户来说门槛太低了
但是你不能要求普通用户去接受Linux,至少现在不可能,因为Linux没有任何一处是为了普通用户着想的,普通用户去读文档将会让他们感觉到非常地苦恼和沮丧
Linux本身没有问题,因为它只是一个内核,普通用户能不能接受它那是GUI的问题,和配套软件的问题
同样是UNIX系,Mac OS X从BSD走出来之后,在这之上构建了一个绚丽的图形系统,但是其内核依然是BSD,也可以使用各种CLI工具,所以Mac OS X几乎就是喜欢Linux的程序员们的最终归宿
而Mac OS X的图形界面使得普通用户的使用门槛降低,普通用户也会喜欢使用它的
所以Mac OS X不就是一个很好的例子么?Linux般的开发体验+普通用户喜爱的图形界面的完美结合。其实Linux阵营目前也在努力,Ubuntu现在就是想让Linux系统更亲近用户,希望它能成功吧