임백준 | 오병곤 | 이춘식 | 이주연 | 박재성 | 신재용 지음

상동도서관에서 대여

2014년 3월 25일 ~ 3월 31일

시니어 프로그래머, 행복한 프로그래밍  _임백준

슈퍼스타 프로그래머가 되자
설계 - 코딩 - 테스트
좀더 많은 시간을 설계에 투자하자
코딩스타일에 좀더 신경쓰자
유닛테스트가 가능하도록 코딩하자
코딩이 끝나면 반드시 테스트를 하자

if - else 문은 가급적 자제하자
스스로에게라도 코드리뷰를 하자

스크럼을 하자
(1)나는 어제 무엇을 했는가
(2)나는 오늘 무엇을 할 것인가.
(3)내일의 진행을 가로막는 기술적인 장애가 있는가

오픈소스라이브러리를 오용하거나 남용하는것은 문제다.
자신이 직접 간단하게 프로그래밍 할 수 있는 기능까지 오픈소스 라이브러리를 이용해서 구현하는 것은 비효울적이다.

제2의 인생, 컨설턴트의 길 _ 오병곤

메모하고 정리하자
발표자료를 준비하자
마음에 드는 고객을 만났으면 그 사람을 한달 안에 정말 감동받아 쓰러지도록 만들어라.

첫째. 나만의 전문분야를 만들어 필살기로 계발하자
(깊은 열정을 가진 일 && 최고가 될 수 있는 일 && 경제적 만족도)
둘째. 사람이 재산이다 성공을 도와줄 수 있는 사람을 모으고 끌어당겨라.
셋째. 협소한 엔지니어 마인드를 탈피하가.
넷째. 도전 정신을 갖고 자신의 관심사를 확산시켜 풍부하게 만들어라.

데이터아키텍트의 마스터로 살련다 _이춘식

1년에 1권씩 책을 집필할다는 생각을 가지고 정보와 자료를 정리하자.
수확체증의 법칙을 항상 기억하라.(눈덩이 굴리기 , 계단식성장)

자질이 우수한 리더
1) 일의 목표는 분명한가?
2) 일에 가치가 부여되고 있고 일의 성과를 내고 있는가?
3) 다양한 성격의 사람과 대화를 잘할 수 있는가? 협상의 기술이 있는가?
4)프로젠테이션 스킬이 우수한가?
5)기획 문서를 쉽고 빠르게 작성할 수 있는가?
6)시간 관리를 하고 있는가?
7)변화와 개선점을 파악할 수 있고 제시할 수 있는가?

자격증 및 스킬학습 성공을 위한 7가지 습관
1. Vision을 명확하게 해야 한다.
2. Fun하게 학습한다.
3. Passion을 가지고 학습한다.
4. Pass 마인드를 갖자.
5. Never Give Up 
6. Open / Share
7. Study 한다. (깊이 있게 연구하는 것)

30년 외길 인생, 은퇴를 앞둔 노병의 메시지 _이주연

문서화는 꼭 필요하다.
주기적으로 관리하자

목표를 세우고 남들이 안가본 도전을 해봐라
(솔찍히 100% 동의하진 않음)

은퇴이후를 생각하자.

표준->컨설팅->솔루션->SI(시스템통합)

자바지기의 프로그래머 그 다음 이야기 _박재성

발표를 할 기회를 자주 만들어라

10년차 어느 변방 갑돌이 프로그래머의 우물 안 극복기 _

최소 1년에 한번씩 이력서를 업데이트 하자
10년후의 모습을 그려보자.(10가지)

Posted by 빨강토끼
,

- Edward Garson


Functional Programming has recently enjoyed renewed interest from the mainstream programming community. Part of the reason is because emergent properties of the functional paradigm are well positioned to address the challenges posed by our industry's shift toward multi-core. However, while that is certainly an important application, it is not the reason this piece admonishes you to know thy functional programming.


Mastery of the functional programming paradigm can greatly improve the quality of the code you write in other contexts. If you deeply understand and apply the functional paradigm, your designs will exhibit a much higher degree of referential transparency.


Referential transparency is a very desirable property: It implies that functions consistently yield the same results given the same input, irrespective of where and when they are invoked. That is, function, evaluation depends less - ideally, not at all - on the side effects of mutable state.


A leading cause of defects in imperative code is attributable to mutable variables. Everyone reading this will have investigated why some value is not as expected in a particular situation. Visibility semantics can help to mitigate these insidious defects, or at least to drastically narrow down their location, but their true culprit may in fact be the providence of designs that employ inordinate mutability.



And we certainly don't get much help from industry in this regard. Introductions to object orientation tacitly promote such design, because they often show examples composed of graphs of relatively long-lived object that happily call mutator methods on each other, which can be dangerous. However, with astute test-driven design, particularly when being such to "Mock Roles, not Objects", unnecessary mutability can be designed away. 


The net result is a design that typically has better responsibility allocation with more numerous, functions that act on arguments passed into them, rather than referencing mutable member variables. There will be fewer defects, and furthermore they will often be simpler to debug, because it is easier to locate where a rogue value is introduced in these designs than to otherwise deduce the particular context that results in an erroneous assignment. This adds up to a much higher degree of referential transparency, and positively, and positively nothing will get these ideas as deeply into your bones as learning a functional programming language, where this model of computation is the norm.


Of course, this approach is not optimal in all situations. For example, in object-oriented systems this style often yields better results with domain model development(i.e., where collaborations serve to break down the complexity of business rules) than with user-interface development.


Master the functional programming paradigm so you are able to judiciously apply the lessons learned to other domains. Your object systems(for one) will resonate with referential transparency goodness and be much closer to their functional counterparts than many would have you believe. In fact, some would even assert that the apex if functional programming and object orientation are merely a reflection of each other, a form of computational yin and yang.


객체지향형 프로그램의 단점중에 하나라고 하면 지속적으로 변하는 내부맴버변수들을 효율적으로 컨트롤하지 못한다는 것이다.(동기화나 다른 여러가지 이슈)


함수들이 주어진 같은 입력에 대해 언제 어디서 호출되던지 상관없이 지속적으로 같은 결과를 얻도록 하는것이 참조 투명성의 바람직한 특징이다.


그러기 위해서 가급적이면 변하기쉬운 멤버변수들을 참조하기보다 그것들을 함수의 인자로 전달고 좀더 작고 많은수의 함수들로 책임을 나누게 하여서 훨신 더 높은 참조투명성을 갖게 하자는 것이 함수형 프로그래밍의 취지중에 하나이다.


물론 본문의 끝자락에 나와있드시 함수형 프로그래밍과 객체지향은 음과 양처럼 서로의 장단점이 있으므로 각자에 대하여 깊은 이해를 전제하여 각 과제마다 적절한 방식을 사용하는것이 주요하다.



Posted by 빨강토끼
,

기술이라고 하기에 많이 부족하지만

해당글에는 앞으로 반말을 사용해야겠습니다.


이유는 


http://blog.outsider.ne.kr/831

http://akngs.tumblr.com/post/29967547275

http://www.richis.org/html/research/treatise/a08.pdf


상기 블로그에도 이야기하드시 문장이 좀더 명료하게 간결해진다는 것 때문입니다.


이해해 주세요. ^^


고맙습니다.

Posted by 빨강토끼
,