Technical Aspects of Programming - 25 Years Programming Experience

5 Просмотры
I started to learn programming 25 years ago (1994–1995)! but It was 2002 that I made my first money with programming at age 16.
Here, I wanna talk about the technical aspects of the programming that I think every programmer should know and I learned over the years.

# Timeline

00:00 Introduction
00:16 Software Architecture
00:56 Design Pattern
01:31 SOLID Principles
02:02 Unit Testing
02:38 Type System
03:16 Function, The King of Isolation
04:43 Contribution Rules
05:11 Version Control
05:50 Frameworks
06:40 Regex in Database
07:12 Database Management System
07:54 Performance
08:53 Overly Engineered
09:17 Final Thoughts

# Textual Document

# Books and Websites

## Software Architecture

- Clean Architecture: A Craftsman's Guide to Software Structure and Design (Robert C. Martin)

- Software Architecture in Practice (Len Bass, Rick Kazman, Paul Clements)

## Design Pattern

- Dive Into Design Patterns (Alexander Shvets)

## SOLID Principles

- Design Principles and Design Patterns (Robert C. Martin)

## Unit Testing

- Unit Testing Principles, Practices, and Patterns (Vladimir Khorikov)

- Test Driven Development: By Example (Kent Beck)

- Growing Object-Oriented Software, Guided by Tests (Steve Freeman, Nat Pryce)

## Type System

- Types and Programming Languages (Benjamin C. Pierce)

## Function, The King of Isolation

- Structure and Interpretation of Computer Programs (Gerald Jay Sussman, Hal Abelson)

- Purely Functional Data Structures (Chris Okasaki)

- Programming in Haskell (Graham Hutton)

## Contribution Rules

- Linux documentation

## Version Control

- Pro Git (Scott Chacon, Ben Straub)

- Version Control with Git: Powerful tools and techniques for collaborative software development (Jon Loeliger, Matthew McCullough)

## Regex in Database

- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems (Martin Kleppmann)

- Beginning Database Design: From Novice to Professional (Clare Churcher)

## Database Management System

- Drupal

## Performance

- Model Management and Analytics for Large Scale Systems (Bedir Tekinerdogan, Onder Babur, Loek Cleophas, Mark van den Brand , Mehmet Aksit)

- Large-Scale C++ Software Design (John Lakos)

# Donation

Bitcoin: 1MdFyy7AGqf3vL7EtPJr5bfwpBNKctNzWL
Bitcoin Cash: qq4c94e9mh4gp5zzgxjknvvdfcmea73zycptwgl3zp
Ether: 0x170D57ed547c153B21A7BA8aaB9a8fb53C5EAD5f
Ремонт своими руками
Комментариев нет.