初级开发人员的缺点_我作为初级开发人员时犯的错误-以及如何避免它们。

初级开发人员的缺点

by Jack Finlay

通过杰克·芬利

我作为初级开发人员时犯的错误-以及如何避免它们。 (Mistakes I’ve made as a junior developer — and how you can avoid them.)

对我作为软件开发人员的前两年的思考。 (Reflections on my first two years as a software developer.)

When you first start out in the world of software development, things may seem daunting and unknown. Leaving university and venturing into the real world is a big step, and you will stumble many times on the path before finding your feet and confidence.

当您刚开始进入软件开发领域时,事情似乎令人生畏和未知。 离开大学,进入现实世界是一大步,在踏上第一步之前,您会跌倒很多次。

You may have confidence in your abilities already. But I ask you, “How many mistakes have you made?”

您可能已经对自己的能力充满信心。 但是我问你,“你犯了多少错误?”

The start of a career in software development is the start of a journey in mastering your craft. As with any field, there will be challenges and chances to be correct, and chances where you can be completely wrong. This piece acts as a reflection on the mistakes I have made early in my career — and a guide to avoiding them.

软件开发事业的起点是精通Craft.io的旅程的起点。 与任何领域一样,挑战和正确的机会也很多,而您可能完全错了。 这篇文章反映了我在职业生涯早期犯的错误,也是避免这些错误的指南。

得到工作 (Getting the job)

Landing your first job out of university isn’t always easy. Make sure it’s the right one for you.

将第一份工作从大学毕业并不总是那么容易。 确保它是适合您的。

A company has to be a good fit for you, and where you want your career to go.

公司必须非常适合您,以及您希望职业发展的地方。

找出你的价值 (Find out what you are worth)

I made this mistake twice. When I got my first software development job during university, in my second year, I was struggling financially. This led me to accept the first salary offer I was given. I felt I needed to just take the offer, as it was great compared to the abysmal pittance I was receiving from student benefits. Little did I know that it was well under the market rate for the location, position, and time.

我两次犯了这个错误。 当我在大学期间获得第一份软件开发工作时,第二年,我在财务上挣扎。 这使我接受了我提供的第一份薪水。 我觉得我只需要接受这个提议,因为与我从学生福利中获得的可怜的微薄相比,这是很棒的。 我几乎不知道位置,位置和时间都在市场价格之下。

As I said earlier, I made this mistake twice. Upon graduating, I managed to land a job elsewhere. They were going to pay me 25% more than I was earning at the time!

如前所述,我两次犯了这个错误。 毕业后,我设法在其他地方找到了工作。 他们要付给我的钱比我当时的收入高25%!

It was still at the low end of the market rate. I was low-balled, and I was happy to take it. I hadn’t learned yet that not all the power is in the employer’s hands.

它仍然处于市场价格的低端。 我低调,很高兴接受。 我还没有了解到,并不是所有的权力都掌握在雇主手中。

You too can make an offer. If I had taken the time to do some proper research, I would have seen what I was really worth. I recommend sites like PayScale to give you an indication. You can even use sites like this as a source when negotiating.

您也可以提出要约。 如果我花时间做一些适当的研究,我会发现我真正的价值。 我建议像PayScale这样的网站为您提供指示。 您甚至可以在协商时使用类似这样的网站作为来源。

阅读评论 (Read the reviews)

Glassdoor is a great resource. Real employees of the companies listed have taken the effort to rate the companies they work for. Generally the reviews can be quite polarized as to whether employees have had good or bad experiences.

Glassdoor是一个很好的资源。 所列公司的真实员工已努力对他们工作的公司进行评分。 通常,对于员工的经历是好是坏,评论可能是两极化的。

Search out some of each and you’ll find the middle-ground for yourself. Had I read some of these reviews earlier, I would have avoided some terrible experiences when interviewing and beyond.

搜索每个,您将找到自己的中间立场。 如果我较早地阅读了其中的一些评论,那么在采访和其他采访时我会避免一些可怕的经历。

知道您将真正与之合作 (Know what you’ll really be working with)

