【转载学习前辈的经验】-- Mistakes I made (as a developer) 我(作为一名开发者)所犯过的错误

时间:2023-12-09 22:56:07

我 2006 年开始工作,至今已经 10 年。10 年是个里程碑,我开始回顾自己曾经犯过的错误,以及我希望从同行那里得到什么类型的忠告。一切都在快速改变,10 年了,我不能确定这些秘诀是否还有用。

不管您是新人还是老手,您都会发现我的话是有用的。我期待听到您的观点,所以请不吝赐教给我回信。

【转载学习前辈的经验】-- Mistakes I made (as a developer) 我(作为一名开发者)所犯过的错误

坚持使用一种平台,框架或者语言

在过去 10 年间我所犯的最大的错误是:每次换工作时我都会换一个软件平台。

开始我使用 Enterprise Java Development,然后是嵌入 C 软件,然后,对于 Windows 桌面应用我使用 VB, C# 和 C++,然后对于 iOS 应用我使用 Objective-C,然后使用 NDK 做 Android 库,最终做 Android 应用。

这一职业生涯确实了不起,但是老板们并不在意。你花费 10 年时间进行软件开发并没有什么意义。如果你不能创建 Android 应用,你将不会得到一份 Android 开发人员的工作。

更换软件平台会对您的简历产生极大的负面影响。让一位雇主决定花大价钱雇佣一位开发者,而他却并非某一特定软件产品的专家,这确实很难。

许多公司并不在乎你的过去。相比于所有那些年在其他软件平台的工作经历来说,技术面试更为重要。这就是为什么好的开发者即使没有多年的开发经历也会找到工作的原因。

我们要怎样才能适应市场呢?你能做到的,就像我一样。但是你需要对自己投资:在空闲时间学习新技能,如果需要的话甚至可以休假去学习。还要降低您的薪金预期。您需要退一步然后再进两步。

一旦您发现一种软件平台、框架或者语言让您充满热情,那就坚持下去。长期来看您的预期薪水和您的就业能力会比频繁转换软件平台要好得多。找到对此技能组合具有需求的最好的公司,跳槽进去。我知道这个道理其实显而易见,但是我却用了很多年才意识到这些。

不要为了钱而谋求管理职位

过去我一直认为薪水高的工作是为穿套装和做行政决策的人准备的。虽然对于小部分人这是真的,但是熟练的开发人员通常比中层管理人员工资高。

在职业生涯中我一直想要成为项目经理。学习了许多有趣的东西后我成为了项目管理硕士。但是,作为产品经理工作了一段时间后,我最终意识到那不适合我。

作为开发者我们的挫折感来源于不好的公司文化,更确切的说:不好的技术文化。我看到了(企业间在)这两方面存在的巨大差异,我离开了西班牙。(现在)我感到更受欣赏了并且我也更喜爱我的工作了。

作为一名开发者如果你工作的不开心,晋升并不能解决问题,不如跳槽,换公司,旅行,打开你的心扉并且去国外工作,世界上有许多技术中心急需开发人员。

开发人员中的沮丧和失败感比我们想象的要普遍。我们的经理们很少理解时间紧迫导致的心力交瘁会影响代码编写,结果和数量。有时候我们仅仅需要出去走走透透气。就象下面我写的诀窍所提到的。

休息一段时间

我从未失业过,直到今年。10 年了,我需要休息一下来“重构”自己的职业生涯,这是我做的最好的决定之一。

我休息了 5 个月,离开我的工作成为自愿的失业者。我能感觉到每个人都多么的担心我的职业生涯将就此终结,但是结果恰恰相反。

从 10 年间一个一个的换工作,期间仅仅休带薪年假,到现在不用工作,真是太爽啦。在我们的行业中没有什么比所从事的工作不能给你带来快乐更糟糕的事情了。

就我来说,4 年了,我想要坐下来学习德语,却从未抽出时间去做。在这 5 个月里我学习了精读课程,一天三小时,这让我的语言水平从 A2 上升到 B2,足够应对日常社交活动用的了。

回去重新工作比我想象的容易得多。所以,如果你需要休息的话就不要害怕休息。在我们的行业里,您简历中的一段空白是容易解释的。但是,如果您这样做,就必须确保按照我下面的建议做。

ABC:永远不要停止编码

在我 5 个月的休息期间,我开始了一项个人项目:一个使用 Discogs.com API 的 Android 应用程序。我想拥有一个易用的应用程序,以便从我的收藏中添加和移除记录。我还想磨练自己的开发技能。

多亏了这个可爱的小项目,我才能够信心慢慢的应对求职面试。它让我尝试了新型的库和开发模式,今天我在工作中还在成功的使用着它们。

我希望我早就开始这样做。我们的工作趋向于重复化,并且经过几年后变得更无序化。所以我们进行探索试验和自我提升的空间就越来越小。

