编程新手怎么入门?

程序员往往渴望加入的是一支“30%的时间在写代码,而70%的时间在喝着咖啡讨论着如何将产品做好”的团队。

  软件工作应该成为一项技术和艺术融合的高智力活动,而项目经理应该是一个高度理解质量、范围和进度客观规律的明白人,“高效工作,快乐生活”才应该是程序员的座右铭。

  可现实情况却是,团队在一边超负荷的做着需求,一边改着没完没了的Bug。

  过点前夕,项目经理熬着通红通红的眼睛盯着我们整晚整晚的加班,质量专员一遍一遍的催促质量数据还不够,软件工作已经无可挽回的沦落成了体力劳动,别说快乐生活,生活都没了。

  好吧,以上可能都对,项目经理和质量专员是一个不懂客观规律并且毫无同情之心的大魔头,让我们程序员们毫无尊严卑贱的活着。

  只是,有句话憋了很久了:“醒醒吧,所有的这些,都是因为你的代码写的太烂,你制造了太多的Bug!”。

  你可能会抱怨这分明是需求变更太快,领导计划太紧导致的。

  嗯,听着挺有道理,但是要知道需求变更本身就是软件的客观规律,而领导要求进度,呵呵,你也可以认为是客观规律。

  这不是一篇证明谁导致程序员加班太多的论证文,也不想给大家灌鸡汤,让大家一夜之间都变成编程高手,但是至少说一些实实在在的经验和方法。总之让大家多看一点就多获得一点实际的价值。

  一、不要一上来就开始写代码

  你可能性子急,也可能早已按耐不住跃跃欲试昨天刚学会的一个编程小技巧,我想要告诉你的是,不急,收起你那磨刀霍霍的表情,在你拿到需求准备写出你第一行代码之前还有更重要的事情要做。

  我想怎么强调这件事情的重要性都不为过,在我以前写的自己非常满意的代码经历中,我都采用了这个方法,它能消灭原来可能会被测试提的90%的Bug单,甚至做到零缺陷,当然做到这点可能需要一个过程。

  拿到需求之后你首先要问下自己对需求是不是已经充分理解了,得到肯定的回答之后,我们就可以开始了:

  1) 先在你忙碌的工作中,找出你能完全掌控的一个小时时间段,这一个小时完全属于你自己,保证这一个小时不会有任何打扰,或者任何能影响到你执行不下去这个方法的打扰。要记住这一个小时非常重要,比你后面要执行的所有活动的时间都重要,它绝对值得。

  2) 在第一张白纸的上方写下“该需求特性的正常流程和影响范围”,然后在白纸下方逐条开始写下该需求特性正常流程包含的内容,大概会使用到哪些库函数,会提供出哪些接口,是否会影响版本升级,是否影响资源文件,是否影响原有的接口等等。

  3) 在第二张白纸上方写下“该需求特性所有的异常场景和本人以往经常会犯的一些错误点”,然后在白纸下方一条一条的开始往下写。

  4) 不断重复第2)、3)步。

  你可能会觉得这不就跟写的需求澄清材料差不多吗,我要告诉你的是这是两回事,它不是一项质量专员要求你做的质量过程活动,这是你自己和自己之间的一次深层次对话,这不需要告诉任何人,不需要向其他领域输出任何交付物,这是对自己要写出优秀代码的一次自我驱动。

  一开始你可能会觉得很难,写几条就写不出来了,或者闪过“这玩意儿是不是真的有用”的念头,不用着急,起身去窗户边呼吸一口新鲜空气或者去打杯水喝,总之不要中断,除非办公室着火了,不要去干让这件事继续不下去的事情。

  当你慢慢往下写到第20或者第30条答案的时候,你可能突然会有一种“这么隐晦的一个异常点都被我发现了,简直太牛了!”的情感涌出,这个时候你会暗暗惊呼有点难以抑制自己的兴奋,这说明你快要接近成功完成了,后面每写出来的一条都会让自己感动。

  记住,中间不要放弃,你坚持下去的决定会将这一个小时变成你整个需求实现当中最重要的一个小时。

  二、先忘掉后面还有该死的质量活动

  所有编码之外的质量活动,都是基于公司对于你写代码水平的不信任产生的。

  也就是说公司花了大量的钱招来质量专员、网元测试、解决方案测试这些人都是因为你没把代码写好造成的浪费。

  常见一些开发人员,刚来的时候对质量专员安排的质量活动颇有微词,“我以前公司做项目根本不需要做这些东西还不是一样能把项目做完”,“这些质量活动,简直就是对编码时间的侵占”。

  说这些都没问题,但是你一边说着这些一边写完代码后Bug就乌泱乌泱上来,是不是有点不要脸?质量专员设计的这些活动,就是为了不让你的烂代码一泻千里的冲到客户面前设计的一个个检查站,当你对于“写出好代码”什么事都没做,只想着取消这些质量活动的话,就只能理解为耍流氓了。

  那么,做好质量活动就能“写出好代码”吗?

  质量活动只是质量专员的监管手段,它既不是目标甚至也不是方法,你写代码的目标不是要满足质量活动标准,而是要追求零缺陷,也不会因为你Wbit测试做的好就能写出好代码。

  你要做的一个是“不要一上来就开始写代码”,另外一个就是掌握尽量多的重构方法,重构思维方式,掌握重构并不一定是要对原来代码的重构,而是下笔之前就知道好代码该怎么写。

  我让大家忘记质量活动,不是让大家不听质量专员的话,而是大家在写代码的时候要心中存有敬畏,代码写完之后所有的活动都是你造成的浪费,你要为消除这些浪费而竭尽全力。

  三、你要记住,你写的代码是给人看的

  我之前听一位同事讲他上一家公司的一件听来十分惊悚的故事:

  他原来公司的一位同事离职了,留下的是一堆十分复杂,看了会让人神经错乱的C++代码,他走了之后,发现整个项目组的人没有一个人能接手得了他的模块,项目经理不得不高价加请客吃饭的方式让他过来给全项目组的人讲两天他的代码。这个家伙大有“看吧,只有我才能搞定”的“衣锦还乡”姿态。我好奇的是这个项目经理为什么没有尽早的开除他,简直就应该报警啊。

  好的代码是让人看来赏心悦目的,任何能力不够或者炫技成分的增加人的阅读障碍的行为都需要被改进,你能不能三两句话就能说清楚你自己写出来的代码的脉络,当然这同样涉及到你要掌握尽量多的重构方法和重构思维方式。

  另外还有一个自我评判的标准,就是你扪心自问一下,“你写了这么多代码,你曾经为之动心过吗?”你是否写完之后会忍不住的反复阅读自己写完的代码,并连连暗暗惊叹代码之美?

  作为一名程序员,希望在你某天离开公司后回想起的若干个开心时刻中,有一个会是因为你面对自己刚刚出炉了一份让自己心动的代码的那份感动,而不要成为上面提到的那个“离开后,公司才知道他有多么重要”的家伙。

  四、现在开始,刻意练习

  你是否发现自己长期维持着“刚刚好能完成story”的代码水平,写了好几年代码仍然会被测试人员追着屁股提单?

  种种疑惑是因为代码能力的提高跟你写了多少年代码没有直接关系,你需要做的是刻意练习。如果大家对Python感兴趣的话,可以加一下我们的学习交流抠抠群哦:649,825,285,免费领取一套学习资料和视频课程哟~

  比如把我前面提到的方法反复练习,或者把你自己琢磨出来的方法分解成一项项的环节,刻意的去练习,从测试那里得到反馈,然后不断加以改进,慢慢你就会从一个整天被测试人员追着跑的人,变成发现自己很容易就能达到质量过程标准的人,再慢慢就会发现你写出来的代码测试人员越来越难发现问题,最后只要你状态好点就能经常性的写出零缺陷的代码。

  其实有些道理我们貌似都知道,但是我觉得离真正懂得还差了两步,第一就是你需要亲身去经历、践行这些道理和方法,第二就是你要能够转述并让其他人也能够明白。

  所以最好的学习方式就是亲身经历,然后写下来分享给大家,这样才能让你真正懂得那些你原来认为懂得了其实未必懂得的道理。

}

