介绍
我从事专业软件的编写已有近二十年了。 在那段时间里,我不得不学习许多新技术。 某些技术(例如MFC)已经过时,但是解决复杂问题和编写良好代码的能力却不高。 这是我的一些经验以及我注意到的内容。
您的责任
您对自己的职业负责。 您还应对自己的学习负责。 您可能会有一位出色的经理,可以帮助您管理所学内容。 您甚至可能拥有一些出色的同事,可以帮助您鼓励自己,并朝着正确的方向努力。 但归根结底,这是您的责任。
填补空白或探索?
有三种不同类型的东西要学习。 首先是填补自己的知识空白。 这可能会让您感到不舒服。 您应该了解哪些关键技能? 您回避什么标准作业? 阅读和维护您的代码有多容易? 掌握日常工作的核心要素很重要。
第二种类型是探索。 您所在行业的最新趋势是什么? 最新的库是什么? 这并不一定意味着您已经成为所有专家中的专家。 至少要熟悉它们的功能,以后可以根据需要参考它们。
第三是交叉训练。 您了解质量检查的工作原理吗? 您了解团队中产品经理的角色吗? 在您的专业知识之外,正在发生什么趋势? 您了解机器学习吗? 团队动力如何? 对您来说有趣的是什么? 在角色之外学习东西可以使您结合不同领域的想法,并提出更好的解决方案。 它可以帮助您为公司做出更大的贡献。 但是请务必先掌握基础知识。
优先排序
您应该首先学习什么? 优先考虑学习是一个好主意,这样您就可以采用更有针对性的方法。 那里有很多有趣的东西,您无法同时学习它们。 谁可以帮助您列出该清单? 经理吗 同事吗 一个朋友?
当您在某个领域中工作时,尤其是在基础知识方面,请假想不是紧急情况,随时与您的经理/团队讨论在下次任务时可能要承担下一个任务。 是的,您可能需要更长的时间,但这是一项投资。
前一个团队的工程师花时间学习协程。 他与团队合作,预留了学习时间,甚至给了我们演示和演示文稿。 当我们有疑问时,您认为我们将和谁在一起?
让其他人知道您对学习感兴趣,许多人会支持您。 但是,请确保以后有可交付成果,例如演示文稿或演示。
重要的是要注意,学习新技术和掌握手艺是有区别的。 https://medium.com/@johnmulholland_50342/the-hacker-and-the-craftsman-4aa7a87a9caf是有关成为手工艺人的文章。 技术来来往往对完成工作至关重要。 掌握您的手艺将持续更长的时间。 很长时间以来,编写干净的代码并没有真正改变,但是使用现代IDE则更容易。
找到你的风格
人们学习方式有所不同。 您如何学习得最好? 是通过观看视频吗? 是通过编写代码吗? 您是只学习高级概念并弄清其余概念,还是需要彻底阅读文档以使您有深刻的了解? 您需要从简单的例子开始吗? 您是否需要解决一个真正的问题? 您是喜欢自己学习还是需要正规课程或培训?
一些技巧
- 预留时间。 有时可以在工作中完成,有时则需要自己做。
- 将其整合到您的余生中。 当我教图形用户界面时,一位学生为他的学期项目改写了他的商业软件。 我的硕士项目是我在太空动力学实验室获得报酬的项目。
- 有初学者的心。 尽管您认为自己知道多少,但其他人可能比您了解的更多。 对待他人,就好像您有一些可以向他们学习的东西。
- 向人们寻求帮助。 有很多人想要帮助并且愿意指导您。 这甚至可能意味着要请更多的初级工程师。
- 帮助别人。 您可能没有一个人独自一人。 在旅途中帮助他人。 它甚至可以帮助您建立专家体系。
- 除了编写软件之外,您还可以学习许多有价值的软件技能。 这些技能确实可以帮助您在职业生涯中取得好成绩。
- 找到一种热爱您所做工作的方法。 如果您有更多的激情,您将能够找到更多的时间花在它上面。
我如何获得第一份软件工作和其他经验
在犹他州立大学上学的第一年,我和一个朋友一起参加入门级计算机科学课程。 上课的速度有点慢,所以我们可以跳过并自己去玩代码。 当时是MFC。 第二年夏天,我结婚了,我需要比当保安员更好的工作。 我的朋友正在寻找另一位工程师在太空动力学实验室从事激动人心的项目。 他知道我会编码,所以我被录用了,我一直通过我的本科生,甚至我的硕士来担任这份工作。
我通过编写PAC-MAN来自学Java,多年后又在与妻子和孩子们进行个人项目和项目时自学了Android。 我从事了一些合同工作,这很有帮助,然后最终从一名Web工程师转移到其他工作。 我从优秀的同事那里学到了很多关于Android的知识,并继续学习。
摘要
从未停止学习。 在软件工程中,您无法长期站立。 技术持续快速发展,那些愿意继续学习的人有很多机会。