当前位置: 首页 > 编程日记 > 正文

im和音视频开发哪个更好_找时间成为更好的开发人员

im和音视频开发哪个更好

There’s no time for anything. At least that’s how it feels doesn’t it? No time to learn all the things you think you need to learn to stay ahead of the curve. No time to go back and refactor that ugly piece of code. It works (sort of) and there’s a deadline approaching. No time to write unit tests for everything. No time to write documentation or comments for the next guy who gets stuck maintaining what you wrote. No time to think. No time to breathe. No time!

没有时间做任何事情了。 至少那是那种感觉,不是吗? 没有时间学习所有您认为需要学习的知识,以保持领先地位。 没有时间回去重构那丑陋的代码了。 它有效(有点),并且临近最后期限。 没有时间编写所有内容的单元测试。 没有时间为下一个陷入困境的人写文档或发表评论。 没有时间思考。 没有时间呼吸。 没时间!

Well… if you take the time to read this article, I promise you’ll find yourself with more time for what’s important.

好吧……如果您花时间阅读本文,我保证您会发现自己有更多的时间来处理重要的事情。

I used to think that the only way to be a great developer was to work myself sick. My health, friendships, and family all suffered because of it. Understanding the following 5 truths about time management for a developer is what saved me.

我曾经认为,成为一名出色的开发人员的唯一方法就是让自己生病。 我的健康,友谊和家人都因此而遭受了痛苦。 理解以下有关开发人员时间管理的5个事实,才使我省了下来。

1.您不需要学习任何新事物就能保持相关性。 (1. You don’t need to learn every new thing in order to stay relevant.)

There is no question that a good developer should always be learning, but where you focus your learning can make a huge difference in the amount of time it takes to stay on top of your game.

毫无疑问,优秀的开发人员应该一直在学习,但是将注意力集中在学习上会极大地影响保持游戏顶尖水平所花费的时间。

“The old thing is dead. Long live the NEW, about-to-be-old thing!”
“老东西已经死了。 新的,即将成为旧的东西万岁!”

First of all, don’t get suckered in by headlines on dev blogs that announce a new standard every 37 seconds. Most new technologies, frameworks, and features will never get any real traction and you’ll never need to know them. Those that do emerge will take a lot longer to gain adoption than the blogosphere — and the vendors who hock these new technologies — would have you believe. Companies are invested in their tech stack and, other than a handful of tiny tech startups, they can’t just turn on a dime. So, relax, your career is safe.

首先,不要被每隔37秒宣布一项新标准的开发博客的标题所吸引。 大多数新技术,框架和功能将永远不会获得真正的吸引力,您也无需了解它们。 与博客圈相比,那些确实出现的人要花更长的时间才能获得采用,而那些嘲笑这些新技术的供应商会让您相信。 公司投资于他们的技术堆栈,除了少数的小型科技创业公司以外,他们不能只是一角钱。 因此,放松一下,您的职业生涯就很安全。

Focus your learning on three areas, in the following order of priority:

按照以下优先顺序将学习重点放在三个方面:

  1. Fundamentals — It’s a lot easier to pick up new skills when you have a real command of the underlying fundamentals. For example, if you understand JavaScript deeply, you can master any new JavaScript framework in record speed. If you understand Object Oriented Programming deeply, you can master new object oriented languages quickly, too. Deeply learning the fundamentals will 10x your learning efficiency. Always focus on improving fundamentals above all else.

    基础知识 -当您掌握基本知识时,掌握新技能要容易得多。 例如,如果您对JavaScript有深刻的了解,则可以以创纪录的速度掌握任何新JavaScript框架。 如果您对面向对象编程有深入的了解,那么您也可以快速掌握新的面向对象语言。 深入学习基础知识将使您的学习效率提高10倍。 始终将重点放在改善基础之上。

  2. The latest version/feature of the stack(s) you use the most — There’s a stack of technologies that you probably use every day. These are the tools that will put food on the table for you and your family. When new versions of these tools are released, it’s worth investing the time to learn about them.

    您使用最多的堆栈的最新版本/功能 -您可能每天都会使用一堆技术。 这些是可以为您和您的家人摆上餐桌的工具。 当这些工具的新版本发布时,值得投入时间来学习它们。

  3. In-demand tech that is backed by market leaders — if a big, well established company like Google, Facebook, or Microsoft puts out something new and it starts getting some buzz, it’s worth looking into. There were a hundred and one JavaScript frameworks all vying for attention and then Angular and React showed up and wiped them off the map. I’m not saying there won’t be disruptors that come from nowhere and become the next big thing but, more often than not, no-name tech is just noise.

    由市场领导者支持的按需技术 -如果像Google,Facebook或Microsoft这样的大型,知名企业推出新产品并开始引起关注,则值得研究。 有一百零一个JavaScript框架都在争夺注意力,然后Angular和React出现并把它们从地图上清除了。 我并不是说不会有无处不在的干扰者成为下一个大问题,但无名的技术通常只是噪音。