1.为了解决具体问题而编程最重要的一点:为了解决具体问题而编程。很多人会在学了几个月编程后,感觉并没有学到什么,这就是因为你并没有从中找到成就感。当你通过学习编程解决了自己具体的问题后就会感到巨大的成就感,比如我为了解决每天部署繁琐的过程,学习了 shell 脚本,只需要一个脚本就能部署了,这就给了我很大的正向反馈。而且当你为了某个具体问题而学习编程的时候,你就会知道,那些知识对我解决问题有用,那些可以暂时不学。编程需要学习的东西很多,所以必须做出取舍。当并无具体的需求时,如果有兴趣,那也行。如果没有兴趣,只是觉得应该学习编程而编程的话。我建议你在学习了基本的知识以后(比如了解了这门语言能实现什么功能),给自己找一个目标(比如搭建一个个人网站,抓取某个页面的图片),然后实现它。有了目标再学习,效果会好很多。

为什么这两个东西如此重要呢?第一、技术很多都起源于美国和欧洲,所以几乎所有技术的官方网站都是英文的。而学技术要学会使用官方文档,当然也是英文的。当然你也可以看翻译过来的资料,但是毕竟是翻译过一次的,所以很依赖于译者翻译水平的高低,而且这是已经被人理解过的二手的资料了。第二、学会使用 Google 为什么也成为了必要。在你学习,开发的过程中会遇到很多的问题,这个时候会经常用到搜索工具。在编程领域,英文资源比中文资源多了不是一星半点。比如stackoverflow(一个编程的问答网站)几乎包括了你学习编程时会遇到的各种问题的答案,以为这些问题很早以前就有人遇到过了。所以,遇到编程问题时,记得使用英文在 Google 上搜索答案。第三、学会如何提问。

