Some experience sharing of foreign big cow Adam Fallon's ten years of software development

After a decade-long programming career, my understanding and understanding of software engineering has become increasingly mature. Here, I would like to share with you some unique insights and experiences about programming. I hope these experiences can provide some reference for your programming journey.

insert image description here

First, I discovered that there is a large and very vocal industry dedicated to adding complexity to software engineering projects . This complexity often manifests itself in useless features, cumbersome processes, and lengthy code. All of these can lead to overly complex software that is difficult to maintain and optimize. Therefore, I recommend avoiding this complexity as much as possible and pursuing a clean and efficient design and code.

Second, we need to understand that 99% of what is written about software is written by people who haven't seen the whole picture, are overly excited about it, and don't have enough information . This includes not only some tech blogs, but even this article. Therefore, when reading these materials, we should maintain critical thinking and understand that they may only be some people's opinions and may not apply to our actual situation.

Besides that, we need to try to avoid tedious work related to programming but not involving writing and testing code , such as excessive design, useless meetings, etc. Instead, we should focus more on getting work done, writing usable software, and acquiring users.

Regarding testing, I think testing becomes very important once the codebase starts to stabilize . At this stage, testing can effectively discover and solve problems and improve the quality of software. However, during the experimental phase of software development, we can temporarily ignore testing for faster trial-and-error and optimization.

At the same time, you can't stop someone from "ruining" your codebase . But you can blame yourself for not designing safeguards to prevent this from happening. Therefore, when designing and programming, we need to take this possibility into account and set up protective measures in advance.

I also found that choosing and sticking to a technology stack is very important . I chose React (Web), NodeJS (Backend), Postgres (Database) and React Native (Mobile). This technology stack can meet almost all my needs. Therefore, I suggest you find a tech stack that works for you and stick with it.

In addition, I suggest that you do more side projects. This can not only improve our programming skills, but also
help us better understand and use new technologies and tools. For example, you could try to perfect the presentation of a list of JSON data pulled from a database, an exercise that will greatly improve your skill level.

In terms of the choice of programming paradigm, I don't think the functional style is better than the imperative style , it's just another way to write software. Therefore, we should not become fanatics of any programming paradigm, but should flexibly choose a suitable programming paradigm according to actual needs and situations.

Of course, we should also understand that not all senior (and above) software engineers are the same . We need to be wary of engineers who are based on seniority rather than real skills and experience. At the same time, we also need to understand that one minute of planning is equal to one hour of blind coding. Therefore, we should take the time for adequate planning and design before starting programming.

In my opinion, all good software was written in the 70's, and the quality of software seems to have been declining since then . I think this may be because we are too pursuing new technologies and tools, while ignoring the essence and foundation of software. Therefore, I suggest that while pursuing new technologies, don't forget the foundation and essence of software.

In communication and cooperation, I think quiet is better than loud. We need to learn to share our ideas and results with others at the right time, instead of speaking casually . In this way, our ideas and achievements can be truly valued and respected.

Finally, I want to say that in the field of programming, one should not easily change the technology stack or tools used, just to pursue some small benefits or instant gratification . At the same time, I found that really good engineers are very humble, they like to learn and share, and they are role models for us to learn and learn from.

The above are some of my experience in programming for ten years, I hope it will be helpful to you. Of course, everyone's experience and experience will be different, and I also look forward to your insights and experiences.

Note: This article is adapted from: https://adamfallon.com/programming/software-engineering/2022/09/09/some-thoughts-on-my-first-ten-years-of-programming.html .

Guess you like

Origin blog.csdn.net/w605283073/article/details/131486638