Learning time should be a part of your schedule. Set aside a specific amount of time for learning every day. It doesn’t need to be a lot of time, even 25 minutes of reading and experimentation every day adds up quickly.

学习时间应该成为您日程安排的一部分。 每天留出一定的时间进行学习。 不需要花费很多时间,甚至每天25分钟的阅读和实验时间都会很快增加。

2.编写好的代码比编写坏的代码要花更少的时间,但事实并非如此。 (2. Writing good code takes less time than writing bad code, BUT it doesn’t feel that way.)

You probably feel like the time you spend on a new feature ends when you run the code and it appears to work. But that’s just the beginning of your time investment. Time spent on a feature includes time spent debugging that feature later and also time spent refactoring and working other code around any poor design decisions you made when implementing that feature. When you start to understand your time investment this way, it becomes obvious that, in the long run, fewer errors and better design are a worthwhile investment.

当您运行代码时,您可能会觉得花费在新功能上的时间结束了,并且似乎可以使用。 但这仅仅是您投入时间的开始。 花在功能上的时间包括花在以后调试该功能的时间,以及花在重构和工作其他代码上的时间,这些代码是围绕实现该功能时做出的任何不良设计决策而进行的。 当您开始以这种方式了解自己的时间投入时,很显然,从长远来看,减少错误和更好的设计是值得的投资。

There are two things you can do that will reduce errors in your code and lead to better design.

您可以做两件事来减少代码中的错误并导致更好的设计。

  1. Use test-driven development. Write the test first, then write the code that satisfies the test. This not only leads to less buggy code but also to better design, because when you have to structure code in a testable way, you end up making smaller, simpler functions that have fewer dependencies.

    使用测试驱动的开发 。 首先编写测试,然后编写满足测试要求的代码。 这不仅可以减少错误代码的数量,而且可以带来更好的设计,因为当您必须以一种可测试的方式来构造代码时,您最终将制作出更小的,更简单的,具有更少依赖性的函数。

  2. Use an iterative design approach. Don’t spend time trying to make code perfect before you’ve spent time trying to make the code work. You’ll never, ever get it right completely in your head. You have to get those fingers banging on a keyboard and produce code that runs and does what’s expected. The problem is that developers tend to make one of two common mistakes; either they spend too much time thinking and not enough time actually doing, or they don’t spend enough time improving their first solution. Follow the mantra first stated by Kent Beck: “make it work, make it right, make it fast” — and in that order.

    使用迭代设计方法 。 在花时间使代码正常工作之前,不要花时间试图使代码完美。 您将永远无法完全正确地掌握它。 您必须让那些手指在键盘上敲打,并产生可以运行并完成预期功能的代码。 问题在于,开发人员往往会犯以下两个常见错误之一: 他们要么花太多时间思考而没有实际时间做,要么他们没有花足够的时间改进他们的第一个解决方案。 遵循肯特·贝克(Kent Beck)最初提出的口头禅:“使之工作,使其正确,使其快速” —并按此顺序进行。

3. 24/7全天候工作并不能使您成为英雄。 管理期望确实如此。 (3. Working 24/7 does NOT make you a hero. Managing expectations does.)

This is the one that nearly killed me. I used to agree and commit to any crazy timeline my boss or client could come up with. I was afraid of saying “no.” I was afraid of letting anyone down. I would do whatever it took to deliver. I have literally slept under my desk, and pulled multiple caffeine-fueled 40+ hour marathon coding sessions.

