乐趣区

关于java:过来人写给软件工程师的-30-条建议

就在几天前,我的人生迈入了 30 岁。在过来的十年中,我做了很多事件,也学习了很多货色。在本文中,我将回顾人生的历程,并将软件工程师的工作和生存公之于众。

上面,让咱们进入正题。

1,致力工作

没有人会平白无故地给你升职或加薪。然而,光是致力工作还不够,你还须要提高效率。

致力地工作却没有提供任何价值的人一无是处,不要成为这种把坐在椅子上的小时数当作生产力的人。

顺便说一句,你也须要防止与这种庸庸碌碌的人一起工作,通常他们所在的公司也超级有毒,会让你苦不堪言。值得庆幸的是,这样的人曾经在咱们这个畛域绝迹了。

2,不要执着于编程语言

过于执着某一种语言毫无意义。大多数编程语言都大同小异,而且有各自的劣势。这也就是为什么咱们有很多种语言,因为没有一种语言是完满的。

然而,请确保你至多理解每种范式内的一种语言。例如,函数式编程、面向对象编程等。

3,每年学习一种新的技术语言

你应该尝试每年学习一种新语言(现实状况下应该抉择风行的语言,并强制本人走出舒服区),只有这样能力放弃大脑敏锐并跟上市场趋势。

另外,如果你发现某种语言的价值,则能够将其作为解决特定问题的工具,举荐给公司。

4,对本人的职业生涯负责

你的童年很心酸,你的后任经理(或现任经理)是一个混蛋,你经验了 3 段婚姻,离婚 5 次,你付出了 2 年工夫才把握的 Web 框架现在却不风行了。你的生存一团糟,看不到一丝曙光。

即便如此,你是成年人,应该靠本人打赢这场战斗。过来的种种艰苦不是不求上进的借口。全力以赴晋升自我,能力有更好的今天。

5,不必放心无法控制的事件

你只须要思考本人力不从心的事件。如前所述,你付出了 2 年工夫才把握的 Web 框架现在却不风行了。那么该怎么办?再学一种啊。这一次能够抉择一个发展前景更好的框架。你可能须要在职业生涯中经验很屡次这样的情景。

兴许你(挚爱)的技术主管来到了公司。尽管十分伤心(过来我也有过这样的经验),但当初你须要打起精神,给新主管留下好印象。

如果你做不到,那么也能够来到公司。然而,请千万不要因为无法控制的事件而懊恼。你须要调整你的状态,因为“表演必须持续”(英语:The Show Must Go On,英国摇滚乐队皇后乐队的歌曲)。

6,不要与人结仇

如果某人在某方面比你强,不要恨他们,你应该向他们学习。通常,咱们会将比本人优良的人视作威逼。而我会将他们视作晋升自我的能源源泉,你也应该这样做。

我记得过来有几位共事十分善于应答压力,他们甚至能够在千钧一发之际力挽狂澜。我从他们身上学到了很多货色,我从来不嫉妒他们,因为我晓得我也能够造就这样的能力。

如果四周无人可能超过你(在技术上),那么请当心,兴许是时候为本人和事业寻找新的时机了。置信我,除非你身居高职(如 CTO),否则你不想成为公司里最强的员工。俗话说得好,宁为凤尾不为鸡头。

怨恨会毁掉你的生存,打击你的生存积极性。怨恨并不能给你带来任何益处。

7,敢于肩负重任,就不必放心薪水的问题

很遗憾的是,很多人眼里只有钱,却没能磨难本人的技术,建设弱小的形象。

你认为上面哪种人将来的薪资会更高:是薪水低于平均水平的 CTO,还是薪水高于平均水平的高级工程师?所以,要明智地抉择本人工作。

8,辜负技术力的人,终将被技术力辜负

很多人认为计算机科学学位能够让本人身价倍增,各大公司会求着你去他们公司,而且就凭着一张纸就能够轻松取得所有。

不要误会我的意思,我置信一个好的学位能够证实你学习了大量有用的常识,然而很多人都止步于此了。

在这方面上,我很观赏自学成才的程序员。可能他们不足对计算机科学理论知识的理解,然而他们晓得迎难而上,因为他们胜利的点点滴滴都是靠本人的拼搏换来的。

另外,如果你对于风行趋势的一些基本知识不足理解,那么就代表你的做法有问题。你无需成为专家即可把握四周的世界。

9,便宜的硬件不仅品质堪忧,而且对你的衰弱无害

