๐๐ฒ๐ฎ๐ฟ๐ป ๐ณ๐๐ป๐ฑ๐ฎ๐บ๐ฒ๐ป๐๐ฎ๐น๐ ๐ป๐ผ๐ ๐ณ๐ฟ๐ฎ๐บ๐ฒ๐๐ผ๐ฟ๐ธ๐
We, as developers, like to learn new stuff and try it ASAP. That stuff is mostly some new frameworks and tools (such as React, Angular, Spring, Web Forms, ...). Yet, those frameworks usually have ๐ฎ ๐๐ต๐ผ๐ฟ๐ ๐น๐ถ๐ณ๐ฒ, ๐ฎ ๐๐ผ ๐ฑ ๐๐ฒ๐ฎ๐ฟ๐ ๐ฎ๐ ๐๐ต๐ฒ๐ถ๐ฟ ๐ฏ๐ฒ๐๐. Instead of learning frameworks, which are needed to some extent, we should focus more on learning fundamentals.
๐๐ฒ๐ฎ๐ฟ๐ป๐ถ๐ป๐ด ๐๐ต๐ฒ ๐ณ๐๐ป๐ฑ๐ฎ๐บ๐ฒ๐ป๐๐ฎ๐น๐ ๐ผ๐ณ ๐๐ผ๐ณ๐๐๐ฎ๐ฟ๐ฒ ๐ฑ๐ฒ๐๐ฒ๐น๐ผ๐ฝ๐บ๐ฒ๐ป๐ allows a developer to understand the underlying principles and concepts common across different frameworks and programming languages. This understanding allows for more flexibility and adaptability when working with new technologies or when faced with problems that may not be easily solved by a specific framework.
Additionally, a strong understanding of the fundamentals can lead to ๐บ๐ผ๐ฟ๐ฒ ๐ฒ๐ณ๐ณ๐ถ๐ฐ๐ถ๐ฒ๐ป๐ ๐ฎ๐ป๐ฑ ๐ฒ๐ณ๐ณ๐ฒ๐ฐ๐๐ถ๐๐ฒ ๐๐๐ฒ ๐ผ๐ณ ๐ณ๐ฟ๐ฎ๐บ๐ฒ๐๐ผ๐ฟ๐ธ๐, as the developer can better understand how to customize and extend them to meet specific needs.
Take an example of a web application that allows users to upload and share images, e.g., Ruby on Rails, and its functionalities for image processing. If the number of users increases, we could struggle with performance issues if we know only the framework well. Yet, if we understand the fundamentals of web development, we could try to identify bottlenecks and try different solutions, such as using CDN-s, optimizing image sizes, using different storage solutions, etc.
So, which fundamentals to learn:
๐น ๐๐น๐ด๐ผ๐ฟ๐ถ๐๐ต๐บ๐
๐น ๐๐ฎ๐๐ฎ ๐๐ผ๐๐ฟ๐ฐ๐ฒ๐
๐น ๐๐น๐ฒ๐ฎ๐ป ๐ฐ๐ผ๐ฑ๐ฒ
๐น ๐๐ฒ๐๐ถ๐ด๐ป ๐ฝ๐ฎ๐๐๐ฒ๐ฟ๐ป๐
๐น ๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐๐ผ๐บ๐ฝ๐๐๐ถ๐ป๐ด ๐ฃ๐ฎ๐๐๐ฒ๐ฟ๐ป๐
๐น ๐ง๐ฒ๐๐๐ถ๐ป๐ด
๐น ๐ฆ๐๐๐๐ฒ๐บ ๐๐ฒ๐๐ถ๐ด๐ป
Try to learn those fundamentals, buy and read these books:
๐ธ ๐๐น๐ฒ๐ฎ๐ป ๐๐ผ๐ฑ๐ฒ
๐ธ ๐ง๐ต๐ฒ ๐ฃ๐ฟ๐ฎ๐ด๐บ๐ฎ๐๐ถ๐ฐ ๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ฒ๐ฟ
๐ธ ๐๐ผ๐ฑ๐ฒ ๐๐ผ๐บ๐ฝ๐น๐ฒ๐๐ฒ
๐ธ ๐๐ฒ๐๐ถ๐ด๐ป ๐ฃ๐ฎ๐๐๐ฒ๐ฟ๐ป๐: ๐๐น๐ฒ๐บ๐ฒ๐ป๐๐ ๐ผ๐ณ ๐ฅ๐ฒ๐๐๐ฎ๐ฏ๐น๐ฒ ๐ข๐ฏ๐ท๐ฒ๐ฐ๐-๐ข๐ฟ๐ถ๐ฒ๐ป๐๐ฒ๐ฑ ๐ฆ๐ผ๐ณ๐๐๐ฎ๐ฟ๐ฒ
๐ธ ๐๐ป๐๐ฟ๐ผ๐ฑ๐๐ฐ๐๐ถ๐ผ๐ป ๐๐ผ ๐๐น๐ด๐ผ๐ฟ๐ถ๐๐ต๐บ๐
#softwareengineering