5 lessons for making the most out of an uncertain path into programming

“Our ability to make the most out of uncertainty is what creates the most potential value.”

“我们最大程度地发挥不确定性的能力就是创造最大的潜在价值的原因。”

This quote from author Ozan Varol in his book Think Like a Rocket Scientist: Simple Strategies You Can Use to Make Giant Leaps in Work and Life has been on my mind lately.

最近,作者Ozan Varol在他的书中引用了《 想像火箭科学家一样思考:您可以用来在工作和生活中实现巨大飞跃的简单策略》一书。

I’m coming up on the end of my first year as a professional software engineer. Naturally, I have been reflecting on my path to this point. Specifically, I’ve reflected on the role that embracing uncertainty played for me after walking away from my two college degrees and 7-year career as a public educator nearly 3 years ago.

作为专业软件工程师,我即将毕业第一年。 自然,我一直在思考到这一点。 具体来说,我已经反思了拥抱不确定性对我的作用,这是我将近两年前离开我的两个大学学位和作为公共教育者的7年职业生涯而离开的。

Image for post
Photo by niklas_hamann on Unsplash
niklas_hamannUnsplash上的 照片

At the time I didn’t have any programming mentors or anyone who I knew that could even offer insight into what a career as a software engineer would be like, or how to succeed if I could manage to get my foot in the door. In other words, I was surrounded by uncertainty.

当时,我没有任何编程指导者,或者我认识的任何人都无法提供洞察力,以了解作为软件工程师的职业会是什么样,或者如果我能够站稳脚跟,该如何取得成功。 换句话说,我被不确定性所包围。

Fortunately, I had determination, an appetite for learning, a manageable relationship with uncertainty, a few lucky breaks, and an extremely supportive wife and kids.

幸运的是,我有决心,有学习兴趣,可管理的关系和不确定性,几个幸运的休息时间以及一个非常支持妻子和孩子的人。

So, what language-agnostic lessons have I learned in my first year as a software developer that might help others navigate their own uncertainty with programming as a career or hobby?

