开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《更新日志 keep-a-changelog》
今日推荐英文原文:《Four Ways to Know if You're a Great Software Engineer》

今日推荐开源项目:《更新日志 keep-a-changelog》传送门:GitHub链接
推荐理由:但凡稍微活过些日子的软件应该都或多或少经历过了几次更新,而更新的多了,记得整理好更新日志就显得格外重要。指望对比源代码来知道哪更新了是不现实的事情,更新者应当准备一份面向人类的更新日志以方便阅读,这个项目就很好的指出了这一点——千万不要以为一个人就能把这种事情抛之脑后,尽早养成良好的习惯至关重要,而且你也不知道三百年后你会不会重新翻出一个之前旧玩具软件来重新加工。
今日推荐英文原文:《Four Ways to Know if You're a Great Software Engineer》作者:Indrek Lasn
原文链接:https://medium.com/better-programming/4-tells-whether-youre-a-great-software-engineer-b0e496ed8f3b
推荐理由:这几点也可以作为一个努力的方向,用来找出适合自己而又有效的行动方式

Four Ways to Know if You're a Great Software Engineer

What’s the universal measurement of a great software engineer?

Software engineering is the art of crafting beautiful software. What is beautiful software? Some might say beautiful software looks aesthetically pleasing and feels intuitive, others might agree that beautiful software equals coherent and logical code. There’s no right or wrong here, being a good software engineer is up to interpretation. Here are my key takes on what makes someone a great engineer.

Fun to Work With

You’re the first to arrive at the office at 7:30 AM and sit down to sip your morning coffee while reading the latest scandals around the globe, with the occasional small dose of programming and startup news. You feel good and feel ready to crush the day. You open up Github and start to review your previous pull request, only to find your teammate nit-picking on your variable naming, semi-colon insertions, and other trivialities, while completely ignoring the feature you implemented without any issues.

Photo by Allie Smith on Unsplash

Don’t be the guy to annoy your teammates. It’s fine to have standards, but such standards should be clearly defined and agreed on. If you argue about preferences, use prettier with ESLint. The two previous tools let teams agree on a standard while maintaining coding flavor.

Being a fun person to work with is absolutely crucial to being a great software engineer. Many engineers think that their code speaks for themselves. While we all admire great code, don’t be a jerk, especially if you’re a senior engineer. A great engineer should be fun to work with, non-lethargic, and ready to take on challenges. Not everyone can do it, but at least try. I’m often lethargic myself, but I try not to be. No matter how technically brilliant you are, you’ll always be limited by your ability to communicate.
“A rational person can find peace by cultivating indifference to things outside of their control.” — Naval Ravikant

Ability to Teach and Learn

Having the ability to lift your teammates is invaluable. You might be extremely proficient in X, while your teammate might be experienced in Y. The ability to exchange knowledge is often looked down upon. Great teams put their minds together. Greater problems require great teams.

Photo by Kimberly Farmer on Unsplash

If you want to become a truly great engineer, you should be able to swallow your ego and status. Wise senior engineers will often tell you they learn new things from junior engineers all the time. Junior engineers are eager to prove themselves and learn the latest and coolest programming tooling, only to demonstrate the tools to the team. A wise engineer considers and accepts any information from any source. Leave your dogmas at the door.

Amazing developers who lack team skills stagnate in roles, while perhaps less technically adept devs, who are more personable and more able to sell their ideas, flourish.

Don’t Give Up When Things Get Hard (Be Willing to Put the Hours In)

One day you will face a challenge that you have no business with. It shocks and overwhelms you. You ask yourself “I have to do what?!”. Stay calm, don’t panic. As a software engineer, I can assure you this is all part of the ride. Feeling overwhelmed is actually a good thing, it’s how we evolve. To grow, we have to face new and harder challenges — it’s the only way. When the time comes, don’t be afraid to take the leap forward.

Photo by Kristopher Roller on Unsplash

As with any skill, you have to put in the hours. If it’s worth doing, it’s worth doing great. Don’t just do things for the sake of it, do it because you want to show everyone how great your work is. If you’re asked to do X, do X and add some sugar on top of it. A good way to put the hours in is just simply to build stuff, build anything, just build it. If you lack ideas, here’s a fun list of apps to build:https://medium.com/better-programming/the-secret-to-being-a-top-developer-is-building-things-heres-a-list-of-fun-apps-to-build-aac61ac0736c

Taking Ownership and Beyond

Every executive or manager wants to carve the ownership ideology deep inside every team, for good reason. If workers take ownership and treat their code or products as if it belongs to them personally, they will take special care and consideration.

Photo by ROOM on Unsplash

When working for a small team inside a big company, one can quickly lose the ownership feeling. It’s crucial to treat any codebase as if the next person to deal with the code will be a serial killer who knows where you live. Jokes aside, I think ownership is a powerful concept. If you're given a task, treat that task as though it serves you directly. In the grand scheme of things, you want to work in a well-known company, that changes the world for the better and leaves a dent in the universe. By taking ownership and responsibility, you’re directly signaling your values and beliefs.

Thanks for reading, I hope you learned something new. Happy coding!
下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/