专栏首页T客来了编程能力突飞猛进的奥秘!戳~

编程能力突飞猛进的奥秘!戳~

目录

  • 一个知乎问题?
  • 为什么学会Debug 很重要?
  • 如何debug-python为例?
  • 再论debug的重要性

1 新键盘 and 一个知乎问题

为什么写这篇博客? 因为我刚买了新键盘,迫不及待想体验下打字6的飞起的感觉,嗯,新键盘还不错。前几天看到在知乎上看到一个问题:

我的答案也附属在下面;

估计你我都有这种感觉:做业务似乎不需要太多的debug,简单的增删改查为啥需要debug呢? 不是信手拈来。简单是显而易见的,不过长此以往往往会觉得做的东西没什么挑战性,每天的工作就是简单重复,循环经验,码码砖,所以外界都讲我们是码农。打住,真的是这样吗?

程序员的关键词应该是创造,而且是高质量、高速创造、时间不等人啊,这一切的基石即是debug 我的回答当中侧重3个方面:

  1. 习得抽象能力;
  2. 通过读源码、熟悉数据结构、熟知数据结构的应用场景 来习得;
  3. 要做的好,需要debug。

2 为什么学会Debug 很重要?

个人认为主要有3点:

会 debug 会 level up 面试手写代码着重考察的能力 工作中提升工作产出的必备能力

3 如何debug?

如下图所示:

接下来以pycharm为主,演示下如何习得debug能力:

3.0 选个好的ide

选择一个好的ide,会事半功倍,推荐使用 jetbeans 全家桶

3.1 打断点

打断点是个技术活,有没有感觉复杂程序的断点其实比较难确定打点的位置(打点位置的设定方法我在思维导图中有提及,得多 debug 各种难易程度的程序,找找感觉):

程序很简单,即遍历输出arr,断点打在function test_0() 调用的位置

3.2 跑起来

1 and 2 方式均可

3.3 控制程序运行流程

控制程序运行流程在 pycharm 中也有利好的工具可以用,如下图所示:

从左至右:

  1. step over: 当前代码行的执行过程不必细究,直接运行完成后跳到下一行
  2. 使用场景: 当前代码行对debug过程没有任何影响,可以直接运行,且直接跳到下一行

  1. step into: 即压栈的过程,进入函数调用内部,并且如果遇到系统库或第三方库调用也会进入到第三方库函数调用内部;
  2. 使用场景: 进入函数内部,包括自己def 以及 call 第三方的函数;

  1. step into my code: 也是压栈的过程,但是不同于step into,step into my code 只能进入到自己def 的function 中,属于阉割的step into

  1. step out: 即函数调用出栈的操作,
  2. 使用场景: 如果step into 到函数调用较长的函数中,不想一行一行看完所有的函数调用,那么可以直接 step out ,完成当前函数的调用,然后继续调用step over 继续运行程序

官网上没有对当前按钮的官方说明,官网文档:https://www.jetbrains.com/help/pycharm/debugging-your-first-python-application.html

  1. 如果你有多个断点,只想看断点处的运行结果,则可以直接多次按压 go next breakpoint, 观察变量的输出情况
  1. debug 过程当中,所有变量的变更情况(动态的过程) 可以通过 varibales 变更面板查看

多练习,可以找到debug的乐趣,这是一种习得能力;

4. 再论debug重要性

假如有现在一种场景,你新接了一个项目,这个项目没有做好项目传承-即没有文档 ,日志也惨不忍睹,毫无规范可言,(不考虑办公网络的复杂性,如代码在本地不能调试)你会怎么做?

先骂娘->看代码(要么睡着,要么怒火中烧) 结果是两三天过去了代码还没看明白? (简单代码可以走查,复杂代码需要debug,跑起来你才知道发生了什么)

如果是我,我会怎么做?

  1. git clone 源码;
  2. 问相关派发任务的相关人,项目的详细背景,项目启动的入口地址,如果相关人离职了,或者相关人根本不知道这个事情,我觉得此地不宜久留;
  1. 如果2 进行的很顺利,剩下的就是自己的事情了,debug,了解整个项目的运行流程;
  2. 及时跟相关人沟通对项目的了解情况;
  3. 了解的差不多了,开干。自己推到重来,或者重构,都是自己的事情了 。

如果有更好的方式,请留言沟通哦。

