软件工程职业_关于软件工程职业的7个关键思考

软件工程职业

1:做自己喜欢的事 (1 : Do What You Love)

First of all I’d like to say if you’re in software engineering for any other reason than you love computers, solving problems, and jumping our of your chair when a program eventually compiles then you should sit back and carefully consider your life choices thus far.

首先,我想说的是,您是否出于除计算机之外的其他任何原因而从事软件工程,解决问题以及在程序最终编译时不再担任我们的职务,那么您应该坐下来仔细考虑自己的生活选择迄今。

If you’re cutting and pasting code without understanding what it does, thinking about how many hours are left in the day before you can go home, or staring blankly at a screen wondering what time it is — you’re in the wrong game.

如果您在剪切和粘贴代码时不了解它的作用,那么请思考一下回家前一天还剩下几个小时,或者呆呆地盯着屏幕想知道现在几点了–您的游戏错了。

Software engineering is a challenging discipline and that’s what makes it special — it’s the smile slowly creeping across your face without you knowing it when you solve a problem, it’s the moment why someone wrote an algorithm in this way finally clicks inside your brain, it’s the pushing back of boundaries by creating something utterly new to solve a problem.

软件工程学是一门具有挑战性的学科,这就是它与众不同的原因–它是在解决问题时微笑不知不觉间缓缓闪过的笑容,这是为什么有人以此方式编写算法最终在您的大脑中点击的那一刻。通过创造全新的解决问题的方式来突破界限。

That said, I have some advice for fledgling software engineers fresh out of college, those with a few years experience and wondering what to do next, or perhaps those who’re in a bit of a rut because they made a few bad calls along the way.

就是说,对于刚从大学毕业的新兴软件工程师,有几年经验并想知道下一步该怎么做的人,或者那些因为在开发过程中打了几次不好的电话而有些re落的人,我有一些建议。方式。

I’ve tried to provide a narrative that is useful to both permanent and contract employees and hope that it’s of use to you.

我试图提供一种对长期雇员和合同雇员都有用的叙述,并希望它对您有用。

Note: I’ll always use the word contractor rather than freelancer as I simply prefer the word, but they’re basically the same thing.

注意:我将始终使用承包商这个词而不是自由职业者一词,因为我只是更喜欢这个词,但是它们基本上是同一回事。

2:自行出发 (2 : Set Out On Your Own)

The single best way to accelerate both your learning and experience in software engineering is to get out there on your own as a contractor.

加快您在软件工程方面的学习和经验的唯一最佳方法是独自作为承包商进站。

The absolute worst thing you can do is to leave college and go straight into a junior programming position and stay there. You will most definitely lose your edge, be prematurely blinkered to the industry, and get settled (see later). Heaven forbid, you might end up on the management fast track!

绝对最糟糕的事情是离开大学,直接进入初级编程职位,然后待在那里。 您肯定会失去优势,过早地眨眼于整个行业,并安定下来(请参阅下文)。 天堂禁止,您可能最终会进入管理快速通道!

This may have happened to your already if you’re in a permanent position and are reading this article during work hours whilst nursing a cup of lukewarm coffee with a biscuit on the side, occasionally gazing out of the window into the sunlight and wondering if you would be better off opening a restaurant or opening a coffee shop.

It’s surprising how many bored software engineers dream of opening a café.

令人惊讶的是,有那么多无聊的软件工程师梦想着开一家咖啡馆。

Look at your skills so far and look at what you like to do. Don’t be nudged into areas that you aren’t particularly interested in and always make choices so that you’re heading toward where you want to go.

看看到目前为止的技能,看看自己喜欢做什么。 不要轻推到您不特别感兴趣的领域,并始终做出选择,以便您朝着想要去的地方去。

As soon as you have 12–18 months of experience get out there, emphasise your skills, be confident, flannel a little if you have to, but challenge yourself by hooking a contract where you can add value.

一旦您拥有12-18个月的经验,就可以强调自己的技能,有信心,有点法兰绒,如果需要的话,可以稍微加点绒毛,但是要通过签订合同来挑战自己,以增加价值。

If you’re there holding your coffee, with more than a few years under your belt, then it’s never too late. Get on the phone, check out the local agencies, and start looking what’s available — take a plunge into the deep end.

如果您在那边拿着咖啡,并且已经呆了几年,那永远不会太晚。 打电话,咨询当地代理商,然后开始寻找可用的产品-深入研究。

This will definitely keep you motivated.

这肯定会使您保持动力。

3:大脑空间和生命时间有限 (3 : Brain Space and Life Time are Limited)