你应该花钱买一些高质量的键盘、鼠标和显示器。你的事业须要大量依赖于你的手和眼睛。

降噪耳机值得领有,但如果你没有后面提到的高质量硬件,那么就不要因为自觉跟风。

除非你的工作环境十分嘈杂,否则就没有必要专门买降噪耳机。

10, 进来走一走,兴许问题就解决了

好吧,我有点夸大,然而我想强调发散模式的必要性,Barbara Oakley 在她的课程中讲述了学习的办法,我强烈推荐。

现在,人们不太器重发散的思维形式。至多我晓得很少有公司会批准你在下班期间睡觉(或进行其余发散性的流动),但事实上咱们都须要发散思维。实际上人们嘴边常挂着的“当前再说”就隐含了发散模式的重要性。

11, 将一部分支出投入到业余教育中

如果你的公司违心支部费用,那就更好了。

YouTube 是一种绝佳的学习资源,然而如果你真的想认真学习一门技术,而且支出容许的话,还是应该订阅高质量的培训服务,例如 O ’Reilly / Pluralsight。

找到适宜本人的学习办法,而后学习更多常识。

12,避开没有培训政策的公司

可能我在这一点上持有强硬且带有偏见的认识。如果这家公司绝对较新或资金不足,那也能够例外。

因为科技领域须要一直学习新常识,跟上最新的潮流,所以我认为不应该思考没有适当培训 / 教育政策的公司。

对我而言,最低限度的教育政策是每位员工都有专门的估算,至多每年能够领取上面的局部费用:

• 加入会议

• 购买书籍

• 购买 O ’Reilly learning 等高质量的培训服务

• 进行认证

当然,因为种种原因,大多数人不会在一年中把上述所有的事件都做一遍。兴许是因为他们已进入稳定期,或者是因为他们有家庭,他们不能投入大部分的业余时间,但如果员工有这个动向,公司就应该全力支持。

我对大公司的要求更高,我心愿大公司可能举办一些讲座,特地是在畛域要害的问题上。例如,如果公司想采纳 Scrum,那么最好能邀请一名麻利教练来帮忙做筹备。

13,应用金钱能够买到的最好的工具

例如 IDE。与硬件同理,不应该在 IDE 上贪便宜。正如《程序员修炼之道》所说,你须要抉择一个编辑器,而后学习如何用好它。高质量的工具能够节俭你贵重的工夫。

不要遗记,工夫就是金钱。当初你领取了昂扬的价格,当前就能够节省时间。

14, 漠视能源

人们须要很大能源能力实现重要的人生目标。

能源很重要,但也是一种情感。和所有的情感一样,能源也会忽有忽无。

你须要找到一种更好的形式来指引本人后退的方向,至多在一些重要的事件上明确本人须要做些什么。

当一切顺利时,人们很容易知足常乐,然而当你失去能源或进入倦怠期时,又能做些什么呢?

15, 放弃生机与激情

尽管我不倡议你时刻像打了鸡血一样踊跃倒退事业和生存,但我认为每个人都应该有本人的事业远景规划。

你应该分明本人的倒退方向,只有这样能力晓得做出的每个决定是否能够让你的事业更快、更平安地倒退。正如 2000 年英国驰名的划船手奖牌获得者所说,这个决定是否能够减速船的后退?

16, 理解哪种类型的公司更适宜你,并分心做好这类的工作

守业公司、中型公司和大公司,都有各自的福利和消极的方面。

如果你更喜爱在大公司工作,那么不肯定可能解决好守业公司的日常工作。

你须要进行一番钻研,确保你理解你有哪些抉择,而你的每个抉择能取得什么以及失去什么。可怜的是,这个问题没有对立的答案。

17, 遇上一位好经理是衰弱的工作及生存的根底

你可能对这一点并不生疏,遇上一位不近人情、能与之无效沟通的经理,而且还能从事本人喜爱的工作,那将是人生一大幸事。

很多人辞职都不是因为公司,而是因为他们的经理。你须要确保本人能和经理欢快地相处。现实状况下,在进入公司之前就要确认这一点。

18,要想给他人一碗水,本人就得有一桶水

这是我最后开始写博客的起因。

如果我得悉了一些乏味的事件,那么我能够通过博客分享。

我认为这种办法的成果很好。至多对我来说是如此,尽管我从未问过我的读者:)

19,只有保持学习才不会被时代淘汰

与软件行业相干的高薪畛域的变动绝对也很多。该畛域的倒退如此之快,所以一旦你进行学习,就会被时代淘汰。

