目录

前言

一 编程的学习方法

1.1明确目标及范围

1.2学习方法

二 编程技巧的提高

2.1多实践

2.2多思考

2.3多沟通

2.4多学习

2.5多总结

三 编程的习惯和技巧

四 个人经历

总结


前言

互联网行业是一个充满挑战性的行业,互联网行业是一个充满挑战且内圈比较严重的行业,作为程序员如何让自己一直保持不错的水准或者避免让自己掉队,那就需要通过不断的学习提升自己,本文就和大家交流下我们如何提高编程能力及技巧水平。

一 编程的学习方法

1.1明确目标及范围

互联网这个行业不同于其他行业,知识体系实在是过于庞大,知识更新非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

举例:我是做Android开发的,我不会今天去看看C++,明天去学学Python。我首先会选择提升Android开发能力,优先学习Android开发相关内容,本领域学习掌握到一定深度,再去拓宽其他知识面。学习自己领域内知识我会优先汇总整理本专业范围内的知识体系图谱,类似这种:

这样可以清楚明确自己需要学习知识的范围,明确范围后,然后制定一个完整可行的计划,按计划逐步学习,每天学习消化一点,按这种思路学习完你的知识才成体系。

1.2学习方法

内容明确了,计划制定好了,接下来就是如何去学习了,学习的方法有很多种,现在获取知识的途径太多了,但是我们的时间是有限的,如果能规划利用好自己的时间,选对适合自己的学习方法,是提高学习效率的前提条件。这里我简单列举几种方式,对比一下几种方式的优缺点,详细内容我就不一一阐述了。

1.2.1看书

优点:书最大的特点我觉得是知识全面 、严谨

缺点:有些枯燥,一本书可能很多内容都对自己帮助不大,可能对我有有用的就一两个章节

1.2.2看视频

优点:视频容易入门,可以看到操作及演示

缺点:不成体系,一般都是讲重点,忽略细节,很多系列的视频后面的都是收费的

1.2.3逛技术类网站

优点:获取新技术、可以看到同行们都学哪些,不至于掉队

缺点:内容庞杂,水平参差不齐,没有鉴别能力容易被误导

1.2.4报培训班

优点:完整、成体系

缺点:时间要求高、学习成本高

1.2.5有领导或者同事在工作中指导你

优点:我认为这样学习的方法是最快的

缺点:碰到这样的人需要运气,要珍惜

二 编程技巧的提高

为什么上面要啰啰嗦嗦的说一大堆学习方法,因为我认为所谓的技巧提高也是有前置条件的,就是你得有一个好的基础,不然谈不上提高,想要提高,基础必须得很牢固,所以你得先打好基础。

举个例子:我2012年刚开始学Java编程时候,那会开发都是用Eclipse手写Bean实体类,后来随着开发工具改为IDEA,再后来转移动开发用Android Studio知道有插件可以直接生成Bean实体类,不用手动写了,直接把后台的JSON字符串拿过来拷贝到工具中一键生成,生成好就可以直接用了。但是如果你没有手写过,直接就用工具生成,那么生成出来的代码有多少方法、每个方法的作用,可能你都不清楚,所以这就是基础的重要性。

那么我们打好基础后,如何能快速提高我们的水平呢?

2.1多实践

编程行业可能对于你的理论基础要求不那么高,但是对于你的实践动手能力要求是非常非常高的。直白点说:你说的再多都没用,你得能做出东西来。我佩服的不是满嘴长篇大论的人,我佩服的是能解决各种问题的大神。那种大神没有解决不了的bug,没有实现不了的功能,做出来的各种功能、各种项目不能说没有bug,但是出现的bug非常少,系统功能非常稳定。

那如何才能达到大神的水平呢?其实大神也是普通人,他之所以能成为大神也是一个坑一个坑踩出来的,他碰到并解决的bug比一般人都要多,所以他在做任何功能的时候都会考虑到各种工况、各种数据出口入口、各种风险。经验都是来源于实践,实践出真理!对于编程这个行业,实践尤其重要!离开了实践,学习就是无源之水无本之木。

举个例子:我当时刚入行学java编程,我的培训老师讲到空指针知识点的时候就说:如果将来你们从事编程行业,这个问题会一直陪伴你们!其实当时我听到这句话,内心想的是:这么简单的东西,还会出问题?

后来我想不用我多说,只要真正写过代码的人,99%的人都应该碰到过这个问题。所以别人教你各种方法,和你说再多都不如你真正写一次让你记忆深刻。

编程技巧的提高我理解没有什么捷径可走,一定是做的项目多了,踩的坑多了积累出的经验。

2.2多思考