这是差点杀死我的人。 我曾经同意并致力于老板或客户可能提出的任何疯狂时间表。 我害怕说“不”。 我怕让任何人失望。 我会尽一切努力实现这一目标。 我从字面上睡在桌子下面,参加了多次咖啡因刺激的40个小时以上的马拉松比赛。

At first I was a shining star. I would get a big pat on the back and I felt like a hero. But I set an expectation that was impossible to live up to. Working like that is unsustainable. Eventually, I started to burn out, get sick, and miss deadlines. I started getting a reputation as unreliable and inconsistent. It was bad news.

起初我是一颗闪亮的星星。 我会在后面拍大拍,感觉就像个英雄。 但是我设定了一个无法辜负的期望。 那样的工作是不可持续的。 最终,我开始精疲力尽,生病并错过最后期限。 我开始因为不可靠和前后不一致而获得声誉。 这是个坏消息。

What I eventually came to understand, and what you should commit to learning too, is that the real heroes are the ones who are consistently reliable. They say what they’ll do and do what they say. The only way to be that kind of hero is to manage expectations.

我最终明白的是,真正的英雄是始终如一的可靠人,您也应该致力于学习。 他们说他们会做什么,然后按照他们说的去做。 成为这种英雄的唯一方法是管理期望。

You need to take control of the timelines so that you are always and without fail delivering high quality work exactly on time. This is incredibly difficult at first. It means having to say “no” and having to push back.

您需要控制时间表,以便您始终可以准确地按时交付高质量的作品。 起初这是非常困难的。 这意味着必须说“不”并必须后退。

In the beginning, your boss or client won’t be thrilled by your resistance, but once you demonstrate that you are trustworthy and reliable, everything will start to change.

一开始,您的上司或客户不会因您的抵抗而兴奋,但是一旦您证明自己值得信赖和可靠,一切都会开始发生变化。

Over time, other developers will be late, deliver sloppy work, or burn out and become unreliable. Then you will become the real hero of your team. In fact, learning this made me one of the most in demand consultants in my market. I’ve built a stellar reputation for quality and timeliness, because I vigorously manage expectations.

随着时间的流逝,其他开发人员将迟到,交付草率的工作或精疲力尽而变得不可靠。 然后,您将成为团队的真正英雄。 实际上,了解这一点使我成为市场上需求最多的顾问之一。 因为我积极管理期望,所以我在质量和及时性方面建立了良好的声誉。

4.并非所有花费在“改进”代码上的时间都具有相同的ROI。 (4. Not all time spent “improving” code has the same ROI.)

Spending time is an investment. Like all investments, it’s reasonable to expect a return on investment (ROI). You should be getting back at least as much — and hopefully more — value than you put in.

花时间是一种投资。 像所有投资一样,期望获得投资回报(ROI)是合理的。 您应该获得的价值至少要比投入的价值大得多,而且希望更多。

We talked about “make it work, make it right, make it fast.” It’s a good mantra but there is a trap: “right” does not mean perfect, and “fast” does not mean absolutely as fast as possible.

我们谈到了“使其正常运行,使其正确,快速”。 这是一个很好的口头禅,但有一个陷阱:“正确”并不意味着完美,而“快速”并不意味着绝对尽可能快。

“Right” means that the code works consistently and is easy to refactor. “Fast” means that the speed of execution does not have a negative impact on the overall user experience. The most important thing is that your application feels fast to the user.

“正确”是指代码始终如一且易于重构。 “快速”表示执行速度不会对整体用户体验产生负面影响。 最重要的是,您的应用程序对用户而言感觉很快。

So, don’t waste time trying to shave time off a function that is barely used, or trying to save another few milliseconds on something that already runs faster than a human can blink (~300ms). And don’t waste time trying to refactor working, well-structured code because you just learned some new technique or approach that you’ve convinced yourself you suddenly have to go back and apply to everything you’ve ever done.

因此,不要浪费时间试图减少几乎不使用的功能,也不要试图在已经比人类眨眼(〜300ms)快的速度的事情上节省几毫秒。 并且不要浪费时间尝试重构有效的,结构良好的代码,因为您刚刚学到了一些新技术或新方法,就使自己确信自己突然不得不回到过去并应用到您所做的所有事情中。

