Co dělá programátora programátorem?
Sepsal jsem svůj pohled na to, co dělá člověka programátorem. Je to napsáno v pořadí od základních dovedností po ty “méně obvyklé”.
Rád si počtu, jaký je váš názor, nebo v jakém pořadí a které schopnosti jste si osvojili vy. Napsal jsem to rychle, takže pokud najdete chybu, opravím.
- schopnost vyjadřovat algoritmy v programovacím jazyce
- zkušenosti s řešením "podobných" problémů v daném jazyce
- zkušenosti s řešením "podobných" problémů v nějakém jazyce
- debugování
- uvědomovat si, jaké mohou nastat případy exekuce,
které vedou k nesprávnému chodu = logické uvažování a hodně zkušeností
- být schopen nějakým způsobem ověřit co kód dělá a najít bug
= používat breakpointy, nebo průběžné výpisy během exekuce k nalezení bugu
- schopnost minimálního ovládání objektů
- zkušenosti s řešením "podobných" problémů pomocí objektů v daném jazyce
- zkušenosti s řešením "podobných" problémů pomocí objektů v nějakém jazyce
- číst knihy o programování
- programovací cyklus
- TDD, BDD
- primitivní naprogramuj / zkontroluj cyklus
- proces
- umět dodržovat vybraný proces programování - agilní, racionální, ..
- mistrovství programování: schopnost opravdového objektového programování
- znát design patterns a umět je aplikovat
= zkušenosti => vidět design patterns
- znát postup refactoringu po částech pomocí testů, nebo bez nich
- znát a umět aplikovat PrinciplesOfOod ("SOLID" principles)
SRP The Single Responsibility Principle
A class should have one, and only one, reason to change.
OCP The Open Closed Principle
You should be able to extend a classes behavior, without modifying it.
LSP The Liskov Substitution Principle
Derived classes must be substitutable for their base classes.
DIP The Dependency Inversion Principle
Depend on abstractions, not on concretions.
ISP The Interface Segregation Principle
Make fine grained interfaces that are client specific.
- nekonečný úděl programátora
- učit programovat ostatní
- řešit neobvyklé úlohy
- neustále se něco učit
Možná jste si všimli, že tu chybí “chodit do práce”, nebo “přispívat k open source projektu”. Jednak se to mírně předpokládá a pak se to mírně rozpouští v některých již popsaných dovednostech. Šlo mi především o vyjmenování skillů, které je si třeba osvojit.
Za komentáře předem děkuju.
programováníprogramováníJanuary 17, 2010