Earlier in my career, I was so keen to work for a particular company (a friend was working there and was enjoying it) that I forgot to stop and ask what I would actually be working on. It turned out that I would not be in the same department as my friend, and that I would be on the other side of the building, and later even on different floors. And I didn’t take the time to make sure the job would really fit me.

在我职业生涯的早期,我是如此热衷于为一家特定的公司工作(一个朋友在那里工作并很享受它),以至于我忘了停下来询问我将要从事的工作。 原来,我和朋友不在同一个部门,而我在大楼的另一侧,后来甚至在不同的楼层。 而且我没有花时间确保这份工作真的适合我。

Another side of this mistake was not asking enough about the environments, tools, and languages I would be using.

这个错误的另一方面是,我对所使用的环境,工具和语言的询问不够。

When going for the next step in my career, I made sure to ask about the following:

在职业生涯的下一步时,我一定要问以下问题:

  1. Version control strategy and tooling

    版本控制策略和工具

    Is it industry standard?

    是行业标准吗?

    Git, TFS, SVN or Mercurial? If you’ve heard of it, it should be okay.

    GitTFSSVN还是Mercurial ? 如果您听说过,应该没问题。

  2. Is there CI/CD tooling and environments in place?

    是否有CI / CD工具和环境?

    Deployments should be as automated as possible. It’ll make your life so much easier.

    部署应尽可能自动化。 它会让您的生活变得更加轻松。

  3. How often are deployments?

    部署多久一次?
  4. What frameworks/languages will I be working in?

    我将使用哪些框架/语言?
  5. What tooling do you use? Which IDE?

    您使用什么工具? 哪个IDE?

    What tooling do you use? Which IDE? Visual Studio, Rider or IntelliJ are some good options.

    您使用什么工具? 哪个IDE? Visual StudioRiderIntelliJ是一些不错的选择。

  6. What kind of projects will I be working on?

    我将从事哪种项目?
  7. What kinds of technologies will the company be looking to use next? Also, what kind of horizon are these changes at?

    该公司下一步将使用哪种技术? 另外,这些变化是在什么样的视野下进行的?

    What kinds of technologies will the company be looking to use next? Also, what kind of horizon are these changes at? How far off are they from becoming day-to-day in use at the company?

    该公司下一步将使用哪种技术? 另外,这些变化是在什么样的视野下进行的? 他们距离公司日常使用有多远?

在工作 (In the job)

The challenges don’t stop once you are in the job. Every day will present some new way to challenge you.

一旦工作,挑战就不会停止。 每天都会呈现出一些挑战您的新方法。

代码永远不会自我记录 (Code is never self documenting)

“My code is self-documenting, I don’t need comments”. ? I thought this when I first started programming professionally. I don’t make this mistake anymore.

“我的代码是自记录文件,不需要注释”。 ? 我刚开始专业编程时就想到了这一点。 我不会再犯这个错误了。

Comments are the most powerful feature of any language. They can convey where your thoughts were at the time. You need to capture that in comments.

注释是所有语言中最强大的功能。 他们可以传达您当时的想法。 您需要在评论中捕获它。

I’ve read countless sections of code where a single, simple comment would have made that complex code and the algorithms much easier to understand and update.

我读了无数的代码节,其中的一个简单注释就能使复杂的代码和算法更易于理解和更新。

Commented out code is worse than no comments at all. When you are deep in investigation mode, trying to discover how something works, all that commented out code will do is make your job harder. As soon as you comment out a line, the next person to read it will have no idea why you did that.

被注释掉的代码比根本没有注释更糟糕。 当您处于调查模式的深处,试图发现某些事情是如何工作时,注释掉的代码将要做的只是使您的工作变得更加困难。 注释掉一行后,下一个阅读该文本的人将不知道您为什么这样做。

Be judicious with your comments. Good comments will not only lighten the cognitive load, they will help you spot errors.

谨慎对待您的评论。 好的评论不仅可以减轻认知负担,还可以帮助您发现错误。

If something doesn’t look like it matches up to the comment, it’s probably wrong. Or it’ll give you a good chance to put the following section into practice.

如果某些内容看起来与评论不符,则可能是错误的。 否则,您将有很好的机会将以下部分付诸实践。

提早提问 (Ask questions early)

