医生和程序员 哪个更好_你正在成为一个更好的程序员吗_weixin_26705651的博客-程序员宅基地

技术标签: python  java  linux  人工智能  编程语言  

医生和程序员 哪个更好

I received an interesting question from a reader recently. He wanted to know how you can tell if you’re making progress as a programmer.

我最近收到一个读者的有趣问题。 他想知道如何判断您是否正在以程序员的身份取得进步。

It’s a great question, and it’s a tough one to answer. Improvement at a skill like programming is hard to quantify, as this reader rightly acknowledged. Problems can take hours, days, and even weeks to solve. Building an application can also be a lengthy process. Technologies take time to learn.

这是一个很好的问题,也是一个很难回答的问题。 正如该读者正确地认识到的那样,编程等技能的提高很难量化。 解决问题可能需要数小时,数天甚至数周的时间。 构建应用程序也可能是一个漫长的过程。 技术需要时间来学习。

Measuring your programming process is different than trying to become a faster runner. The time it takes you to run a lap around the track is either decreasing or it’s not. Measuring your progress as a programmer is less clear-cut. But it’s not impossible.

衡量编程过程与尝试成为更快的跑步者不同。 您在赛道上跑一圈所花费的时间正在减少,或者没有减少。 衡量您作为程序员的进度不太明确。 但这并非不可能。

If you want to see whether you’re getting better then read on. Here are a few tactics to try.

如果您想看看自己是否有所好转,请继续阅读。 这里有一些尝试的策略。

每日追踪 (Daily Tracking)

I rely on daily and longer-term tactics to gauge my progress. Let’s start with daily tracking.

我依靠日常和长期策略来衡量自己的进步。 让我们从每日跟踪开始。

Monitoring your progress each day helps to ensure that the work is getting done and focuses your attention on the small improvements, which add up over time. Here are two approaches to try.

每天监视您的进度有助于确保工作已完成,并将您的注意力集中在细微的改进上,这些改进会随着时间的推移而累积。 这里有两种尝试的方法。

有一个编程目标 (Have a Programming Objective)

Have an objective each time you sit down to program. Here are some examples:

每次坐下来编程时都要有一个目标。 这里有些例子:

  • Add CSS to the index page.

    将CSS添加到索引页面。
  • Fix the bug in “x” program.

    修复“ x”程序中的错误。
  • Write “y” number of tests and get them to pass.

    写下“ y”个测试,然后通过。

An objective is concrete and specific. It’s a particular outcome you want. The best way to find your objective is to work backwards and ask yourself this question: what do I want done two hours from now?

目标是具体而具体的。 这是您想要的特定结果。 找到目标的最好方法是倒退,问自己一个问题:从现在起两个小时后我想做什么?

This specific target will focus your time and attention. So two hours later you’ll feel like you really accomplished something. Even if you miss the mark, it’s likely you still made progress toward your goal.

这个特定的目标将集中您的时间和精力。 所以两个小时后,您会觉得自己真的完成了一些事情。 即使您错过了成绩,也有可能朝着目标前进。

使用编程日记 (Use a Programming Journal)

Each evening before bed I pull out my programming training journal and jot down a few notes about my programming work from the day.

每天晚上睡觉前,我都会拿出自己的编程培训日记,并写下一些有关当天编程工作的笔记。

I’ve written previously about keeping a programming journal. Since then, I’ve added something to it. Now I note my “stats” from the day before I start writing. My stats are the core buckets I track — programming, writing, reading, math, and exercise — and how much time I spent on each bucket.

我以前写过有关保留编程日记的文章 。 从那时起,我已经添加了一些东西。 现在我记下我开始写作前一天的“统计数据”。 我的统计数据是我跟踪的核心存储桶-编程,写作,阅读, 数学和练习-以及我在每个存储桶上花费了多少时间。

The idea stems from a similar practice that author Jim Collins uses: he keeps a spreadsheet to track the number of creative hours he logs each day. He admits that the habit was inspired by his mentor Peter Drucker, who championed: “what gets measured gets managed.”

这个想法源于作者Jim Collins使用的类似做法:他保留一个电子表格以跟踪他每天记录的创意小时数。 他承认这种习惯是由他的导师彼得·德鲁克(Peter Drucker)启发的,他倡导:“可以衡量的东西可以得到管理。”

