10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员

成为一名硅谷的工程师可能是很多中国程序员的梦想。硅谷被公认是目前世界上云集了最多优秀工程师和知名科技公司、创业公司的地方,吸引了全球无数投资者、创业者和工程师的目光。在那里工作的工程师,有着令人羡慕的职业发展前景,薪酬待遇。此外,他们出众的教育背景,扎实的专业能力,创新的思维,专注的敬业精神也成为了其他工程师们学习的标杆。

下面总结的10条建议,来自一些有关编程的网站、社交平台和博客,给出这些建议的人大多数也是工程师(当中包括在硅谷工作的),以及一些专门研究计算机科学的学者。如果你有志成为一名出色的程序员,不妨借鉴一下这些宝贵的建议和他们在工作中的经验和心得,从而令自己在编程的学习和工作中不断提高。虽然不是每个程序员都可以有机会在硅谷工作,但每个人都可以通过努力,让自己变得更出色,甚至有一天,你会比在硅谷的工程师更加优秀。

1. 精通一种编程语言

编程语言是一种用来对计算机进行操控的工具。精通一种编程语言要比对一堆编程语言都只是略懂皮毛要好。编程是一门专业性很强的工作,它对程序员的要求也是很严格的。优秀的程序员必须精通至少一种编程语言,能够轻松地解决所碰到的问题。

2. 成为一名系统的调试员

成为一名系统的调试员,这意味着当你在进行调试的时候,你对你的代码有一个很好的构思模型。这就是说,当你的程序出了问题时,你可以对一些出错的程序作出假定,而不是盲目地进行修改直到你的程序正常为止。

3. 有一个出色的编程环境构思模型和硬件构思模型

大多数的程序员都需要与外界互动,因此了解你的编程环境是很重要的。这个包括了输入/输出,以及你的编程语言所提供的并发原语,你的程序获得外界信息的方式(例如环境变量和命令行参数等),还有就是你的操作系统处理文件访问,设备访问,搜索路径等等。

了解你所使用的硬件是如何工作的,这可以帮助你更有效地写代码。即使你正在使用一种更高级的编程语言,你仍然需要了解很多东西,例如调用堆、MMU、上下文切换的成本、记忆库的层次结构,以及你所连接的网络特性等等,这些将让你在做出编程决定时得到预示。

4. 拥有很好的数学思维

虽然编程并不像行外人所想的那样,需要很深奥的数学知识,但是当你着手处理一些比较棘手的问题时,你会发现如果拥有很好的数学思维会让你的工作方便很多。很多有趣的编程领域,例如计算机图形、信号处理和密码使用法都要求要有深厚的数学知识。即使你只是在评估代码的性能,它同样需要一些统计思维。

5. 能够从零开始写一个程序和快速写代码

从零开始写一个程序是一个优秀程序员必须具备的能力。很多时候,尝试一些不同的解决方案并从中选择最有效的,这样比只是不停地思考一种解决方法更有效。优秀的程序员还具有能够快速写代码的能力。这种能力是通过不断地学习,思考和实践积累而来的。

6. 拥有团队合作精神

很多时候程序员要做的项目并不是从零开始的,而是要与其他人一起合作,共同开发一个项目,每个人负责部分工作,因此拥有团队合作精神十分重要。和比自己优秀的人一起工作,树立一个共同的目标,尽力帮助别人,而不是害怕竞争,这不仅有利于项目的顺利完成,也有助个人能力的提升。对于团队工作经验不多的程序员,可以多参与一些社交平台或社区的活动,看看那些大牛们如何写代码,还可以通过参与讨论,观看编程直播,在线交流等方式来提高自己的能力和团队意识。Livecoding.tv 就是一个不错的社交平台,那里聚集了世界各地的程序员,大家可以在线交流,讨论如何写代码,还可以全程直播写码。

livecoding.tv上也有很多来自国内、台湾和香港的程序员通过平台直播写码。

7. 通过实用的工具提高效率

这不是说一个优秀的程序员必须懂得使用所有工具,而是选择适合自己和项目开发所需要的工具。很多程序员会在他们自己个人的社交帐号或社交平台上推荐一些他们经常使用的编程工具和编程实例,多浏览这些信息,从中你会得到很多启发。笔者在livecoding.tv上,看到有应用于各种程序设计语言的工具介绍。感兴趣的朋友,可以浏览他们的博客空间

8.通过开发实际的项目积累经验

进行实际的项目开发是最好的让一个程序员变得更优秀的方法。尤其是你要在压力下开发一个项目,面对变化无常的客户以及真实的多变的开发环境,还有很多真实发生的问题,这些困难会让你快迅成长成为一个优秀程序员。

