开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《强行遍历法 SocialEngineeringDictionaryGenerator》
今日推荐英文原文:《Software Development Culture Is Too Positive — and It Might Hurt Us》
开源日报第1028期:《强行遍历法 SocialEngineeringDictionaryGenerator》
今日推荐开源项目:《强行遍历法 SocialEngineeringDictionaryGenerator》传送门:项目链接
推荐理由:这个项目通过将个人信息进行各种排列组合来生成可能的密码序列,再算上常用的弱密码表,没准里面就能猜中一个正确密码。如果自己使用的密码也在这些计算得出的可能性中的话,最好还是早点换密码吧,使用随机生成的密码再怎么说也比有迹可循的密码要更安全一些。
今日推荐英文原文:《Software Development Culture Is Too Positive — and It Might Hurt Us》作者:Albert Kozłowski
原文链接:https://medium.com/better-programming/software-development-culture-is-too-positive-and-it-might-hurt-us-3ed24ac592d8
推荐理由:开发者热爱编程,但没有必要一直追求新事物或者把精力放在编程上,适合才是最好的

Software Development Culture Is Too Positive — and It Might Hurt Us

Anything that looks too optimistic comes with a hidden cost

It feels weird to write about something being too positive. However, I have started noticing that many software development problems might be caused by people being too positive and passionate. Let me explain.

Burnout

Isn’t it weird that so many young people are already feeling burnt out after a few years of work? I keep meeting people who need a break after just their first year or two. I’ve also experienced burnout myself (twice even). The first time, I had to take a six-month break. The second time, which was very recent, I needed a full year off before I could come back to programming.

This year, I’ve spent a lot of time with people outside tech and noticed one thing: We don’t complain much about our work. We complain about bad bosses and bad projects, but not about coding itself. We take passion for granted. Surprised? Go through job offers. Passion is often one of the must-haves listed on them. We are expected to love our job, and even more, we are expected to make programming the center of our universes.

But what about the people who do not love programming and still do their job all the same? Try to identify yourself as one of those among your colleagues or on Twitter, and you will immediately be dismissed as being a bad developer. However, is that really the case? People who do their job and try something different after working hours can be amazing programmers too. Not everyone needs to come home and work on side projects, create blog posts and YouTube videos about coding, and read programming books for fun.

I have been one of those people trying to work through all my spare time. For many years, I felt guilty if I didn’t spend all my waking time chasing some imaginary productivity goal — and guess where that landed me?

Shiny New Things

Another aspect that is heavily biased against negative feedback is following new trends originating from FAANG companies. Try to speak up against SOA or Docker. Try to propose using an older, more mature language and SSR. It’s similar to having a passion for work. People immediately conclude that you are not a good developer, as you are “blocking the progress.” Not everyone is running thousands of microservices like Uber and not every company needs K8S. However, it’s hard not to get on board — or at least pretend to be on board. How many organizations fail to migrate to React or Angular and are left with a code base split between the old “bad” code that was working and the new code that developers are still fighting to make work?

This recent article shows the reality in many organizations:I Almost Got Fired for Choosing React in Our Enterprise App(https://medium.com/better-programming/i-almost-got-fired-for-choosing-react-in-our-enterprise-app-846ea840841c)

Best Practices

When I was a Technical Lead, I often heard the phrase “because it is a good practice.” I would then ask further questions and often noticed that the person didn’t quite understand the solution. It was my litmus test to know when to dig deeper.

How many of these “universal” best practices aren’t really universal? DRY (Don’t Repeat Yourself) is often said in the same sentence as KISS (Keep It Simple Stupid), yet they are often mutually exclusive practices. “Simple” means no unnecessary abstractions, yet starting with DRY code leads exactly to premature abstractions.

I personally use the rule of 3X:

“We have the delusion of reuse. Don’t feel bad. It’s an endemic disease among software developers. An occupational hazard, really.

It is three times as difficult to build reusable components as single-use components, and A reusable component should be tried out in three different applications before it will be sufficiently general to accept into a reuse library.” — Coding Horror
Obviously, I don’t treat it as a maxim. It’s more of a rule of thumb than good practice. But even here, we are getting to the same problem. People who dare suggest using singleton or any other hated anti-patterns are perceived as less than stellar developers.

Summary

The expectation that real software developers, hackers, and geeks are defined by their vocation feels like being in some sort of RPG game. Your trade will forever define you, and once you choose this path, there is no way back.

We, as developers, are expected to love programming. But why? The simple truth is that it is good for employers. How many horror stories have come out of game dev? Yet many young people dream about working in the gaming industry only to be replaced by another batch of young, naive people after a few years.

We need to normalize people not “loving” to code, and we need to normalize having a healthy work-life balance in tech. We need people to be more open about their opinions, even if they are against the moment’s hype.

Don’t get me wrong, I really like being a software developer and I like programming. However, I am not sure if I love it being the center of my universe anymore.

I want to try other things, and that is absolutely OK.
下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/