There is nothing more disappointing that being pushed into working on something that gives you skills in an area that you either don’t like or don’t want to work in.

令人失望的是,被迫从事一些您不喜欢或不想工作的领域的技能的工作。

Simply, do not take a job which contains 25% of what you like to do, but 75% of what you don’t. Be choosy. It won’t always be the case that you’ll find the perfect opportunity, but be prepared to shop around and haggle over the requirements and responsibilities involved in a position.

简而言之,不要从事一份包含您想要做的事情的25%,而不包含您不喜欢的工作的75%的工作。 挑剔。 您不一定总是会找到理想的机会,但要准备货比三家,就职位的要求和职责进行讨价还价。

Contract jobs, for example, are often advertised with as many technical requirements as the hiring manager can remember — many of which are not actually required on the job. As a shrewd and experienced contractor you can spot this and hone in on what is actually required and you can often dictate, or at least sway, requirements.

例如,合同招聘广告通常带有招聘经理记住的许多技术要求,而实际上并不需要这些内容。 作为精明且经验丰富的承包商,您可以发现这一点,并深入了解实际需要什么,并且通常可以指示或至少改变要求。

Permanent positions, due to the glacial timescales involved and layers of management hierarchy often involved in making hiring decisions, should be viewed with total emotionless objectivity. If there are requirements you don’t like, no matter how small, do not take the job unless you absolutely have to put food on the table. Then, if you do, push relentlessly for a sideways move or begin another job search immediately.

永久职位,由于涉及的冰川时间尺度和通常在做出雇用决策时涉及的管理层次结构,应该完全没有情感上的客观性。 如果有您不喜欢的要求,无论多么小,除非绝对必须在桌子上放食物,否则不要从事这份工作。 然后,如果您这样做,请不懈地推动其横向移动或立即开始另一份工作搜索。

It won’t just be that 75% of your time will be a nauseating struggle, but it will also be that you’ll be spending 75% of your time gaining skills in an area that is completely useless to you. You may well end up working in that area again just because ‘it’s easier’ and there you are, you’re settled. Game over.

不仅仅是您的时间中有75%会是令人作呕的斗争,而且您将花费75%的时间来获得对您完全无用的技能。 您可能会再次在该领域工作,仅仅是因为“这很容易”,而您就在那??里安定下来。 游戏结束。

Take me, for example. I’ve been involved with mobile app development since the advent of iOS in 2009 but an a huge Apple fan with regard to both their technology and their development toolchain. I’m from a C background so naturally gravitated to Objective-C (and then on to Swift) but have always detested the bloat and turgid verboseness of Java. Hence I actively avoid any positions that involve Java, Android, and the frightening hell that is cross-platform development even though some positions may be tempting as they’re for a ‘Mobile Developer’ but involve both paradigms.

以我为例。 自2009年iOS问世以来我就参与移动应用的开发,但是苹果在技术和开发工具链方面都是忠实的粉丝。 我来自C的背景,因此自然而然地倾向于Objective-C (然后是Swift ),但始终讨厌Java的膨胀和冗长。 因此,我积极地避免任何涉及Java,Android和跨平台开发的可怕地狱的职位,尽管有些职位可能吸引人,因为它们是针对“移动开发人员”的,但同时涉及这两种范例。

Your time is short and finite and you can’t learn everything so do focus on what you like to do whilst keeping your eye on where you want to go in the longer term.

您的时间是短暂而有限的,您无法学到所有东西,因此请专注于自己想做的事情,同时关注长期的发展方向。

You can correct your course at any time as new technologies develop (as I did when iOS came into existence) if you’re already heading in that general direction — but don’t waste your time trying to be a jack of all trades.

如果您已经朝着这个大方向前进,则可以随时随新技术的发展(就像我在iOS诞生时所做的那样)随时修正自己的路线-但不要浪费时间尝试成为所有行业的杰作。

“It is a mistake to think that that little room has elastic walls and can distend to any extent. Depend upon it there comes a time when for every addition of knowledge you forget something that you knew before. It is of the highest importance, therefore, not to have useless facts elbowing out the useful ones.”- Sherlock Holmes, A Study in Scarlet (Arthur Conan Doyle)

“认为那个小房间有弹性的墙壁并且可以扩大到任何程度都是错误的。 随之而来的是,每增加一次知识,您就会忘记以前知道的东西。 因此,最重要的是不要使无用的事实浮出有用的事实。”-Sherlock Holmes,《猩红色的研究》(亚瑟·柯南·道尔)

4:选择具有挑战性的项目 (4 : Choose Challenging Projects)