5.计划的停机时间使您工作效率更高。 (5. Scheduled down time makes you more productive.)

This was a very hard one for me to learn and accept. How can you possibly be more productive when you’re not spending all your time producing? Well, it’s true.

对我来说,这是一个很难学习和接受的工作。 当您不花所有时间在生产上时,如何提高生产力? 好吧,这是真的。

According to Allison Gabriel, an assistant professor of management at Virginia Commonwealth University who studies job demands and employee motivation, “There is a lot of research that says we have a limited pool of cognitive resources. When you are constantly draining your resources, you are not being as productive as you can be. If you get depleted, we see performance decline. You’re able to persist less and have trouble solving tasks”.

弗吉尼亚联邦大学管理学助理教授艾莉森·加布里埃尔(Allison Gabriel)说,他对工作需求和员工激励进行了研究,“许多研究表明,我们的认知资源有限。 当您不断消耗资源时,您的工作效率就没有达到应有的水平。 如果您用完了,我们会发现性能下降。 您可以减少坚持,解决问题的麻烦”。

Always working sets off strain reactions, such as stress, fatigue, and negative mood. These drain your focus and your physical and emotional resources.

始终工作会引起压力React,例如压力,疲劳和负面情绪。 这些会消耗您的注意力以及您的身心资源。

The brain’s ability to self-regulate — to stay disciplined — wanes with each exercise of self-control during the day. It’s a loss of resources that must be replenished. Otherwise it becomes harder to stay on-task, be attentive and solve problems.

白天,每进行一次自我控制,大脑的自我调节能力(即保持纪律)就会减弱。 这是必须补充的资源损失。 否则,保持工作,专心和解决问题变得更加困难。

Your mind and body need down time, and they’re going to get it whether you like it or not. So, schedule that down time. Actually plan and put on your calendar real scheduled breaks. This will allow you to take down time without feeling guilty about it. It will make work-time easier to endure because you’ll know that you have a scheduled break right around the corner.

您的身心都需要停工时间,无论您是否愿意,他们都将度过难关。 因此,安排停机时间。 实际计划并在日历上安排实际的计划休息时间。 这样您就可以减少时间而不会感到内gui。 这将使工作时间更容易忍受,因为您将知道您已计划在拐角处休息。

更多帮助和资源 (More help and resources)

To help you even more, I’ve put together a list of free and useful resources (videos, tutorials and websites) that can help you better understand and implement the insights I’ve just shared with you. You can get it here.

为了进一步帮助您,我整理了一系列免费和有用的资源(视频,教程和网站),它们可以帮助您更好地理解和实施我刚刚与您分享的见解。 你可以在这里得到 。

I hope you found this article valuable. Don’t forget to help others by recommending ❤ and sharing it.

希望您觉得这篇文章有价值。 不要忘记通过推荐❤并与他人分享来帮助他人。

UPDATE: Watch as I discuss this article and more with Free Code Camp’s Quincy Larson.

更新:当我在Free Code Camp的Quincy Larson讨论本文以及更多内容时,请注意。

翻译自: https://www.freecodecamp.org/news/finding-time-to-become-a-better-developer-eebc154881b2/

im和音视频开发哪个更好

相关文章:

4-8 同义词

雅思阅读:剑4~剑8阅读的所有同义词转换 雅思必考词汇 Cambridge 4 TEST 1 1. ignorepay no attentionnot pay any attentiontake no noticenot take any notice忽略,无视v. 2. encounterfaceconfrontmeet遇见,遭遇v. 3. mistaken viewmisconc…

swift可选类型

import UIKitvar array1 ["1","2","3","4","5"];// 1 if let 是一个组合关键字 来进行可选绑定 // 解决Optional对象解包时产生空对象的处理。 for i in array1 {print(i); }if let idx array1.firstIndex(of: "4&q…

java 配置及Eclipse安装

jdk下载 点我~ Java SE Development Kit 8u20 You must accept the Oracle Binary Code License Agreement for Java SE to download this software. Accept License Agreement Decline License Agreement Thank you for accepting the Oracle Binary Code License Agree…