每年开发一个自己喜爱的项目,直至它完成为止。这样可以让你突破自己的界限和让你对开发项目保持兴趣。这个项目可以是你有过体验的并且是喜爱的,也可以是你不知道的一些事情。例如如果你已经懂得了游戏开发,但不懂Ruby,那么你可以尝试用Ruby来开发一个游戏软件。

 

9. 站在终端用户的角度来看待你的应用程序

优秀的程序员并不会是在封闭的空间里编写代码就可以了,而是要站在终端用户的角度去评估自己所编写的软件。终端用户不是专业人员,他们通常会把软件看作是一件神奇的工具,而在程序员的眼中,软件是一个逻辑的步骤。也可以说,在程序员看来一件简单而逻辑性的事情,在普通的用户看来是很难理解的事情。因此,优秀的程序员会摆脱程序员的身份,用普通用户的角度去看待在软件中可能存在的“令人讨厌”的问题。这样也有利程序员更好地进行测试。

10.永远不要停止学习和阅读

计算机世界变化的速度是惊人的。程序员被认为是最接近计算机世界的职业,几乎所有的科技新产品都得由程序员来写代码。因此一个优秀的程序员应该具有渊博的知识,狭窄的知识面会让你的技能停滞不前,跟不上技术发展的步伐而最终被淘汰。你今天还在引以为豪的技能,可能突然会成为一种“过时”的技能了。因此,在编程领域中那些知识渊博的工程师,无一不具有这样的特质:不断地学习新的技能,并且铭记在过往使用那些技能时得到的经验。

一个真正优秀的程序员是从来不会停止学习的。在硅谷中的工程师也不例外。很多公司在招聘工程师的时候,也会很重视候选人对学习的态度。保持学习的态度可以体现在:阅读大量的书籍,而不仅仅是浏览网站;以一种要提升自我的心态来阅读,而不是只是为了最新的项目;同样的,广泛地阅读,而不是只是关注最新的技术。此外,你还可以每年学习一种新的编程语言,了解这种语言的基本知识。这会有助你了解这种语言有哪些优势,让你在编程时会有更多新的想法。

最后,想和大家分享一些对程序员很有帮助的网站或社区:

  1. Stack Overflow: 这个网站相信大家都很熟悉了,这是一个为程序工程师提供技术交流的平台。无论你在开发设计时遇到什么问题,都可以在网站上提出来,你会获得很有帮助的答案。
  2. Toppcoder.com: 这里聚集的是世界各地的来自软件开发,数据科学和设计领域的优秀人才。会员可以以自由职业者的身份接工作。该网站还会定期举办各种专业比赛。
  3. Livecoding.tv: 这个网站是2015年才上线的,但成长速度很快。最大的特色是程序员可以在线实时直播编写代码,互相交流学习。它有别于其它的教育平台,因为这里所开发的都是真实的产品,而且表现出色的工程师还可以有机会被一些公司聘用。
时间: 2024-12-26 12:43:09

10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员的相关文章

10条建议帮助你创建更好的jQuery插件

本文总结了帮助你创建更好jQuery插件的10条建议.分享给大家供大家参考.具体说明如下: 在开发过很多 jQuery 插件以后,我慢慢的摸索出了一套开发jQuery插件比较标准的结构和模式.这样我就可以 copy & paste 大部分的代码结构,只要专注最主要的逻辑代码就行了.使用相同的设计模式和架构也让修复bug或者二次开发更容易.一套经过验证的架构可以保证我的插件不出大的问题,不论插件简单还是复杂.我在这里分享10条我总结的经验. 1. 把你的代码全部放在闭包里面 这是我用的最多的一条.

如何提高Axure设计的效率 提高Axure设计效率的10条建议

如何更有效率的使用axure,这是新手需要掌握的技能.本文作者从实际经验中归纳出来的十条建议十分值得学习,转载分享给大家: Axure 是创建软件原型的快速有力的工具.上手很容易,但是,其中存在一个危险.这款软件是如此的直观以至于很多用户可以在没有接受过任何正式培训的情况下进行使用.他们可能不知道的是他们可能没有以恰当的方式来使用 Axure. 作为一位有经验的用户体验设计师,我很少在画一页的时候第一次就能把它设计正确.大部分时候,我要经历5到10次的反复迭代(iterations).当你的用户

<转>“人脉投资”的10条建议