除了实践,还有一点就是在做任何功能、解决任何问题的时候都要多一些思考。如果脱离思考,即便你做的项目再多,也只是机械的重复,这次我碰到一个空指针bug,解决后是不是要思考下下次如何避免?下次再写类似的代码时,是不是要多加一些判断?是不是要考虑和后台商量数据传输规则,过滤掉空项?即便后台处理了,是不是要考虑后台传值有异常时,我们前端如何处理展示?有人说后台犯错,还需要我买单?小伙子,格局要提高下。大家是一个团队,是一个整体,先不管谁的问题,项目出了问题,大家都有责任,要把自己负责的功能做好、提前规避掉各种风险才是一个成熟的程序员。

2.3多沟通

提升自己还有一个很好的途径是和行业内的人多沟通,可以是你的同学、你的同事、你的领导都可以。因为在聊天的时候可能会不经意就知道了一些新的知识点,学到了新的技能,我以前是做Android开发的,不瞒大家说,我当时都做到部门经理了,还没用过ADB无线调试,以前习惯了插根线去真机上调试,有次和部门新来的一个开发聊天时,从他那里学到的无线调试方法。方便了很多,有的时候线坏了也不担心了,类似的这种场景还有很多。所以平时多和周围的人沟通一下、聊聊技术是一个很不错的方式。

2.4多学习

互联网行业技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。一个能够不断进步的人才有更辽阔的未来和更可观的前景,尤其是对于IT行业这种每时每刻都充斥着改变的领域,学习能力更是必不可少的存在。所以我们必须不停的去学习才能保证我们不掉队,本身就是一个活到老学到老的行业,可以针对性的去看行业内一些大神的博客和公众号,我有很多东西都是从一个大神的博客学到的,其他的学习方式在第一部分我也都提到了,大家根据自己实际情况做选择即可。

2.5多总结

每天的工作和学习其实是很枯燥的,需要坚持,最好的办法就是自己回忆每天学到的内容,然后把他写下来。写博客是一个很好的方式,可以帮你加深记忆,同时提高对这个知识点的理解。很多人不敢开始,怕自己写的内容太简单被别人笑话,其实大可不必,只要是自己思考过的内容都可以记录下来,我们需要做的是给自己做积累,不用在意其他人眼光。

我在刚开始创作的时候就是记录基础的知识点,后来慢慢写一些解决具体问题的文章,再到后面就写归纳总结类的文章。现在转管理慢慢会写一些行业类和管理类的文章,总之就是一直在写。这个过程坚持下来会帮助你加深对知识的理解,另外后面碰到同类问题还是看下之前是如何解决的,我经常碰到同样的问题,但是还是忘记自己当时是如何解决的,后来就去自己的博客看一下当时如何解决的,还是那句老话:好记性不如烂笔头,不断复盘总结是非常重要的。

三 编程的习惯和技巧

开发做了这么多年,积累了一些经验,这里和大家分享下:

1.做项目,先问清楚需求,然后自己用思维导图工具,把各种可能性都罗列出来,都想清楚后再去建项目,写代码。有一句非常经典的话:Think more, Code less!

2.碰到没接触过的功能直接去github上面搜、搜的时候找star比较多的下载下来跑一下试试,学会用关键字检索,关键字一定要精简,这样你搜出来的内容匹配度才高,比如你搜一个开源视频功能组件,可以这样写:视频播放器,然后选择Most stars ,一般前几个都是主流的。

3.写代码一定要保持良好编码习惯,最好按照一套固定的编码规范来写,编码规范很多大厂都有发过。比如 函数、变量需要定义的有意义,让别人要能一眼就看懂,这部分建议多看源码提高,定义的变量可能还需要避开一些三方库函数或者变量名。

4.写代码的时候对于一些关键的函数和逻辑要写注释,加上必要说明,解释基本逻辑。但是千万别到处都是注释,如果是那样,一定是你的代码写的比较差,不易理解。

5.写代码不是越复杂越好,反而是越简单越好,函数一定要定义的简单,如果太复杂就定义多个函数。比如:for循环一定要减少层级,层级太多一定要想办法优化处理。

6.定义变量一定要注意初始化,定义数组一定要防止下标越界。

7.一些好的函数或者功能一定要单独记录保存,我建议整理一个自己的工具库,把好用的功能或者工具类都保存下来。

8.养成一个随时ctrl+s 保存的习惯,这个不必多说,吃过一次亏就记住了。

9.尽量复用对象、多定义使用局部变量、避免随意使用静态变量

10.养成加TODO的习惯,比如一些自己不太理解的点、一些需要后续优化的点、一些没有处理好的逻辑等等加上TODO后续查找起来非常方便。

11.删除不必要的代码,保持整体的整洁,留着以备不时之需可以通过git版本控制等来解决。

12.重构有利于提高代码维护的效率,对于当时因为时间等原因写出来的一些比较乱的代码需要花时间去重构,一定是对自己有帮助。