golang 命令行_如何使用Golang编写快速有趣的命令行应用程序

golang 命令行by Peter Benjamin彼得本杰明(Peter Benjamin) 如何使用Golang编写快速有趣的命令行应用程序 (How to write fast, fun command-line applications with Golang) A while back, I wrote an article about “Writing Command-Line Applications in NodeJS”.不久前…

【Pyhon 3】: 170104:优品课堂: GUI -tkinter

from tkinter import * root Tk() root.title("BMS 图书管理系统") lbl Label(root, text书名:)#(1) lbl.pack() #(2) lbl.place(45.50) #(3) web 早期布局,, 常见。 lbl.grid(row0, column0) # web 早期布局,, 常见…

swift Sequence 和 SubSequence

1 序列 Sequence 序列协议是集合类型结构中的基础。 一个序列是代表有一系列具有相同类型的值,并且对这些值进行迭代。 协议中主要有两个参数,一个是元素Element,一个就是迭代器Iterator /// A type representing the sequences elements.…

PDF数据提取------1.介绍

1.关于PDF文件 PDF(Portable Document Format的简称,意为“便携式文件格式”)是由Adobe Systems在1993年用于文件交换所发展出的文件格式。它的优点在于跨平台、能保留文件原有格式(Layout)、开放标准,能自…

javascript_治愈JavaScript疲劳的研究计划

javascriptby Sacha Greif由Sacha Greif 治愈JavaScript疲劳的研究计划 (A Study Plan To Cure JavaScript Fatigue) Like everybody else, I recently came across Jose Aguinaga’s post “How it feels to learn JavaScript in 2016”.像其他所有人一样,我最近遇…

SQL Server中SELECT会真的阻塞SELECT吗?

在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.TEST WHERE OBJECT_ID 1 这个查询语句,其申请、释放的锁资源的过程如下所示: 而且从最常见…

appium IOS真机测试

看了 http://blog.csdn.net/today520/article/details/36378805 的文章,终于在真机上面测试成功。 由于没有开发者账号,不能发布应用到机器上面。所以就用了网易新闻的客户端来测试 没有开发者账号,貌似不能真正的开始测试。只能启动一下客户…

siwft 写时复制 Copy-On-Write

写时复制 Copy-On-Write 1 定义 在siwft 标准库中,Array,Dictionary,Set这样的集合类型是通过写时复制来实现的。 import Foundationvar a1 [1,2,3]; var a2 a1;// 将a1 复制给 a2,地址打印结果是相同的// 0x1--0x2--0x3 pri…

超越技术分析_超越技术面试

超越技术分析by Jaime J. Rios由Jaime J. Rios 超越技术面试 (Transcending the Technical Interview) “Wow. What a chastening and shameful experience that was.”“哇。 那真是一种令人st目结舌的经历。” This was my immediate mental reaction after I completed my…

轻松获取LAMP,LNMP环境编译参数配置

轻松获取LAMP,LNMP环境编译参数配置 作者:Mr.Xiong /分类:系统管理 字号:L M S大家是否遇到过去了新公司,公司内的LAMP,LNMP等所有的环境都是配置好的(已经在提供服务了),公司又没有留下部署文档…

java内存分配--引用

