不知不觉写代码已经十几年了,要说头发变少是真的,因为经常要搞需求,如果变秃,那还不至于。

或许就得益于我自己的一套编程习惯,今天来缕缕这些内容。

大学期间,我的学习技巧是,多看视频,保持节奏,同时看书,看一些原理性的书籍,一定要是这类,而不是所谓的实战书籍。

实战有好处,就是能够熟悉项目,能够操作,做出产品,但是一定记住,这个在大学时期不是最为主要的,最主要的是:思维。

大学期间,完成所谓的底层建设尤为重要,而不是所谓的实战。这两者就可以理解成,指导方针,和具体措施。

当我们的理论搭建完成,就形成了所谓的系统,系统的优势就是,在遇见未知的问题,课题的时候,能够很快的做出类比,吸收进来。

那么编程的时候,哪些习惯是好的呢?

1 做笔记

之前有个问题,说大佬会不会记住API呢?这个东西提出来就比较有意思。大佬不记API的,这个没意义。

大佬记忆什么呢?我们不管用哪个语言开发,最终围绕的不过以下内容:

1 开发工具

2 官方文档

3 语法--(这块简单归纳就是,基础类型,结构,调用,数据列表)

4 正则表达

5 文件操作

6 网络操作

7 三方库

不管是哪个语言,写一个冒泡算法,我们的技巧是,语言+算法,比如C语言冒泡算法,用这个方式解决基础问题,语法问题。

语法根本就不是大佬去考虑的,当然API也不是。API一定记住,常用的打开文件,请求网络,字符串拼接,都是有现成的,如果有必要,记录下来就可以,一定不会去记忆的。

大脑一定要记住,是要做创造力的那部分,记忆的不要放在大脑里面,只要有个印象,知道去哪里检索,就完全OK。

如果说一定要强调哪个优点,那就是做笔记。做笔记除了上面的检索方便,让大佬去做脑力部分之外,还有个非常重要的作用。

就是复盘,以及及时升级。

能够讲出来,才是最好的学习方法,而写笔记就是一个过程,在写的时候你会发现很多知识不牢靠的地方,从而让自己查漏补缺。

这是做笔记的一个非常重要的点。

当然写笔记,现在这个时代,一定不要闷头去写,一定要在博客上去写,公众号去写,去系统化的输出,创作。

我在给大学生辅导的时候,特别是程序员行业,第一个让去做的,就是做笔记。重中之重。

2 学框架,不纠结细节

一定要记住,思考问题不要从细枝末节去往上推,而应该是从枝干到叶梢。我们平时解决问题,都是从叶梢开始,往枝干去分析,但是大家在分析到枝干的时候,就会停下来,因为解决了当前的叶梢问题。

但是,这个就是你成不了大佬的原因,你没有形成所谓的思维框架。

说一个最近的事吧,圈子里有个咨询问题,需要让三方APP不能随着系统的字体大小变化,该如何处理?

他给我说他的方法是,在创建后进行重新设置字体,这样子解决问题。引出的问题就是,经常会卡死,ANR,我给他反馈,解决思路是错误的。

解决问题一定要找到源头,而这个问题的源头是什么呢?

1 系统字体设置具体改动了哪些值?

2 这些值是怎么在Activity生效的?

3 找到判定三方应用的系统Flag?

4 在创建的地方,直接绕过三方APP,完成功能?

通过这个思路,给到他一个建议,他按照这个处理,最终解决了问题。这是我听到他的问题,脑子里面快速思考的问题。

这个是解决问题的一个逻辑,一个无敌解决方案。如果说再往上延伸,就是你要能够理解,系统是由哪几部分组中,哪些是内部,哪些是外部,他们如何关联,如果调用,是否有一个特殊的路径,如果是,就可以设置断点,轻松分析问题。

这个我们常常把它叫做模块化,我们思考问题是依据模块化去思考,定位问题的大致方向。

再说个话题吧,手机项目,我自己把它大致分成了几部分,很简单,大家可以来看:

1 硬件,驱动,框架,应用

这个是非常粗糙的,但是非常实用的。硬件是载体,驱动是操作它,让它可以用,框架是丰富开发,做的一堆软件设计,应用是调用框架API,完成具体的产品。

2 框架  = 操作系统,模块分类,通信机制

继续拆解,把框架分解出来,找到支撑的逻辑,比如安卓的就是Linux系统,里面混杂着驱动开发,然后安卓上层就是虚拟机,系统服务进程,Binder通信机制,常见的APP(桌面,锁屏,设置,状态栏),系统服务(AMS,PMS),细化后当我们遇见问题的时候,就能知道大致的流向。

举例子:屏幕亮度自动调节失效。

定位逻辑:

驱动层测试

框架层测试,这里具体就是FRM层,查看对应服务,查看Log

应用层测试

通过自己给定的一组环境,看变化,比如非常亮,非常暗下面,是否有变化,有哪些信息输出,然后对照着看下代码。

当然,代码的处理,也是有模型的,后面再聊吧。

3 不断学习

学习技巧是一个大学问,如果一定要总结,就是刻意练习,刻意练习的几个关键信息就是:

1 一定要有目标,而且目标是不断升级的

2 一定要有复盘,而且复盘是不断修正的

真正的成长,一定是螺旋式的,而不是平步青云。很多人刻意练习没有效果,失败的地方在于,你一直练习,没有总结调整,失去了刻意的意义。

大佬是不怕未知领域的,往往还是比较兴奋,对于旧有的知识,大佬提不起兴趣,觉得没劲,会追求新知识,去学习,融入自己的系统。

