開源日報 每天推薦一個 GitHub 優質開源項目和一篇精選英文科技或編程文章原文,堅持閱讀《開源日報》,保持每日學習的好習慣。
今日推薦開源項目:《更新日誌 keep-a-changelog》
今日推薦英文原文:《Four Ways to Know if You’re a Great Software Engineer》
開源日報第552期:《更新日誌 keep-a-changelog》
今日推薦開源項目:《更新日誌 keep-a-changelog》傳送門:GitHub鏈接
今日推薦英文原文:《Four Ways to Know if You’re a Great Software Engineer》作者:Indrek Lasn

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.
開源日報第552期:《更新日誌 keep-a-changelog》
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.
開源日報第552期:《更新日誌 keep-a-changelog》
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.
開源日報第552期:《更新日誌 keep-a-changelog》
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.
開源日報第552期:《更新日誌 keep-a-changelog》
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!