Never choose a job because it sounds like something you can easily do. Challenge yourself, as a rule I’d say that you should be learning at least 50% of the time on any role you take. I do hate the phrase ‘fake it ’til you make it’ but there’s an element of truth in it — be confident in what you do and say, your intelligence will carry you into areas that at first you think may be too challenging. If you don’t try, you’ll never find out.

切勿选择一项工作,因为这听起来像您可以轻松完成的事情。 挑战自我,通常我会说,您应该至少扮演50%的时间来学习自己担任的任何角色。 我确实讨厌这句话: “直到制造出来都是假的 ”,但是其中有一个真相-对您的所作所为充满信心并说,您的才智会把您带入最初您认为可能具有挑战性的领域。 如果不尝试,就永远找不到。

Contracts as Stepping Stones

合同作为垫脚石

As a contractor you’re coming in as an expert in a field — just don’t let yourself remain constrained to that field. Do your job but mix with the other contractors, cross-pollinate, absorb the knowledge around you and get involved in their scene. They’re just like you — contractors tends to be in the game because they love the work, because they don’t settle, and you want some of that momentum to be transferred to you.

作为承包商,您将以某个领域的专家身份进来-只是不要让自己局限于该领域。 做好您的工作,但与其他承包商混合,进行异花授粉,吸收您周围的知识,并参与他们的工作。 他们就像您一样-承包商倾向于参与其中,因为他们喜欢工作,因为他们不安定,而您希望将其中的一些动力转移给您。

I hooked my first contract as a tester with experience in a specific, and niche, testing product I’d gained during my first permanent position after college — even though my actual love at the time was low level programming.

我挂钩了我的第一份合同,作为测试人员,他拥有在大学毕业后的第一个永久职位上获得的特定且专业的测试产品的经验,尽管当时我的实际爱好是低级编程。

Once I was there I was able to expand the role given to me (contracts are seldom what they’re advertised, you’ll learn that in time too) and ended up writing a suite of low level test applications and gaining further experience in real time operating systems and C programming.

到了那里之后,我就可以扩展给我的角色(合同很少像他们所宣传的那样,您也会及时了解到),并最终编写了一套低级测试应用程序,并获得了更多的实际经验。时间操作系统和C编程。

Resulty next contract was in telecommunications, real time operating systems, and mobile networks. It was a stepping stone from which I gained the necessary experience to move in the direction I wanted to go. Add to that I made some great friends who were able to give me valuable advice as to which were the best agencies for specific areas, which employers treated contractors the best, and which employers should be avoided!

结果的下一个合同是电信,实时操作系统和移动 络。 这是垫脚石,从中我获得了必要的经验,可以朝着自己想去的方向前进。 此外,我结交了一些很棒的朋友,这些朋友可以给我宝贵的建议,包括哪些是特定领域的最佳代理,哪些雇主对承包商的待遇最好,以及哪些雇主应避免使用!

Permanent Staff — Prioritise Smaller Companies

常驻员工-优先考虑较小的公司

As a permanent employee your scope is limited by the size of your company — but often a larger company even though it has a larger range of projects by default your ability to move between them is hampered by managerial constraints. Managers of permanent employers in larger companies don’t like losing their staff to other managers, simple as, and always the case. There are a lot more politics in larger companies and you’ll find it hard to transfer between roles and most likely ruffle a few feathers on the way.

作为永久雇员,您的工作范围受到公司规模的限制-但通常情况下,即使是大型公司,即使其项目范围较大,您在这些项目之间移动的能力也受到管理上的限制。 大型公司中永久雇主的经理不喜欢将员工流失给其他经理,这很简单,而且总是如此。 大型公司中存在更多的政治因素,您会发现很难在角色之间进行转换,并且很可能在途中折断了几根羽毛。

The solution here is to, where possible, work for smaller companies where the company itself occupies the niche in which you want to work. It’s far easier to switch companies than it is to switch between departments. You’ll also find that the interview procedure is shorter and compensation tends to be better as you’re not on a company mandated progressive pay scale,

这里的解决方案是,在可能的情况下,为小型公司工作,而小型公司本身要占据您要工作的领域。 更换公司要比在部门之间切换要容易得多。 您还会发现,由于您不在公司规定的累进薪级表上,面试过程更短, 酬往往会更好,

Smaller companies are also more eager to attract enthusiastic and knowledgeable people than larger ones — they have less training budget, tend to fly by the seat of their pants, and try much harder not to make mistakes. This is a good mindset to be in and these are the people you need to be working with.

