医生和程序员 哪个更好_你正在成为一个更好的程序员吗

医生和程序员 哪个更好

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

医生和程序员 哪个更好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值