3. 找到合适的学习资源

编程可能是最适合自学的科目了,因为有大量的资源(书籍、视频、教程)可以选择。那么如何在海量的资源中选择适合自己的呢?首先,我认为资源分为两类——书籍和视频。如果你喜欢看书,那就找一本好书,如果喜欢视频,那就找好视频。那么如何区分好书和好视频呢——提问,你可以使用搜索引擎,询问身边的朋友。而且,一定要找与自己当前阶段契合的书籍和视频教程,并不是所有的书籍都适合初学者,所以一定要注意选择。最后,一定要看该语言最权威的书籍,肯定不会让你失望。再者,要学会看官方文档,学会查官方手册。教程和手册的区别在于:教程:教你如何使用这门语言,可能很多东西不会提及手册:提供完整、全面的有关这门语言的信息(很多时候就是

学习的时候我们看教程,但是有了一定基础只有,要学会看官方的手册。因为手册包含了这门技术的方方面面,有一个完整的知识体系。它包含对这门语言原理的介绍,官方推荐的用法,API文档等,所以一定要学会看官方文档。

学习的721法则,我觉得就很适合编程的学习:10%的时间自己学习20%的时间与人沟通讨论70%的时间去练习实践

编程是很需要练习的科目,看再多的书还不如在电脑上运行一次来的实在。学习编程要做到每天写代码,代码运行起来之后,可以极大的加深你对知识的理解。还有就是要多讨论,多看别人的代码。讨论能够让人的思想碰撞,产生意想不到的火花。比如你思考一个问题的解决方案很久了,但是还是没有头绪,但是可能别人的一句话可能就会点醒你,这在编程上很常见。而且,通过看别人的代码我们可以学习更好的实现方法,更优的解决问题的逻辑,特别是牛人的代码。

虽然最终都是在计算机上运行的指令,但是还是有很多语言我们可以选择,不同的语言可以实现不同的功能,那么普通人如何选择语言呢?选择什么语言还是需要看你具体的需求是什么。如果你平时使用 office 比较多,那么可以学习 VBA。如果你需要自动化很多重复的工作,那么你可以学习 Python。如果你想要建造自己的个人网站,那么你需要学习 jaxxxxvascxxxxript、Html 和 Css。如果你没有具体的需求,那么我建议你学Python,因为它很容易让你感到提高了生产力。

      编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。

为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。

编程:设计具备逻辑流动作用的一种"可控体系"。注意: 编程不一定是针对计算机程序而言的,针对具备逻辑计算力的体系,都可以算编程。

}

这篇文章部分内容摘抄自网络,写这篇文章的原因是:最近在群里看到很多朋友提问题,本来这是好事,但是问的这些问题,我在视频教程中明明已经讲过了,这只能说他压根就没看教程,所以我才整理了此文

对于入门阶段,对知识水平的要求并不算高,或者说很低,首先,我觉得你应该具备计算机的基本操作能力,如果说你连新建一个文件夹或者说从网上下载资料都不会,那么你应该先买本《windows xx从入门到提高》看,然后再考虑编程这件事,如果你觉得对计算机的基本操作已经熟练后,请继续向下看。

第一:硬件保证,首先你应该具备一台电脑,不管是笔记本还是台式,也不管性能高低,性能对前期学习编程几乎无任何影响,就入门来看,操作系统还是首选windwos。

第二:时间保证,如果你每天都有一大堆事等着你去处理,先去处理那些事吧,处理完后把剩余时间划出一整块的给编程,进行随时可能被打断的学习,在编程这块,我不认为这是在用功学习

