Archive for the ‘긍정적인 사고’ Category

How to make your CV Not Suck/소프트웨어 개발자 이력서를 업데이트하자!

Friday, January 6th, 2012

오늘 본 글 중에서 소프트웨어 개발자들의 이력서와 관련된 내용의 글이 있어서 공유합니다. 원본의 영어가 어렵지 않으니 원본을 확인하시면 더 큰 도움이 되리라 생각합니다.

원문 : How to make your CV Not Suck from Trisha's Ramblings

사실 이력서에 대한 정답은 없는 것 같습니다. 왜냐하면 이력서를 보는 사람들이 모두 다르기 때문에, 사람마다 이력서를 보는 기준이 다르기 때문이라고 생각합니다. 어떤 사람들은 이력서가 몇장이냐에 대해서 중요하게 생각해서 4장 이상 넘어가면 그냥 버린다는 사람들도 있고, 장수는 별로 중요하지 않다고 생각하는 사람들도 있는 것 같습니다. 하지만 대부분의 사람들이 중요하게 생각하는 것들에 대해서는 신경쓰고 이력서를 작성할 때 그렇게 작성하도록 노력하는 것이 좋을 것 같습니다.

원문에서 저자가 중요하게 생각하는 포인트들을 요약해 보도록 하겠습니다. 제 개인적인 생각들이 들어갈 수도 있으니 이상하다고 생각되는 부분들에 대해서는 원문을 참조해 주세요~

이미지 출처 : 구글 이미지 검색

간단하지만 범하기 쉬운 실수들

철자를 틀리지 말자!

영문 이력서에서도 중요한 이야기이지만 한글 이력서를 작성할때도 놓치지 말아야 할 부분이라고 생각합니다. 잘 모르겠거나 헷갈리는 부분들이 있으면 꼭! 사전을 참고해서 작성하도록 해야 합니다. 섣부른 판단은 금물! 기술의 발달로 요즘 많이 사용되는 워드 프로그램들의 경우 철자가 기본적인 문법이 틀렸을 때 빨간줄로 표시를 해 줍니다. 이력서를 봤을때 이 빨간 줄이 특별하게 사용되는 용어들을 제외한 다른 부분에서 나타난다면 아주 큰 감점 요소가 되겠죠.

영어 대문자를 사용해야 하는 곳에는 꼭 영어 대문자를 사용하자!

한국어와는 달리 영어에는 대소문자가 있습니다. 가끔씩 아주 기본적인 것들을 놓치는 경우가 있습니다. 문장의 시작은 대문자로 해야 하는데, 문장의 시작에 소문자가 오는 경우가 있습니다. 그리고 내 자신을 얘기할 때 보통 소문자 i 보다는 대문자 I를 사용합니다. 영문 이력서를 작성할 때, 이런 기본적인 것들은 지켜주세요.

문법을 지키자!

인터넷 상에서 한글도 마찬가지인데 영어도 문법이 안 지켜지는 경우가 많이 발생하고 있습니다. 하지만 이력서의 경우 나 자신을 표현하는 것이므로 문법을 꼭 지켜야 합니다. 영어가 익숙하지 않다면, 영어 사전이나 문법책을 많이 참고하시고, 마지막에는 영어 원어민으로부터 리뷰를 받는 과정이 꼭 필요하다고 생각합니다. 원어민이 리뷰를 해 줄 경우, 문법적으로는 맞지만 사용하지 않거나 다른 표현을 더 많이 사용하는 부분들에 대해서는 추가로 교정을 받을 수 있습니다.

예를 들어 우리말로 "남의 떡이 더 커 보인다."라는 표현을 할 때, 이 말을 그대로 번역하면 의사소통에 어려움이 발생할 수도 있습니다. 미국의 경우 땅이 커서, 집이 크고 집마다 잔디밭이 있어서 그런지 "The grass always looks greener on the other side." (다른 집에 있는 잔디가 항상 더 푸르게 보인다.)라고 표현을 합니다. 이렇게 표현하는게 나의 뜻을 더 정확하게 전달할 수 있는 방법이라고 생각합니다.

더 끌리는 이력서로 만들어주는 방법들