那么,作为软件开发人员的第一年,我学到了哪些与语言无关的课程,这些课程可能会帮助其他人将编程作为职业或业余爱好来应对自己的不确定性?

  1. Focus on improving a little bit more each day. Simple, right? Not at first. Any time we start out on a new pursuit, the sheer steepness of the learning curve can become overwhelming. Pair that with our natural tendency to compare ourselves to those around us, and it can sometimes feel like we are never going to “get it.” Perhaps you’ve heard of this feeling as Imposter Syndrome. Instead of focusing on getting it, whatever it is, focus on getting something new each day you didn’t know before. At times, it might be a large discovery. More often, it will be something small though fundamental. Regardless, our learning compounds over time and proceeds to grow exponentially if we pay attention to it from the beginning.

    每天专注于提高一点。 简单吧? 一开始不是。 每当我们开始新的追求时,学习曲线的陡峭性就会变得势不可挡。 将其与我们将自己与周围人进行比较的自然倾向相结合,有时会觉得我们永远也不会“得到它”。 也许您听说过这种冒名顶替综合症 。 而不是集中于得到 ,不管是什么的,专注于获得一些新的每一天,你之前不知道。 有时,这可能是一个重大发现。 通常,它虽然基本但很小。 无论如何,如果我们从一开始就关注它,我们的学习会随着时间的流逝而复合,并呈指数增长。

  2. Have the courage to take on projects or assignments without a clear path forward. There was a moment earlier this year when I was offered a project to create a feature on an internal tool that a) I had no idea how to even begin thinking about, and b) had been done at my company before. My initial reaction was to suggest that I wasn’t ready for the responsibility and that perhaps someone else would be more qualified to take on the assignment. Thankfully though, my conscience interrupted with the reminder that I would never have the requisite experience for a project like that if I never attempted to take on a project like that. So, I started with what I knew and worked to fill in the gaps over time (more on that in my fourth point below), eventually taking that project across the finish line and boosting my confidence moving forward.

    勇于承担没有明确前进道路的项目或任务。 今年早些时候,有人向我提供了一个在内部工具上创建功能的项目,该项目包括:a)我什至不知道该如何开始思考,并且b)以前在我公司做过。 我最初的React是建议我还没有准备好承担责任,也许其他人会更有资格承担这项任务。 值得庆幸的是,虽然,我的良心与提醒打断,我永远不会有必要的经验,一个项目一样,如果我从来没有试图采取这样的项目 。 因此,我从我所了解的内容开始,并随着时间的推移来填补空白(在下面的第四点中对此进行了详细介绍),最终使该项目跨越了终点线,并增强了我前进的信心。

  3. Read code out loud and write down what is happening with paper and pencil if needed. This point has proven crucial at enabling the two points above. From experience I’ve learned that staring at a block of code and thinking about it quietly can work. But staring at that block of code, explaining it out loud to my dog, and even writing it out in plain English on a sheet of paper works even better. I imagine there is a scientific explanation for this on the Internet somewhere. Perhaps it alleviates the brain from becoming overloaded, or that something about hearing your thoughts repeated back to you helps clarify the problem. No matter, the most powerful data I’ve encountered has been the number of times I’ve found myself saying “Oh, wait a minute . . .” as I read code out loud vs thinking about it in my own head.

    大声朗读代码,并在需要时写下纸和铅笔的情况。 这一点已被证明对实现以上两点至关重要。 根据经验,我知道盯着一段代码并安静地思考它是可行的。 但是盯着那个代码块,向我的狗大声解释,甚至用普通的英语写在纸上,效果会更好。 我想互联网上某个地方对此有科学的解释。 也许它可以减轻大脑的负担,或者说听到一些反复听到的想法有助于弄清问题。 不管怎样,我遇到的最强大的数据就是我发现自己说“哦,请稍等... 。 。” 当我大声朗读代码时,还是想着自己思考。

  4. Write, rest, refactor. In the beginning of this first year, I was simply satisfied to create working software. It did not matter to me how I got there. If it wasn’t broken, there was no need to fix it. However, with time and modest experience has come an emerging understanding of design patterns, DRYing up my code, ensuring readability by humans, and the desire to be not just a programmer but to be a good programmer. As a result, I now use what I refer to as “write, rest, refactor.” Whether a smaller method or a larger class (I program with Ruby on Rails), I work to get a working solution by any means necessary. I then step away from my computer by either taking a walk, eating a snack, or simply taking a moment to do some breathing exercises. Anything to change contexts will do fine. Upon returning, I challenge myself to walk through my code, read it out loud, and look for ways to improve it, such as eliminating duplication, improving variable names, extracting parts of the code into reusable helpers, removing lines I now realize are unnecessary, and more. Not only has this practice improved my code production, it has elevated my thinking about code quality as well.

    写,休息,重构 。 在第一年开始的时候,我很满足于创建工作软件。 我到那里没关系。 如果没有损坏,则无需修复。 但是,随着时间和少量经验的积累,人们对设计模式有了新的认识,使我的代码干燥,确保人类可读性,并且渴望不仅是一名程序员,而且还要成为一名优秀的程序员。 结果,我现在使用所谓的“写,休息,重构”。 无论是较小的方法还是较大的类(我使用Ruby on Rails编程),我都会通过任何必要的方法来寻求可行的解决方案。 然后,我散步或吃零食,或者只是花点时间做一些呼吸运动来离开计算机。 更改上下文的任何内容都可以。 返回后,我挑战自己遍历我的代码,大声朗读它,并寻找改善它的方法,例如消除重复,改善变量名,将部分代码提取为可重用的帮助器,删除我现在意识到不必要的行, 和更多。 这种做法不仅提高了我的代码质量,还提高了我对代码质量的认识。

  5. Do your homework before asking for help. Some might say it is rude to bother someone else for help when you haven’t made much of an effort yourself first. That is true in some cases. But it isn’t the point I want to make here. Rather, when faced with a new concept or challenge, taking the time to figure out what you can and to identify what you don’t understand will both prepare you to ask for the help you actually need and potentially allow you to connect the dots on your own. As an example, rather than saying , “Hey, I need to do X and I have no idea how to do that, can you help me?”, come to the conversation prepared to say something more like, “Hey, I need to do X. I saw something similar used in Y. I Googled it and learned about Z, but I’m not sure I completely understand it. I’ve tried A, B, and C to test it, and now I’m stuck. Can you take a look at my code to see if I’m using Z correctly?” This type of request for help will often lead beyond just a solution to a more valuable, rich conversation that will inevitably improve your critical thinking and understanding of the software you are writing.

    在寻求帮助之前先做功课。 可能有人会说,如果您自己先不花大力气就打扰别人,那是不礼貌的。 在某些情况下是这样。 但这不是我想在这里指出的重点。 相反,在面对新概念或挑战时,花时间弄清楚自己能做什么,找出自己不了解的东西,既可以使您准备寻求实际需要的帮助,也可能使您将点滴滴滴串连起来。你自己。 举个例子,而不是说:“嘿,我需要做X,但我不知道该怎么做,你能帮我吗?”,来参加谈话时准备说些类似的话,“嘿,我需要做X。我在Y中使用了类似的东西。我用Google搜索并了解了Z,但不确定我是否完全理解它。 我已经尝试过A,B和C进行测试,但是现在我陷入了困境。 您能看一下我的代码以查看我是否正确使用Z吗?” 这种寻求帮助的方式通常不仅是解决方案,还包括更有价值,更丰富的对话,这将不可避免地改善您对所编写软件的批判性思维和理解。

Hopefully, these few lessons I’ve learned from my own experience making the most out of an uncertain path into a new career can help you do the same. I’m very interested to learn what insights you gain through your experiences as well. They would likewise help me to become a better programmer too. After all, what we learn when we embrace uncertainty is “what creates the most potential value.”

希望我从自己的经验中学到的这些经验教训可以帮助您完成同样的工作,从不确定的道路上最大程度地进入新职业。 我也非常有兴趣了解您通过自己的经验获得的见解。 他们同样会帮助我成为更好的程序员。 毕竟,当我们拥抱不确定性时,我们学到的是“什么创造了最大的潜在价值”。

翻译自: https://medium.com/the-innovation/5-lessons-for-making-the-most-out-of-an-uncertain-path-into-programming-203c35c383c0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值