1. 프로그래밍에 열정이 있어야 한다. 열정이 없고 즐기지 못하면 평생 지속하기 어려운 일이다. 지금 환경이 있는 열정도 꺾어버릴 만큼 열악하다면 심각하게 변화를 생각해야 한다.


// "열정" 이건 어떤 일에 대해서도 마찬가지 덕목이 아닐까? 그리고 과연 내가 이 길을 지속할 수 있을지에 대한 최대 고민이기도 하다.



2. 프로그래밍 기초 원리를 이해해야 한다. 원리를 모르면 근본적인 해결능력이 떨어지고 수준 높은 개발을 하기 어렵다.


// 어떤 학문이든 근본이 되는 원리와 그에 관한 역사를 아는것은 중요하다. (기초 원리에 대한 책(C, C++)을 다시 제대로 찾아 봐야할 듯 하다.)



3. 문제 해결 능력을 키워야 한다. 개발자의 가장 중요한 핵심 역량이다.


// 개인 적으로 정말 중요한 덕목이라 생각하며, 또한 나로써는 가장 키우기 힘든 능력(영어, 수학, 기본원리등)이라 생각한다.



4. 창의적인 사람이 되라. 대부분의 좋은 해결책은 창의력에서 나온다.


// 반드 시 개발자의 시선으로만 상황을 바라볼 필요는 없는 듯 하다. 여러 가지 시선(사용자, 관리자, 개발자등)으로 바라보는 습관을 길러야 한다.


5. 다른 사람의 소스코드를 이해할 수 있는 능력을 키워야 한다. 다른 사람의 소스코드에서 많은 것을 배울 수 있다.


// 이것 또한, 정말 중요한 덕목 중 하나이다. 하지만 이것에 사용되는 비용은 적절히 잘 분배해야 할 듯 하다. 자칫 잘못하면, 예상치 못한 시간과 비용을 사용 할 수 있기 때문이다.(이 시간만큼 중요한 것이 스스로 문제 해결 능력을 키우고 이런 저런 상황을 많이 만들어 개발 노하우를 쌓는 것 또한 중요하기 때문이다.)



6. 수학을 잘 해야 한다. 수학을 못하면 값싼 쉬운 개발 밖에 못한다. 수학에 관심을 가지고 재미를 느껴보는 것도 한 방법이다.


// 이 또한, 위 응용력에 포함 된 이야기인 듯 한다.(중, 고등(난이도 조절 필요)학교 정도의 수학은 필히 따로 공부하는 것이 좋을 듯 하다.(하지만 나로썬 결코 쉽지 않을 것이다.))


7. 좋은 커뮤니케이션 스킬을 갖도록 노력해야 한다. 프로그래밍은 컴퓨터와 얘기하는 것이 아니고 사람들과 얘기하는 것이다.


8. 협업 능력을 키워라. 다른 사람과 일을 나눠서 할 수 있어야 내 몸값이 비싸진다. 혼자 일하는 것만 잘하면 평생 혼자 일해야 한다.


9. 논쟁(debate) 능력을 키워야 한다. 고급 개발자가 될 수록 토론하는 일이 늘어날 것이며, 좋은 토론이 좋은 소프트웨어를 만든다.


// 평소 갖춘 상식과 지식이 얼마나 축척되어 있느냐가 관건인 문제인 듯 싶다.



10. OOP를 완전히 이해해야 한다. OOP는 좋은 Architecture의 핵심이고, 협업능력을 키울 수 있게 해준다.


// 추가적으로 디자인 패턴 또한 완벽히 익혀 설계 시 적절히 활용할 수 있는 실력을 갖춰야 한다.(패턴에 대한 공부 또한 게을리 하면 안될듯 싶다..;; 휴~~ 할께 너무 많구나.;;; 정말 끝이 없는 듯 하다... )



11. 남이 이해할 수 있는 문서를 작성할 수 있어야 한다. 문서 작성은 평생 따라다니는 중요한 업무이다. 문서작성을 못하는 개발자는 값싼 개발밖에 못한다.


// "문서화" 에 대한 지식과 경험은 고급 개발자가 필히 가져야 할 중요한 덕목 중 하나이다.



12. 적어도 한가지의 개발언어는 완전히 마스터를 해야 한다. 마스터한 개발언어로는 어떠한 문제도 풀 수 있어야 한다. 모든 개발언어는 원리가 비슷하므로 다른 개발언어도 쉽게 배울 수 있다.


13. 적어도 한가지의 스크립트 언어를 구사할 수 있어야 한다. 간단한 툴은 쉽게 만들어 쓸 수 있다. 스크립트 언어로 쉽게 할 수 있는 일을 C언어로 작성하고 있다면 당장 Python을 공부해라.


