开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《机器学习 Scikit-learn》
今日推荐英文原文:《Top Developer Soft Skills to Learn》

今日推荐开源项目:《机器学习 Scikit-learn》传送门:GitHub链接
推荐理由:Scikit-learn是一个基于NumPy,SciPy和matplotlib构建的Python机器学习模块,一个简单高效的数据分析工具。官网链接:https://scikit-learn.org/stable/
今日推荐英文原文:《Top Developer Soft Skills to Learn》作者:John Au-Yeung
原文链接:https://medium.com/@hohanga/top-developer-soft-skills-to-learn-422c38ac2dd7
推荐理由:敲代码并不是全部

Top Developer Soft Skills to Learn

(Photo by Alistair MacRobert on Unsplash)
If you want to become a successful developer, you have to learn more than writing code to become successful.

In this article, we’ll look at some soft skills to learn in order to become a successful developer. Like any job, soft skills are also pretty important given that we can do the technical work.

Diversify

We have to be open-minded about different things. Being able to learn different things and unlearn outdated or bad knowledge is a must.

Therefore, it’s important to learn things outside of our jobs in case we need them. So if we’re working on Rails now, we should also learn about Node and Express, for example.

This also go with general principles like learn functional programming when we’re using object-oriented languages mostly. They aren’t mutually exclusive.

For instance, JavaScript has both functional concepts like higher-order functions included in the language and also object-oriented concepts like objects, prototypes and inheritance included.

This way, we can be useful to more people and it also adds different perspectives to enrich how we think about different things.

We won’t be as narrow-minded if we learn different ways to do things.

Computer things change fast, so we must adapt so we won’t be useless and unemployable in the near future.

Be Agile

Being agile means that we should be prepared for changing requirements or projects at any time.

Our minds can’t be fixated in anywhere so that we can understand users’ use cases for a software product.

Also, we got to be understanding to customers and incorporate their feedback into our product.

Therefore it’s best to just do a small piece of a product at a time. This way even is feature changes, we won’t have to go back to everything over again.

It also makes implementing anything more manageable since we won’t be overwhelmed with anything.

Empathy

Having empathy is important. Since most software projects are teamwork-based and software is used to serve customers, it’s best if we have empathy for users since they pay for the software that we write.

Any feedback should be incorporated into the product if they make sense and lots of customers request them.

We should also have empathy for our teammates since they work hard and will probably touch each other's code at some point.

This means that we should write clean code and communicate changes. We should take a teammate’s suggestions if they make sense.

Always, try to see things from their point of view and why they want us to make changes their way.

Communication

Communication is both verbal and written. Verbal communication includes things like giving updates verbally and pair programming for example.

If we speak, we should speak clearly and with confidence. Also, we should listen more than we speak and don’t interrupt people.

These are just some basic etiquette that we should follow so that everyone has their chance to speak and be listened to.

Also, we should never dominate any conversation so that everyone has their chance to speak.

For written communication, we should write everything down. Things like updating the status and description of tasks are important.

Also, documenting instructions for how to set things and run when run things are also important.

In our code, we should write them so that that they’re self-documenting. So variable names should convey their meaning. This also goes for other things like functions, classes, or anything that has names.

Each function should be simple enough so that they only do one thing as indicated by their name.

(Photo by Yomex Owo on Unsplash)

Teamwork

Teamwork is important since most software projects are worked on by teams.

There’s just no way around it. It’s not only developers that we’re working with, but also designers, and different project teams.

We have to work with others well to become successful. Working well with others makes work a lot more pleasant then if we don’t.

Conclusion

Having a diverse and open-minded mindset is important if we want to become or continue to be successful as a developer.

Software things change all the time so we have to adapt to them. We should also be open to other things outside of what we do at what or at previous jobs.

Teamwork is important since most developers work in teams. So working well with others makes work more pleasant than if we don’t.

Finally, communication is important since we have to update and help each other in teams. Also, it’s important to be good at both verbal and written communication.


下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/