Don’t wait until you are down the wrong rabbit-hole before asking for help.

在寻求帮助之前,请不要等到您走错了兔子洞。

Waiting to ask for help may just lead you to the wrong conclusions, or worse, you’ll break something. Ask questions early, even if it’s just a quick Google search. Part of not asking questions when you really need to, through fear of appearing like an idiot, is how you end up building the wrong thing.

等待寻求帮助可能只会导致您得出错误的结论,或者更糟的是,您会破坏某些东西。 尽早提问题,即使只是Google的快速搜索。 由于担心自己看起来像个白痴,在真正需要的时候不问问题的部分原因是,您最终会犯错什么。

Asking questions is one of the most important things you can do to accelerate your learning, and to help get involved in projects right away. If you don’t ask questions when you need to, you may make some wrong assumptions.

提出问题是您可以加快学习速度并帮助立即参与项目的最重要的事情之一。 如果您在需要时不提出问题,则可能会做出一些错误的假设。

什么都不做 (Assume nothing)

Assumptions are an important part of defining what you need to be building when you are working on a project. There will often be assumptions recorded against the tickets you’ll be working on (if your company uses a ticketing or task system).

假设是定义项目时需要构建的重要部分。 通常会根据您要处理的故障单记录一些假设(如果您的公司使用故障单或任务系统)。

Not every case has to be catered to when you’re designing a solution. A correct set of assumptions will help guide you towards the correct solution.

在设计解决方案时,并非每种情况都可以满足。 一组正确的假设将有助于指导您找到正确的解决方案。

I have spent hours building things incorrectly and even building the wrong thing because I made incorrect assumptions. Usually, tasks will be quite fleshed out when they arrive from the Business Analysts, but often there will be gaps.

我花了几个小时来错误地构建事物,甚至构建错误的事物,因为我做出了错误的假设。 通常,当任务从业务分析师到达时,它们就会充实起来,但是通常会有差距。

Don’t make any assumptions unless they have been stated for you, or you’ve asked about them.

除非已为您陈述这些假设,否则您不要做任何假设。

居家办公 (Working from home)

Don’t be afraid to ask to work from home every once in a while. Sometimes it’s a great way to get away from the stresses and distractions of the office and really focus. There are whole companies built on a remote workforce. It certainly works.

不要害怕偶尔要求在家工作。 有时,这是摆脱办公室压力和干扰并真正专注的好方法。 整个公司都建立在远程劳动力之上。 当然可以。

There will also be some companies that are fully against it. I worked for over a year with a team in Australia, from our office in New Zealand. Collaboration and cooperation still happened online. Through email, chat, and old fashioned phone calls, distance doesn’t stop you working with your peers. There was no practical difference whether I was in the office or at home, but I was forced to be at the office anyway.

也将有一些公司完全反对它。 我在新西兰的办公室里与澳大利亚的一个团队一起工作了一年多。 协作与合作仍然在线发生。 通过电子邮件,聊天和老式电话,距离并不会阻止您与同行一起工作。 无论我是在办公室还是在家,都没有实际的区别,但是无论如何我还是被迫去办公室。

Look out for the opportunity to spend the day working from home or somewhere different wherever possible.

寻找机会在家里或其他任何地方度过一天的工作。

实际编程时间 (Time actually programming)

Unfortunately, you will not be programming 100% of your week. As much as this may pain you, it’s not all bad. Programming isn’t 100% code anyway.

不幸的是,您不会每周编程100%。 尽管这可能会让您感到痛苦,但这并不都是坏事。 编程不是100%的代码。

Much of your time will be spent in meetings, usually to the point of reducing the amount of time you need to spend programming. This comes through making sure that you are writing the minimum amount of code possible to engineer the best possible solution.

您的大部分时间都花在开会上,通常可以减少花在编程上的时间。 这是通过确保编写尽可能少的代码来设计最佳解决方案来实现的。

工作以外 (Outside the job)

Some say that it doesn’t really matter, but others say that what you do outside the job is just as important as what you do in the job.

有人说这并不重要,但也有人说您在工作之外所做的事情与您在工作中所做的一样重要。

自己编程 (Programming on your own time)

