본문 바로가기

개발기술/기타

좋은 개발자가 되려면 ( Focus on Fundamental, API : JIT learning)


Focus on Core Concepts; Design Principle/CS Knowledge etc,  API : Just in time learning

 

Question : so to be a good programming , it is better to focus on learning principles and design pattern that are applicable all around rather than usage of api. is it commonly recommended practice?

 

Answer :

Yes, that is a commonly recommended practice and a highly effective strategy for becoming a proficient programmer. Focusing on principles, design patterns, and fundamental concepts rather than just learning specific APIs or framework syntax provides a more robust and versatile foundation. This approach not only enhances your ability to adapt to new technologies but also deepens your problem-solving skills. Here’s why this strategy is beneficial:

1. Long-Term Flexibility

  • Technological Evolution: Technologies and frameworks evolve rapidly. An API you learn today might become outdated in a few years, but foundational principles like object-oriented design, functional programming, or software architecture remain relevant much longer.
  • Adaptability: By understanding core principles, you can more easily adapt to new programming languages or frameworks as you'll recognize familiar patterns and concepts.

2. Problem-Solving Skills

  • Deeper Understanding: Knowing why things work, not just how, allows you to solve problems more effectively and make better design decisions.
  • Versatility in Solutions: Understanding various design patterns and principles equips you to approach problems from multiple angles and devise optimal solutions.

3. Improved Communication

  • Clearer Communication: Knowledge of common principles and patterns allows you to communicate more effectively with other developers, as these are often used as the common language among professionals in discussing software architecture and design problems.

4. Quality and Maintainability

  • Better Code Quality: Principles and patterns guide you in writing clean, maintainable code. For example, the SOLID principles are geared towards creating software that is easy to maintain and extend.
  • Easier Debugging and Refactoring: A solid understanding of fundamental principles helps in effectively debugging code and refactoring it without introducing new bugs.

5. Learning Efficiency

  • Faster Learning of New Technologies: Once you understand the underlying principles, learning a new language or framework becomes a matter of understanding its specific syntax and idiosyncrasies, rather than starting from zero.

Recommended Practices for Learning:

  1. Focus on Core Concepts: Spend time learning core computer science concepts like data structures, algorithms, memory management, and network communication.
  2. Study Design Patterns: Familiarize yourself with classic design patterns (e.g., those outlined in the "Gang of Four" book) and architectural patterns (e.g., MVC, microservices).
  3. Practice Clean Coding: Follow practices recommended in books like "Clean Code" by Robert C. Martin.
  4. Contribute to Projects: Apply what you've learned in real-world scenarios, such as contributing to open-source projects or personal projects. This will help solidify your understanding and expose you to practical challenges.
  5. Continuous Learning: Stay updated with new developments and continue learning through courses, books, blogs, and community discussions.

By emphasizing principles and design patterns, you not only prepare yourself to be effective across various platforms and languages but also position yourself as a strong candidate for leadership roles in technology due to your deep understanding of software development at a fundamental level.

 
 
4