13.把自己常用的技术网站、工具网站、资源网站都做好分类收藏为页签,可以方便查找,提高效率。

上面是个人的一些经验分享,如有错误希望大家批评指出,后续想到其他内容也会随时补充,写代码需要考虑正确性、可读性、鲁棒性、可测试性、可以扩展性、可以移植性、性能等等一系列问题,所以需要抱着一个严谨的态度对待,做这行有一个好的心态是非常重要的。

 个人经历

这个章节说些题外话,和大家聊一下我的个人经历,希望大家能从我的一些个人经历当中受到一点点的启发。

我是大专毕业,不是本科毕业。当时在学校期间对自己的未来感到很迷茫,担心毕业后找不到工作,在上大学期间培训了Java开发,毕业后找的工作岗位是Java开发工程师,在第一家公司因公司业务扩展和公司的一位同事学习的Android开发,后来为了涨工资陆续跳过几次槽,在上一家公司做了5年时间。工作从Android开发工程师->Android开发组组长(6人)->移动端开发负责人(11人)->项目经理->部门经理(30人左右),目前在国内某上市公司担任项目经理岗位。

工作久了慢慢理解技术实现只是整个产品生命周期中的一个环节,而且是一个很容易被替代的环节。为什么这么说,就是我后来转管理岗后经历的一些事,包括和公司的领导沟通,他们传达给我的就是这个理念。技术实现在他们一些人眼里说的难听些就是工具环节,这个人做不了,就换一个人!公司没有人能做,就招一个,招不到人就找外包公司做,总之不能影响我产品发布上线,不能影响给用户交付的日期。所以作为技术人来考虑,我们就需要一直提升自己,让自己不容易被替代,华为云3月内容共创活动我也参与了,当时的任务标题是《如何才能修炼成一名不可替代的程序员? 》,文中也说明了如何让自己保持竞争力,变得不容易替代,感兴趣的同学可以去看看。对于如何提高自己,让自己保持竞争力,我和大家分享下我个人的一些习惯:

1.我刚入行的时候,java的servlet调用都不会,我碰到不会的问题就问当时带我的那个组长,他当时每天都对我很不耐烦,但是我从来没有为了自己的面子放弃第二天去问他,因为我觉得比起他看不起我,我一直不会写才更让我尴尬。

2.我写代码大概有8年时间,我自己负责的功能测试提出来bug,我都会自己各种查资料想办法去解决,熬夜的次数真的数不清了...

3.我每次下班前,都会把每天的工作在大脑里面做个回顾,然后整理一下一天的工作,在文档里面做个记录,然后提前规划一下第二天要处理哪些工作。

4.我每天会在下班路上经常去逛一些技术类的网站,然后看看有没有什么新的技术类的东西。

5.我从2015年开始写博客以来,保持每月更新,从来没有间断过,这个习惯对我帮助挺大的,因为很多内容写出来真的会加深理解。

6.我博客早期写的一些功能实现类的文章,我都会单独整理一个DEMO,然后上传到平台,我觉得这个习惯可以帮我加深对这个功能的理解。

7.接到新需求的时候,我都会先仔细考虑一下各种工况、各种风险、然后想好技术实现方案,包括后续可能的扩展,是否可以做成组件化在后续同类项目中使用等各种情况,我从来不着急写代码,都是先仔细理清楚思路,这里我推荐大家用下思维导图。

8.后来写代码基本都是复制粘贴,我自己封装了一个common项目,将历史做过的很多项目的同类项都整理到common里面,新接一个项目直接以此为框架,在此框架上新增业务需求类的代码,真正需要手敲的非常少。

9.实话讲,我很少看书看视频学习,但是我会经常看一些大平台的开源项目,感觉一下子就能学到很多东西,里面很多我觉得不错的部分都会照搬到自己的项目中。

10.我平时有收藏的习惯,如好的技术实现类的文章、好用的技术网站、好用的工具类网站、好的开源项目...

11.碰到一些技术难点或者需求不好实现的,一般不会直接和产品battle,调整心态,心态真的很重要,多想方案,少想困难,一般都是实在解决不了才会去砍他...

总结

我们当初是因为热爱才进入这个行业,最后希望大家在编程的道路上保持初心,越来越好!