스프링 프레임워크(Spring Framework)의 어떤 버전을 사용했는지에 대해서는 크게 신경쓰지 않는다.

이 부분에 대해서는 논란의 여지가 있을 수 있기도 한데, "어떤 버전을 사용했는지 언급하지마."라기 보다는 버전보다 더 중요한 것들에 대해서 신경을 쓰라는 조언으로 이해하시면 좋을 것 같습니다. 소프트웨어 개발자들의 이력서도 대부분 처음에는 헤드헌팅 회사들의 헤드헌터들이 먼저 보기 때문에 내가 사용할 수 있는 기술들을 나열하는 것도 좋은 방법입니다. 하지만 너무 이력서 이곳 저곳에 언급하지 말고, 한곳에 모아서 내가 사용할 수 있는 기술들과 프로그램들에 대해서 언급하는 것이 좋습니다. 한눈에 볼 수 있게 말이죠.

하지만 헤드헌터를 통해서 실제 이력서를 리뷰하는 실무진들에게 이력서가 넘어가게 되면, 그들은 어떤 프로그램이나 어떤 프레임워크를 사용해 봤는지를 더 중요하게 보지 굳이 버전까지는 중요하게 보지 않는 경우도 많습니다. 버전 하나 하나에 너무 민감하게 작성하실 필요는 없고, 내가 어떤 프로그램이나 어떤 프레임워크를 사용해 보았는지가 잘 나타나면 좋을 것 같습니다.

당신이 어떤 열정을 가지고 있는지 알고 싶어한다.

예전에는 취미나 흥미를 보지 않고 그냥 넘겨버리고는 했는데, 요즘에는 취미가 흥미에 대해서 이력서에 아예 언급을 안 하는 것이 더 나을 수도 있다. 취미나 흥미 때문에 실무진들에게 쓸데없는 선입견을 주는 경우가 발생할 수 있기 때문이다.

대신 소프트웨어 개발자로서 블로그를 가지고 있거나 어떤 오픈 소스 소프트웨어에 참여하고 있는지, 또는 자바 유저 그룹 같은 곳에서 활동하고 있는지 등을 통해서 당신이 어떤 열정을 가지고 있는지 알고 싶어한다. 이력서에 이런 종류의 열정들이 없다고 해서 그 이력서를 미리 탈락시키지는 않지만, 이런 열정들이 이력서에 나타난다면 당연히 큰 영향을 줄 수가 있다.

테크놀로지(Technology)쪽에만 관심이 있는 사람인지 비지니스에도 눈을 열고 있는지 알고 싶어한다.

사실 좋은 팀을 꾸려나가기 위해서는 테크놀로지쪽에만 관심을 가지는 사람, 그리고 테크놀로지 부분이 조금은 부족하지만 비지니스를 이해하고 관심을 가지는 사람, 아니면 그 중간 정도에 위치하는 사람, 모두가 필요한 건 사실이다. 또 다른 기준으로는 사람과 프로세스가 있다. 사람과의 관계를 더 중요시 하는 사람이 있을 수도 있고, 프로세스를 더 중요시 하는 사람이 있을 수도 있다.

사실 테크놀로지에만 관심이 있는 사람이라고 해서 그 사람의 이력서를 탈락시켜버리지는 않지만, 그 테크놀로지들이 어떻게 비지니스를 만들어가는가에 대해서 관심이 있고 그러한 부분들을 이력서에 언급하는 경우에 더 끌리게 된다.

즉, 이력서에 그냥 자기가 사용했던 테크놀로지들에 대해서만 쭉 언급하기 보다는, 실제 요구사항이 어떠한 것이었고, 그 요구사항들을 만족시켜주기 위해서 어떤 테크놀로지들을 사용했으며, 그렇게 만들어진 제품을 통하여서 어떤 비지니스가 이루어졌는지 잘 풀어서 쓸 경우에 더 매력적인 이력서가 될 수 있다.

당신의 이력서를 보고 있는 회사들이 당신의 뒤를 몰래 캐 보기도 한다.