本文分享自微信公众号 - T客来了(ltdo11),作者:bofeng

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 回忆杀:我的编程能力是如何突飞猛进

    这篇原本是我之前在知乎上的问答,当时写的比较匆忙,就没有同步,这次跃哥又进行了一小部分的润色,言简意赅地做了一小部分成长的回忆,记录那些年我的努力,寻找记忆力的...

    程序员小跃
  • 你的编程能力从什么时候开始突飞猛进?

    我的第一份工作是 Android 攻城师,做了有两年左右,发现自己平时的工作几乎都是在设计页面布局,这不是我理想的工作(我的理想工作是不上班 / 坏笑)。因为经...

    淡定的蜗牛
  • 回忆杀:我的编程能力是如何突飞猛进起来的

    这篇原本是我之前在知乎上的问答,当时写的比较匆忙,就没有同步,这次跃哥又进行了一小部分的润色,言简意赅地做了一小部分成长的回忆,记录那些年我的努力,寻找记忆力的...

    程序员小跃
  • 我的编程能力是从什么时候开始突飞猛进的?

    这是知乎上一个很火热的话题,它让我的思绪回到了多年前,那个疯狂玩游戏住网吧的少年,那个洗心革面之后疯狂看技术书、疯狂编码的少年,彼时的他绝没有想到能在程序的世界...

    用户6983566
  • 让你编程能力秃飞猛进的好习惯

    大家好,我是鱼皮,上回说到,很多同学在学编程时不注重代码质量,养成坏习惯的同时,失去了提升自己编程能力的机会。

    程序员鱼皮
  • 长篇连载(一)你的编程能力从什么时候开始突飞猛进?

    2008年,奥运会那一年,就是高考结束的一年,我考上了湖南的一个二本学校,曾经做的所有梦都在这一刻戛然而止。

    艾小仙
  • 一张让你代码能力突飞猛进的速查表

    随着深度学习的蓬勃发展,越来越多的小伙伴们开始使用python作为主打代码,python有着种类繁多的第三方库,这里为大家从网络上收集了一些代码速查表,希望可以...

    统计学家
  • 全栈工程师自述:我的编程能力为什么突飞猛进?| 知乎3千7百赞

    两天之内,就引起了150多位用户来分享自身经验。因为话题非常具有干货导向,也引起了大量的围观。

    AI算法与图像处理
  • 全栈工程师自述:我的编程能力为什么突飞猛进?| 知乎3千7百赞

    两天之内,就引起了150多位用户来分享自身经验。因为话题非常具有干货导向,也引起了大量的围观。

    量子位
  • 人工智能时代正在开启

    时下,随着全球科技变革深入推进,云计算、物联网、大数据和人工智能,已然从高度技术化与学术化的频率中逐步向外延伸,形成万物互联、万物智能的智能化新时代。这些一度让...

    企鹅号小编
  • 人工智能时代正在开启

    时下,随着全球科技变革深入推进,云计算、物联网、大数据和人工智能,已然从高度技术化与学术化的频率中逐步向外延伸,形成万物互联、万物智能的智能化新时代。这些一度让...

    企鹅号小编
  • 腾讯和Science推青少年科学看点榜单:120万中国孩子最关注天文学

    ? 今年榜单囊括了天文学、数学物理学、生命科学和化学等四大领域的最新前沿科学突破,一些话题关乎人类对广袤宇宙的探索,例如首张黑洞照片面世,嫦娥四号在月球背面着...

    鹅老师
  • 大数据处理:云应用应具备哪些特征?

    在波士顿大数据创新会议上的一个对话会上,IBM云数据服务事业部产品开发副总裁迈克·奥罗克(Mike O’Rourke)表示,所有四个特性,包括在论证中的数据所有...

    静一
  • 用黑客的思维 做中国最好的网络安全产品

    第五届“科技新浙商”年度人物前不久揭晓并颁奖,10位新一代浙商上榜,亮相经济大舞台。 这些70后主导的年轻、充满创业梦想的企业家们,大多来自新能源、新材料、信息...

    安恒信息
  • E3 2017开幕第二日:大IP+大制作下的游戏大作,要怎样才能俘获玩家的心

    VRPinea
  • 29个猛禽发动机、最低7500吨推力,SpaceX超重型助推器「发动机」:绝对的野兽!

    SpaceX 的 Starship 超重型助推器绝对是一头野兽,这已经不是什么秘密了。

    新智元
  • “请停止霸凌机器人”假视频揭秘,2019最强大机器人Top 10在这里

    上周,一则”波士顿动力Atlas机器人遭人类虐待后反击”的新视频在社交媒体疯传,新智元在第一时间对这则新闻进行了报道:《请停止霸凌机器人!“波士顿动力 Atla...

    新智元
  • 您有一封来自屠呦呦的信,请注意查收!

    ? 在我们每个人的身体里, 无尽的微观世界却是一部最宏大的史诗: 10万公里长度的血管, 超过任何一条河流; 1千亿脑部神经元的存储量, 超过任何一座图书馆;...

    鹅老师
  • 比尔·盖茨:我不认为中国AI能弯道超车

    李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI 微软创始人比尔·盖茨,怎么看当前AI发展态势? 在近日接受CNN采访中,他就向记者Fareed Z...

    量子位

扫码关注云+社区

领取腾讯云代金券