当我还是一名初学者时,我希望从经验丰富的开发人员那里听到什么
当我们还是学生,开始第一份工作时,许多问题浮现在我们脑海中:
- 我应该学习什么编程语言?
- 我是否应该追求更科学的职业?
- 有哪些类型的工作与我想要从事的技术相关?
- 在哪里工作?在什么样的公司?
- 最近有什么变化?
- 还有很多其他的...
在那个时候,这样的问题很正常也很健康。人生中,我们不得不做出很多个人和职业上的决定。在这篇文章中,我将分享我做出的决定、我对关键问题的看法,并分享一些发生在我身上的有趣案例。这些都是我刚开始的时候想听听的事情。
编程语言
这确实是最常被问到的问题之一。我应该学习 Java、Python、C、Ruby、JavaScript 还是 XYZ?我应该学习世界上所有的语言吗?
语言重要吗?
简短回答:不。
公平的答案:是也不是。学习它们之间的区别、范式、如何实现面向对象、设计模式、如何处理内存和操作系统,这些都很重要。一段时间后,它们就只是一两天就能学会使用的工具了。你可能会坚持使用其中一种,用另一种稍微练习一下,然后再用另外两种来享受乐趣。最终,这只是一个根据具体工作选择合适的工具的问题。
几年前,我学习了Python,我的一个朋友学习了Java。他很快就找到了工作,而我没有。我真心喜欢Python,而他选择Java是为了找工作。我找到了一份非常好的工作,并且乐在其中。但如果我辞职了,就很难再找到新工作了。他的工作虽然不太好,但很快就能找到新工作。这其中必然存在着取舍。
技术
关于技术,我想说的也差不多。但只要你把你的知识范围缩小到某个领域,就能很容易地找到我们想要学习的技术类别。它们本质上代表了以下技术:
- 我们与以下公司合作;
- 与我们合作的人有关;
- 补充它;
- 我们只是想和他们一起玩;
- 我们找到了学习它们的机会。
作为一名 Web 开发者,我使用过 Python 语言、Django 框架作为相关技术,还学习过 MySQL、PostgreSQL、Redis 和 JavaScript 作为我的补充。这些就是我的主要技术栈。我尝试过 Swift,因为我想学习 iOS 开发,而且 Pyramid 给了我一个绝佳的机会。
机会
专业人士最重要的一点就是稀缺性。技术在从继续寻找工作到被公司质疑的转变过程中扮演着至关重要的角色。
周围有很多 Python 开发人员。但拥有 OpenCV 和 OCR 相关技术经验的并不多。在某公司,她有机会参与一个小型项目,用于检测房间里脏乱和破损的墙壁。这位开发人员选择参与这个项目,所以现在她仍然是这个团队的一员。
每当我有机会掌握新知识,或者做其他开发人员不愿做的事情时,我都会积极尝试。成功往往带来意想不到的收获。有一次,我了解到一个只有一个人维护的遗留系统,当他休假时,我可以接手。我一点一点地接手了“遗留系统维护”的角色,最终他被解放出来去做更重要的事情,而我也变得不可或缺。当我们需要重新设计系统时,我已经了解了公司的大部分业务规则。
另一个有助于快速学习的关键方法是代码审查。即使你是初级开发人员,也可以去审查高级开发人员的代码。只需询问关于实现、方法或业务规则的问题即可。接下来,在本地运行代码,并体验修改后的成果。检查模块、类和函数返回值。随着你在任何地方的成长,这都会得到显著的提升。
市场
密切关注市场动态,也是增加获得更多机会、成为稀缺人才的重要一步。公司和职位需要你,市场也需要你。
例如,如果我们从2000年回顾至今,我们就能追溯Web的演变,以及许多与添加富应用、音频和视频相关的工作岗位的兴起。我们见证了智能手机的出现,并可以专注于移动应用开发。我们也经历了前端的繁荣,JavaScript框架、聊天和家庭自动化、大数据、数据科学等诸多领域都蕴含着无限可能,而最近,我们又有了渐进式Web应用、加密货币和区块链。
其他问题
我是否应该尝试更科学的职业?
这真的取决于你的背景。如果你之前有写过论文并投稿给期刊或类似机构的经验,那就比较容易了。或者,如果你喜欢数据分析,那么你也有可能找到一些混合型的工作。
开发人员的“等级”是多少?
这定义不太明确。以下帖子或许有帮助:
企业还是初创企业?
你应该两种都尝试一下,看看哪种更适合你。我先尝试了创业,因为这样我可以拥有更多自由,可以从事在大公司无法从事的不同领域。我与客户沟通、做演示、收集需求、实施解决方案、部署,甚至在公司的财务部门工作。
我应该考虑远程工作吗?
当然。我已经远程工作七年了,在Toptal工作了四年,我觉得找一份远程工作真的很简单。即使是非科技公司也开始允许员工远程工作,而且效果很好。有些公司会雇佣远程员工一段时间,有些公司则同时拥有远程和现场团队,还有一些公司完全由远程人员组成。甚至连CEO也一样!
如果您想从事远程职业,请务必遵循这一点。
以下是可以找到远程工作的地点列表:
- Toptal - https://www.toptal.com/#book-tested-programmers
- Hackhands - https://hackhands.com/
- Vanhack - http://www.vanhack.com/
- 远程确定 - https://remoteok.io/
- Upwork - https://www.upwork.com/
- BairesDev - https://www.bairesdev.com/
- AngelList - https://angel.co/
- Remote.com - https://remote.com/
- Codementor - https://www.codementor.io/
- 确实 - https://www.indeed.com/jobs?q=developer&l=remote
- 骰子 - https://www.dice.com/jobs?q=&l=remote
就是这样
这篇文章有很多我的观点和过去的经历,但我希望它能有所帮助。如果你有不同意见或想讨论任何特定话题,请留言,我很乐意与你交流。谢谢。:)
文章来源:https://dev.to/ivancrneto/what-id-like-to-hear-from-an-experienced-developer-when-i-was-a-beginner-438g