A. 作为一个程序员,所需要关注的工作细节是什么
说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研发流程中 非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正常的,而作为高级 程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时就都会遇 到极大的麻烦。
B. 程序员怎么能牢记学习过的东西
1、要明白你能做什么,而不是记住怎么做
其实,代码可以构建的功能有无数种可能性!你可以设想通过代码构建任何内容,只有你想不到的,没有构建不了的。学习一种新语言是一件非常令人激动的事情。
查看问题以及代码示例,并通过这些示例学习如何利用这种语言以及/新概念完成工作,这都非常重要,但我们无法记住所有的信息,不要做无谓的尝试!你可以在今后需要实现的时候,再反过来查看,刚开始的时候,你只需要记住这种概念可以实现什么样的功能。
在我深入研究React.js时,这种方式给予了我的学业很大帮助。实现的可能性太多了,你有无数种方式传递props、创建新state、组合组件——实在太多了!就像一个大谜团!我了解到React可以实现非常多的功能,虽然我无法确切告诉你该如何做,但我知道存在这种可能性,这很重要。
2、在需要时寻找所需的代码
就像学说一门新语言,你知道自己想说什么,但你不知道该怎么说。编程语言也是如此!
在我刚开始学习编程时,人们称Google为“终极工具”。那时我就在想:我使用Google已经很多年了……我错过了什么吗?
后来才发现:重要的不是搜索内容,而是搜索的方式。无论你想寻找什么答案,网上都有,就看你怎样才能找到了!
在用外语与其他人交谈,或用一门新语言编程时,你可以通过Google找到如何表达。你不必记住括号放在何处,或者这里是逗号还是分号。应该使用圆括号还是大括号这种问题很容易出错,而且也很容易解决!只需快速搜索,两秒钟就能找到答案。
但是,我有几次因为未能写出完美的语法而感到内疚。有语法问题那就有呗!重要的是你知道自己要做什么,然后只需要记住该如何做即可!
3、从何处下手?
学习一门新的编程语言必然会令人不知所措,还会引起混乱。当有人说:“放手去做就好了!”时,我会觉得很迷茫,我该从何处下手呢?最终我发现:你永远也无法为需要构建的功能做好准备,你唯一能做的就是走一步看一步,先动起来。
如果说每次没有遇到任何问题、不需要搜索任何技术、不需要寻求别人的帮助、也不必返工就能成功构建一个项目,我就可以拿到一美元的话,那么我告诉你……到目前为止我一美元也没拿到!犯错是学习过程中的一部分。
犯错是学习、发展和提高程序员技术力的一部分。而学习故障排除和调试代码则更重要,而不仅仅听别人说:“我也遇到过这个问题,你所需要做的就是……”。
我强烈鼓励你尝试自己解决问题。努力奋斗。不要害怕搞乱或破坏你的代码。必要的时候,可以重新构建整个项目。在学习新知识(例如编程)时,一遍遍重复才能学到真技术。一遍又一遍,直到你全部掌握为止。
4、如何实现呢?
找到你想要构建的东西,然后开始动手!不要犹豫不决。反复尝试和失败。当你不确定想要完成的功能时,请花点时间研究问题。分解成块。弄清楚如何解决每个块。
然后,再想法把所有块聚拢到一起。如果你忘记了如何编写for循环,或者忘记了高阶函数会返回什么,那也无需担心。你可以参阅文档或指南,然后再继续。
有时这是一个缓慢的过程,但非常值得。最终,你会越来越有自信,而且有很多想要实现的新想法。
你会记住如何实现吗?不会。
但是,你可以参考过往的项目, 在Google上寻找答案,或者阅读论坛。答案都是现成的,你需要做的只不过是找到答案而已。
C. 有哪些事情是程序员都知道,但大多数人不知道
1. 原来Bug是永远改不完的程序员的日常三件事:写Bug、改Bug、背锅。调侃程序员时,就经常会说:“哟,又在写Bug。”。
文章图片2
图片来源于网络,如有侵权请联系作者删除
2. 原来程序员工作后不继续学习是要被时代淘汰的互联网行业作为高薪行业之一,与其他行业不同,它的入行门槛低,赚钱快,只需要会写代码就能入行。许多年轻人受到“高薪诱惑”,纷纷涌入程序员这个赛道,让这个本来就很拥挤的行业竞争变得更加激烈残酷。
文章图片3
图片来源于网络,如有侵权请联系作者删除
3. 原来程序员不能一直死磕技术在互联网行业,技术虽然是核心竞争力,但是技术永远是为业务服务的,两者结合最终才能创造出价值。作为一名程序员,技术固然很重要,只有对算法进行了深刻理解、掌握了数据结构、数据库、操作系统等知识,才能做出改变整个行业工作方式的框架出来,甚至连产品设计、业务功能都要凭借技术才能做到。
4. 原来程序员不穿格子衫、头发黝黑曾经流行这样一种说法:程序员支撑起了全世界的格子衬衫产业。一个程序员必备的四件套:格子衫、黑框眼镜、牛仔裤、运动鞋。
文章图片4
图片来源于网络,如有侵权请联系作者删除
5. 原来程序员只是一份普通的职业每个程序员都只是普普通通打工者的一员,每天要面对脑力和体力的双重暴击,如果不小心编写出了错误的程序,就会看到满屏的错误警告。还有,不是每个程序员逻辑都很好……作为程序员,经常面对被人误解的丧、还要保持懒得辩解的忍……
文章图片5
图片来源于网络,如有侵权请联系作者删除
6. 程序员其实可以朝九晚六不加班。
7. 很多时候体力活大于脑力活。
8. 很多时候处于底层,相对于业务方,产品,测试等等。
9. 挥洒代码大多数时候都是复制粘贴。
10. 大多数bug不是代码问题,是用户环境或者网络原因。
文章图片6
图片来源于网络,如有侵权请联系作者删除
11. 有些人就等着被辞退,然后重新找工作,既涨工资又拿补偿。
12. 上班时间是上班时间,下班时间是自己时间,拉屎喝水尽量在上班时间干。
13. 看到网上有公司老板问问题,加班之类的,记录下公司名,保存到黑名单,绝不入坑。
D. 如果一个程序员忘记了所有的技能,那么会出现什么情况
编程语言能力。不用多说,作为合格的计算机程序员,精通一门语言是必须的。这种精通,不是说看了一本编程宝典,抄了几个程序就能说精通的,要靠长时间的积累编码能力。遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这个问题的严重性。另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。面向对象思维能力。如今,多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。我面试过很多程序员,没有一个能说得上几句的。英语管理。新的技术资料都是英文的,英语国家的IT技术走在我们前面至少10年(这是我自己估计的数字,可能正在缩小)。就连印度,一个连基础设施建设都不太完善的国家,因为其英语基础较好,其在软件外包领域的发展也非常迅猛,远远超过了我们。学英语,首先是有信心,其次就是花时间。多阅读英文资料,贵在坚持。利用工具能力。工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升数倍。你编程序,有没有选择一个很好的IDE,以前听说编程高手都用记事本写程序,我觉得那是一种自虐。就像以前看到的一篇文章,说一帮户外旅行爱好者,出去旅游,背了重重的旅行包,里面装着什么压缩饼干等快速食品。他们宁可就着矿泉水啃压缩饼干,也不肯去1里路都不到的快餐店,农家菜馆吃饭。工具是为目的服务的,好用,提高效率就行,形式无所谓。学习能力。在IT业混饭吃不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,别今天学ruby,明天学python,后天php的。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。当然,不能只学习技术,作为程序员还要关注的很多,要经常练习自己的软技能,比如沟通能力,表达能力。创造能力。普遍认为,东方人模仿能力很强,但创造能力差。我见过很多这样的程序员,经常说,“这个只能这么解决了,我想不出有什么别的方法。”可能他根本都没想过别的方法,或者懒得去想。对任何一个问题,找出两种以上的解决法都是非常容易的,简单的google一下,可能就是数十种。悲哀的是,有些程序员经常止步于自己构建的狭小领地之内。对待客户也是这种态度,不是积极的帮助客户解决问题,而是推脱这只是唯一解决方案。文档能力。也许有人会质疑,程序员跟写文档有什么关系。大家开源软件也用过不少,看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他么的tutorial,他们的getstarted,他们的reference文档写的多么的易懂。其实写代码也相当于写文档,只不过用的是编程语言。同样,写文档,用自然语言,也相当于写程序,简单明了,清晰易懂,这样的“程序”谁看谁舒服。同样,对于想进阶到设计师或者需求分析员角色的程序员,文档能力更是非常重要。DRY。DRY是一种原则,就是Don”tRepeatYourself.这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,写一个自动化脚本(比如用ant,批处理命令)来将这些工作自动化,以提高效率。抽象能力。抽象能力是认识事物从现象到本质的能力。如果你只是停留在“见山是山,见水是水”的层次,客户说什么,你就做什么,设计怎么做,你就怎么实现,从来不过问为什么,也不去想他是满足了用户哪些方面的需求呢。这样可能只解决了表面的问题,可能会引起返工。认识到本质,才能让你的程序具备更大的灵活性和可扩展性。在做企业应用软件开发中,抽象能力体现为对问题域的理解能力,对领域模型的抽象。合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步。ITJOB
E. 程序员在上班时,允不允许大量的看说明文档来帮助写程序
程序员日常开发工作,基本是上离不开阅读文档,这也是很多程序员喜欢两个显示器的原因。
项目方面
技术方面
是不是很多人都认为,如果在开发过程中,还要不断地翻技术文档,说明他的开发能力不扎实。其实不是这样的。
首先IT行业技术升级换代的速度太快,当我们大多数公司还在用Java8的时候,Java11都已经出来了。如果非得要程序员熟知每一个类、每一个方法,是很不现实的。
很多时候我们只需要了解有这么一个东西,作用是干什么的,具体的细节可以在用的时候再去翻文档,比如方法名字是什么?参数有几个,都是什么类型的?
所以我们都习惯至少两个电脑屏幕,一个屏幕写代码,一个屏幕看文档;如果豪一些的话,再加一个屏幕展示日志信息。
看文档的屏幕要买竖屏!
我们团队
我这几年也带过几个团队,对于每个团队成员,我对他们的要求是:实现需求的前提下,最好能对所用的技术有一定的了解,千万不要从网上抄过来一段代码就用,这样是很危险的行为。所以鼓励大家多找一些资料,最好是阅读框架的官方文档。
现在的团队,我已经这样要求了:代码写累了,或者觉得自己没有状态写代码,可以找点儿自己有兴趣的技术文档学习学习,这个技术甚至是可以跟现在的项目没有关系的。
首先,我不是程序员,我是一个设计工作者,不过我来说一下我的观点:很多人以为程序员像电影里的一样,啪啪啪几下键盘,屏幕数据飕飕的变,其实真实情况是程序员写代码就像学生写作文,也会遇到不会的词语跟修辞手法,那这个时候就要停下来想一想,查一查,看看例子是怎样写的怎样用的,写错了还要划掉(删掉)再来,至于这个大量不大量看的情况,如果这个是个新手,那肯定是可以的,那如果是个老手,还需要大量时间查说明文档,那就说明这个项目肯定不会小,不是一两天能做完的,那一个用月做单位的项目,用一个天做单位的时间来查文档,不过分吧!程序员也是人,不是因为他的工作高端,就觉得这个人万能,他也会当机,要吃饭,要休息,也会忘记一些东西,所以请各位多多体谅,能一起工作实属不易,感恩2018,谢谢。
这个问题怎么说呢,开发过程中会遇到各种各样的问题,没有一个人是全能的,也没有人可以绝对的说自己在整个项目中不会遇到一点问题,不去查东西,自己大脑里的东西完全可以让我把这个项目测测底底的做完,并且没有任何bug。
上班的时间,也没有老板或者谁在后面一直看着你去做东西,大家都挺忙。文档是干嘛的,文档本身就是用来看的,甚至很多项目开始之前,总监都会让你去搜集一些这个项目可能会遇到的bug,可能会用到的效果,尽量在之前找到比较好用的插件,这样会节省很多时间,自己如果写代码的话不可能百分百的确定没有人和bug,但插件不一样很多插件都是前辈通过很长时间慢慢完善出来的插件,所以很多人才会用。所以你提问的可以肯定的回答你允许。
说个我遇到的2个真事吧,
第一个,公司找的外包公司写项目程序,已经要交付了,发现有几个功能没做,产品经理和开发那边都找我,我一个搞运维的又不懂,只能让他们去对开发文档,我也就顺便看了看,开发文档中明确的写明怎么做,然后就让他们就重新按开发文档继续写,
另一个,由于 历史 原因业务系统处于托管状态,只有部分参考文档可用,开发那边只能按当前已有文档进行开发参考,开发那边也一直在根据现有相关文档进行开发,杯具的是这帮子不仔细看,有问题总想着我能直接给他们答案,我也只是会用而已,开发我还真搞不来,然后和他们一起看开发文档,加密算法部分给她们指出后,问题解决了。
所以我觉得,开发团队在开发中很有必要阅读开发文档,这可以避免绕圈子,也会清楚开发文档中提供的内容。
程序员上班的主要工作就是看说明文档,根据说明文档编码。如果实在没有说明文档,有时还得亲自披挂上阵写说明文档。
写接口的有API文档,写通讯协议的有协议字段说明文档,写数据库的有数据库规范文档,
总之任何一个大公司文档扮演的一个至关重要的问题,因为形不成文档,公司管理就会陷入混乱不堪的局面,当某个核心员工离职后,下一个接盘的程序员会丈二和尚摸不着头脑,一头雾水,边填坑边骂娘,有了文档就可以看文档结合代码,了解其中模块逻辑以及结构,包括哪些坑不能踩等等好处。有些公司会专门有文档工程师这个职位来专门负责整理各种文档,并且保存在服务器上。
好的文档都是程序员等人智慧的结晶,是一盏指路明灯,是一条通往光明的道路。程序员不能看说明文档等于在黑暗里摸爬滚打,有了说明文档才迎来了黎明的曙光。
先说观点,我认为看文档没什么问题,但是“大量”这个程度很难衡量,按照需要看文档是个非常重要的事情。
需要花费时间的情况 不需要花费大量时间的情况 小结
在工作中阅读文档其实也是工作内容的一部分,而且现在大多数互联网公司都靠KPI进行考核,平时就算你把时间都用来看文档没关系,最后KPI没完成一样会被公司淘汰。所以公司不会阻拦你花费时间看文档,最多你老板会提醒你浪费这么多时间看文档而没有实际的产出会对你年终考核造成影响罢了。
题主对文档的定义不是很明确
第一个是需求说明文档
这个是在开发过程中必不可少的文档,只有清楚了开发需求,程序员高效率的开发,程序员一天的工作时间并不是都是在写代码,而是在看文档,了解需求,理清思路,只有什么都清楚了,写代码或许只要十几分钟。
再者对于一个项目新人来说不看文档了解需求,没人给你从头到尾的在讲一遍需求,你不看文档自己发挥?进入项目是和别人共同开发,你不肯能不顾及之前的代码规范。
第二个是开发文档
就拿微信开发来说,微信开发不是每个程序员必须会的东西,但是用到了怎么办,还不是去看他们的开发文档,只有将开发文档思路理清楚了,才可以进行下一步开发。
第三个是API文档
在前后端分离的开发模式中API文档是必不可少的文档。不看API不知道数据是什么样。也就是不可能顺利的和后端进行结合。
兄dei,假设你是程序员,你在写程序时,旁边会有人守着你吗?
假设你不是程序员,你在做本职工作时,旁边会有人守着你看你怎么做事吗?
答案肯定是没有的。谁会闲着招个人去监督你,看你用什么方式去完成给你的任务。
现在不管是大公司还是小公司,没有人会在意你怎么去完成你的工作,给你的任务,在很多时候,大家只关注结果。如果说有干预,最多只是实现的方式。像写程序,假设有个功能是即时通讯相关的,这种自己写需要的时间成本投入较高,那么很多公司就会选择采用市面上比较稳定的第三方平台。这算一种实现方式的干预。但是在接入的过程中,不会有人去管你是通过阅读第三方SDK文档,还是谷歌搜出来的,最后能达到预期效果就ok了
所以,其实你看不看大量文档,没有人会在乎,关键是你自己,建议自己写东西时,不要一味的复制粘贴,要有自己的想法。太依赖文档对于自己成长很不利
当然允许看文档。
要知道,随便哪个类库,都有无数的类和方法,每个方法又有若干参数,鬼知道它们都是什么意思,谁的脑子能记得那么多内容。别说是人家提供的类库,就是自己写的代码,过一段时间也不记得什么意思了。没有注释和文档,怎么看懂代码?
如果没有需求分析文档,程序员怎么理解正在开发的这个软件的基本业务流程?
如果没有架构设计文档,程序员怎么理解软件各个功能模块之间的功能与业务逻辑?
如果没有接口文档,那么多类和方法,都怎么调用,会返回什么值,难道靠猜?
……
在日常开发工作中,不仅允许看文档,还会强迫你写文档。如果你写的文档别人看不懂,别怪领导骂你不认真。文档对于软件开发的重要性是不言而喻的。
还有一个秘密告诉你,那些经常写文档的程序员,要比不写文档的程序员工资更高。
真的!!!
迎娶白富美,从会写文档开始!
毫无疑问是的。
对于程序员来说,在实际工作中进行代码编写和项目开发时,是离不开各种各样的文档的。文档包括:
不允许看说明文档,这基本上只会出现在面试或者考试中,为了考察程序员自身的编码能力,才要求脱离参考资料,利用自身的知识和技术来完成。
当然了,程序员工作中也不能只看文档,要是花费大量时间通读不必要的文档,工作可就做不完了。
F. 很牛逼的程序员敲代码全靠脑子记么
写代码要有一定的英语基础,水平高的程序员因为写的代码多了已经把代码内化了,所以他们写代码随心所欲。
G. 程序员交接时有讲解代码写文档的义务么
需要
比如 api接口文档、部署文档、技术文档之类的
虽然写起来会有些痛苦,但好处还是挺多的。
1.方便工作交接。无论是功能后续开发让同事接手还是离职交接,有文档在,都可以省力一点。通过文档,知道的就清晰明了。
2.方便后来查阅。时间久了总会忘掉一些细节,如果突发一个bug,都可能无从下手。如果有了文档,之后就很好查阅了。遇到那种代码超长的,同时又没注释,想要改的时候又无从下手...文档多重要啊
3.还可以锻炼自己的写作和表达能力!很多时候教会别人比自己学会更有成就感!而且对自己的写作能力也是一种锻炼,何乐而不为呢?
所以,程序员交接时就讲解代码和写写文档吧
H. 程序员的那点事
初级的程序员或经验不足的程序员往往只意识到自己的程序是写给计算机的,而不会在意程序其实也是写给人的,或在意得不够、不全面。 其实,程序首先(注意,是首先)是写给人的。第一,程序是写给看代码的人的。第二,程序是写给用程序的人的。了解这一点,才能理解写程序为什么要有代码规范,为什么要有各种文档,为什么写子程序时要命好名,为什么要分层,为什么要学设计模式,为什么要写测试用例,为什么要推敲按钮的摆放,为什么要按XHTML标准写Web界面,为什么要用AJAX … …理解了这一点,才能更好的做好上面种种事情。 谁都在说“细节决定成败”,谁都知道要注意细节。为什么大家都在讲细节,有的人能通过细节打败对手,有的人连细节在哪一方都不知道,这就是水平的高低所在。我们要有心理准备:细节不是喊一声就会出现在你面前的。感知到细节,这是一个需要不断学习和实践,甚至有人指导的过程。这个过程有长有短,要看个人的学习能力,领悟能力。但最起码,我们首先要有一个方向。找程序的细节,方向就是“为人写程序”,在你做设计,写代码,摆弄界面的时候,心里时刻记住这一点,几个项目下来,你自然能看到很多细节了。 “内外兼修”武侠电影里的高手,往往都是通过奇门心法,内力陡增而成为高手的。但我们做程序的,要成为高手,“内外兼修”才能事半功倍。内,指的是需求把握,设计思想,设计模式等。外,指的是写代码时的规范,做界面时的严谨等。看武侠看多了的我们,偏内轻外的特点是很明显的。看看书店里写设计模式主题的书籍和指导代码规范的书籍的数量和销量对比就是一个很好的证明。但是就算设计模式一套一套,但写的类却给人看半天也看不出思路的话,一两年之后,你仍将陷入一个个泥潭中。 再举个例子,有的人自称ASP.NET程序员,而且他写出来的后台代码也层次清晰,条理清楚,但是做出来的界面,结构与表现混杂,一大堆IDE自动生成的垃圾代码充斥其中,该用单选框的用文本框,按钮放在谁都想不到的地方,不该用户操作的要用户操作,一步可操作完的搞成几步也不能完成操作……很显然,他不可能做出成功的产品。也许他也知道界面要合理,但是就是因为他不修外功,认为我是搞.NET这种先进技术的,去补习什么HTML、JavaScript、CSS不是自贬身价吗?其实,认真研究过HTML、JavaScript这些技术的人都会体味到,运用这些技术比流行的.NET、Java更有挑战性,而且你获得直接操作用户界面元素的能力后,以前那种做界面效果、接口功能时有心无力的情形将一去不返,这是很痛决的! 以上所讲的内容就学好.net的方法,相信你对学好.net也有了足够的了解,希望以上内容能帮助到你们,祝你们成功,完成自己的梦想。
I. 程序员,自己写的代码容易忘怎么办
太正常了,
没人能在几周后记住自己的代码,只不过资深的开发能更快的地从头脑中残留的余像,比较快地再次识别出代码的逻辑。这不是因为他们记忆力更好,而是他们看过的代码更多,熟悉度更好,所以阅读代码比较快而已,就像英语专业的人看英文小说会轻松一点,不是因为他们天生水平高,而是后天训练出来的这种熟悉程度。
人人都可以获得这种能力,只需要时间和很多练习,你刚开始,完全不用太奇怪,这种能力对不少人需要几年时间才能获得,那时候,同样或者类似功能的代码,你已经不知道实现过多少遍了。
牛逼的奥义在重复之中。
J. 编程时总是忘记代码怎么拼写,怎么办难道程序员应该背代码吗
有些很常用的经典的代码及其多种实现当然是要背的,包括各种排序,查找,排列,数据结构的操作。。。。。。
不理解就背,理解了就不断有意识地在写程序的时候用,到最后就会很熟练了