사실 짧은 시간안에 이력서를 검토해야 하기 때문에, 지원자의 페이스북이나 인터넷에서의 활동들을 확인하지 못하는 경우도 많다.

하지만 지원자가 직접 쓰거나 번역한 책이 있다면 아마존(Amazon)에 가서 책에 관해서 그리고 책 서평들을 읽어볼 것이다. 또한 다른 출판물이나 소스 코드가 인터넷에 있다면 찾아볼 용의도 있다. 만약 지원자가 다니고 있는 회사에 아는 사람이 있다면 링크드인(LinkedIn)을 통해서 그 사람이 어떤 사람인지 알아보려고 할 것이다. 이력서 만으로는 확신이 안 선다면 당연히 링크드인을 통해서 좀 더 알아볼 것이다.

그렇게 때문에 소프트웨어 개발자라면 인터넷 공간에서의 활동에 대해서 긍정적으로 생각하고 참여할 필요가 있다. 특히 직장에서의 인간관계를 나타내주는 링크드인과 같은 서비스를 잘 활용한다면 인터뷰와 합격의 기회에 한 발 더 다가갈 수 있다.

의무급식을 왜 해야 하는가?

Wednesday, January 4th, 2012

이미지 출처 : 이렇게 해맑은 아이들에게 무상급식을..

서울 시장을 다시 뽑을 정도로 의무급식(무상급식이라는 단어보다는 의무급식이라고 하는게 맞는 것 같아서 무상급식대신 의무급식이라고 쓴다.)에 대한 논란이 참 많았다.  개인적으로 의무급식에 완전! 찬성이고 만나는 사람들에게 왜 의무급식을 해야 하는지 알기 쉽게 풀어서 설명해 주고 싶었다. 자기들 세금이 의무급식에 사용되는 것이 싫다고 하시는 분들께, 그래서 생각한것이 자원개발에 투자하는 세금이나 도로나 공공 시설들에 투자하는 세금과 비교해서 설명하곤 했다.

의무급식을 반대하는 사람들 중에 부자 자녀들이 자기들 세금으로 무료로 급식을 받는 것이 싫다고 하시는 분들이 많았는데, 도로와 인적자원의 예를 들어 설명하곤 했다. 우리집 앞 도로를 만드는데도 내가 낸 세금이 들어간다. 하지만 그 도로는 가난한 사람들도 다니지만 부자들도 많이 다닌다. 비까뻔쩍한 외제차도 다니고... 그럼 이럴 경우에도 내가 낸 세금으로 도로를 만드는 것을 반대해야 하는가? 이렇게 공공시설에 투자하듯이 우리나라 미래를 짊어지고 갈 인적자원인 아이들에게 의무급식을 하는데 세금을 사용하는 것에 반대할 여지가 없다는 것이 내 생각이다.

오늘 Barry Lee님의 블로그 Barry's post .net ( http://barryspost.net )을 보다가 정말 잘 정리해 놓은 글이 있어서 트랙백한다.

복지와 기부의 차이점,의무급식을 왜 해야 하는가?

의무급식을 봅시다. 의무급식은 초등학생, 나아가 전체 미성년자에게 최소한 동등한 수준의 점심을 제공한다는 소리입니다. 이를 통해 이 미성년자는 사회의 구성원으로 성장하게 되어 더 나은 사회를 이루는 초석이 됩니다. 즉, 더 발전된 사회 시스템을 만들기 위해 국가가 부담하는 비용이라는 소리입니다. 따라서, 이것은 “가난한 이들에게 하는 적선”도 아니요, “일부 굶는 애들만 먹이면 되는 것”이 아닙니다. 이것은 도로 시스템이 국가의 인프라가 되고, 국방이나 치안 시스템이 국가의 인프라가 되며, 각종 경제 제도와 금융 시스템이 인프라가 되어 획득된 재화와 부(富)이기 때문에 그 비용을 적절하게 부담한다는 개념입니다.

복지와 기부의 차이점도 명확하게 설명해 주셨다. 꼭 한번 읽어보시기를 권장합니다.

Barry Lee님의 마지막 글로 마무리 합니다.