这并不意味着你应该将所有的工作工夫都用来浏览和编写代码,但也不要走向另一个极其:安于现状,忽视四周的变动。

20,学习是一个长期保持的过程,不要急于求成

至于学习的心态,与素日旷废到了周日就一整天都坐在电脑前相比,每天花 30-40 分钟学习的成果更好。

上大学时你就对此深有感触,不是吗?如果你平时就按时做作业,那么考试前的压力就会小很多,常识须要一点一点地积攒,无奈一蹴而成。

21, 先让程序跑起来,再思考正确性,最初再思考速度

Kent Beck 的这句话是我最喜爱的名言之一(还有一句是 Unix 哲学)。我对软件开发业界不足求实的思维感到震惊。

人们过于强调空格与制表符、下划线宰割与首字母大写以及接口的命名形式。

我没有说这些问题不重要,只不过咱们首先须要保障程序可能运行,不是吗?

我最喜爱察看他人,每每看他们代码都没有通过编译,就加了大量的正文,也挺无语的。敌人,请求实。

22, 花在社交媒体上的工夫应该物有所值

只关注那些值得你破费工夫的名人。我关注了 Twitter 上的很多名人,包含许多 dev.to 上的作家。

即便我并不常常应用推特,但我也喜爱读到不同的观点,因为他们能给我很好的视角。

23, 怯懦提问

无论你在公司中处于哪个职位,即使你是 CTO,也不会有人认为你理当把握所有信息。相同,钻研表明,人们更喜爱你向他们寻求帮忙。

而且,计算机科学畛域如此之大,没有人能无所不知。就像其余被堆积如山的案牍所累的行业一样。

24, 原理和头脑风暴不能决定成败

可能决定成败的只有最终的后果。你曾经来到了学校,没有人在乎你浪漫的编程形式,这些实践不适用于行业问题或假如。我并不是说它们并不重要,然而企业界更加器重后果,而不是形象的探讨。

这是一个可悲的事实。如果你不喜爱,那么兴许企业生存不适宜你。最好还是找一处以研发为导向的科研或大学吧。

25, 尝试软件行业之外的业余爱好

最近,我有点悔恨没有遵循这条倡议。

我并没有胜利地在全职工作、健身训练和硕士学位之间建设均衡,现在正在想法修复。

这条倡议能够帮忙你防止适度疲劳,而且也能从不同的角度思考事件。

例如,我见过许多文章探讨发散思维与乐器之间的分割。

26, 不要在技术上刚愎自用

这就没必要解释了吧。因为某种原因,软件技术中有很多抉择。不要宣扬某个编程思维或技术,或将其视为惟一的解决方案。这种做法只会让你招人烦,或显得本人很无知。

27,切勿在办公室中触碰不能容忍的行为

性别歧视、种族主义、欺凌行为、恶感本人的事业或者老板休假就拖欠工资(我就有过这样的经验)。有些公司的人认真、成熟且业余,他们懂得尊重他人。你须要找到这样的公司。让那些不懂得尊重他人的人们在他们狭小的圈子里寻找自卑感和独特性吧。

28, 单元测试很无聊,然而 …

遇到产品快速增长或大规模重构即将来临等状况时,单元测试能够救你一命。

就像生存中的所有事物一样,只有辛勤收获,才有播种。

29,无效的工夫 / 工作治理十分重要

无效的工夫 / 工作治理与最新和最热门的技术等同重要,甚至比它们更重要。

为什么?因为如果你不能无效利用本人的技术按时提供价值,那么对他人来说你一文不值。如果你感觉本人这方面的能力有待造就,那么能够从《Getting Things Done》(简称 GTD)和《15 secrets of time management》动手。

30,器重软技能

除非你是不须要公开竞标的自由职业者,或者将销售和客户解决工作委托别人,否则你会十分须要软技能。

咱们每天都须要与人单干,咱们须要晓得如何与不同的人无效地沟通,并用对方听得懂的语言与之交谈。

如果所有人的软技能都不强,那可能也不会有问题,然而这就有点反乌托邦了,我还是心愿你能求实一点,致力造就这方面的能力。

至于如何造就软技能,我举荐你能够从以下三本动手:

•《Soft skills》

•《How to win Friends & Influence People》

•《The charisma myth》

总结

感谢您的浏览,心愿你喜爱本文提到的技巧。如果你有其余能够分享的点,请在下方留言。

零根底学习 Java 编程能够退出我的十年 Java 学习园地。

退出移动版