而一般人怎么处理?舒坦,适应,停滞不前。大佬是,舒坦,焦虑,学习知识。

大佬绝对是善于总结的,把特例演变成通用解决思路,形成所谓的框架思维,也就是套路,直接按图索骥就能轻松的分析出问题症结。

即使同样面对新的问题,他的思考出来的方案,一定是比较全面,并且是比较可靠的。

--end--

今天分享一些整理的书单,关于C语言的,看这些书就足够学懂C语言了。关于操作系统相关内容,我们后续再来分享。

获取方式, 后台回复 我要学C语言  ,领取链接。

抖音项目,全集100T内容,各类玩法,拍摄技巧,网络整理搜集!

计算机书籍一网打尽

热门文章

零基础新手自学Python编程教程入门精通学习资料网站大全

自学编程C语言不迷路,我私藏的书单分享给你!

零基础新手学习算法Leetcode刷题指南

程序员码农IT工程师自学编程计算机入门进阶学习网站大全

程序员面试题宝典以及相关书籍下载!

计算机类常用电子书整理大全

职场老鸟,互联网十年从业生涯,分享 [Java,Python,安卓,AI,爬虫] 技术文章,学习资料, 热点趣闻等。关注回复 1024 Python 电子书大全 面试资料,给你一份私藏的程序员好礼,永远更新中!赶紧来关注哦!

我的微信 code_gg_boy 。

编程中有哪些好的习惯,如果刚开始知道就赚大了?​相关推荐

  1. 【转】VB编程的八个优良习惯

    VB编程的八个优良习惯 1."&"替换"+" 2.变量命名大小写,语句错落有秩,源代码维护方面 3.请养成以下的"对象命名约定"良好 ...

  2. VB编程的8个优良习惯

    1."&"替换"+" 2.变量命名大小写,语句错落有秩,源代码维护方面 3.请养成以下的"对象命名约定"良好习惯 4.在简单的选择条 ...

  3. VB编程的七个优良习惯

    1."&"替换"+" 2.变量命名大小写,语句错落有秩,源代码维护方面 3.请养成以下的"对象命名约定"良好习惯 4.在简单的选择条 ...

  4. [转帖]VB编程的七个优良习惯

    1."&"替换"+" 2.变量命名大小写,语句错落有秩,源代码维护方面 3.请养成以下的"对象命名约定"良好习惯 4.在简单的选择条 ...

  5. 如何在编程时养成良好的习惯

    如何在写代码时养成良好的习惯 一个人有没有良好的修养,就从他的为人处世以及行为习惯中看出来.作为软件开发人员,也应该养成良好的职业素养和编程习惯,这样才能在人生道路上进一步向上攀爬. 命名 养成良好的 ...

  6. php编程习惯,经验分享:PHP编程的5个良好习惯(二)

    学习良好的编程习惯能够提高代码质量和效率.像其他语言一样,开发人员可以用 PHP编写出各种质量级别的代码.根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%.优秀的开发人员的效 ...

  7. php编程习惯,PHP 编程的 5个良好习惯

    根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%.优秀的开发人员的效率更高,因为他们拥有丰富的经验和良好的编程习惯.不良的编程习惯将会影响到效率.本文通过展示一些良好的编程习 ...

  8. Visual Basic编程的七个优良习惯

    来源:chinaitlab,http: //desktop.chinaitlab.com/VB/717674.html 1."&"替换"+". 在很多人 ...

  9. 高等数学在计算机编程中有什么作用

    此博客转自其他出处,如有侵权,请联系博主,将于24小时内删除,谢谢! 以下是OIer们的各种观点,仅供参考. 1.如果程序中要使用算法,高等数学可能用得上.不过一般的程序,还是很难用得上高等数学的. ...

最新文章

  1. Swift4 String截取字符串
  2. 【2016.12.04】JavaScript笔记
  3. VTK:PolyData之WarpSurface
  4. SQL Server 统计信息更新时采样百分比对数据预估准确性的影响
  5. python rgb 图像_在Python中查找RGB图像的互补图像
  6. linux的shell编程课设,linux课程设计-shell编程.doc
  7. Vue导出office模板文件(xdoc在Vue中的使用)
  8. DllMain——DLL程序入口点函数
  9. 九阴真经战无不胜服务器位置,九阴真经新服“战无不胜”
  10. 百度云破解不限速版(绿色免安装)
  11. FTPC 在制品跟踪(WIP Tracking)对象
  12. 爬虫从头学之Requests+正则表达式爬取猫眼电影top100
  13. Set的insert操作
  14. 在eclipse中使用subclipse
  15. 软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)
  16. 《软件开发本质论》笔记——了解价值,然后从可能去做的所有事情中选择那些最重要的去做
  17. 软件质量控制问题与质量控制技术
  18. 学习内容管理系统(LCMS)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 教你如何搭建人事OA-员工管理系统,demo可分享
  20. python box2d 教程_python下的Box2d物理引擎的配置

热门文章

  1. mouseWheel in WindowsFormsHost(鼠标滚轮事件)
  2. win11 桌面 显示 我的电脑图标 设置方法
  3. 详解统计信号处理之 克拉美罗界
  4. 泛C++开发: 如何用C++写跨平台应用
  5. 聊聊 Pulsar: Pulsar 的核心概念与基础架构
  6. 一.Vue2.5开发去哪儿网app首页⑤——图标区域轮播逻辑实现
  7. 仿支付宝支付密码输入框
  8. 【数字图像处理3】(下) 使用Python+OpenCV+EDSR模型,实现超分辨率重建(SR)
  9. android apk获取root权限执行相应的操作 demo调试
  10. AVPlayer的基本使用