의무급식을 반대하는 것, 그것은 그냥 받은 만큼 내지 않겠다는 이기주의 이상도 이하도 아닙니다. 백번 양보해 받은 만큼 냈으니 더 안내겠다고 하는 것이라고 하더라도, 그것은 결국 미래를 위한 투자를 하지 않는 근시안적 발상일 수 밖에 없습니다.

[Book] 17 Lies That Are Holding You Back… / 성공을 가로막는 13가지 거짓말

Monday, December 12th, 2011

Year end holiday season is just around the corner. Even though I haven't read this book, those chapter title would give some inspirations.

17 Lies That Are Holding You Back & The Truth That Will Set You Free

by Steve Chandler

L1. It's who you know

L2. There's something wrong with me

L3. I'm too old for that

L4. I cant because I'm afraid

L5. I'd love to do that, but I dont have the time

L6. There's nothing I can do

L7. I worry because I care

L8. I'm sadder now but wiser

L9. The longer I have a habit, the harder it is to break

L10. People really upset me

L11. Winning the lottery would solve everything

L12. They're too beautiful for this world

L13. You hurt my self esteem

L14. It's a shame we didnt capture that on video

L15. That's just the way I am

L16. What (alcohol and drugs) doesnt kill me make me stronger

L17. I am helpless

한국어로도 번역이 되어 있는데, 어떤 이유에서인지 17개에서 13개로 줄어들었다. 아마도 문화적 차이가 존재하는 부분들을 가다듬은 것 같다. 원서랑 한국어 모도 책을 보지 않아서 잘 모르겠지만, 원서에 L1. It's who you know의 같은 경우 한국어 번역판 "머리말 - 자기 최면에서 깨어나기"랑 매핑이 되는 것 같다. 개인적으로 직역보다는 원서를 쓴 저자의 문화속에서의 의미를 충분히 이해한 후 의역을 하는 것을 더 선호하기 때문에 17개가 13개로 되었다고 해도 그리 큰 문제가 될 것 같지는 않다.

성공을 가로막는 13가지 거짓말
스티브 챈들러 저/문채원 역 | 넥서스 | 원서 : 17 Lies that are Hlding You Back & The Truth that Will

머리말 - 자기 최면에서 깨어나기

거짓말 하나. 하고 싶지만 시간이 없어

거짓말 둘. 인맥이 있어야 뭘 하지

거짓말 셋. 이 나이에 뭘 할 수 있겠어

거짓말 넷. 왜 나에겐 걱정거리만 생기지

거짓말 다섯. 이런 것도 못하다니, 난 실패자야

거짓말 여섯. 사실 난 용기가 없어

거짓말 일곱. 사람들이 날 화나게 해

거짓말 여덟. 오랜 습관이라 버리기 어려워

거짓말 아홉. 그건 내가 할 수 있는 일이 아냐

거짓말 열. 맨 정신으로 살 수 없는 세상이야

거짓말 열하나. 가만히 있으면 중간이나 가지

거짓말 열둘. 난 원래 이렇게 생겨먹었어

거짓말 열셋. 상황이 협조를 안해줘

맺음말 - 당신이 진정으로 원하는 것을 것을 찾는 법

옮긴이의 말 - 거짓말이 날 유혹할 때마다

이런 종류의 자기관리/처세술 같은 책들을 아주 좋아하는 건 아니지만, 어떤 책들은 나의 현재 위치를 돌아보게 해 주는 것 같다. 비록 구체적인 해결책을 제시하지는 못하지만, 나를 먼저 아는 것이 큰 도움이 될때도 많다. 거의 대부분의 사람들이 책에서 언급하는 13가지 거짓말 중 절반 이상은 가지고 있지 않을까... 그리고 그것을 하나씩 하나씩 바꾸어 나가는게 우리의 삶이 아닐까...

[Video] The role of leadership in software development

Friday, December 2nd, 2011

The role of leadership in software development

[Youtube]

Google Tech Talks
Speaker: Mary Poppendieck
6 May, 2008
1 hour 32 minutes 04 seconds

ABSTRACT from Youtube Page

