What you'll learnInterface design principles in depth
Software practices to write readable and production ready code
Programming practices applicable to every programming language
Principles to follow while tackling niche problems like performance and debugging
Importance of programming practices in building high performance code without making the code unreadable
RequirementsBasic knowledge about any programming language. You will learn the principles needed to shape your skills into potent practices.
A working knowledge about software development in general. Ability to appreciate iterative nature of design will come in handy.
Simple snippets of few lines used as examples and quick checks.
No particular programming language is targetted. If you have practiced with any programming language in past 6 months you can understand everything in the course!
If you have recently learned your first programming language, just be patient with the content. It will definitely add focus to whatever project you pick up next.
DescriptionWelcome to the "Programming Practices for Software Engineers" course on Udemy!In this course, you will learn the best programming practices that every software engineer should know. In addition, we will cover code organization, testing, debugging, performance, notation, and refactoring.Throughout the course, you will work on hands-on exercises to apply these concepts and improve your programming skills. We will also cover how to work in a team and collaborate with other software engineers.By the end of this course, you will have a solid understanding of the programming practices that will help you become a successful software engineer. In addition, you will be able to write clean, efficient, and well-organized code and have the skills to work effectively in a team environment.This course suits software engineers of all levels, from beginners to experienced professionals. No programming experience is required, but familiarity with a programming language would be helpful. So, if you want to improve your programming skills and become a better software engineer, this course is for you!Why are programming practices needed?Programming practices are essential in software engineering because they help ensure that the software is high quality, easy to maintain, and easy to modify. Some examples of programming practices that are important in software engineering include:Writing clean, well-documented code helps other developers understand and work with the code more easily.Using version control: This allows developers to track changes to the code over time and makes it easier to collaborate with other team members. Making readable code changes makes the version control a repository to understand the evolution of code.Adhering to coding standards: This helps to ensure that the code is consistent and easy to read, which makes it easier to maintain and modify.Automating testing: This helps catch bugs early and ensures that the code is high quality.Using consistent programming practices helps make the code more reusable and easier to understand while debugging and tuning.Overall, good programming practices can help to improve the efficiency and effectiveness of software development, which can lead to better software products.
OverviewSection 1: Introduction
Lecture 1 Objective
Lecture 2 Sincere Request before getting started
Section 2: Programming Style
Lecture 3 Programming Style : Section Introduction
Lecture 4 Why programming style matters?
Lecture 5 Naming : Desired Characteristics
Lecture 6 Naming Practices : Variable names - 1
Lecture 7 Naming Practices : Variable names - 2
Lecture 8 Naming Practices : Variable names - 3
Lecture 9 Naming Practices : Function Names
Lecture 10 Naming Practices : Importance of being accurate
Lecture 11 Expressions and Statements : Indentation
Lecture 12 Expressions and Statements : Natural Expression
Lecture 13 Expressions and Statements : Parantheses
Lecture 14 Expressions and Statements : Complexity
Lecture 15 Expressions and Statements : Side Effects
Lecture 16 Consistency and Idioms : Overview
Lecture 17 Consistency and Idioms : Loops
Lecture 18 Consistency and Idioms : else if
Lecture 0 Quick check
Lecture 19 Macros
Lecture 20 Magic Numbers
Lecture 21 Code Comments
Lecture 22 Section Summary
Section 3: Algorithms and Data Structures w.r.t Programming Practices
Lecture 23 Algorithms and Data Strcutures : Section Introduction
Lecture 24 Necessity to understand practices around data structures and algorithms
Lecture 25 Algorithms : Search
Lecture 26 Algorithms : Sorting
Lecture 27 Algorithms : Libraries
Lecture 28 Algorithms : O - Notation
Lecture 29 Data Strcutures : Dynamic Arrays
Lecture 30 Data Strcutures : Lists
Lecture 31 Data Strcutures : Trees
Lecture 32 Data Strcutures : Hash Tables
Lecture 33 Algorithms & Data Strcutures : Summary
Section 4: Interface Design : Programming practices and principles with example
Lecture 0 Sort quick check
Lecture 34 Interface Design : Section Introduction
Lecture 35 Design and Implementation in general
Lecture 36 Introduction to interface design programming practices
Lecture 37 Interface Example : Prototype design version
Lecture 38 Design considerations
Lecture 39 Interface Example : Library
Lecture 40 Interface Specifications
Lecture 41 Interface Design : General Principles
Lecture 42 Hiding implementation a.k.a abstraction
Lecture 43 Interface Design : General Principles extended
Lecture 44 Resource Management programming practices
Lecture 45 Error Handling programming practices
Lecture 46 User Interfaces
Section 5: Debugging: Navigating the development and production
Lecture 47 Debugging : Section Introduction
Lecture 48 Debugging practices overview
Lecture 49 Debuggers in general
Lecture 50 Debugging practices for easy bugs
Lecture 51 Debugging practices for hard bugs
Lecture 52 Debugging Challenges
Section 6: Testing : Programming practices beyond roles and designations
Lecture 53 Software Testing: Section Introduction
Lecture 54 Testing Overview
Lecture 55 Test as you code or Test Driven Development
Lecture 56 Test Automation
Lecture 57 Systematic testing practices
Lecture 58 Considerations while software testing in general
Lecture 59 Ownership of testing
Section 7: Performance: Measure what matters. Fix only what matters!
Lecture 60 Software Performance : Section Introduction
Lecture 61 Performance practices overview
Lecture 62 Basic steps to appraoching performance issues
Lecture 63 Guideline programming practices for dealing with performance improvement
Lecture 64 Timing and profiling for performance
Lecture 65 Performance improvement strategies
Lecture 66 Code tuning for better performance
Lecture 67 Estimation
Lecture 68 Optimal space utilization for better performance
Section 8: Portability: Practices to ensure code works everywhere
Lecture 69 Software Portability: Section Introduction
Lecture 70 Overview
Lecture 71 Role of language in portability
Lecture 72 Environmental factors to be considered in practices dealing with portability
Lecture 73 Role of system interface and practices to handle the portability concerns
Section 9: Notation: Being proactive is the only way!
Lecture 74 Notation: Section Introduction
Lecture 75 Overview
Lecture 76 Programming Language
Lecture 77 Data formatting practices
Lecture 78 Regular Expressions
Lecture 79 Programmable tools
Lecture 80 Tool chains: Compilers, Interpreters, Virtual Machines
Lecture 81 Code Generation
Lecture 82 Just in Time compilation
Section 10: Conclusion
Lecture 83 Closing remarks.
Lecture 84[Bonus Lecture]
Beginner and intermediate experience developers. No language bar all Python, Java, Scala, C++, Rust, GoLang, jаvascript, etc. developers will benefit from the practices and principles being shared in the course.,Software professional with 4-8 years of experience will benefit from the practices to take back to their teams,Students learning programming language can use the additional design perspective from the course for their upcoming project.,All developers curious about programming and software practices that make systems robust and scalable for decades,Programmers looking to upskill in their career by building expertise in software design and productive software engineering.
Buy Premium Account From My Download Links & Get Fastest Speed.
https://rapidgator.net/file/534ae4a916fa44c87baf1155886735bf/Programming_Practices_for_Software_Engineers.rar.html