与较大的公司相比,较小的公司也更渴望吸引热情和知识渊博的人-他们的培训预算较少,倾向于坐着裤子坐,并竭力不犯错误。 这是一个很好的思路,这些都是您需要与之共事的人。

As a permanent employee, you will gain far more experience and experience more technical challenges from moving between small companies than you ever will in a large company.

作为永久雇员,与在大型公司中进行迁移相比,您在小型公司之间进行迁移将获得更多的经验和更多的技术挑战。

5:如果您感到无聊-继续吧! (5 : If You’re Getting Bored — Move On!)

I can’t emphasis this strongly enough as I’ve seen so many colleagues get comfortable in a position where they’re not learning anything and not challenging themselves.

我不能过分强调这一点,因为我已经看到很多同事在不学习任何东西也不挑战自己的位置上感到自在。

They started to ‘settle’ into a routine — coming in later, spending long periods reading email, lingering in the canteen, and simply not doing the job they used to enjoy. As they settled they became less productive, stopped being challenged, and soon enough stopped enjoying their work.

他们开始“适应”日常工作,后来又花了很长时间阅读电子邮件,在餐厅里徘徊,而根本没有做过去喜欢的工作。 当他们安顿下来后,他们的工作效率下降,不再受到挑战,很快就停止了享受工作的乐趣。

As counter-intuitive as it sounds, if you do settle then you do actually stop enjoying your work.

听起来有些违反直觉,但是如果您定居下来,那么实际上您确实会停止享受工作。

If you’re in the game because you love it, as I am, then simpoly don’t let yourself stop enjoying your work. Software engineering is a huge field, grown from almost nothing in the 20th century to something that now pervades practically every discipline out there.

如果您像我一样因为喜欢它而参与游戏,那么simpoly不会让自己停止享受工作。 软件工程是一个巨大的领域,从20世纪几乎什么都没有发展到如今几乎遍布各个学科的领域。

“Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle.”- Steve Jobs, Stanford Commencement Address 2005

“您的工作将占据您一生的大部分时间,而真正令您满意的唯一方法就是去做您认为很棒的工作。 做伟大工作的唯一方法就是热爱自己所做的事情。 如果尚未找到它,请继续寻找。 不要解决。”-史蒂夫·乔布斯(Steve Jobs),斯坦福大学毕业典礼,2005年

6:如果您的 酬不足,请继续前进! (6 : If You’re Not Paid Enough — Move On!)

Know your worth. If you’ve left your first permanent job and are contracting then this will come more easily to you. Focus on your strengths, stress your quick learning and adaptability, but know your hourly rate.

知道你的价值。 如果您离开了第一份永久性工作并要签约,那么这对您来说会更容易。 专注于自己的长处,强调快速学习和适应能力,但知道您的小时工资。

This is slightly more difficult as a permanent employee, but you should never let the stability of your role affect the compensation you get for performing it. No amount of stability can make up for being undervalued for who you are and what you know and do.

作为永久雇员,这要困难一些,但是您绝对不应让角色的稳定性影响您获得的 酬。 没有多少稳定性可以弥补您对自己的身份以及所知道和所做的事情的低估。

Most often, especially when I’ve become party as to who’s paid how much — something that companies actively discourage amongst employees for obvious reasons — permanent employees are vastly underpaid compared with contractors, and usually each other… for performing much the same tasks!

最常见的是,尤其是当我成为谁支付多少工资的聚会时(公司出于明显的原因而在员工中积极劝阻这一点),与承包人相比,长期工的 酬要低得多,而且通常彼此之间……执行相同的任务!

Of course, contractors don’t get the ‘perks’ of healthcare, paid holidays, or non-contributory pension schemes — but that’s the biggest con out there. These so-called ‘benefits’ are what keep underpaid permanent employees settled in their positions and unwilling to move on and seek their true worth.

当然,承包商没有获得医疗保健,带薪假期或非缴费型养老金计划的“特权”,但这是目前最大的弊端。 这些所谓的“好处”是使薪资低廉的永久雇员安于自己的职位,不愿继续前进并寻求其真正的价值。

Any contractor worth their salt, getting paid their rate, can easily make their own healthcare, pension, and holiday plans with money left over.

任何物有所值的承包商,只要得到应得的税,就可以用剩余的钱轻松地制定自己的医疗保健,退休金和假期计划。

A permanent employee settling for benefits and a mediocre salary is doing it wrong — they need to move on and get remotivated.

长期稳定地寻求福利和平庸的薪水的员工做错了-他们需要继续前进并振作精神。

Remember, you’re a valuable asset to a company with specialised knowledge and you should constantly remember that there’s always another role out there that will value you and pay what you’re worth.