拥有个人项目,阅读(书写)播客并且尽量说出自己的想法,从长远来看会让您成为一名更好的开发人员。为了图个乐儿,请将您的代码放到 GitHub上,并且在社区中分享您的经历吧。

参与社区

还是一名学生的时候,我总认为自己没有时间参加小组和社团活动。当我有了第一份工作后,我最不想做的事情是和其他开发人员一起消磨时光。

我错了。

聚会和用户组是有趣的并且是您的工作圈子之外与开发者同行们相遇的好地方。如果您想好好利用这些就表现得积极些。提供您的帮助,分享您的经验,与身边的人交谈。每个人都喜欢谈论自己的经验,而且您或许将会遇到一些潜在的雇主。

一些新手组总是需要培训师。您还可以去指导新人,开讲习班,甚至发起赞助活动。

如果您不知道从哪儿开始,在 Twitter 上提问,在 Meetup.com 上搜索。查找 Google Developer Groups,Cocoaheads 或者 JS usergroups。本地组总是好于全球社区,去参加见面会吧,玩得开心些。

当然,要注意行为举止。学习他们的行为准则并严格遵守。去获得不同类型的人的喜欢,不要怕与他们交谈,以便您多元化发展。

忽略招聘公告

我的最后一项智慧。不要通过各种招聘公告获取工作。

招聘公告已经被玩坏了。过分复杂的人力资源流程,候选人追踪系统,简历垃圾邮件以及缺少必要清晰的沟通,这仅是各个公司不再依赖猎头公司的小部分原因,猎头公司不可能找到天才人物。

真正的天才会忽略招聘公告。网络是一个途径。如果处于本地社区中,您将获得最新消息——何时有人离开了一个重要岗位,何时一家您感兴趣的公司获得了资金以及谁在招聘。

您还会知道一些公司比另一些公司更好。许多正在招聘的公司内的开发人员会对您很真诚,他们会告诉您他们的经理是否厉害,甚至他们的工资如何。

如果您看到一个感兴趣的工作机会,请查看您的网络。看看您的用户组或者 LinkedIn 中是否有人在那里工作或曾经在那里工作过,或者问问是否有人认识那里的人。直接和他们联系,与首席技术官、人事部经理或者公司的其他开发人员交谈。
猎头公司确实不错,但是不要依赖它们。他们的任务是赶在别人之前填补一个职位空缺,他们不是在那里帮助您找工作,他们不为您工作。如果他们提供的位置恰好是您要找的,那就去努力争取,如果不是您要找的,就说谢谢,但是没必要真的感谢他们。

我希望我的文章对您有所帮助。我想这些归根结底是快乐和有趣的。不要有太高的追求,仅仅把开发作为一项爱好来喜爱,这样您会永远喜爱您的工作。

  • 坚持使用一种软件平台,框架或者语言。从长远来看您的职业生涯将会更好。

  • 如果您真的想成为一名开发人员,不要*担任管理职务。

  • 如果需要的话休息一段时间

  • 不要停止编写代码,拥有个人项目并且把开发当成一种爱好来享受。

  • 参与社区活动,参加聚会,玩的开心并获得恢复。

  • 忽略招聘公告,构建您的网络,如果您想要找一份新工作的话就和人们谈谈。

英文原文:链接https://dev.to/miqubel/mistakes-i-made-as-a-developer

I started working in 2006, a decade ago. Such milestone inspired me to look back and point at the mistakes I made, and the kind of advice I wished someone from the profession had told me. Things change fast, I am not sure how applicable this tips will be in ten years.

Whether you just started or you are a grey-beard, you might find my words helpful. I would love to hear your opinion, so don’t hesitate to write me.

Stick to one platform, framework or language

The biggest mistake I made during the last ten years: Each time I switched jobs I switched platforms as well.

I started with enterprise Java development, to embedded C software, to Windows Desktop applications in VB, C# and C++, to iOS apps in Objective-C, to working with the NDK doing Android libraries and finally doing Android apps.

This professional path sounds awesome, but employers don’t care. It doesn’t matter if you spent ten years developing software. If you did not create Android applications, you are not going to land an Android developer job.

Switching platforms creates a huge negative impact in your CV. It’s really hard for an employer to justify paying a big sum of money for a developer that is not an expert on a particular product.

Most companies don’t care about your past. The technical interview is going to be more important that all those years working on other platforms. This is why good developers without years of experience can get jobs.

How do we adapt to the market? You can do it, just as I did, but you need to invest in yourself: Learn new skills in your free time, or even take time off if you need it, and also lower your salary expectations. You need to take one step back to take two steps forward.

Once you find a platform, framework or language that you feel passionate with, stick to it. In the long term your salary expectations and your employability will be way higher than if you switch frequently. Check where are the best companies that require that skill set and move there. I know it sounds obvious, but it took me many years to realize that.

Don’t pursue management roles for the money

