老外总结的编程技巧

最近看了一些国外的技术网站,发现还是有一些好东西的,下面给大家分享一下:

1.学习一门新的编程语言(Learn a new programming language)

学习一门新的编程语言将有助于你开拓新的思维方式,特别是当你使用不熟悉的语言时,你将学习到很多种思维方法应用到语言中。而所学习到的新思维方式,你可以运用在你所熟知的语言中。甚至有时你会使用新学的语言进行你的重要项目。

2.阅读好的且具有挑战性的编程书籍(Read a good, challenging programming book)

从书中你将学到很多,虽然实践很重要,但通过阅读好的且具有挑战性编程书籍是你改变思维方式重要的一步。这种具有挑战性的书籍包括《The Art of Computer Programming》、《Structure and Interpretation of Computer Programs (SICP)》、《A Discipline of Programming or the famous dragon book》。

当然,你可以选择一些难度较低的书籍,但要避免选择那些“傻瓜”书籍,即称能够在24小时或是21天内教会一切的书籍,从这些书中无法学习到提高编程技巧的内容。

3.加入一个开源项目( Join an open source project)

加入一个开源项目的优势是什么呢?你可以和其他人一起工作,当遇到不熟悉的代码时,你将会去研究,学习理解一个不熟悉的代码库(这应该是很有挑战性的)

4.解决编程难题(Solve programming puzzles)

你应该试图去解决代码问题;程序员在编程过程中总是尝试用最少的步骤来解决遇到的难题,而在这过程中,你可以学到语言的更深奥和更特殊的功能,从而你会不得不思考代码的创造性。

5.计划(Program)

在编程开始之时,制定一个计划,拟定设计框架并实现它。并重复该操作。通过编写代码是学习代码的最好方式。你将在错误中不断的学习、提升自己,相比于看书完成项目更加有激励性同时也带你带来更多的乐趣。

6.阅读学习代码(Read and study code)

学习著名的软件编程,如Linux 内核编程。MINIX3相对学习是一个很好的操作系统。从中你可以学到很多新的语言用法,对软件架构也能略知一二。虽然阅读不熟悉的代码比较困难,但你会受益很多。

通过阅读可以使你了解更多的API,或者是一门编程语言。

7.阅读一些编程网站( Hang out at programming sites and read blogs)

阅读不同的编程网站(如论坛和StackOverflow,或者关注公众号程序员互动联盟(coder_online))将有助于你通过其他程序员获取知识。

同时,你应该阅读大量的博客,说起软件行业中博客写的好当属Joel,(尽管他现在不在写博客了,很多有价值的文章依然存在文档里)。

当然,news.ycombinator.com.也不错。

8.书写代码(Write about coding)

在博客上练习书写代码。你也可以在不同的问答网站上回答问题。同时你也可以写一些教程(DreamInCode)。在你编写代码时,你会想着要正确编写,为了能够解释其中的问题和技术。编写代码还能够体现你的编程知识,提供你英语语法,这些在编程中都是很重要的。

9.学习基础的编程语言( Learn low-level programming)

学习基础编程语言,它们能够帮助你理解基层架构。比如C语言,或是汇编语言。

学习计算机是如何执行程序,知道操作系统是如何运作的,这是程序员最基本的要求。如果你想好好了解基础语言,你可以阅读有关计算机结构,操作系统,嵌入式系统,驱动程序操作系统开发等等的书籍。

10.有不懂得不要随便上网查(或问别人),自己多想想!(Don’t rush to StackOverflow. Think!)

代码出错时,你可能会急于用最少的时间去解决它。你会怎么做呢?上baidu(google也行)网站吗?Don‘t do this。要认真思考问题,拿出纸和笔,认真想出解决方案。放松大脑保持头脑清晰然后再重新看代码。

如果一小时后还没解决问题,再尝试上网寻找答案。但要记得,首先要自己思考解决问题哦。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-05-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

面对20亿行代码,Google如何管理?

1918
来自专栏张善友的专栏

ASP.NET MVC的SNS软件Spacebuilder

SpacebuilderV4.0 展示了全新构建的微博、贴吧、群组、日志、问答、相册、积分商城等社区功能,Spacebuilder开发团队却在V4.0正式版发布...

1726
来自专栏跨界架构师

如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念

    DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了。自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的...

672
来自专栏性能与架构

Uber首席架构师聊架构

微服务模式的利弊 微服务模式允许使用不同的开发语言,例如一些服务使用 Node.js,一些使用 Python,一些使用 Go,另一些使用 Java,Uber就...

3427
来自专栏州的先生

从网络爬虫到机器学习该如何学习?

1325
来自专栏SDNLAB

数据中心网络虚拟化技术 概要

随着云计算和大数据等新兴应用的快速发展,“数据中心即计算机”(data center as a computer)的技术发展趋势逐渐明朗。数据中心作为一台计算机...

39312
来自专栏重庆的技术分享区

成功准备微服务的5个步骤

原文地址:https://medium.com/@kikchee/5-steps-to-successfully-prepare-for-microservic...

1042
来自专栏云计算D1net

云计算时代 物联网新模式的潜力谁来挖掘

计算和物联网是现在很热的话题,从目前很多用户的使用习惯来看,绝大多数用户还是在利用互联网进行信息的获取和交流,虽然一个充斥着数以十亿、百亿计可时刻供应用程序和用...

32910
来自专栏互联网杂技

20个有用的UX日常使用工具&APPs

交互设计师或产品经理在工作中需要一些用户研究的工具,此文分享了一些日常使用的app及在线工具,希望对大家有所帮助~~ 在UX团队工作通常需要掌握相当多的在线工具...

3398
来自专栏PPV课数据科学社区

震撼可视化,4分钟看完世界5500年版图演变(视频)

导读:人类历史进展?国家版图如何变化?5500年厚重的历史如何被压缩到4分钟内?请观看视频,感受可视化的魅力。 ? 超震撼 | 地学最前沿的16幅动图 ? ...

3215

扫码关注云+社区