请记住,对于拥有专业知识的公司而言,您是宝贵的资产,并且您应该不断记住,总会有另一个角色会珍贵您并支付您的价值。

If you’re a permanent employee and don’t want to head out on your own for stability reasons — perhaps you have commitments and want some kind of reassurance — then move to another permanent position, preferably in smaller company as I’ve detailed earlier. It’s often much easier to make salary (and benefit) gains from moving positions than from climbing some kind of prescripted career ladder.

如果您是固定员工,并且不想出于稳定性原因自行离开(也许您有承诺并想要某种放心),那么请转到另一个固定职位,最好是在我之前详细介绍的小型公司中。 通过变动职位来赚取薪水(和收益)通常比攀登某种规定的职业阶梯要容易得多。

The world has changed, a job is not for life any more.

世界已经改变,工作不再是一生。

7:不接受管理晋升 (7 : Do Not Accept a Management Promotion)

If you’re in computing because you love it, as I am, then do not accept a promotion that will detract from your technical work.

如果您像我一样因为喜欢它而从事计算,那么就不要接受会损害您技术工作的晋升。

“In a hierarchy, every employee tends to rise to his level of incompetence.” – Laurence J. Peter, The Peter Principle

“在等级制度中,每个员工都趋于提升自己的无能水平。” -劳伦斯·彼得(Peter Peter Principle)

I’m not going to discuss whether or not management in itself is a good idea, there are plenty of other discussions going on about that already. But I am going to definitively say that accepting any amount of responsibility that is not directly related to technical matters is going to detract from your enjoyment of software engineering.

我不会讨论管理本身是否是一个好主意,已经有很多其他讨论在讨论。 但是,我要明确地说,接受与技术事务没有直接关系的任何责任都将损害您对软件工程的享受。

I can’t believe anyone has a revelation midlife and suddenly realises that they’re a manager at heart and that’s what they wanted all along. Either that’s what they always wanted and their heart was never really in software engineering or they just like filling in forms and it was all a bit technical for them in the first place. A sweeping generalisation accurately based on decades of experience in the software industry. I thank you.

我简直不敢相信任何人都有中年的启示,突然意识到自己是一个内心的经理,这就是他们一直想要的。 要么就是他们一直想要的,他们的心从来就不在软件工程领域,要么他们只是喜欢填写表格,而这首先对他们来说有点技术性。 基于数十年的软件行业经验,准确地进行了全面的概括。 我谢谢你。

Many companies have tried to address this by creating hybrid roles such as ‘technical team leader’ or ‘engineering manager’ — but in the end you’re trading life on the pizza and coke fuelled edge (other food and drink combinations are available) for a life organising meetings, dragging tickets around in Jira, and contemplating opening a café.

许多公司试图通过创建诸如“技术团队负责人”或“工程经理”这样的混合角色来解决这一问题,但最终,您只能靠比萨和可乐为燃料(其他食物和饮料组合)来换取生命生活,组织会议,在吉拉(Jira)拖票,并考虑开一家咖啡馆。

There is simply no such thing as a hybrid technical / management role and I’ve yet to experience any software engineer who took a promotion to management to be happy with the outcome More often than not, they leave and take a programming position elsewhere, otherwise they become settled, bored, and end up hating their jobs. Game over.

根本没有混合的技术/管理角色,而且我还没有经历过任何软件工程师,他们晋升到管理层对结果感到满意,他们经常离开并在其他地方担任编程职位,否则他们变得安定,无聊并最终讨厌工作。 游戏结束。

尾注 (Endnote)

I hope you’ve found some of these insights useful, and perhaps a little amusing.

我希望您发现其中一些见解有用,也许有些有趣。

I’m a long time software engineer myself and have worked both as a permanent employee and a contractor across a range of industries and in companies large and small.

我本人是一位长期的软件工程师,曾在多个行业以及大小型公司中担任正式员工和承包商。

You, as an individual, will make a bigger impact and have a lot more fun doing it if you follow this simple mantra,

如果您遵循这个简单的口头禅,那么您个人将产生更大的影响,并从中获得更多乐趣,

“Do what you love, don’t settle, stay happy.”- Stuart Woolley, 2020

“做自己喜欢的事,不要安定下来,保持幸福。”-斯图尔特·伍利(Stuart Woolley),2020年

翻译自: https://medium.com/swlh/7-key-reflections-on-a-career-in-software-engineering-37f327c8e983

软件工程职业

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93096 人正在系统学习中 相关资源:点石排名软件-快速提升关键字排名-电子商务工具类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年7月26日
下一篇 2020年7月26日

相关推荐