自学成才翁
Two years ago I made the decision to change my career from structural to software engineering. I currently work as a developer consultant, which is my second job as a software developer/engineer. I typically work with web applications.
两年前,我决定将自己的职业从结构工程改为软件工程。 我目前是一名开发人员顾问,这是我作为软件开发人员/工程师的第二份工作。 我通常使用Web应用程序。
Towards the beginning of my career change, I wrote Why I changed careers. In this article I will revisit my decision.
在我开始职业转变之初,我写了《 为什么我改变职业》 。 在本文中,我将重新讨论我的决定。
期望与现实 (Expectations and Reality)
There is a lot of innovation happening in the tech industry. Before, I thought becoming a software developer would bring me closer to bleeding edge technology such as self-driving cars and augmented reality. Developing software was supposed to keep my brain fit within an exponentially changing world.
科技行业正在发生许多创新。 以前,我认为成为软件开发人员会使我更接近自动驾驶汽车和增强现实等尖端技术。 开发软件被认为可以使我的大脑适应指数式变化的世界。
Two years later, I haven’t done anything with self-driving cars or augmented reality, but I sure have enjoyed developing web apps. Instead of keeping up with an exponentially changing world, I have had to catch up with JavaScript. It doesn’t sound as exciting, but it sure keeps my brain fit!
两年后,我没有对自动驾驶汽车或增强现实技术做任何事情,但是我确实喜欢开发Web应用程序。 除了跟上指数变化的世界,我不得不赶上JavaScript。 听起来并不令人兴奋,但可以确保我的大脑保持健康!
高点和低点 (Highs and Lows)
Writing code can be frustrating. My most memorable bug was while writing the code for my thesis in Fortran. Don’t laugh! In Academia, a lot of number crunching is still done in Fortran today.
编写代码可能令人沮丧。 我最难忘的错误是在Fortran中为论文编写代码时。 别笑 在学术界,今天在Fortran中仍然进行了大量的数字运算。
I looked for the bug for six weeks before my supervisor figured out that I was missing parentheses from a really long formula. This resulted in the order of operations being wrong.
我找了六个星期的错误,然后我的主管才发现我在一个很长的公式中缺少括号。 这导致操作顺序错误。
Remember how α + β * γ is not the same as (α + β) * γ ?
还记得α+β*γ与(α+β)*γ不一样吗?
Looking for the bug was not fun at all. Non-working software can be very frustrating, but the high you get from working software trumps it.
寻找错误根本不好玩。 非工作软件可能非常令人沮丧,但是从工作软件中获得的收益却胜过它。
As developers, we often get instantaneous feedback from the code we write. It’s addictive. The first time I ever had this feeling was also while I was working on my thesis. I had to implement an algorithm that was used to plot a graph using MATLAB. I remember the first time I got it working I was so shocked (in a good way) that I took the rest of the day off. This feeling is still awesome three years later.
作为开发人员,我们经常从编写的代码中获得即时反馈。 令人上瘾。 我第一次有这种感觉是在我写论文的时候。 我必须实现一种用于使用MATLAB绘制图形的算法 。 我记得第一次工作时,我感到非常震惊(以一种很好的方式),我休息了整整一天。 三年后,这种感觉仍然很棒。
经验教训 (Lessons)
Learning something new is often very accessible for developers. You can read a book, browse articles on Medium, complete a tutorial, or take an online course — and you can get started straight away.
开发人员通常很容易学到新知识。 您可以阅读书籍,浏览Medium上的文章,完成教程或参加在线课程-您可以立即开始。
It’s great to see evidence of your progress. I remember when I started out as an intern. I had Fridays off for self-study where I would learn about anything that was relevant to the project I was working on. I would learn something on Friday and I was able to apply it on Monday. It was awesome, and it allowed me to catch up quickly.
很高兴看到您取得进展的证据。 我记得当我刚开始实习的时候。 我有星期五的时间进行自学,在那里我将学习与我正在从事的项目有关的任何事情。 我会在星期五学到一些东西,并且能够在星期一申请。 太棒了,它让我很快赶上了。
In the last two years, I have learned that just like anything, the deeper you get into something, the more your progress decelerates. However, the satisfaction you get when applying something you have learned still remains.
在过去的两年中,我了解到,就像其他任何事情一样,您越深入了解某件事,您的进步就会越慢。 但是,在应用已学到的知识时所获得的满意度仍然存在。
合作 (Collaboration)
Delivering software can be very collaborative. I find the idea of working in an Agile team particularly appealing. What I didn’t realize when starting out was how much of a loaded term Agile could be! When we work with clients, they are often taken aback at how closely we work together.
交付软件可以非常协作。 我发现在敏捷团队中工作的想法特别有吸引力。 刚开始的时候我没有意识到的是,敏捷这个词可能有多少! 当我们与客户合作时,他们常常对我们紧密合作的态度感到惊讶。
For us, Kanban, pair programming, test-driven development (TDD), and Continuous Delivery is the norm and everything else is an exception. We also have regular Stand-ups, Retrospectives and Showcases. I expected Agile Software Development to be effective, but it actually blew away my expectations. I have even convinced some friends in other industries to implement some of the Agile ceremonies, which has improved their work as well.
对于我们来说, 看板 ,结对编程,测试驱动的开发( TDD )和持续交付是常态,其他所有情况都是例外。 我们也有定期的站立表演 , 回顾展和展示柜 。 我希望敏捷软件开发能够有效,但实际上超出了我的期望。 我什至说服了其他行业的一些朋友来执行一些敏捷仪式,这也改善了他们的工作。
Software development attracts a lot of people who are willing to share their work with Open Source. Funnily enough, I have found it quite difficult to get in to this space. There are a lot of resources out there for developers to submit their first pull request and contribute here and there, but I still haven’t found a project to contribute to regularly. However, that is not say that I don’t use Open Source Software all the time! This is truly something that sets our industry apart from others in a positive way.
软件开发吸引了许多愿意与开放源代码共享工作的人们。 有趣的是,我发现进入这个领域非常困难。 开发人员有很多资源可以提交他们的第一个请求请求,并在这里和那里做出贡献,但是我仍然没有找到可以定期做出贡献的项目。 但是,这并不是说我不会一直使用开源软件! 这确实是使我们的行业与其他行业脱颖而出的真正方法。
最后的想法 (Final thoughts)
As you can probably tell, I am very happy with the decision I made two years ago. If you compare this article to Why I changed careers, which I wrote at the beginning of my developer career, you will see that the reasons have pretty much stayed the same — and hopefully now have a bit more wisdom to back them up.
您可能会说,我对两年前的决定感到非常满意。 如果将这篇文章与我在开发人员职业生涯开始时写的《 为什么改变职业》进行比较,您会发现其原因基本保持不变-希望现在有更多的智慧来支持它们。
Before you go… Thanks for reading the article! I write about my professional and educational experiences as a self-taught software developer, so check out my blog or subscribe to my newsletter for more content.
开始之前……感谢您阅读本文! 我写的是自学成才的软件开发人员的专业和教育经历,因此请查看我的博客或订阅新闻通讯以获取更多内容。
You might also like:
您可能还喜欢:
Learning material — software development is a list of recommended resources that I have used and regularly update. It starts with Introduction to Computer Science.
学习资料-软件开发是我已使用并定期更新的推荐资源列表。 它从“计算机科学导论”开始。
自学成才翁