
软件研发工作包括软件设计工作, 软件开发工作和软件测试工作,是重要的工程技术类工作。现在市值最大的上市企业很多都是软件企业,比如谷歌,微软。有的企业虽然不能被称为软件企业,但软件研发也很重要,比如苹果。软件研发工作的基础是软件编程,也就是代码编写。科研人员,设计人员,开发人员,测试人员,维护支持人员,应用工程师,学生,技术爱好者都需要更好掌握软件开发技术。更好的代码编写能力和代码阅读能力可以带来更好的工作效率。
代码编写能力不是一种可以轻易获取的技术能力,软件开发对人员的要求比较高。听说即便在微软,有的研发小组一位女工程师也没有;这项工作的难度可见一斑。当然,软件开发工作也有很多的层次;软件工厂里也有软件蓝领工人。不论读者属于哪种人群,提高自己的代码编写能力和代码阅读能力都是最最重要的。新千年里,仍然不会很好使用软件的人员和仍然没有驾照的人员一样;都是比较急迫需要学习的。对软件的更好掌握意味着最好能够阅读代码和编写代码。帮助普通人阅读代码,设计软件和编写代码就是在线编程平台的任务目标。
软件编程不是一项可以吹嘘想象的任务;开发好的软件必须能够运转并且按照设计要求运转。软件是否开发成功需要检验测试。事实上,软件测试工作很重要;大型的软件企业对软件测试工作有很高的要求,也投入大量工程师完成软件测试任务。可能每个普通人都遇见过软件崩溃和软件故障,但是某些工作环境和某些项目却要求软件运转不能失败。学习编程需要把程序提交到在线编程平台,平台可以运行并测试提交者编写的程序。现在,在线编程平台对全球的每位普通人免费提供服务;条件非常好。不像面谱和谷歌,国内想访问还得使用翻墙软件;费钱费时费力。

在线编程平台现在最好的就是 LeetCode; 其实还有一家追随平台叫 LintCode。好像苹果的身后有家叫 OPPO的手机企业,现在在国内市场表现惊人;国内市场已经击败苹果。LintCode 支持简体中文,平台基本与 LeetCode 一样;笔者曾经很高兴的想使用这个平台。但很可惜的是,进入LintCode后,发现 LintCode 有巨量的问题和错误;至少在笔者看来,LintCode 比起 LeetCode 差距还很大。当前,LintCode 还不能正常使用;不能提供高质量的企业级服务。顺带着说一句,LeetCode 平台也有付费服务,不过大部分的服务项目都免费。

进入到在线编程平台后,首先需要选择问题列表中的编程问题。看到编程问题后,工程师需要提交程序代码给平台。平台将会运转工程师提交的程序并对程序进行测试。每个编程问题都会匹配很多项的测试用例,这些测试用例会对提交者的方案进行多维度的检测;有问题的代码会被立刻叫停。平台会给每段问题代码给出错误解释。如果代码通过检验,平台会接受软件方案;平台会给出程序方案的排名位次图表。

在线编程平台写代码会有难忘的回忆。自以为很棒的代码可能被反复叫停,冷汗不断眼神呆滞;看着很简单的问题可能拖到半夜还没做好,不吃不喝不睡-忘掉一切迷失在信息世界;不断的改进仍然无法突破,最后对方案推倒重来;每一次失败都会带来进步。每当编好一段代码回望前程,仿佛山峰回望:无限风光在险峰。

网友评论