但愿在软件开发生涯初期就知道的 4 件事

个人软件开发生涯开始于15年前。编程

可是直到最近的5年,我才真正开始看到本身在软件开发领域的巨大进步。编程语言

这里有一些感悟是我但愿可以在我进入软件开发领域时所知道的事情,若是我早一些领悟到,相信会比如今更加成功,也更节省一些时间。ide

软件开发工做没有“正确方法”单元测试

在软件开发生涯的早期,我曾经浪费了大量的时间在学习和争辩,错误的相信有一条“绝对正确的方法”可以应付软件开发的不少方面。学习

结果证实我曾经认为关于软件开发的每一件正确的事情到最后都是错误的。测试

可是更重要的是,我发现不多有事情是黑白分明的。在写代码和开发软件时所作的几乎每个决定都取决于当时所处的环境。spa

我曾经讨论过关于技术的宗教式信仰是如何对软件开发者不利的,但这个话题已超出技术范畴。orm

没有万能的最佳实践方式,这句话很对。甚至像“是否应该进行单元测试”、“敏捷开发和瀑布模型哪一个最好”这种高热度的话题都不会有一个直截了当的简单答案。cdn

在个人职业生涯中,我已经浪费了大量时间在这种“正确方法”上以致于最终一无所得,而不是探寻可让我走更远的“实用主义”道路。游戏

一页一页看书不是最佳的学习方式

reading-book_thumb

当我第一次想提高本身的编程水平和各类技术水平时,我花了很是多的时间一页一页地读具体的技术类的书。

读书并无错,可是要有选择那些重要的书和重要的章节读。

好比,我记得我曾经读过一本很是厚的关于Visual C++的书(我很是肯定是《Beginning Visual C++ 2012》的早期版本),总之,这本书是一本包含了海量知识的好书,可是一页一页读并非学习Visual C++的最佳途径。

早知道我就应该像过流水帐通常地粗略地看下这本书的全部章节,以了解Visual C++包括哪些知识点,而后再考虑哪些部分是最重要的,是应该首先读的。

若是我坐下来实际练习下书中的基础练习题而不是仅仅看过或跳过这些例子的话,会有更多的收获。除非你实际用你的所学解决了实际的问题,不然算不上你学会了这门技术。

深刻学习特别技术是浪费时间

我不只仅浪费时间在一页一页的读书,还常常选择了那些错误的书读。

曾经的我花费了大量的时间读诸如ASP.NET或Hibernate等特别技术的书,而不是读像《代码大全》、《代码整洁之道》、《敏捷软件开发:原则、模式与实践(C#版)》(顺便说一句,若是你尚未读过这些书,我推荐你读一读)。

比起知道你所用的技术的重要性,成为某一特别领域的专家是不重要的。知道某一个具体API调用一点好处都没有,当你须要它的时候只要查询下就行了。

我曾经花费大量时间深刻学习的许多技术中,到最后要不这技术逐渐没落,要不就是太过技术以致于我本身放弃了它。这些特别技术中的绝大多数最终都证实是在浪费时间。

只要是我正在使用,不管什么语言,成为这种编程语言方面的专家都是很重要的,由于在一门特殊语言方面的专业知识可以让你活跃在软件开发领域许多年。 固然,我仍然在花时间深刻学习C++、C#和JAVA,可是,对于如今的我来讲,可能多花一点时间在C++的各类纷繁难懂之处并无什么好处。

技术社区在软件生涯中及其重要

community_thumb

在我早年的职业生涯中,我犯过的一个错误就是没有投入到技术社区中求助或帮助他人。

我老是乐于帮助个人同事,并和我所接触的各种职业打交道,但历来超出我所在公司的人员和岗位范围。

曾经我花了大量时间将本身投入在所在公司的职业生涯中,而没有在软件开发社区中投入一点时间,这点很是的不划算。

曾经我花时间致力于内部技术建设的分享或实践本来也能够在技术社区中作一样的分享和交流,也一样会给我带来工做上的承认。

我也错误的认为我没有什么有价值的事情贡献给技术社区。

如今的我会和不少软件开发的新手们聊天,有时候我想相比咱们他们必定花了不少精力贡献在技术社区,由于和其余新手相比较,他们看起来没有懂的更多,也没那么抓狂。

若是时光可以倒流,我确信年轻时候的本身必定会投入不少时间在技术会议和用户群组上,我会尽早地开始写本身的博客并建立本身的项目和资源与其余人分享,而不是呆呆地读书。

永远有编外项目在作

影响我职业生涯最大的选择可能就是杜绝看电视、《无尽的任务》和《魔兽世界》游戏了,取而代之的是将这些时间用在个人编外项目上。

在过去的生活中我已经浪费了不少时间在作娱乐活动,而不是那些可以充实我生活的事情。

在大约3-4年前,我已经基本和看电视这种活动决绝了,如今的我甚至都不多看电影。看电视和看绝大多数电影都是一种时间浪费,浪费那些本来能够作一些有用之事的时间。多数的电视游戏也是如此,但至少玩电视游戏收获的也不只仅只是无用信息。

我很是喜欢玩电视游戏,并且恐怕也不会有停手的那一天,可是我着实但愿我可以把花费在玩游戏、看电视的时间投入在自有的项目上。

不幸的是,我真正开始本身的第一个项目倒是在大约3年之前,那时的我开始着手建立一个Android应用程序。

当你为别人工做时,可以花时间在本身的项目上很是重要,不然就是在牺牲本身的精力为别人建造帝国。

在过去的几年间,我不只从编外项目中学习到了很多东西,并且也从其中获得了巨大的利益。事实上,其中的一个编外计划:建立Pluralsight课程,是我如今正全职在在作的事情。

将所学揉合起来

以上所说是少数我后悔没有在本身职业生涯开始时不知道的感悟,但从一开始我仍然作了不少正确的事情。

实际上我在一个绝密项目中正将这些信息结合起来帮助开发者开始他们的职业生涯并让他们学会推销本身。

若是你想成为这个项目正式启动后的第一个参与者,在这里注册,到时我会通知你。

你有什么感悟?

当你开始本身的软件开发生涯时你但愿有哪些经验与你们分享呢?请留言让我知道。

相关文章
相关标签/搜索