몇 달 전에 누가 나에게 이런 질문을 했습니다. - ( )( )( )님 코인 만들 줄 아십니까? - 아니요 - 개발자 아닌가요? - ㅠ.ㅠ 안 만드는 아니 못 만드는 이유는 수천 가지가 넘기 때문에,  누군가 나에게 "당신은 조잡한 코드를 작성하며, 당신은 초급에서 벗어나지 못한다"라고 한다면, 화가 날 것입니다. 이는 마치 "넌 맞춤법도 못 맞추냐?" 내지는 "넌 음정하나 못 맞추냐?"라는 말로 들릴 수 있기 때문입니다. 도미쏠 할때 음정을 틀리는 사람은 별로 없을 겁니다. 하지만 "햇볕은 쨍쨍 모래알은 반짝" 은 좀 다르죠. 아이러니하게도 잘 맞추려고 할 수록 음정은 이상해지고, 좋은 코드를 내려고 할 수록 엉성한 것만 보입니다. 코딩의 질과는 다르게, 이제 양에 대한 이야기를 해 보겠습니다. 컴퓨터 소프트웨어 전공을 했다면, 대학교 1학년때 2000라인을 넘어야 하며, 대학교 4학년때라면 20000 라인 정도의 코드를 작성해 본 경험이 있어야 합니다. 그리고 3-4명이 같이 프로젝트를 진행하여 20000 라인 정도의 코드를 생산해 냈다면 좋은 경험이 될 것입니다. 대학시절에 이정도 작성하면 졸업시에 이미 초급은 아닙니다. 왜냐하면 스킬 향상없이 이 정도 코드량을 만들고 코드가 동작하는 것은 기적에 가깝기 때문입니다. 그리고 이정도 코드량을 통해서 얻는 것이 없다면 죄송한 말씀이지만 적성에 안맞는다고 볼 수 있을 것입니다. 프로젝트가 성공하지 않았다 치더라도, 그 정도까지 가 본 것으로도 좋은 경험이 될 수 있습니다. > 프로젝트가 항상 성공하면, 그건 조작이지 성공이 아닐 겁니다. > 아이러니하게도 국내 프로젝트는 거의 100% 성공하며, 모든 목표도 100% 달성합니다. > 실패를 통해 성공에 다가갈 수 있다면 100% 라고 보아도 괜찮겠지만 말입니다. 몇년전에 본 블로그에서 흥미로운 글을 하나 보았고 여기에 소개합니다. https://www.teamten.com/lawrence/writings/norris-numbers.html > My friend Clift Norris has identified a fundamental constant that I call Norris’ number, the average amount of code an untrained programmer can write before he or she hits a wall. Clift estimates this as 1,500 lines. Beyond that the code becomes so tangled that the author cannot debug or modify it without herculean effort. 번역해 보면, > 내 친구 Norris 는 어떤 기본적인 값에 대해 정의했는데, 나는 이것을 Norris's Number 라고 부른다. 그 값은 숙련되지 않은 프로그래머가 장벽을 만나기 전까지 작성할 수 있는 평균적인 코드량인데, Clift Norris 는 1,500 라인이라고 추정하였다. 그 이상의 코드를 작성하면, 코드가 얼키고 섞여서 매우 큰 노력(헤라클레스의 힘에 비유) 없이는 디버깅하거나 수정하기 어렵다. 이후의 이야기는 대략 다음과 같습니다만, 재밌는 이야기가 많으니 가볍게 읽어 보십시오. - 2만, 20만 라인을 극복하기 위해서는 스킬의 전환이 필요하지만, 가르치기는 어렵다. (Dijkstra) - 모든 코드는 잠재적인 버그를 가지고 있으며, 간단한 것이 최고다. - 교과서에서는 수백라인의 예제만 보여줄 분, 3만 라인의 코드를 보여주는 교과서는 없다. - 마지막으로 순수 함수형 스타일이 이 20만 라인의 장벽을 뛰어넘도록 도와주리라 기대한다고 적혀있는데 저도 얼마간은 동의합니다. Good Programmer 라는 제목으로 몇개의 글을 더 작성하려고 합니다. 주제는 다음과 같습니다만, 제목은 다소 바뀔 소지가 있습니다. 1. 내가 관리할 수 있는 코드량은? 2. HOWTO be Professional 3. Practice 프랙티스 1 4. Practice 프랙티스 2
author | agile |
---|---|
permlink | good-programmer-1 |
category | kr-dev |
json_metadata | {"tags":["kr-dev","kr","agile"],"links":["https://www.teamten.com/lawrence/writings/norris-numbers.html"],"app":"steemit/0.1","format":"markdown","image":["https://steemitimages.com/DQmNdqcaZqYnk14jnnYP98u35x5m6gLJeLLGd24mUo8aDLN/question1.jpg"]} |
created | 2017-06-27 15:03:21 |
last_update | 2017-07-01 05:23:39 |
depth | 0 |
children | 11 |
last_payout | 2017-07-04 15:03:21 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 10.440 HBD |
curator_payout_value | 3.227 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 2,104 |
author_reputation | 879,680,857,135 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,342,698 |
net_rshares | 1,532,704,246,817 |
author_curate_reward | "" |
voter | weight | wgt% | rshares | pct | time |
---|---|---|---|---|---|
morning | 0 | 80,090,892,659 | 20% | ||
cultura.bitcoin | 0 | 1,190,771,573 | 100% | ||
kdj | 0 | 875,413,138,915 | 100% | ||
agile | 0 | 2,668,628,967 | 100% | ||
coinkorea | 0 | 568,924,786,137 | 5% | ||
sbg | 0 | 955,863,112 | 100% | ||
idas4you | 0 | 426,169,036 | 25% | ||
emalron | 0 | 1,246,523,764 | 100% | ||
deathnote9 | 0 | 1,056,234,527 | 100% | ||
rlawls1991 | 0 | 731,238,127 | 100% | ||
gyeryak | 0 | 0 | 100% |
패키지만 잔뜩 만들고.. 막상하려고 하면 뒤죽박죽.. 코딩은 노력이 99%라고 하는데 열심히 해봐야할거 같습니다.
author | deathnote9 |
---|---|
permlink | re-agile-good-programmer-1-20170628t004125147z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-28 00:41:27 |
last_update | 2017-06-28 00:41:27 |
depth | 1 |
children | 1 |
last_payout | 2017-07-05 00:41:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 63 |
author_reputation | 94,070,047,675 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,409,708 |
net_rshares | 0 |
리팩토링이라는 말을 들어보셨는지요?
author | agile |
---|---|
permlink | re-deathnote9-re-agile-good-programmer-1-20170701t173833064z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-07-01 17:38:33 |
last_update | 2017-07-01 17:38:33 |
depth | 2 |
children | 0 |
last_payout | 2017-07-08 17:38:33 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 19 |
author_reputation | 879,680,857,135 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,917,224 |
net_rshares | 0 |
다음 글이 기대됩니다. 1~2만줄은 커녕 몇백줄만 되도 햇갈리거든요... ㅠ.ㅠ
author | emalron |
---|---|
permlink | re-agile-good-programmer-1-20170627t153008101z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 15:30:09 |
last_update | 2017-06-27 15:30:36 |
depth | 1 |
children | 2 |
last_payout | 2017-07-04 15:30:09 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 44 |
author_reputation | 127,041,388,477 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,345,996 |
net_rshares | 0 |
무심히 하면 됩니다. 욕심내지 말고....
author | kdj |
---|---|
permlink | re-emalron-re-agile-good-programmer-1-20170627t160357795z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 16:04:00 |
last_update | 2017-06-27 16:04:00 |
depth | 2 |
children | 1 |
last_payout | 2017-07-04 16:04:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 23 |
author_reputation | 4,188,781,313,300 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,350,278 |
net_rshares | 0 |
그 번뇌가 ... 끊어지질 않습니다. ㅋㅋㅋ
author | emalron |
---|---|
permlink | re-kdj-re-emalron-re-agile-good-programmer-1-20170627t161654767z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 16:16:54 |
last_update | 2017-06-27 16:16:54 |
depth | 3 |
children | 0 |
last_payout | 2017-07-04 16:16:54 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 24 |
author_reputation | 127,041,388,477 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,351,915 |
net_rshares | 0 |
프로그래머로서 흥미로운 글입니다. 요즘에 저도 이런 문제는 아닌데.. 어떤 계단에서 막혔다는 게 느껴져용 그걸 넘으면 좀 더 고수가 될 것 같은...데 파워업하고싶어!
author | krdoko |
---|---|
permlink | re-agile-good-programmer-1-20170627t154656233z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 15:47:00 |
last_update | 2017-06-27 15:47:00 |
depth | 1 |
children | 1 |
last_payout | 2017-07-04 15:47:00 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 98 |
author_reputation | 2,029,450,526,779 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,348,057 |
net_rshares | 0 |
여행을 추천합니다.
author | kdj |
---|---|
permlink | re-krdoko-re-agile-good-programmer-1-20170627t160426192z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 16:04:27 |
last_update | 2017-06-27 16:04:27 |
depth | 2 |
children | 0 |
last_payout | 2017-07-04 16:04:27 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 10 |
author_reputation | 4,188,781,313,300 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,350,326 |
net_rshares | 0 |
간단간단하게 직관적으로 코딩하자는 python이 인기를 끄는 요즘 생각해 볼만한 주제네요. 팔로우 맺고 갑니다~
author | minari |
---|---|
permlink | re-agile-good-programmer-1-20170701t145631668z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-07-01 14:56:30 |
last_update | 2017-07-01 14:56:30 |
depth | 1 |
children | 1 |
last_payout | 2017-07-08 14:56:30 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 62 |
author_reputation | 18,256,774,154,134 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,899,725 |
net_rshares | 0 |
간단간단하게 코딩하는 것은 매우 바람직한 일입니다. 만일 그렇게 하고 있다면 "조금 더 나아가기"를 시도할 때입니다.
author | agile |
---|---|
permlink | re-minari-re-agile-good-programmer-1-20170701t173944322z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-07-01 17:39:45 |
last_update | 2017-07-01 17:39:45 |
depth | 2 |
children | 0 |
last_payout | 2017-07-08 17:39:45 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 65 |
author_reputation | 879,680,857,135 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,917,338 |
net_rshares | 0 |
잘 읽고 갑니다. 대학교 때 논게 후회가 많이 되네요.. 팔로우하고 갈게요!
author | rlawls1991 |
---|---|
permlink | re-agile-good-programmer-1-20170627t151220302z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 15:12:18 |
last_update | 2017-06-27 15:12:18 |
depth | 1 |
children | 1 |
last_payout | 2017-07-04 15:12:18 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 42 |
author_reputation | 253,942,262,331 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,343,765 |
net_rshares | 0 |
대학때 안 논 사람이 어디있나요? 위에 올린 이야기는 다소 이상적인 이야기인 것 같네요. 나중에 취미로 다시 도전해 보세요...
author | agile |
---|---|
permlink | re-rlawls1991-re-agile-good-programmer-1-20170627t151849205z |
category | kr-dev |
json_metadata | {"tags":["kr-dev"],"app":"steemit/0.1"} |
created | 2017-06-27 15:18:51 |
last_update | 2017-06-27 15:18:51 |
depth | 2 |
children | 0 |
last_payout | 2017-07-04 15:18:51 |
cashout_time | 1969-12-31 23:59:59 |
total_payout_value | 0.000 HBD |
curator_payout_value | 0.000 HBD |
pending_payout_value | 0.000 HBD |
promoted | 0.000 HBD |
body_length | 71 |
author_reputation | 879,680,857,135 |
root_title | "Good programmer 1 - 내가 관리할 수 있는 코드량은?" |
beneficiaries | [] |
max_accepted_payout | 1,000,000.000 HBD |
percent_hbd | 10,000 |
post_id | 6,344,593 |
net_rshares | 0 |