Likewise, my stats are a concrete reminder of where I spend my time. They not only hold me accountable, but they also ensure that my time is spent on the right things.

同样,我的统计信息具体提醒了我在哪里度过的时间。 他们不仅使我负责,而且还确保我的时间花在了正确的事情上。

Once my “stats” are out of the way, I write about my programming work from the day. What went well. Where I got stuck. What I learned. What I want to learn. It’s an informal process. But there’s an important question I like to ask myself.

一旦我的“统计数据”消失了,我就开始写我的编程工作。 一切顺利。 我被困在那里。 我学到的是。 我想学什么。 这是一个非正式的过程。 但是我有一个重要的问题要问自己。

The question is: “Am I better now than I was this morning?”

问题是:“我现在比今天早上更好吗?”

Then, I write a few words to answer it.

然后,我写几句话来回答。

I’ll note if a concept that I’ve been struggling with finally makes sense, for example. Or a bug that I fixed. These are small wins, to be sure. But they matter — a lot.

我会指出,例如,我一直在努力的一个概念最终是否有意义。 还是我修复的错误。 可以肯定,这些都是小小的胜利。 但是它们很重要-很多。

Building a skill is a marathon, not a sprint. Taking a few minutes to reflect on your programming work will remind you of positive things you’re doing each day, no matter how big or small. It’s a reminder that you are making progress. These small wins add up over time and propel you forward.

培养技能是一场马拉松,而不是短跑。 花几分钟的时间来思考您的编程工作,无论大小,都会使您想起每天所做的积极工作。 这提醒您您正在进步。 这些小小的胜利随着时间的流逝加在一起,并推动您前进。

长期追踪 (Longer-Term Tracking)

To see the fruits of those accumulated small wins you’ve been chronicling, there are two approaches to try.

要查看您一直在记述的那些累积的小额胜利的成果,可以尝试两种方法。

每周现场演练 (The Weekly Spot Drill)

The “ weekly spot drill “ is one the best ways to gauge your longer-term progress. Not only will this learning tactic help keep your skills sharp.

每周一次的演习 ”是评估您的长期进度的最佳方法之一。 这种学习策略不仅可以帮助您保持技巧的精明。

But it’ll also help you see the progress you’re making over the long-term. I briefly point this out in my article on the topic, but it’s worth exploring more deeply here. The weekly spot drill is a fantastic way to see whether or not you’re making progress.

但这也可以帮助您了解长期的进展。 我在有关该主题的文章中简要指出了这一点,但值得在此进行更深入的探讨。 每周一次的现场演练是查看您是否正在取得进步的绝佳方法。

Each week I do two spot drills: one for web development and one for problem-solving. For web development, I pick a technology or topic that I’ve already learned about, and work on a project related to it. The technology or topic I choose is one that I haven’t touched in a while.

每周我都会进行两次现场练习:一次用于Web开发,一次用于解决问题。 对于Web开发,我选择一个已经了解的技术或主题,并从事与之相关的项目。 我选择的技术或主题是我一段时间没有接触过的技术或主题。

This process certainly helps solidify my knowledge. But it’s also a clear indication of whether or not I’m making progress: if I find the project or problem a bit easier, then I’m making progress.

这个过程肯定有助于巩固我的知识。 但这也清楚地表明了我是否正在取得进展:如果我发现项目或问题要容易一些,那么我正在取得进展。

The first few times I implemented the weekly spot drill on CSS, for example, I struggled — a lot. I had more work to do, and progress was very slow. But over time things began to change.

例如,最初的几次我在CSS上执行每周一次的现场演练,我挣扎了很多。 我还有很多工作要做,进度很慢。 但是随着时间的流逝,事情开始发生变化。

Eventually, I intuitively knew what to do and what to reach for. I got stuck less frequently, and when I did get stuck I could get myself unstuck a bit quicker. Overall, the process got smoother. I was making progress.

最终,我凭直觉知道该做什么和可以达到什么。 我被卡住的频率降低了,当我被卡住时,我可以更快地将自己解开。 总体而言,该过程变得更加顺利。 我正在进步。

