软件工程师如何面对不断涌现的新技术?Dev 上的网友 Emma Wedekind 编撰了 19条建议 ,希望对处于迷茫时期的工程师有一定的借鉴意义。
1.永远不要气馁
我每天都提醒自己,任何人在他们的软件开发生涯中,都会遇到和我一样的困难。所有科技界的领导者都是和我一样从“ 萌新 ”开始的。
你身边可能有很多人学的比你快!那是正常的。不要因为这个而自暴自弃。
如果你是做一名前端开发者,那么请磨练你的 HTML、CSS 和 JavaScript 技能。不要轻视这些技能。虽然这些技术乍看之下并不高深,但是想要成为一名合格的前端开发者,必须对它们有着更加深入的了解。这也是为什么许多大公司更加重视考察应聘者对基础技能 ,而不是流行的框架的掌握情况。
软件工程师可以免费从互联网上学到关于软件开发的一切知识。但是你要记住的是,尽管互联网上有着海量的资源,但是你不需要了解所有。请从基础开始!
如果你想走后端路线,可以尝试一下 Java 和 Python,它们是目前在工业界非常流行的技术。
但是要记住,永远不要气馁。总有些日子你会被一些挫折压得喘不过气来。但是你要记住,任何软件开发的从业者,一开始都会遇到和你一样的问题。随着你的不断进步,会越来越好的!
2.学会阅读别人的代码
学会阅读其他开发者的代码,是软件工程师必须掌握的重要技能之一,它可以帮助你高效地在不同的代码库中工作。
想要了解别人的代码说明了什么,你不需要了解编程语言的所有细节。你只需检出( check out )那些你所感兴趣的开源项目,认真阅读相应的文档和源码,看看是否能够解读出一些东西。
坚持下去,你也许就会慢慢的发现,在这些项目中也存在着值得改进的地方。可能不久后,你自己也能提交 Pull Request。
学会阅读和检查( review )代码会花费你不少的时间,但是这些付出都是值得的。
3.找到适合的学习方式
每个人都有适合自己的学习方式。有些人喜欢直接上手写代码来学习,有些人喜欢按部就班的看书和视频来学习。
找到适合自己的学习方式,并去广泛接触相关的学习资源,你会发现自己将变得更有效率。
4.参与到社区中
在职业生涯的起初三年中,我都没有参与到线上的技术社区中来。这个缺失,给我带来了不少的困扰。
我一直被自我否定(冒名顶替症候群)所困扰,并且很难保持学习的动力。但是当我找到推特和博客上的开发者社群后,我对学习的投入大大地增加了。
找到一个开源项目,在 GitHub 上维护一个项目。一旦你找到一种方式来参与到社区中,你就会很快建立与编程之间的亲密关系。
5.理论和实践并进
为了成为一个优秀的程序员,你必须要理解代码背后的一些原理。虽然我们身处的时代,一个人无需获得计算机学位也可以在技术领域上获得成功。但是话说回来,计算机科学中提出的一些概念仍然具有很高的价值。
你无须学会计算机科学中所有的理论知识。但是你必须能够利用理论来解释,为什么一个解决方案优于另一个 。
6.不要和别人比较
你永远无需追随其他开发者的脚步。你也不应该拿自己与别人进行比较。你和你所掌握的技能都是独一无二的。
某位大牛在学习 Ruby on Rails 并不意味着你也要去学习。找到那些能激发你编程热情的技能,并尽自己最大的努力去学习它。
学习一门技术也没有特定的时间规定。就像第三点提到的一样,每个人有不同的学习方式,每个人也有不同的学习速度。
7.参与到开源中
开源社区如此繁荣,为什么不去参与呢?如果需要提升你阅读代码的能力,找一个开源项目开始吧!
8.习惯跳出舒适区
科技行业在不断的变化,这意味着总有不断涌现的新技术等待你去学习。虽然这乍看起来让人畏惧,但是这也意味着你可以轻而易举的找到一个新技术来学习。你永远不会感到厌倦。
锻炼你代码能力的最好方式是解决一个能够“吓倒”你的问题。你可以自愿地在工作中承担一些具有挑战性的任务。也可以在业余时间利用新技术解决这些挑战。
你最好习惯跳出舒适区,去探索那些未知的答案。
9.不要畏惧提出问题
你迟早会遇到一个连 StackOverflow 都无法解决的问题。
学会辨别自己何时需要帮助是非常重要的。当你尝试了所有可能解决的方案,但却一无所获,那么是时候寻求帮助了。
虽然有时候我也会很犹豫,但是提出问题并不意味着你很菜。
10.找到支持你的人
编程是很困难的。但是你总有些日子会觉得自己不适合做这行。
因此你必须和能够相信你的人在一起。和那些能够帮助你建立自信的家庭成员和朋友在一起,远离那些说风凉话的人。
11.专注一件事情
一心二用让人平庸。人类不适合同时处理多件事情。
在一段时间内专注做一件事情。尽自己最大的可能去学习、完成它。一旦完成,再去做下一件事情。
不要试图去兼顾几件事情。
12.学会技术选型
在你软件开发的职业生涯中,会接触到非常多不同的技术。哪种技术适用于解决哪种问题往往是非常令人头疼的一件事情。
去了解不同的技术的实际使用场景。什么时候你应该选择这个技术而不是那个?这些技术如何能够组合到一起?
这些重要的问题,都是你应该学会去回答的。
13.找到合适的工具
开发人员永远不缺工具。就我而言,就可以列举出至少5个曾经使用过的 IDE 工具。
工具的数量之大有时候会让人崩溃。去做一些调查研究来决定哪种工具更加适合你。下面的一些问题可以作为参考:
这个工具还在被维护吗?
目前在开发这社区中使用这个工具的人多吗(方便你遇到问题的时候能够有人帮助解决)?
工具配置的难度如何?
集成这个工具之后会对性能有影响吗?
我不用这个工具能够解决问题吗?
工具的存在并不意味着你要去使用它。
14.平衡工作和生活
你不必把所有的时间都投入到编程中。事实上,这么做反倒是有害健康的。
你必须保持工作和生活的平衡,否则也许你要承担精疲力尽的后果。
如果你从早到晚都在做同一件事情,那么你很快会憎恨它。
分一部分时间给自己还有爱好,你可以让自己的编程之路走的更加健康。
15.学习一些设计的基础知识
如果你正在构建面向用户的应用程序,你应该了解一些设计的基本知识。我并不是说你需要学习如何使用 Sketch 或 Adobe Illustrator,而是学习 UX 设计会对你的应用程序产生积极影响。
你不能假设每个用户都能根据你的设想去使用你的应用程序。事实上,你不应该对用户的行为做出假设。
在决定哪种设计适合你的应用之前,你要先了解这些 UI 设计背后的原理。
例如,我们发现带有正方形边缘的按钮实际上比带有圆形边缘的按钮更适合用户,因为它们包含更多的像素。
了解这些设计的基础知识之后,你可以让你的 Web 应用更加亮眼。
16.找到一位技术导师
好的导师可遇不可求,但却是必要的。你可以从他那里学到从职业建议到最佳实践等无价的技能。
向那些你敬佩的人提问永远没有坏处。最坏的情况不过是被拒绝而已!
记住,随着时间的推移,需要重新评估你的师友关系,好让你们不断进步。
17.设计好作品和简历
作品和简历是你在面试过程中给雇主的第一印象。有必要展现出你最好的一面。
确保没有错别字和语法错误。确保格式的一致性和合理性。
18.从失败中学习
如果你犯了一个错误,那就从中学到点什么。不要让同一个错误发生两次。失败并不意味没有价值。
在成功人士的背后,你看不到的是一次又一次的失败。
项目一开始,你不必试图去让你的网站变得如何漂亮。专注于底层技术实现它,稍后再考虑如何让它看起来更美观。
19.砥砺前行
总有些日子,你会想放弃编程。这注定是条艰难的道路,每位软件开发从业者都会在某些时刻否定自己。
你不是孤独的。随着时间的推移,你会发现编程会变得越来越顺手。
日复一日,所有一切会变得好起来的。
砥砺前行吧!
关于译者,邱仁博,多年运营商商业分析、数据中心数据库方向工作经验,现任职于某地市图书馆信息技术部。日常关注国内外极客新闻、前后端技术。海外知识搬运工。
原文标题:19 Tips For Software Engineers In 2019,作者:Emma Wedekind