When you look around, there are a lot of leaders recommended for software development. We have the functional manager and the project manager, the scrum master and the black belt, the product owner and the customer-on-site, the technical leader and the architect, the product manager and the chief engineer.

Clearly that's too many leaders. So how many leaders should there be, what should they do, what shouldn't they do, and what skills do they need?

This will be a presentation and discussion of leadership roles in software development -- what works, what doesn't and why.

Summary by Kwangshin

1850's Train Wreck Management
> Six Principles of Administration

1880's Command Intent

1910's The One Best Way
> Frederick Winslow Taylor
-. The Principles of Scientific Management

1920's Industrial Training
> Charles R. Allen - New Bedford, Massachusetts
-. On-the job training
-. By a master at the job
-. Four Step Method
* Preparation, Presentation, Application, Testing

1930's Unit Command

1940's Wartime Production
> Training within Industry (TWI)
-. Train first line supervisors
* Job Instruction - how to train workers
* Job Methods - how to improve the way work is done
* Job Relations - how to treat workers with respoect
> Statistical Process Control (SPC)

1950's TWI & SPC move to Japan

Meanwhile in the USA - The Polaris Project
> Success was attributed to "PERT"

Why Polaris was Successful
> Quality of Leadership
> Focus on Deployment
> Decentralized, Competitive Organization
> Emphasis on Reliability
> Esprit de corps

1960's Toyota Production System
> Taiichi Ohno
-. Just-in-Time Flow
-. Stop-the-Line Culture
-. Relentless Improvement

Taiichi Ohno Standard Work

1970's Theory X - Theory Z
> Kaoru Ishikawa
-. "The fundamental principle of sucessful management is to allow subordinates to make full use of their ability."

1980's If Japan can, why can't we?

1990's The Decade of Process

Plank Road Fever

High Reliability Organizations
> Common Characteristic : Mindfulness

Mindfulness
> Preoccupation with Failure
> Reluctance to Simplify
> Sensitivity to Operations
> Commitment to Resilience
> Deference to Expertise

Mission Command vs. Detailed Command : A Comparison
> Where does Software fit?

The Product Leader
> Example: Chief Engineer at Toyota

Functional Leader

Leadership Roles
> Marketing Leader
-. Business Responsibility
-. Customer Understanding
-. Release Planning
-. Tradeoffs

> Technical Leader
-. System Architecture
-. Technical Guidance

> Functional Leader
-. Preserve Knowledge
-. Solve Problems
-. Grow People

> Project Leader
-. Funding
-. Scheduling
-. Tracking

What are You Building?
> "I'm cutting stones."
> "I'm earning a living."
> "I'm building a cathedral."

Cathedral Builders
> Move responsibility and decision-making to the lowest possible level.

-------------------------------------------------

If you have any interests in above keywords I extracted, then it is worth watching this 1 and half hours video.

If someone ask you "What are you doing as a software engineer?", then what will be your response?

"I'm typing keyboard to do a programming.", "I'm doing my programming job to earn money to live."

Or "I'm developing great software helping people do their work faster and more efficiently."

2011-10-31 Useful links…

Monday, October 31st, 2011

1. http://caniuse.com/

When can i use...

Compatibility tables for support of HTML5, CSS3, SVG and more in desktop and mobile browsers.

2. https://onluminousgrounds.wordpress.com/

On Luminous Grounds.

Regarding all four volumes of Christopher Alexander’s The Nature of OrderOn Luminous Grounds is a site created, in part, out of simple admiration for that author and his ideas. It’s name comes from the fourth volume, The Luminous Ground.

3. http://developers.whatwg.org/

HTML5 -  A technical specification for Web developers

4. http://stevenmsmith.com/ar-satir-change-model/

The Satir Change Model

The impact on group performance of a well assimilated change during the five stages of the Satir Change Model.

Cutting an Agile Groove: The Live Sessions

Thursday, September 29th, 2011

Cutting an Agile Groove is a series of videos by respected agile consultant David Hussman that shows you how to design an agile, lean process and deliver real value for your product or project—in plain English, with real-world examples.

The Pragmatic Bookshelf provides 10 min free introduction video (10 min, QuickTimeiPhone/iPodOgg) for Cutting an Agile Groove video series. It is worth watching! You can get information in detail from http://pragprog.com/screencasts/v-dhcag/cutting-an-agile-groove.