谁都知道人脉很重要,所以有些人非常勤奋的“做人脉”,他们往往会这样做—— 积极的参与各类线下活动,逢人就换名片.加微信. 见到名人或者重要人物必合影,而且他们还会掏出手机来给你看. 逢年过节,给所有他觉得重要的人发一条相同的祝福微信,比较有心的会在复制的时候改一下前面的名字,以示重视. 动不动喜欢拉一个微信群,名字一般叫什么“XX行业精英群”,每天早晨准时在群里说早安.发心灵鸡汤. 和你聊天的时候,会本能的提及他“认识”的一些大人物.如果名字是两个字的,他们喜欢叫“老X”,比如称呼马云为“老马”

提高Axure设计效率的10条建议 (转)

Axure 是创建软件原型的快速有力的工具.上手很容易,但是,其中存在一个危险.这款软件是如此的直观以至于很多用户可以在没有接受过任何正式培训的情况下进行使用.他们可能不知道的是他们可能没有以恰当的方式来使用 Axure. 作为一位有经验的用户体验设计师,我很少在画一页的时候第一次就能把它设计正确.大部分时候,我要经历5到10次的反复迭代(iterations).当你的用户体验设计是用来作为敏捷项目(agile project)的蓝图,那你可能需要在项目周期内跟上整个项目.有时候,这些变化将会影

提高Axure设计效率的10条建议

http://www.woshipm.com/ucd/92153.html Axure 是创建软件原型的快速有力的工具.上手很容易,但是,其中存在一个危险.这款软件是如此的直观以至于很多用户可以在没有接受过任何正式培训的情况下进行使用.他们可能不知道的是他们可能没有以恰当的方式来使用 Axure. 作为一位有经验的用户体验设计师,我很少在画一页的时候第一次就能把它设计正确.大部分时候,我要经历5到10次的反复迭代(iterations).当你的用户体验设计是用来作为敏捷项目(agile proj

学习Java设计模式的10条建议

设计模式在整个Java的学习路线图中扮演着承上启下的作用. 在整个软件生命周期中,唯一不变的就是变化.设计模式就是要在软件设计.编码中对现有问题的一种总结,并从中寻求应对变化的策略. 自己初次接触设计模式有以下几个感觉: 内容很抽象. 示例都能看得懂,但不知道实际中如何应用. 不理解为什么要把“好好的程序”设计成这么复杂? 转眼之间到了需要自己参与需求分析.设计,并且维护之前留下的遗产代码(Legacy Code)的时候了. 再次开始学习设计模式,有了新的收获: 站在变化的角度去看,设计模式虽然

怎样才能做好PPT,给大学生的10条建议

每个人的大学都有苦逼于做PPT制作的时候,又想在自己心仪的妹子前炫一把,又苦于自己对于PPT难于入手的无奈,那如何让自己的PPT在妹子前炫一把呢,正经地讲是大学生怎样才能做好PPT呢,这里给大家10条建议,不一定完全适用于大家,还望大家可以温情使用. 建议一:三思而做 不是所有的地方都是需要PPT的,要分清梦使用的场合,才是上上之策. 建议二:逻辑先行 要PPT制作之前最好先关上电脑,用笔把你想说的内容按照清晰的条理写出来,对写在白纸上,让自己的思路一目了然,也就是PPT人常说的做白板. 建议三

给备战NOIP 2014 的战友们的10条建议

应老胡要求,要写10条建议= = begin 1. 注意文件关联 比如 halt 前要close(input); close(output); 还有就是一定要打这两句话= = 2. 快排,大家都懂得. 3. 要算一下自己的数组占了多少内存,无论你算法是多好的,内存超限直接爆炸! 4. 用一些特殊的(小伟哥)数据来检验程序的正确性. 5. 不要删掉你中间过程的输出,用//和{}. 6.稍微注意下时间,第一题做了1个小时你还能起飞吗? 7.别慌别慌,看不懂的试着部分分. 8.别只想着部分分!(zy说

提高工作效率:给设计师的10条建议

这篇文章虽然原本是”写给自由设计师的10条建议”.但仔细读下来,发现对于坐班的设计师人来说,也很有价值.提高效率,收获更好的成果. 对于很多人来说,自由工作是梦寐以求的事.能够自由分配时间,无人监督,听起来就很棒. 实际上,在家工作容易缺少动力,而且很多事情容易让你分心,自制力不强的人当不好自己的老板,无法有效的进行个人管理.同样的,自由设计师也有相似的问题. 一般自由设计师都会列出一堆待办事项,面对长长的列表,很多人感叹工作多得做不完,因此压力很大.下面是几条小建议,让你的自由工作”有章可循”