栈内存 对象地址 堆内存 存放属性 public class TestDemo{ public static void main(String args[]){ Person perA new Person(); //出现new百分之百就是要申请堆内存 perA.name"王强"; //perA 地址存放在栈内存中,同一块内存只能存…

iOS NSObject对象内存大小

NSObject内存大小 类的本质是结构体 无须赘述 struct NSObject { Class isa; };一个类对象的实例大小是8个字节 之所以打印出的16个字节,是因为一个NSObject 最小开辟16个字节 NSObject *obj [[NSObject alloc]init];// class_getInstanceSize 这是runtime 获…

客户端渲染 服务端渲染_这就是赢得客户端渲染的原因

客户端渲染 服务端渲染A decade ago, nearly everyone was rendering their web applications on the server using technologies like ASP.NET, Ruby on Rails, Java, and PHP.十年前,几乎每个人都使用ASP.NET,Ruby on Rails,Java和PHP等技术…

java多线程三之线程协作与通信实例

多线程的难点主要就是多线程通信协作这一块了,前面笔记二中提到了常见的同步方法,这里主要是进行实例学习了,今天总结了一下3个实例: 1、银行存款与提款多线程实现,使用Lock锁和条件Condition。 附加 :…

Java8中Lambda表达式的10个例子

Java8中Lambda表达式的10个例子 例1 用Lambda表达式实现Runnable接口 Java代码 //Before Java 8: new Thread(new Runnable() { Override public void run() { System.out.println("Before Java8, too much code for too little to do"); } }).start(); …

OC的对象的分类

OC的对象分类 一 oc的对象分类主要分为3种 1 instance 对象: 实例对象就是通过alloc 出来的对象,一个类每一次的alloc都会产生一个新的实例对象 StudentA *a [[StudentA alloc]init];StudentA *b [[StudentA alloc]init];// 打印结果如下 地址是明显…

如何在国内上medium_在Medium上写作的风格指南

如何在国内上mediumAfter spending more than 1,000 hours writing and editing stories for our Medium publication, I’ve decided to create this living style guide for contributors. Feel free to use it for your publication as well.在花了1000多个小时为我们的《中…

C# webform上传图片并生成缩略图

其实里面写的很乱,包括修改文件名什么的都没有仔细去写,主要是想记录下缩略图生成的几种方式 ,大家明白就好! 1 void UpImgs()2 {3 if (FileUpload1.HasFile)4 {5 string fileContentType FileUpload1.Pos…

ios中的自动释放池

自动释放池中是否有虑重功能 1 autoreleasepool { 2 UIView *view [UIView alloc] init] autorelease]; 3 [view autorelease]; 4 } 这样写在自动释放池的队列中是两个对象还是一个对象,就是说把view加到自动释放池的队列时,队列本身是…

arch linux安装_如何从头开始安装Arch Linux

arch linux安装by Andrea Giammarchi由Andrea Giammarchi In this article, youll learn how to install Arch Linux from scratch… and in about 5 minutes. So lets get to it.在本文中,您将学习如何从头开始安装Arch Linux,大约需要5分钟。 因此&am…

CoreCRM 开发实录 —— Profile

再简单的功能,也需要一坨代码的支持。Profile 的编辑功能主要就是修改个人的信息。比如用户名、头像、性别、电话……虽然只是一个编辑界面,但添加下来,涉及了6个文件的修改和7个新创建的文件。各种生成的和手写的代码,共有934行之…

iOS KVO 的实现原理

KVO 的实现原理 一 原理 1.KVO是基于runtime机制实现的 2.当某个类的属性对象第一次被观察时,系统就会在运行期动态地创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter 方法。派生类在被重写的setter方法内实现真正的通知机制 …

利用UltimateAndroid框架进行快速开发

UltimateAndroid是一套集成了许多现有优秀的Android开源类库并将之组合成一个整体的Android快速开发框架。框架目前主要包含的功能有View Injection,ORM,异步网络请求和图片加载,自动化脚本测试,磁盘LRU等功能.同时提供了类似于TripleDes、Webview快速设置、Md5处理…

溢出内容菜单_停止过度使用溢出菜单

溢出内容菜单by Daniel Burka丹尼尔伯卡(Daniel Burka) 停止过度使用溢出菜单 (Stop the overuse of overflow menus) You know those obscure menu buttons on apps and websites that reveal even more menu options? They usually have an ellipsis “…” or an arrow ▼…

KVC 和 KVO

KVC 键值编码 全称是Key-value coding,翻译成键值编码。它提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制。 1.通过key(成员变量的名称)设置value(成员变量的值) - (void)setValue:(…

datasnap的客户端回传机制

最近,学习XE6下的DataSnap回叫技术编译代码,体会如下:第一篇 服务器与客户端回叫 从Delphi2010开始,DataSnap支持回叫(Call Back)机制。这样,在调用耗时较长的方法时,通过回叫机制…

Block 底层1

Block 本质来讲是OC 对象,其内部有一个isa指针。 1 Block 的声明 一言以蔽之: returnType ( ^blockName)(parameterTypes) ^returnType (parameters) {}; returnType 返回的类型 可以为Void,为Void的时候可以省略^blockName …