Differences between revisions 1 and 98 (spanning 97 versions)
Revision 1 as of 2022-09-14 10:35:40
Size: 16
Editor: 정수
Comment:
Revision 98 as of 2023-09-13 04:55:53
Size: 3170
Editor: 정수
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

<<TableOfContents(2)>>


use data to make logic simple

 * make DSL
 * do not mix logic and data construction

== Proverbs ==

 * [[http://www.agile-process.org/proverbs.html|Agile Process Proverbs]]


== Philosophy, Viewpoint, Programmer ==



 * [[책/실용주의 프로그래머|Pragmatic Programmer]]
 * LittleBets
 * [[책/천 개의 성공을 만든 작은 행동의 힘]]
 * [[책/AreYourLightsOn]]

last 5% automation

craft, not science

SoftwareArchitecture. [[AOSA]] prefaces.

The Eisenhower Matrix

Make it work, then make it better.

problem space, solution space

...

== Philosophy, Viewpoint, Programmer: Advanced ==

programming is to make a language system. make vocabulary. take a look at Peter Norvig's [[https://github.com/norvig/pytudes/blob/main/ipynb/Advent-2020.ipynb|code]] (pattern language, lisp hackers)

 * [[책/TheTimelessWayOfBuilding]]
 * SICP
 * 패턴, 위키, 그리고 XP


== Programming fundamental ==

공통점과 차이점 찾기. 공통점을 공유하고, 차이점을 처리할 수 있는 기법을 습득한다. (OOP 다형성, 고차함수 등)



 * Refactoring 2/E
 * Kent Beck, Implementation Patterns
 * Robert Martin, Agile Software Development


== TDD, Baby step, Evolutionary Design ==

Baby Step

quickly step back to closest green-bar when you see red bar

TDD is a design activity ([[https://www.youtube.com/watch?v=d5Y1B1cmaGQ|DbC]]: Design by Coding)

short feedback cycle (loop)

bowling kata by robert martin

[[https://www.industriallogic.com/blog/whats-this-about-micro-commits/|micro commit]], one at a time

isolation

do not guess far. when you guess, validate it.

use abduction.



 * Kent Beck, Test Driven Development
 * Specification by Examples


== Testing & Debugging ==

eliminate/reduce intermediate layers

넘겨짚지 말고, 마술의 동작과 동작 사이를 잘 들여다보기.

regression test

[[가추법|abduction]]

Here and now. recognize what's going on, inspect it, find root cause, and fix it. Don't wandering around searching web pages mindlessly.

BDD, ATDD, SBE


== Collaboration ==

If you are a software developer, you should consider extreme programming instead of scrum. It has many technical principles that can improve your work.

pair programming: perform outstanding with other juniors


[[http://agile.egloos.com/5904102|협업의 미신]] ([[https://www.youtube.com/watch?v=I4xkw_0XqAs|영상]])

pull request anti pattern: [[https://twitter.com/kentbeck/status/1375936309458464769|Kent's twit]]. [[https://jessitron.com/2021/03/27/those-pesky-pull-request-reviews/|Those pesky pull request reviews]]. [[기술문서모음/PR과 코드리뷰|PR과 코드리뷰]].



 * Kent Beck, [[책/ExtremeProgrammingExplained]]
 * [[책/피플웨어|Peopleware]]


== Learning, Expertise ==

To learn well from experts (CTA, CDE)

GaryKlein, AndersEricsson

 * [[책/ApprenticeshipPatterns]]
 * 실용주의 사고와 학습
 * [[책/1만 시간의 재발견]]


----
See Also: [[프로그래밍 추천 도서]]

use data to make logic simple

  • make DSL
  • do not mix logic and data construction

Proverbs

Philosophy, Viewpoint, Programmer

last 5% automation

craft, not science

SoftwareArchitecture. AOSA prefaces.

The Eisenhower Matrix

Make it work, then make it better.

problem space, solution space

...

Philosophy, Viewpoint, Programmer: Advanced

programming is to make a language system. make vocabulary. take a look at Peter Norvig's code (pattern language, lisp hackers)

Programming fundamental

공통점과 차이점 찾기. 공통점을 공유하고, 차이점을 처리할 수 있는 기법을 습득한다. (OOP 다형성, 고차함수 등)

  • Refactoring 2/E
  • Kent Beck, Implementation Patterns
  • Robert Martin, Agile Software Development

TDD, Baby step, Evolutionary Design

Baby Step

quickly step back to closest green-bar when you see red bar

TDD is a design activity (DbC: Design by Coding)

short feedback cycle (loop)

bowling kata by robert martin

micro commit, one at a time

isolation

do not guess far. when you guess, validate it.

use abduction.

  • Kent Beck, Test Driven Development
  • Specification by Examples

Testing & Debugging

eliminate/reduce intermediate layers

넘겨짚지 말고, 마술의 동작과 동작 사이를 잘 들여다보기.

regression test

abduction

Here and now. recognize what's going on, inspect it, find root cause, and fix it. Don't wandering around searching web pages mindlessly.

BDD, ATDD, SBE

Collaboration

If you are a software developer, you should consider extreme programming instead of scrum. It has many technical principles that can improve your work.

pair programming: perform outstanding with other juniors

협업의 미신 (영상)

pull request anti pattern: Kent's twit. Those pesky pull request reviews. PR과 코드리뷰.

Learning, Expertise

To learn well from experts (CTA, CDE)

GaryKlein, AndersEricsson


See Also: 프로그래밍 추천 도서

기술문서모음/ToJuniors (last edited 2025-07-24 13:18:54 by 정수)