回收编程问题 (Recycle a Programming Problem)

Recycling programming problems is another great way to see your improvement over time.

回收编程问题是随着时间的推移看到您的改进的另一种好方法。

Here’s how it works. Solve a problem today and try re-solving it three or four months from now. Let plenty of time pass to completely forget the problem and its solution. You know if you’re improving when something that’s hard right now becomes a bit easier several months from now.

运作方式如下。 立即解决问题,然后尝试从现在开始的三四个月重新解决。 请花费大量时间完全忘记问题及其解决方案。 您知道您是否正在改进,现在困难的事情会在几个月后变得容易一些。

Earlier today, I pulled up a problem I solved earlier this year and re-solved it. Afterwards, I compared the solutions. My original program was lengthy. The code was complex. I remember feeling really stuck when I wrote it.

今天早些时候,我提出了一个今年早些时候解决的问题,然后重新解决了。 之后,我比较了解决方案。 我原来的程序很长。 代码很复杂。 我记得当我写的时候感觉真的被卡住了。

But a lot has changed. This time I knew what to do nearly immediately and intuitively. My variable names were meaningful. My code was shorter and clearer.

但是发生了很多变化。 这次,我几乎立即且直观地知道该怎么办。 我的变量名很有意义。 我的代码更短,更清晰。

I have more tools in my programming toolbelt now than I did earlier this year. The better approaches coupled with better writing and designing resulted in a much better program. They were also signs of improvement.

与今年早些时候相比,现在我的编程工具带中的工具更多。 更好的方法以及更好的编写和设计导致了更好的程序。 它们也是进步的迹象。

Can I do better even still? Most definitely.

我还能做得更好吗? 明确地。

So I’ll circle back again in a few more months to see if I can re-solve this same problem with a better approach and a better-designed program.

因此,我将在几个月后再回头看看是否可以通过更好的方法和设计更好的程序重新解决相同的问题。

看到劳动成果 (See the Fruits of Your Labor)

We need ways to measure our progress. That’s the key point. Monitoring programming progress is more like an art than a science. Have a system in place to gauge what you’re doing, to guide your efforts, and ultimately get you where you want to go.

我们需要一些方法来衡量我们的进度。 这就是关键。 监视编程进度更像是一门艺术,而不是一门科学。 拥有一个系统来评估您的工作,指导您的工作并最终使您到达想要去的地方。

I write about learning to program, and the best ways to go about it on amymhaddad.com.

我在 amymhaddad.com 上撰写了有关学习编程的文章,以及进行编程的最佳方法

Originally published on amymhaddad.com.

最初发布在 amymhaddad.com上

翻译自: https://levelup.gitconnected.com/are-you-becoming-a-better-programmer-cb59fbf23085

医生和程序员 哪个更好

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_26705651/article/details/108899318

智能推荐

Unexpected EOF 远程主机强迫关闭了一个现有的连接 如何处理-程序员宅基地

由于数据量的增大,调用接口的次数会增加。当连续向目标网站发送多次request后,目标网站可能会认为是,恶意攻击。于是会抛出requests异常。测试代码:for i in range(200): # 连续请求200次 requests.post(p['url'], headers=p['headers'], json=p['body'], verify=False)..._error trying to connect: unexpected eof

云原生管理平台如何掀起“云网联动”新篇章_云原生管理平台dcpp_CloudChef 骞云科技的博客-程序员宅基地

未来,完全可视化的蓝图将具备更灵活的云网配置能力,以及更高的自动化实现能力。_云原生管理平台dcpp

WAP初级教程笔记-程序员宅基地

WML基本情况WML----Wireless Markup LanguageWML是XML的子集。WML文件以*.wml命名。WML文件必须满足XML文档的规则。WML文档通常使用XML解释器解释。WML文档编辑环境编辑器---WML本身是文本,所以任何文本编辑器都可以完成。模拟器---NOKIA ERICSSON MOTOROLA等都可以。图形转换--制作适合WAP的图片,pic2wbmp。

android应用层动态加载内核模块,基于android系统的驱动模块的设计和实现-微电子学与固体电子学专业论文.docx...-程序员宅基地