编程学习过程中有哪些快速提高编程技巧的方法?相关推荐

  1. 推荐一种快速提高英语口语的方法

    推荐一种快速提高英语口语的方法 zijan 2011-03-19 现在越来越多的外国企业在中国开设分公司,很多人有很强的技术和能力,但是英语不行进不了外企.这是因为中国糟糕的英语教育导致的,我们大家都 ...

  2. 锻炼编程逻辑_通过锻炼提高编程技巧

    锻炼编程逻辑 我们中的许多人都有一个2017年的目标,即提高我们的编程技能或首先学习如何编程. 尽管我们可以使用许多资源,但独立于特定工作来实践代码开发技巧需要一些计划. Exercism.io是为此 ...

  3. 如何简单有效快速提高英语口语学习能力方法技巧

    如何提高英语口语学习能力,有没有一个简单有效,而且不用非得找外国人自己一个人就能练习的方法和技巧.下面的文章,就教你如何快速提高英语口语学习能力.用一篇文章,不断复述,一遍一遍掌握英语口语能力.    ...

  4. 单片机常用的编程语言有哪些?怎样能快速提高编程水平?

    在我们上学的时候,很多专业都有开设C语言这门课程,但是汇编语言我是没见过有这门课.C语言和汇编语言都可以作为单片机的编程语言,那么它们具体有什么不同呢? 汇编语言的主要优势是程序可以优化,程序由我们编 ...

  5. 快速提高编程能力---一年时间可以改变很多事

    先说明一下,这篇文章写给那些本身是计算机专业但是由于前几年没有学习,到了大三.大四迷茫困惑不知道如何下手去学的同学,还有一些想学编程但是面对巨多的语言和技术不知道从何下手的新手朋友. 假如你是我所说的 ...

  6. 快速提高编程能力——一年时间可以改变很多事

    先说明一下,这篇文章写给那些本身是计算机专业但是由于前几年没有学习,到了大三.大四迷茫困惑不知道如何下手去学的同学,还有一些想学编程但是面对巨多的语言和技术不知道从何下手的新手朋友.假如你是我所说的这 ...

  7. 慧编程python硬件_慧编程 mBlock 在编程学习中有哪些好用的技巧,积木或扩展,让你感觉相见恨晚?...

    1.素材 scratch为我们的创作提供了一些素材,不过这些素材和慧编程不起来可能就是九牛一毛了 .大量的素材令你眼花缭乱 ,实在不行也可以自己上传素材,这一块想忍不住提个小建议 ,慧编程可以支持用户 ...

  8. 快速提高编程技术的几个小窍门

    一.实战项目 在开发项目的过程中,可以巩固基础,发现自己的不足之处,也会get到新的知识点.举个简单例子:如果没有老师或者其他人指点,你可能从没听说过什么"正则表达式",这东西是干 ...

  9. 独家分享PC端和无线端直通车质量得分快速提高的技巧!

    直通车质量得分如果太低,就意味着开车效果不好,这样花费的推广费用也会更多.那么,怎样才能提高直通车的质量得分,获得好的开车效果呢?下面我们就来看看有没有什么方法可以让pc端和无线端的直通车质量得分快速 ...

最新文章

  1. 持久性session连接之memcached高可用方案
  2. OpenCV边缘检测专题
  3. MATLAB 图像处理函数(第六章)(获取图像矩形像素的运用)
  4. Spring MVC--使用默认的servlet来响应静态文件
  5. 海康服务器协议,国标流媒体服务器GB28181协议和海康设备的交互过程记录
  6. 错误日志分析(dSYM)-2016
  7. 这所211怒将自己学生告成老赖:90后校友承诺捐母校1100万未兑现
  8. windows用c++获取cpu温度
  9. 免费网站数据抓取插件,可视化页面数据抓取插件
  10. 切换windows系统输入法的中英文,可以忽视是哪种打字法
  11. Matlab实现二维Goldstein分支切割相位展开算法
  12. 文明重启怎么做RUST堡垒_文明重启怎么地下建房-地下建房技巧
  13. 阿德莱德大学计算机科学学士学分,澳洲阿德莱德大学软件工程计算机科学学士专业就业方向简析...
  14. 数据链路层故障排除实例
  15. Failed to restart networking.service: Unit networking.service not found.
  16. 张驰咨询:揭晓六西格玛管理(6 Sigma)长盛不衰的秘密
  17. php app接口id参数类型过滤,PHP开发APP接口---返回数据的封装类
  18. 人脸识别考勤管理系统
  19. 用计算机怎样弄出告白密码,2019最火的表白密码 表白方式
  20. 计算机高国家线50分调剂,这些考生注意,即使初试分数再高,超过国家线,也只能调剂读研!...

热门文章

  1. python爬取app图片_利用python爬取斗鱼app中照片方法实例
  2. 异质信息网络分析与应用综述(石川)--阅读
  3. 进销存管理系统【源码开放】
  4. syscall指令_linux syscall 详解【转】
  5. 在信息技术下的创客教育新型研究
  6. 编译Rockeylinux-8.5内核代码
  7. 100种思维模型之九屏幕分析思维模型-016
  8. sas协议内核代码分析
  9. 360极速浏览器下载tensorflow预训练模型问题
  10. 教你用python爬英雄联盟官网:①掌握爬虫技术;②Python数据可视化