일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 회고
- 백준
- 배열 돌리기1
- Python
- 그래프탐색
- GarbageCollector
- 몬티홀
- BFS
- deque
- 프로세스
- 브루트포스
- 구현
- 그래프 탐색
- 정수론
- github
- 마크다운
- DP
- 적정 스레드
- Markdown
- 문제풀이
- g1gc
- springboot
- 면접복기
- 빌더패턴
- Greedy
- 분할정복
- 이진탐색
- GC
- Stack
- 그리디
- Today
- Total
FeelingXD
[번역] - 40년 경력 프로그래머 (5) -Noah Gibbs 본문
프로그래머들은 반대입니다. (Programmers are Contrary)
다른 분야로부터 배우면 당신은 이상해질 수 있습니다. 대부분 좋은 일이지만 때로는 마찰을 일으키기도 합니다.
예를 들어 , 예술가나 음악가, 작가들은 모두 같은 활동을 계속 반복하며 능숙해진다는 사실을 알고 있습니다. 다시 쓰는 것도 마찬가지입니다. 같은 음악을 반복해서 연습하는 것도 마찬가지입니다. 인물을 그리거나 정물화를 반복해서 그리는 것도 마찬가지입니다.
소프트웨어에도 이런 말이 있습니다. "바퀴의 재발명" 이 작업은 나쁜 일로 취급되어 부끄럽게도 은밀하게 이루어집니다. 우리는 모든 반복 작업을 컴퓨터에 맡기고 새로운 작업만 할 수 있는 방법을 찾습니다.
사실, 같은 일을 반복해서 말하는 것은 대중 앞에서 망신을 당하는 지름길입니다. 편판을 잃게 됩니다. 이상한 방식으로 일을 처리하면 종종 평판을 잃게 됩니다. 물론 평판은 직위나 돈과 같은 것과도 관련이 있습니다.
이것이 바로 우리 대부분이 새 프로젝트를 시작하는 데 서툰 이유입니다. 우리 대부분이 언제 어떤 구문 구조를 사용해야 하는지 말하지 못하는 이유도, 들여쓰기에 기계가 적용해야 하는 정해진 규칙이 있는 것처럼 행동하는 이유도 바로 이겁니다. 이러한 기술을 쌓는 방법은 반복을 통해 시간이 지남에 따라 나아지고 ,표현력을 믿고 다른 사람들과 소통하는 것이기 때문입니다. 우리가 업계에서 낙인찍는 것들
그렇다고 해서 여러분 개개인이 이런 일에 서툴러야 한다는 뜻 인가요 ? 전혀 아닙니다. !
프로그래머가 다른 방식으로 생각하도록 설득할 수는 없습니다. 개별적으로 몇 명은 그럴지도 모르죠. 하지만 해답은 모든 사람을 더 나은사람으로 만드는 것이 아닙니다. 그러려면 수십 년 이상이 걸립니다. 여러분 에게는 그런 시간이 없습니다. 여러분은 그보다 더 빨리 더 나아지기를 원합니다.
하지만 개인적으로 나쁜 관행
이지만 실제로는 더 나은 사람이 될 수 있는 일을 할 수 있습니다.
바퀴를 재발명할 수 있습니다. 같은 것을 반복해서 작성할 수 있습니다. 나쁜
방식으로 코드를 작성하고 어떤 일이 일어나는지 확인할 수도 있습니다.
모범 사례를 조심하세요. 모법 사례는 다른 형태의 조언과 마찬가지로 다른 사람이 고민하고 더 현명해지기 위해 노력한 결과물인데, 당신은 그저 그들이 생각해낸 가장 간단한 방법을 사용하고 있을 뿐이라는 뜻입니다.
처음 시작하기에는 괜찮습니다. 하지만 더 나아지기 위한 방법으로는 끔찍합니다.
예술가, 사서, 수셰프에게 배운다고 해서 나머지 소프트웨어 세계를 쉽게 끌어들일 수 없다는 점을 이해하세요. 여러분이 옳다고 해서 그들을 설득할 수 있는것은 아닙니다. 여러분의 방식이 옳다고해서 그들에게 없는 기술이 필요할 수도 있습니다.
하지만 주변 사람들이 어떻게 생각하는지 크게 신경 쓰지 않는다면 더 나아질 수 있습니다. 그리고 사람들에게 어떻게 했는지 말할 필요도 없습니다.
더 잘할수록 남들과 똑같아 보이지 않습니다. 특히 자신이 하는 일을 정말 잘하는 다른 모든 사람들
을 포함해서 말이죠.
같은 이유로 도구와 시행에 주의해야 합니다. 이러한 도구는 최소한의 역량을 유지하도록 설계되었습니다. 특이한 것을 정말 잘할 수 있도록 설계된 것이 아닙니다.
그리고 여러분은 특이한 일을 정말 잘하고 싶을 것입니다.
생산성 팁에 주의하세요(Be Careful About Productivity Tips)
사람들은 잘하는 비결은 끊임없는 노력이라고 말합니다. 지금까지 적어도 네다섯 번은 말씀드렸습니다. 그들의 비결은 매일 조금씩 나아지고 그걸 더많이 하는것이라고 말할겁니다.
하지만 대부분의 경우 연습을 한다고 해서 실력이 크게 향상되지는 않는다는 것이 이 조언의 함정입니다.(생산성팁) 가끔은 연습을 통해 큰 폭으로 실력이 향상되기도 합니다. 큰 폭의 향상은 당신의 다른 여러 가지를 더 나쁘게 만들 수 있습니다.
매년 20%의 성장을 지속적인 성장을 원하는것이라면 이건 끔찍할것입니다.
효율성은 여기까지만 가능합니다. 이러한 프로세스 중 상당수는 엄청나게 비효율적이고 완전히 신뢰할 수 없습니다. 때로는 엄청난 이득이 되기도합니다. 종종 아무것도 얻지 못합니다. 때로는 도움보다 일을 만들수도있습니다.
이것이 특정한것에서의 성공의 모습입니다.
생산성 및 효율성에 대한 조언, 즉 깔끔한 조언은 대개 여러분이 잘 이해하고 잇는 잘구조화된 작업을 위한 것입니다. 40년간의 프로그래밍 경력은 그런 종류의 작업이 아닙니다. 다시 한 번 강조하지만, 마라톤이나 단거리 달리기가 아니라 일기를 쓴다고 생각하세요. 스스로를 위해 진행률 표시줄을 유지하려고 노력하는 것은 제대로 진행되지 않을 것입니다.
시간이 지나면 너무 깔끔하고 정돈된 것을 조심하는 법을 배우게 될 것입니다. 다시 한번 강조하지만, 조언은 가장 중요한 부분을 모두 제거한 전문 지식입니다. 네, 지금 제가 말씀드리는 내용도 여기에 포함됩니다.
효율성은 항상 특정한 유형의 효율성입니다. 시간 효율적 접근 방식이 비용 효율적 일수도 있습니다. 현재보다 더 적은 수의 자녀가 필요할 수도 있고, 더 조용한 장소가 필요할 수도 있습니다. 효율성은 이미 시행 중이고 잘 작동하고 있는 전략을 개선하는 방법입니다.
저는 효율성 팁에 대해 많이 이야기하지 않습니다. 가장 빠른 방법을 알려드리는 것이 아닙니다. 가장 신중하게 최적화된 접근 방식은 기본적으로 항상 취약합니다. 효율성은 괜찮습니다. 최적화도 괜찮습니다. 기본이 제대로 작동한다면 조금 더 도움이 될 수 있습니다.
어려운 부분은 기본이 제대로 작동하도록 하는 것입니다. 그래서 제가 드리는 말씀은 여기까지입니다. 그 이후에 효율성을 높이는 것은 덜 중요하고 쉽습니다.
하지만 진지하게 대부분은 그냥 해보세요.(But Seriously, Mostly Just Do It)
이것이 제가 할 수있는 좋은 말입니다. 대부분 여러분의 접근 방식을 바꾸려는 것이아니라 여러분을 안심시키기 위한 것입니다. 최근에
프로그램을 작성한다면 여러분은 프로그래머입니다, 또는 코더, 소프트웨어 엔지니어, 또는 여러분이 부르고 싶은 대로 부르세요.
프로그램을 계속 작성하면 몇 년이 됐든 프로그래머가 될 수 있습니다. 아무도 이런 걸 막지는 않습니다. 적어도 누군가가 단속을 하더라도 무시할 수 있습니다. 누군가는 저 사람은 40년차 프로그래머가 아니라 25년도 채 안 된 풀타임 프로그래머야!
라고 말할수도 있겠죠 말도 안되는 소리지만 지금 인터넷에서 이야기 하고있잖아요 , 또 누군가는 그렇게 말하겠죠 때때로 제목이 자기 설명이 아닌 경우도 있지만, 이를 이해하려면 첫 문장을 문자 그대로 읽어야 합니다. 두 문장을 읽어야 전체 맥락을 파악할 수 있습니다. 그리고 JoeRandom_420은 주의를 끌기 위해 만들어진 것이 아닙니다.
어쨌든 계속 노력하면 자격을 얻을 수 있습니다. 여긴 누구도 당신을 쫓아낼 수 있는 공식적인 클럽이 아니에요. 한동안 일을 하면 한동안 일을 했다고 말할 수 있습니다.
어떻게 한동안 일을 하나요? 계속 하세요. 스스로의 기대치를 관리합니다. 실수를 햇을때 알아차리고 이를 수정합니다. 너무 고정관념에 사로잡히지 않도록 조심합니다. 일을 계속 즐기려고 노력합니다.
이 모든것들이 이글에서 당신이 읽은것 입니다.
나머지는 시간이고, 어쩌면 약간의 여유로움일지도 모르죠.
눈 깜짝할 사이에 40년이 지나가겠죠. 떡갈나무 옆에 있는 아버지의 범퍼 스티커에 쓰여 있듯이 당신도 곧 그렇게 될 것입니다.
요약 및 개인적인생각
- 프로그래머들은 반대입니다.
다른 분야의 성장에서는
반복 숙달
이 중요하다. 예를들어 그림을 잘그리고 싶다면 계속 그림을 그리는것 악기를 잘다루고 싶다면 계속 연주해보는것 계속 그리고 반복해서를 강조한다 하지만 프로그래밍 분야에서는 반복 하는것은불편
한것들로 인식됩니다.예를들어 테스트,빌드 과정을 자동으로 돌리기위해 CI/CD 중복되는 코드가 발생하지 않도록하는 DRY 원칙 등
공부, 성장에 맞춘다면 실제 서비스하는 프로젝트가아니라면 이러한 것들을 두번씩 혹은 몇번씩 작성해보고 그간 편하게 사용한 ci/cd 기술, 원칙등의 등장 배경을 생각해보는것이 좋을것 같다.
- 생산성 팁에 주의하세요
- 이부분은 위의 1. 번과 연장되는 내용인것같다. 프로그래밍 분야의 발달로 그들이 사용하는 도구 (IDE, repl) 등도 많이 발전했는데 생상성을위해 template 을 자동으로 생성해주는등 점점더 타이핑이나 속도에 맞추어져있어 생산은 향상하나 숙련이나 성장의 초점에서는 아쉬운점이 생기는것을 말하는것 같다.
- 하지만 진지하게 대부분은 그냥 해보세요.
그만 재고 일단해라
마치 나에게 하는말 같다. 😅 학습(學習, 영어: learning) 은 한자어로배우고 익히다
로 두 글자로 나타낸다. 배우기만 해서는 실전에서 약하다. 결국 하는것이 중요하다. :)
'글쓰기 > 번역' 카테고리의 다른 글
[번역] 백악관에서 C/C++ 사용을 지양할것을 촉구하다. (0) | 2024.03.02 |
---|---|
[번역] 내가 경력 ~ 년인데 라는말 이 의미가 있을까 ? (0) | 2024.02.21 |
[번역] - 40년 경력 프로그래머 (3) -Noah Gibbs (0) | 2024.02.12 |
[번역] - 40년 경력 프로그래머 (2) -Noah Gibbs (0) | 2024.02.10 |
[번역] - 40년 경력 프로그래머 (1) -Noah Gibbs (0) | 2024.02.04 |