基于android系统的驱动模块的设计和实现-微电子学与固体电子学专业论文Classified Index: TP316.8 U.D.C: 621.38Dissertation for the Master Degree in EngineeringDESIGN AND IMPLEMENTATION OF DRIVER MODULE BASEDON ANDROID SYSTEMCandidate:..._浅谈android内核的论文

oeasy教您玩转vim - 20 - 显示标尺_vim在顶端显示标尺-程序员宅基地

显示标尺回忆上节课内容????定义标记 a ma 删除标记 a :delm a 跳转到标记 a 'a `a 跳到 a 对应的行和列 'a 跳到 a 对应的行 查看所有标记 :marks 各种标记类型 '' 是上次跳转操作光标所在的位置 '" 是上次退出当前文件的位置 '[ 是上次编辑(删除修改等)的开始位置 '] 是上次编辑(删除修改等)的结束位置 小写 a-z 可以标记本文件内部的位置坐标 大写 A-Z 可以跨文件标记位置坐标 数字 0-9 _vim在顶端显示标尺

UBIFS文件系统概述及制作步骤_uboot 写ubifs-程序员宅基地

什么是UBIFS文件系统UBIFS是UBI file system的简称,用于裸的flash设备,作为jffs2的后继文件系统之一。UBIFS通过UBI子系统处理与MTD设备之间动作。UBIFS文件系统更适合MLCNAND FLASH。需要注意的是UBIFS并不是为SSD,MMC,SD,Compact Flash等之类的基于flash的存储设备,其是针对于裸flash设备。裸flash有以..._uboot 写ubifs

随便推点

Mongodb中的聚合函数使用:按月统计数量_mongodb 统计一年内每个月的数量-程序员宅基地

案例:mongodb中有统计表(stat_list)表,存有每天的统计数据,现在需要按月计算,则需要用到mongo的聚合函数aggregate。 "_id" : ObjectId("5d00d3b66939c1efb80ba325"), "date" : "2019-06-12", "daily_count" : "164.34万",解决方案:1、将daily_count去掉万字,然后..._mongodb 统计一年内每个月的数量

软核操作系统-程序员宅基地

转载于:https://www.cnblogs.com/xujing6/p/6390193.html_软核移植操作系统

表单脚本-程序员宅基地

  打算实现模拟表单控件的DEMO,首先把《JavaScript高级程序设计》“表单脚本”这章的内容复习一下,有针对性地看书,希望可以提高效率。1 表单基础知识  表单对应的是HTMLFormElement类型,HTMLFormElement继承了HTMLElement,具有其他HTML元素的默认属性,同时享有一些独特的属性和方法。acceptCharset服务器能够处..._脚本工具获取表单信息并处理表单信息

Linux图形界面GNOME和KDE终获统一_kde gnome 2018-程序员宅基地

INQ报道,开源开发实验室(OSDL)和freedesktop.org发布了GNOME和KDE统一界面的预览版。该项目命名为Portland,采用两套界面:一套命令行工具和一个被称为DAPI的API库。Portland Project能简化GNOME和KDE桌面环境中程序的移植和集成过程。Linux开发人员可以利用DAPI来自定义服务,并在不同桌面版之间维持同样的界面集合,简化基础的桌面整合任务。_kde gnome 2018

基于python的学生成绩管理系统毕业设计源码071143_python学生成绩管理系统设计报告_FYKJ_2010的博客-程序员宅基地

管理员:首页、个人中心、轮播图、公告栏、用户管理、新闻列表、新闻分类、删除申请管理、学生成绩管理、核对申请管理秘书:首页、学生管理、删除管理、学生成绩、个人信息任课老师:首页、个人中心、学生成绩、核对申请学生:首页、个人中心、我的成绩、核对申请_python学生成绩管理系统设计报告

课堂笔记-程序员宅基地

1. 多态形式1: 父类pet做形参 子类dog做实参 父类作为返回值形式2. 多态类型的转换 父类做类型,子类实例化2.重写的方法 1)位置:子类和父类有同名的方法 2)方法名相同,返回类型和修饰符相同,方法体不同多态的优势 1.可以减少类中的代码量,可以提高代码的可扩展性和可维护性 2 向上转型——子类...