0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样变得跟硅谷工程师一样优秀

工程师人生 来源:网络整理 作者:工程师吴畏 2018-09-11 09:28 次阅读

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

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

1. 精通一种编程语言

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

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

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

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

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

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

4. 拥有很好的数学思维

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

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

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

6. 拥有团队合作精神

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

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

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

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

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

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

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

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

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

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67514
  • 编程
    +关注

    关注

    88

    文章

    3441

    浏览量

    92406
  • 硅谷
    +关注

    关注

    1

    文章

    121

    浏览量

    16428
收藏 人收藏

    评论

    相关推荐

    个电源工程师的成长路径

    即将走马上任电源工程师这个岗位,请问各位大佬,这个岗位的职业路径般是怎样的?
    发表于 04-08 14:19

    请问STM32的X-NUCLEO板NUCLEO板是一样的吗?

    STM32的 X-NUCLEO板NUCLEO板是一样的吗?
    发表于 04-02 06:21

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    如何搞崩个硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49

    优秀电源工程师需要哪些必备技能?

    随着电源市场的不断扩张,开关电源行业飞速发展,企业对电源工程师的需求日益增加,对电源工程师的技能要求也日渐提高,相信没有位电源工程师会错过让自己
    发表于 01-29 11:29

    优秀电源工程师的必备技能大揭秘!

    随着电源市场的不断扩张,开关电源行业飞速发展,企业对电源工程师的需求日益增加,对电源工程师的技能要求也日渐提高,相信没有一位电源工程师会错过让自己变得
    的头像 发表于 12-19 08:23 751次阅读
    <b class='flag-5'>优秀</b>电源<b class='flag-5'>工程师</b>的必备技能大揭秘!

    #人工智能 #FPGA 怎么成为个合格的FPGA工程师

    fpga工程师
    明德扬助教小易老师
    发布于 :2023年12月18日 21:19:01

    电子工程师天上班就暴揍师傅。。。#科普 #示波器 #电子工程师 #打工日记

    电子工程师示波器
    安泰小课堂
    发布于 :2023年12月18日 17:36:12

    FPGA工程师需要具备哪些技能?

    ,需要具备系列的技能,才能胜任日益复杂的设计工作。因此,本文将从设计思路、硬件语言、EDA工具、数字信号处理、通信协议、测试验证等多个方面,探讨FPGA工程师需要具备哪些技能。
    发表于 11-09 11:03

    如何成为一名优秀的嵌入式工程师

    如何成为一名优秀的嵌入式工程师?嵌入式学习的第步,首先是C语言。 1.理解内存管理:C语言不同于高级语言,它不会自动管理内存。因此,你需要理解并掌握如何使用malloc()、free()等函数
    发表于 11-07 15:36

    EFM32单片机stm32是一样的吗引脚兼容吗?

    EFM32单片机stm32是一样的吗引脚兼容吗
    发表于 11-02 08:12

    为什么SD卡的容量不能做到硬盘一样大?

    为什么SD卡的容量不能做到硬盘一样
    发表于 10-09 08:54

    热门推荐:硬件工程师必备工具

    硬件开发的工作流程般可分为:原理图设计、PCB Layout设计、采购电子BOM、PCB板生产、PCBA组装、功能调试及测试、小批量试产、大批量生产正式投放市场等步骤。 作为一名优秀的硬件工程师
    发表于 06-21 10:15