我快70了,还在写代码……( 五 )


回答13
jamesqf:
我的建议是(直到我30多岁时才开始编程):不要把重点放在跟上语言和开发方法的新风尚 , 而是着重于实际解决问题 。 你可能必须学习新知识以应对某些新的问题领域 , 但这是不一样的 。
回答14
nvoigt:
对待30岁的方式应该和对待25岁的方式是相同的:

  • 对你的领域感兴趣;
  • 阅读书籍 , 观看教程 , 参加会议;
  • 永远不要满足于你一直在做的事情 。
我想我可以对律师 , 厨师或农民说同样的话 。 它确实不是专门针对软件工程的 。
经验将极大地促进您获得新知识 。 基本概念不变 , 学习一种新语言仅意味着您必须了解该语言如何处理相同的概念 。 理想情况下 , 每次学习新事物时 , 你都可以节省时间 , 因为新事物使事情变得更容易 。
就就业能力而言 , 这很大程度上取决于你所在的国家 。 如果雇主正在寻找最合适的人选 , 那么你绝对可以继续职业生涯并蓬勃发展 。 如果你所在国家或者地区的雇主只需要具有最少编程知识的活人 , 一遍又一遍地生产出低质量的软件 , 那么你会陷入麻烦 。
我想说的是 , 如果你生活在西方社会中 , 公司雇用开发人员来开发公司自己的产品 , 那么你绝对可以将软件开发视为可以给你带来美好生活的工作 , 直到你退休为止(假设你对此感兴趣) 。
如果你生活在一个将软件开发视为将年轻 , 廉价 , 低薪水且服从的劳动力租给另一家(最好是西方的 , 富裕的公司)快速赚钱的机会的国家 , 那么你肯定会有半衰期 。 因为他们的业务模型中不需要年长 , 经验更丰富 , 价格更高的人员 。
回答15
Lawnmower Man:
转变你的关注点
我希望刚毕业的大学生关注的事情包括基本必要的方面 , 例如格式 , 简洁的样式 , 功能的正确性 , 单元测试以及在功能和类级别上全面理解代码 。
他们仍然要学习干活以外的知识 , 因为帮助他们注意提高质量的东西都是好的 。 这也意味着他们在实施项目时通常需要更多的指导 。 我对设计提出了很多建议 , 而且无论如何 , 高级工程师通常都会进行设计 。
对于下一个级别 , 我希望工程师能够编写可靠封装的健壮的代码单元 , 并与系统的其他部分很好地交互 。
他们的重点应该是如何确保应用程序中的多个单元良好地交互而不会导致拉胯 。 因此 , 其设计范围应扩大以符合这些期望 。 他们主要编写应用程序代码 , 但是可以在有监督的情况下安全地更新共享库 。
我希望“高级”工程师能够掌握整个服务的必要细节(不一定是整个应用程序 , 例如OS或主要的独立桌面应用程序) 。 他们应该了解代码从功能级别到服务启动和依赖级别的工作方式 。 仅给出一组需求(当然 , 我主要是在SOA /微服务环境中) , 他们应该能够从头开始设计和构建服务 。
拥有将近10年行业经验的人应该是专家 。 按照最常见的标准 , 你至少应是“高级”工程师 。 那么还剩下什么呢?好吧 , 一切 。
可以做 , 干 。 不能做 , 教 。
当然 , 这句话通常用于体育和教练 , 但是这里有一个真理 。 如果你觉得自己精疲力尽 , 可以花一些时间进行指导 。 如果你的所有同事 , 包括新来的初级工程师 , 如果它们比你了解的更多 , 那么显然你学习的并不多 。 到那时 , 你应该认真考虑切换到项目或者程序又作者产品管理 。 如果你不是比大多数同行更专业的专家 , 将很难保持相关性 。
如果你的组织雇用实习生 , 请主动带领他 。 指导性地编程、做代码审查 , 不要只是批判和教学 。 从你最了解的代码领域开始 , 在这些领域中您最有信心 , 并且可以分享最多的价值 。 然后扩展到你所不了解但仍比大多数团队拥有更多经验的领域 。 即使您的组织没有实习生 , 总会有初级程序员在寻找导师 。 请求你的领导让你带一个 。
除了了解最新的编程语言范例或流行框架之外 , 还有更重要的事情 。 那就是规则 。
设计原则、代码质量、测试、文档 , 你所做的这些事情可能是团队中其他人没有的 。 花一些时间向整个团队介绍为什么你认为这些事情很重要 。 这些不是你可以通过读书或参加黑客马拉松可以学习到的东西 。 他们是通过多年的经验和反复试验中学到的教训 。 分享这些知识 , 它也会在你自己的脑海中成长 。 不要只告诉他们道理 , 还有分享你的故事和经验 , 解释这就是你一直以来积累的价值 。