The above picture is an interesting "Dude's Law" he introduced. I really like and agree with "Value = Why / How". If we do pay attention to only "How (to solve)" without "Why (we need to solve)", then the "Value" of our product will be dropped.

When you face with new problem in software development, as well as in your life, please do concentrate more on "Why" too.

금융계 자바 인터뷰에 자주 나오는 질문

Friday, April 15th, 2011

자바 프로그래머로서 금융계(투자 은행 같은...)로 가고 싶어하는 개발자가 많은 것은 사실이다. 높은 연봉도 한 몫 하겠지만, 역시나 개발자로서의 도전이랄까? 한국 뿐만 아니라 다 그런가 보다. 우연히 본 "금융계 자바 인터뷰에 자주 나오는 질문"에 관한 이야기이다.

원문은 Top 20 Core Java Interview questions asked in Investment Bank 이다. 사실 이렇게 20개의 질문으로 인터뷰를 한다고 해서 그 사람의 실력을 알 수 있는 건 절대 아니지만, 이 질문들에 대해 한번쯤 생각해 보는것도 나쁘지는 않을 듯 하다.

1. What is immutable object? Can you write immutable object?

You need to make class final and all its member final so that once objects gets crated no one can modify its state. You can achieve same functionality by making member as non final but private and not modifying them except in constructor.

2. Does all property of immutable object needs to be final?

Not necessary as stated above you can achieve same functionality by making member as non final but private and not modifying them except in constructor.

3. What is the difference between creating String as new () and literal?

When we create string with new () it’s created in heap and not added into string pool while String created using literal are created in String pool itself which exists in Perm area of heap.

4. How does substring () inside String works?

Another good question, I think answer is not sufficient but here it is “Substring creates new object out of string by taking a portion of original string”.

5. Which two method you need to implement for key in hashMap ?

(equals and hashcode) read How HashMap works in Java for detailed explanation.

6. Where does these two method comes in picture during get operation?

See here How HashMap works in Java for detailed explanation.

7. How do you handle error condition while writing stored procedure or accessing stored procedure from java?

Open for all, my friend didn't know the answer so he didn't mind telling me.

8. What is difference between Executor.submit() and Executer.execute() method ?

(Former returns an object of Future which can be used to find result from worker thread)

9. What is the difference between factory and abstract factory pattern?

Open for all, he explains about factory pattern and how factory pattern saves maintenance time by encapsulating logic of object creation but didn't know exact answer

10. What is Singleton? is it better to make whole method synchronized or only critical section synchronized ?

see my article 10 Interview questions on Singleton Pattern in Java

11. Can you write Critical section code for singleton?

check here 10 Interview questions on Singleton Pattern in Java

12. Can you write code for iterating over hashmap in Java 4 and Java 5 ?

Tricky one but he managed to write using while and for loop.

13. When do you override hashcode and equals() ?

Whenever necessary especially if you want to do equality check or want to use your object as key in HashMap.

14. What will be the problem if you don't override hashcode() method ?

You will not be able to recover your object from hash Map if that is used as key in HashMap.

See here How HashMap works in Java for detailed explanation.

15. Is it better to synchronize critical section of getInstance() method or whole getInstance() method ?

Answer is critical section because if we lock whole method than every time some one call this method will have to wait even though we are not creating any object)

16. What is the difference when String is gets created using literal or new() operator ?

When we create string with new() its created in heap and not added into string pool while String created using literal are created in String pool itself which exists in Perm area of heap.

17. Does not overriding hashcode() method has any performance implication ?

This is a good question and open to all , as per my knowledge a poor hashcode function will result in frequent collision in HashMap which eventually increase time for adding an object into Hash Map.

18. What’s wrong using HashMap in multithreaded environment? When get() method go to infinite loop ?

Another good question. His answer was during concurrent access and resizing.

PS. 그런데 이런 질문들이 금융쪽에서 자바 개발자를 인터뷰 할때 그 사람의 실력을 측정하는데 정말 도움이 될까?