I always believed that high paying jobs were for people wearing suits and making executive decisions. While that’s true for a very small percentage of them, experienced developers are generally better paid that middle management.

The Berlin Startup Salary Report | Journal by Jobspotting

During my career I always wanted to move into project management. I did a Masters in PM where I learned a lot of interesting things. And finally after working as a Product Manager I realized that it wasn’t for me.

Our frustrations as developers come from poor company culture and to be more precise: poor tech-culture. I saw a huge difference in both terms when I left Spain. I felt more appreciated and I also started to appreciate more my job.

If you are not happy with your job as a developer, moving up is not the solution, but rather move horizontally. Switch companies, travel, open your mind and work abroad, there are many tech hubs in the world were developers are highly demanded.

Depression and burn-out feeling are more common in developers than what we think. Our managers rarely understand the mental exhaustion that causes coding, the pressure for results and quality while keeping time tight. Sometimes we just need to step out and breath. Like I did in my next tip.

Take time off

I’ve never been unemployed. Until this year. After ten years I needed to take a break to “refactor” my professional career, and it has been one of the best decisions I made.

I took 5 months off, quitting my job and being voluntarily unemployed. I could feel how everyone was worried that my professional career was going to end there, but what happened was just the opposite.

After ten years jumping from job to job and barely taking my paid annual vacation leave, being jobless was so-damn-good. There’s nothing worse in our profession than working on something that does not bring you happiness.

In my case, for four years I wanted to sit down and learn German but never got the time to do it. During these 5 months I took intensive courses, 3 hours a day, and bumped my language level from A2 to B2, enough for my day to day and being part of society.

Getting back to work was easier than I expected. So don’t be afraid of taking time off if you need it, a gap in your CV is easy to justify in our profession. But if you do, be sure to follow my next piece of advice.

ABC: Always be coding

During my five months off, I started a personal project: An Android app that uses the Discogs.com API. I wanted to have an easy-to-use app to add and remove records from my collection and I wanted to polish my development skills.

Thanks to this pet project, I was able to handle job interviews with confidence. I experimented with new trending libraries and development patterns that I am successfully using today at my job.

I wish I started doing this earlier. Our jobs tend to become repetitive and get a lot of entropy after years, so we have less and less room for experimentation and self improvement.

Having personal projects, reading (and writing) blogs and attending to talks will help you become a better developer on the long run. Just have fun, push your code to GitHub, and share your experiences with the community.

Be part of the community

When I was a student, I always thought I didn’t have time for groups and clubs. When I got my first job, the last think I wanted to do was hanging out with other developers.

I was wrong.

Meetups and usergroups are fun and a great place to meet fellow developers outside the entropy of your job. If you want to make the best of it try to not to be passive. Offer your help, share your experience, talk to the people sitting next to you. Everyone loves talking about their experiences, and you’ll meet a lot of possible employers.

There’s a lot of beginner groups that always need coaches. You can also offer yourself to mentor newbies, give workshops or even sponsor events.

If you don’t know where to start, ask on Twitter and search on Meetup.com. Look for Google Developer Groups, Cocoaheads or JS usergroups. Always look for local groups rather than global communities, attend to the meetings and have fun.

Of course, behave. Learn their code of conduct and embrace it. Promote diversity by being welcoming and unafraid of speaking to people different to you.

Ignore job postings

My final pearl of wisdom. Don’t apply to jobs through job postings.

Job postings are broken. Overly-complex HR processes, candidate tracking systems, CV spamming and lack of clear communication are just few of the causes of why companies end up relying on head hunters because they can’t find talent.

Good talent ignore job postings. Networking is the way to go. By being part of your local community, you’ll get the latest news when someone leaves an important position, when an interesting company got funding and who is hiring.

You will also learn that some companies are better than others. Most developers from hiring companies will be sincere with you, they will tell you if their stack is old, if their managers are awesome or even if the pay is bad.

If you see an interesting job offer, look at your network. See if someone in your usergroup or LinkedIn works or have worked there, or ask if they know someone. Contact them directly, talk with the CTO, the hiring manager or other developers in the company.

Head hunters are okay, but don’t rely on them. Their mission is to fill a position before someone else does, they are not here to help you get a job, they don’t work for you. If what they offer fits EXACTLY what you are looking for, then go for it, if not just say thanks but no thanks.

I hope my article helped you. I think it all comes down to being happier and having fun. Don’t be an overachiever, rather enjoy development as you enjoy a hobby and you’ll never want to work as something else again.

  • Stick to one platform, framework or language and your professional career will be better on the long run.
  • Don’t feel forced to take management roles if you truly want to be a developer.
  • Take time off if you need it.
  • Always be coding, have personal projects and enjoy development as a hobby.
  • Be part of the community, go to meetups, have fun and give back.
  • Ignore job postings, build your network and talk to people if you want to find a new job.

Thanks for reading.

Originally published in my Medium blog.