// 리눅스 계열 언어인 "파이썬", "스칼라", "자바", 또한 여유가 된다면 "PHP"를 공부해 개인 프로젝트를 진행하고 싶다.(윈도우 계열 언어로는 "WPF", ".NET MVC"도 공부해야 할 듯 싶다.)



14. 비즈니스를 이해해야 한다. 훌륭한 아키텍트가 될 것이다. 좋은 Architect는 비즈니스 전략에서 나온다. 비즈니스에 관심이 없다면 당장 돌아가는 Software는 만들 수 있어도 좋은 Architecture는 못 만든다.


// 이 부분 또한, 고급 개발자로 가기위한 필수 조건이자, 정말 중요한 덕목이라 생각한다.

// 당장 돌아가는 소프트웨어가 아닌 좋은 설계를 가진 소프트웨어를 개발해야 한다.



15. 주변에 나보다 훨씬 뛰어난 프로그래머를 둬라. 끊임 없이 배울 수 있다. 주위의 뛰어난 개발자를 경쟁상대라고 생각하지 말고 스승으로 생각해라. 그도 나를 스승으로 생각할 것이다.


16. 끊임 없이 새로운 기술을 익혀라. 전쟁에서 쓸 무기가 많아질 것이다. 몇 가지 소수의 익숙한 기술만 고집하면 도태될 수 있다.


// 여러 기술들을(Node, CoffeScript 등...) 습득 하고 또 사용 할 수 있다면, 각 프로젝트 시 기술 도입에 대한 발 빠른 판단(최소 비용으로 최대 효과를 누릴 수 있는 기술적 근거가 존재한 판단)을 할 수 있을 것이다. 



17. 습관적으로 주석을 달아야 한다. 주석은 남을 위해서 다는 것이 아니고 프로그래밍의 일부이다. 주석이 없어도 이해가 가능한 코드를 작성하는 것이 좋지만 그래도 주석은 꼭 필요하고 Doxygen등의 주석을 꼭 이용해라.


// 이 부분에 대해 충분히 공감한다.(유지보수 와 리펙토링에 대한 가장 기본적인 습관 중 하나라 생각할 수 있을 듯 싶다.)



18. 남이 이해하기 쉬운 코드를 작성해야 한다. 나중에 내 발목을 잡지 않을 것이다. 내가 좀더 위로 올라가기 위해서는 아래가 자유로워야 한다.


19. 리뷰와 친해져야 한다. 평생 리뷰를 하며 사는 것이 프로그래머의 인생이다. 리뷰를 하지 않으면 발전하기 어렵다. 리뷰는 지금 프로젝트의 문제도 해결해줄 뿐만 아니라 내 프로그래머 인생의 가장 좋은 스승이다.


20. 건강을 유지해라. 건강을 잃으면 실력이고 뭐고 다 필요 없다. 야근도 좋지만 좋은 음식을 먹고 꾸준히 운동도 하자.


21. 좋은 의자를 사라. 건강을 지켜주고 효율을 높여준다. 프로그래머에게 의자는 침대보다 오래 머무르는 곳이다. 비싸고 좋은 의자일수록 좋다.


22. 인생을 즐길 줄 알아야 한다. 프로그래머로 오래 지속하고 싶으면 인생 자체를 즐기는 다양한 방법을 익혀야 한다.


23. 소프트웨어 공학을 익혀라. 주먹구구식 개발에서 벗어나게 해주고 프로그래밍이 더 이상 노동이 아니고 즐겁게 개발을 하게 해준다. 스펙과 설계문서를 작성하고 좋은 개발시스템하에서 적절한 프로세스를 적용해서 개발하는 것이 가장 빠르게 소프트웨어를 개발할 수 있는 방법이라는 것을 경험하고 깨달아야 한다.


// 앞으로는 작은 프로젝트라 할지라도 "UML" 그리는 연습을 습관화 해야 할 듯 싶다.(이 것도 고급 개발자로 가기 위해 중요한 듯 싶다.)



24. 높은 연봉을 받을 수 있도록 꾸준히 노력하라. 위의 23가지 방법들을 따라 한다면 저절로 연봉이 높아질 것이다.

좋은 프로그래머가 되기 위해서는 주변의 환경도 중요하지만 본인의 의지나 습관도 매우 중요하다. 주어진 환경에 수동적으로 적응하기 보다는 좋은 프로그래머가 되기 위한 자신만의 방법들을 만들어 나가면 좋겠다.




- 내용출처:

http://techit.kr/9411

블로그 이미지

532

처음 프로그래밍을 시작한 개발자들은 Hello World!를 기억 할 것이다. Hello world가 Hell World가 될 줄 몰랐던 한 개발자의 이야기. 게시글의 출처를 표기하며, 출처를 남기지 않고 펌을 하는것에 대해 법적 책임을 묻지 않습니다.

,