这个问题看起来有点多余,但为什么要提出这个问题?要知道,编程不是一朝一夕的事,如果你只是一时的冲动,或者仅仅是要完成心目中的某个小工具,并没有长期写程序的打算,这样的话,编程不学也罢,毕竟编程从入门到能独立写软件会有很长的一段路要走,中途一旦放弃就前功尽弃,并且已经浪费了你大把的宝贵时间,实在是得不偿失。

到底怎样才能入门?其实,只要你有毅力,慢慢折腾个一年半载,肯定能入门,但写这篇文章的目的就是为了把这个周期缩短些,所以,下面我就以个人的观点来谈谈怎么才能更快的入门

选择一门简单的语言作为入门语言;

这个问题在入门阶段一直是争议十分大的问题,n多语言,n多推荐,到最后搞到新手一会听说这种语言适合新手,于是学习这种语言,一会又有人说xx语言是垃圾、弱爆了,学了也没用,之类的话,开始推荐你xxx语言,于是新手们又开始学习这种语言,搞到最后,什么语言都没搞懂,时间大把大把的流失,热情消耗殆尽。

要解决这个问题,首先要搞明白一个问题,你学习编程的目的是什么?找工作、做某一款小软件,每个语言都有自己擅长的领域,如果你现在想学习一门语言来找工作,我百分之百不推荐你学习Delphi,其次是这门语言的难易程度是否适合入门,一般来说,如果你去论坛提问什么语言适合入门,得到最多的结果应该是C语言,很多人推荐C语言原因可能有两个,一是全国大部分的高校的编程课C语言是都有开设的,也可以说是学习过C语言的用户基数大,第二是C语言自身的强大,可谓是口碑好。基数大+口碑好,足以让你得到的结果是C语言居多。我是从易语言入门的,不像C语言,半年下来,还是停留在黑框框里,大大打击了初学者对软件开发的信心

具体选择什么语言,决定权还是在你手里

之所以推荐使用搜索引擎的目的是培养更好的独立解决问题的能力,通常来说,刚学编程时,可能我们有时候连使用什么软件作为编程环境都不知,或者下载安装了编程环境却不知如何使用,这时搜索就派上大用场了,跑到搜索引擎里输入”xxx 使用教程”,结果就出来了,简直太方便了。

而且,新人都喜欢加很多xx语言的编程群,而且大都是挑人多的加,一旦编程中出现了一点小错误,就立马到群里提问,这是一个很不好的习惯,假如说群里有人在线,为你解决了这个问题,那么你独立解决问题的能力就降低了一分,假如没人在线,你就可能面临着等待,或者把问题放这,不去管它,这样积累的后果你是知道的,最好的方式就是动用搜索引擎,不需要等待,还可以锻炼独立解决问题的能力,何乐而不为?还有一点,许多新人反应说许多知识搜索不到,我很负责任的说,不是搜索不到,是你不会使用搜索引擎,至少我现在在编程上还没有遇到过搜索不到某个知识点的情况,对于搜索的使用技巧,如果你还不知道,去搜索吧。总之,有问题,就要去搜索。

顺便说句,加很多群不是一个好习惯,群里并不能让你学到太多知识,他的功能在于能找到一群有共同话题的朋友,真实的情况是大多时间都在时一起闲扯一些与编程无关的话题。

像个高手,并不是让你打肿脸充胖子,而是一种激励自己学习的一种方法,具体就是,要多帮助其他新人,帮助别人可以提高自己的话就不说了,在论坛或群,你可能遇到新人们各种各样的问题,要么代码报错自己检查不出错误,或者想解决某个问题却找不到方法等等,诸如此类的问题,如果你能解决,一定要记得解答一下,不断这样下去,你在你的圈子里说话就会越来越有分量,别人也就更信任你的能力,正是由于这种信任,也渐渐使你背负上了一种高手的责任感,别人请教问题我能不会?即使出于虚荣心,我们也得不断学习,维护我们在别人心中高手的形象,这样也就达到了刺激自己不断学习的目的。

  • 不要误导其他新人,自己不确定的知识不要回答;

  • 对于那些弱爆了的问题,你已经回答过很多遍了,如果别人没指明让你回答,那么就把这个机会让给别人吧,确实没必要再在这些弱爆了的问题上浪费时间;

  • 每天冒泡回答问题的时间不要过长,否则会影响到你的正常学习进度;

  • 发现自己错了就要勇敢承认,等高手出来吐槽时只会让你更难堪,不要以为新手好忽悠,当新手有天成为高手时,他会记得当初是谁在挖坑让他跳;

选择一个自己感兴趣的事情,并把它坚持下去

}

我要回帖

更多关于 软件编程入门自学 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信