标签:提升 计划 sys 提高效率 结果 18C 时代 上下 记录
程序员书库(ID:CodingBook) 猿妹编译当一些软件工程师看到一篇文章提到“高级”一词,往往就不想点开看了,的确,成为一名高级工程师需要大量的时间和经验,但只要你努力就可以成为一名出色的工程师,一位伟大的初级工程师......
你需要编写干净的代码,遵循最佳编程方式,做你擅长的事可以加快你成为一名高级工程师,甚至走上CTO的职业道路,下面就一起来讨论一下如何成为一名出色的程序员。
你是否还不了解特定的设计模式,不要责怪课程、书本或者讲师,学习是你自己一个人的事,每一个老师都希望你能学好,而且你有很多学习选择的机会。
你上周是否提交了一个破坏API调用的变更?即使这可能是一种罕见的情况,或者说是你无法预测会发生的事情,但无论如何你都应该承担相应的责任,首先,承认自己犯了一个错误,然后着手去不就解决,以此为契机,学习和记录出错的地方,让自己接下去可以做的更好。
你是否觉得自己无法跟上新事物的步伐,当你意识到这一点的时候要克服过来可能很难,尤其是你有孩子要照顾并且还想保证一定社交生活的时候,但即便如此,依然不能放弃自我成长。你可以尝试比上班时间提早一个小时起床,将这一小时花在学习新事物上,或者在周末空出几小时来做这件事。
你是否离办公室太过遥远,每天要花很长的时间在上下班路上。针对这一点你可以找一个公司附近的房子,它可能比较昂贵,但是反过来想,它可以节省你很多时间和精力,这样一来你就有更多的时间可以去学习新事物,从而帮助自己进一步提升,最后得到更多的薪资报酬。
很多程序员都忽视了基础知识的重要性,因为它们在工作中的效果并不那么明显,计算机科学的基础知识说白了就是数据结构和算法,你一定要能够自己实现一些最常用的算法和数据结构,而不需要借助教科书。
当你深入了解算法和数据结构之后,你将能够以直观的方式解决软件开发中的实际问题,根据沃尔特·艾萨克森(Walter Isaacson)撰写的爱因斯坦传记,爱因斯坦认为“直觉不过是早期知识经验的结果。” 在软件开发中,先验知识经验需要扎实的基础知识。
正如Linux之父Linus Torvalds所说的:
事实上,程序员之间的差别就在于他们认为是代码更重要还是数据结构更重要。烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。
像微软、谷歌、亚马逊之类的大型科技公司的技术面试都是主要围绕计算机科学底层基础知识展开的。换句话说,无论你使用哪种类型的编程语言,你的代码都只是算法和数据结构的表面展现形式。
无论你多么努力,人际关系都非常重要,再多的钱都买不来和家人陪伴的时间,不要把自己全部的生活都集中在软件开发上,这样会让你不快乐,也会让你感觉与他人的联系更少,更痛苦,最后适得其反。
正如YC Combinator的创始人山姆?奥特曼(Sam Altman)所言:不要为了提高效率而忽视了你的家人和朋友,这是一个非常愚蠢的权衡,很可能还会降低效率,因为你不会那么快乐。说到底,我们不仅需要时间充电,还需要和别人保持联系。
无论你是否是某个项目的唯一工程师,都不要让自己只考虑自己本身,一些工程师认为,胜利就是自己比同事强,认为如果自己的同事在领导面前表现很糟糕,自己获得升职加薪的机会就更大,然后过大的炫耀自己的实力,贬低同事的能力,但是这样做会损害整个团队的生产力。
无论处于何种情况,你都应该把团队放在第一位,考虑互惠互利的解决方案,与人打交道的能力是生活中的关键领域之一,毫无疑问,大型项目是由许多团队合作开发的。
比尔·盖茨(Bill Gates)与艾伦(Allen)共同创立了Microsoft,埃隆·马斯克(Elon Musk)与他的兄弟金巴尔(Kimbal)创建了他的第一家IT公司Zip2,然后他将该公司以3.07亿美元的现金和3400万美元的证券出售给了AltaVista。Instagram最初由Kevin Systrom和Mike Krieger创立。亚马逊拥有超过341,000名员工。微软拥有12万多名员工。谷歌经过大量研究,建立了一支完美的团队。
每个人都可以自由地贡献,合作和参与他们想要的一切。每当你发现自己与同事发生争执时,都应尝试了解他们的核心兴趣。与他们打交道,使他们变得互惠互利和富有成效。这样,你的团队就可以利用每个成员的优势来提高生产力。团队合作大于各部分独立成员的总和。如果你想成为一名优秀的程序员,请先尝试让你的团队更加团结,让每个人都能发挥自己的特长。
我们生活在一个时刻都能让你分神的时代,我们会收到各种各样的垃圾邮件、垃圾短信等,我们的注意力会被不必要的干扰消耗殆尽,这不仅会占用我们大量的时间,还会增加我们的压力和内疚心理,因为这时候我们会开始想为什么我们不能完成我们本该完成的事。
很显然爱因斯坦没有手机,但是他也有自己排除干扰的方式,爱因斯坦的儿子曾表示:即便是最大声的婴儿哭声都不会打扰到爱因斯坦,他可以完全不受噪音干扰持续工作。爱因斯坦自己也曾说他能够在两三小时内完成一天的工作量。
软件工程师可以像爱因斯坦学习,练习屏蔽干扰,不要认为自己在无数次查看微信消息后依然能集中精力工作。
当我们能够将自己从这些干扰中分离出来,并运用有效的习惯,我们就增加了深入学习的机会,结果,我们就会变得更有效率。《高效能人士的七个习惯》的作者在书中明确指出:“我们大多数人在紧急的事情上花了太多的时间,而在重要的事情上花的时间却很少”,他进一步解释道:“关键不是优先考虑你的日程规划,而是安排好你的优先事项。”显然,不是每个任务都有同样的重要性和紧迫性。你应该遵循以下顺序:
如果你想成为一名高效的工程师,你需要充分利用你的时间,把最重要的事情放在你的日程上。成为自己时间的领导者,按照以上优先顺序管理你的日程。分清轻重缓急似乎很难,因为你可能担心会错过其他的事情。然而,一旦你习惯了这样做,并看到它带来的好处,这一切都会变的简单。
软件开发是我们这个时代最炙手可热的职业之一。不断有新的工作空缺,吸引着刚毕业的年轻人和各行各业的已就业人员。他们都认为成为一名软件工程师,就能获得很好的薪水,因此,毫无不犹豫的就冲进了这个行业。
但是只有你热爱学习编程,你才会变的更加强大,这是为数不多的需要你不断学习新东西的职业之一,你需要了解的不仅仅是现有的概念,你还必须适应不断发明的新技术,你必须适应市场的变化,学习目前被认为最有价值的新事物。
对框架是如何工作和构造的感到好奇。当你彻底学习某些东西时,你就对其机制和功能有一个清晰的了解,不要简单的认为scikit-learn是一个很棒的机器学习框架,你还应该学习一下它的底层技术原理,尝试贡献和改进它的功能特性。
卓越不是偶然的,而是精心计划、努力工作和献身精神的结果。如果有一天你成为了一个优秀的程序员,那一定是你足够热爱编程。
标签:提升 计划 sys 提高效率 结果 18C 时代 上下 记录
原文地址:https://blog.51cto.com/15060204/2565993