Once I realized the crushing reality of how terrible proprietary tooling and languages really are, I started to work on skills that I knew would be transferable to another company.

一旦我意识到了可怕的专有工具和语言的真实现实,我便开始研究我知道可以转移到另一家公司的技能。

If you find yourself stuck in the same type of environment, knowing a few things about more mainstream technologies will help you in finding your way out. It’s a polarizing opinion, but I believe that time spent on career development in your own time has a great effect on the opportunities you will become open to.

如果您发现自己陷于相同的环境中,那么了解一些关于更多主流技术的知识将有助于您找到出路。 这是一个两极分化的观点,但我相信,在自己的时间里花在职业发展上的时间对您将接受的机会有很大的影响。

(Read)

Now I have made my way through a few, I wish I had picked up some more books earlier. There are countless things to learn from books. Grab a few and read them on your downtime, at the office, or on your way there. Most people I know have some kind of commute, and it’s a great way to pass the time.

现在,我已经完成了一些工作,希望我早些时候能再买一些书。 从书本上可以学到无数的东西。 拿一些,在您的停机时间,办公室或去那里的路上阅读它们。 我认识的大多数人都通勤,这是打发时间的好方法。

(Write)

Writing can be a great way to further your career. That’s what I’m attempting here. This isn’t just an advice piece, it’s a reflection. A good blog can also help you when you face a particular issue you may have faced before. If you keep a log of what has challenged you, it may just come to your rescue.

写作可能是发展事业的好方法。 这就是我在这里尝试的。 这不只是一个建议,而是一种反思。 当您遇到以前可能遇到的特定问题时,一个好的博客也可以为您提供帮助。 如果您记录了挑战的内容,那么它可能会助您一臂之力。

It may seem strange at first, but writing things down is a great way to decompress and exhale after stress. I make (most of) my writings public, but you don’t have to. Half of my posts are still sitting in the drafts folder.

乍一看似乎很奇怪,但是写下来是减轻压力后呼气的好方法。 我把我的大部分著作都公开了,但是你不必这么做。 我的一半帖子仍位于草稿文件夹中。

行使 (Exercise)

For the first two years of my career I didn’t regularly exercise and it certainly caught up to me. As a programmer, most of your day will be spent sitting, generally inactive, staring at a screen. You will not get to program all day, sure, but between meetings and time at your desk, you won’t be moving much. Try to exercise as much as you are capable of.

在我职业生涯的前两年,我没有定期锻炼身体,这肯定使我欣喜若狂。 作为程序员,您一整天的大部分时间都会坐在屏幕上,通常是闲着的。 当然,您不会一整天都在编程,但是在开会和坐在办公桌前的时间之间,您不会花太多时间。 尽可能多地运动。

请一些时间 (Taking some time off)

As important as it is to be available all the time for work, it’s also important to take some time off every now and then. If you are not saving up for a big holiday, it’s sometimes nice to just make long weekends extra long, or take a few days off here and there. Many countries provide a varying number of guaranteed weeks of leave. Make sure to take advantage of this wherever possible.

尽管要时刻保持工作状态很重要,但不时地抽出一些时间也很重要。 如果您没有为一个大型的假期存钱,有时最好将长周末延长一些时间,或者在这里或那里休息几天。 许多国家提供不同数量的保证休假。 确保尽可能利用此优势。

I made the mistake of saving up as many leave days as possible and getting burned out in the process. It was a good decision financially, but not for my mental and physical well-being.

我犯了一个错误,那就是节省尽可能多的休假天,并在此过程中精疲力尽。 从财务上来说,这是一个不错的决定,但对我的身心健康而言却不是。

谢谢阅读! (Thanks for reading!)

I hope this reflection of my first two years of programming as a full-time job provides some insight into where you may head in your career. This has been an interesting reflection for me, and I hope you can take something from it. Let me know below if you have any questions.

我希望我作为全职工作的头两年编程的反思能为您将来的职业发展提供一些见识。 这对我来说是一个有趣的反映,希望您能从中受益。 如果您有任何疑问,请在下面告诉我。

翻译自: https://www.freecodecamp.org/news/mistakes-i-have-made-as-a-junior-developer-85260bdb992f/

初级开发人员的缺点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值