굉장히 좋은 글이 있어 기록하고자 글을 작성하였다.
https://monicalent.com/blog/2019/06/03/absolute-truths-unlearned-as-junior-developer/
이라는 글인데 주니어 개발자로서 배운 절대적인 7가지 진실이라는 글인데 주니어 개발자로서 내가 가지고 있었던 잘못된 생각들을
글쓴이의 경험과 회고, 충고를 통해 배우고 수정할 수 있었다. 느낀 점이 굉장히 많았고 모든 것을 한글로 번역하지는 않았지만 구글 번역기 인라인을 활용해 인상적이었던 부분들을 적어두었다.
내용은 다음과 같다.
주니어 개발자로서 배운 절대적인 진실
- 나는 시니어 개발자 입니다.
내가 결국 배운 것
모든 경험이 평등하게 만들어지는 것은 아닙니다
혼자 일하는 것보다 팀엣 일하는 것이 10배 더 많은 것을 배울 수 있습니다.
[다른 개발자가 귀하의 코드를 검토하지 않으면 엄청난 요인으로 인해 최대한 빨리 배우지 못할 것입니다.]
That’s why mentors are so important, and the team you work with is worth so much more than a couple bucks in your paycheck. [그렇기 때문에 멘토는 매우 중요하며, 함께 일하는 팀은 급여에서 몇 달러보다 훨씬 더 가치가 있습니다.]
혼자일하게 될 주니어 포지션을 받아들이지 말라.
급여만으로 역할을 수락하지 마라.
팀은 진정한 가치가 있는 곳이다.
직함이 당신을 만들어주지 않는다
5인 팀에서 CTO가 되는 것은 50인 팀이나 500인 팀에서 일하는 것과 다르다.
직급이 같아도 필요한 직업과 기술이 완전히 다르다.
따라서 내가 senior라는 직함을 가졌다고 해서 내가 수석 엔지니어가 되는 것은 아니다.
또한 계층적 타이틀은 본질적으로 결함이 있으며 회사간 비교가 어렵다.
제목에 집착하거나 외부 검증의 한 형태로 사용하지 않는 것이 중요하다는 것을 배웠습니다.
2.모두가 테스트를 작성합니다.
한가지는 말씀드릴 수 있습니다. 연구 분야의 프로그래밍은 업계의 프로그래밍과 완전히 다릅니다.
대부분의 경우 어플리케이션을 구축하지 않습니다.
알고리즘을 연구하거나 데이터 세트를 파싱하고 있습니다. 또는 응용 프로그램을 구축하는 경우 작업이 공개 자금 지원을 받을 가능성이 있습니다. 즉, 다른 사람이 무료로 사용할 수 있으며 일반적으로 오픈 소스입니다.
그리고 무엇인가가 무료라는 것은 대부분의 경우 항상 완벽하게 사용할 수 있는지 확인할 책임이 없음을 의미합니다.
그것은 이것이, 무료이기 때문입니다.
당신은 또한 돈을 벌거나 결과를 생산할 책임이 없지만 학계에서 개발자가 되는 것에 대해 불평하는 것과는 완전히 다른 블로그 게시물입니다.
요컨대 나는 많은 기대를 안고 학계를 떠났습니다.
업계가 어떻게 작동할 것인지에 대한 기대. 자동화된 배포가 있을 것입니다. 풀 리퀘스트와 코드 리뷰, 영광스러울 것이다! 드디어 내가 갈망했던 코드 품질! 그러나 적절한 표준과 모범사례가 있는 품질 코드를 넘어 소프트웨어 업계의 모든 사람들이 테스트를 작성한다고 저는 굳게 믿었습니다.
에헴.
스타트업에 입사한 첫날, 테스트 결과를 전혀 찾지 못했을 때의 놀라움을 상상해보십시오. 프론트엔드에 테스트가 없습니다. 백엔드에 테스트가 없습니다. 그냥, 테스트가 없습니다.
Nada. Zip. Null. Undefined. NaN tests.
테스트가 없었을 뿐만 아니라 테스트 부족으로 문제가 있는 사람은 아무도 없는 것 같았습니다!
약간의 순진함을 가지고 테스트가 없는 이유는 사람들이 앵귤러JS에 대한 테스트를 작성하는 방법을 몰랐기 때문이라고 생각했습니다. 내가 그들에게 방법을 가르친다면 모든 것이 괜찮을 것이고 우리는 테스트를 시작할 것입니다.
Wrong!
간단히 말해서, 몇 년과 몇 년후, 우리는 코드에 자동화된 테스트를 추가하는 데 엄청난 진전을 이루었지만 생각만큼 간단하지 않았습니다.
하지만 사람들이 테스트를 작성하는 방법을 몰라서가 아닙니다.
그들을 테스트가 없는 고통을 결코 느끼지 못했거나, 레거시 테스트를 갖는 고통을 느꼈습니다.
나 자신을 위해 결코 경험하지 못한 두가지.
-결국 내가 배운것
많은 회사와 신생 기업이 테스트를 거의 또는 전혀 수행하지 않습니다.
시장에 맞는 제품을 찾기 위해 고군분투하거나 생존을 위해 고군분투할 때 많은 기업들이 초기에 테스트를 소홀히 합니다.
컨퍼런스나 오픈 소싱 코드를 후원하는 화려해 보이는 회사조차도 여전히 많은 사람들이 최소한의 테스트로 크고 복잡한 단일체를 사용하고 있으므로 개선을 위해 귀하의 도움이 필요합니다. 당신을 모집하려고 하지 않는 개발자에게 코드베이스의 상태에 대해 알려달라고 요청하십시오.
-어떤 회사도 완벽한 기술 설정을 가지고 있지 않습니다. 모든 회사에는 문제가 있고 모든 회사에는 기술적 부채가 있습니다. 문제는 그들이 그것에 대해 무엇을 하고 있느냐는 것입니다. 지원을 할 때 해야할 일이 있다는 환상을 가져서는 안됩니다. 그렇지 않으면 채용하지 않을 것입니다.
-실제 경험이 부족한 주제에 대해 지나치게 독단적인 태도를 취하는 것은 꽤 오만한 일입니다.
나는 테스트가 있어야 한다고 주장하면서도 규모 있는 프로젝트에서 실제로 어떻게 이것을 보이는지에 대한 경험이 거의 없었으면서 모든 것을 알고 있는 사람처럼 행동했습니다.
저처럼 하지 마세요. 원칙을 갖는 것도 중요하지만 다른 사람들의 경험과 관점을 이해하는데 개방적이고 진정으로 관심을 갖는 것도 중요합니다.
3.우리는 다른 사람들보다 훨씬 뛰쳐져있습니다.
일명 테크 FOMO
이것은 단위 테스트의 주제와 밀접한 관련이 있습니다. 우리 회사는 단위 테스트가 많지 않은데 다른 회사들은 많겠죠?
나는 많은 것을 보았고 내가 기본적으로 읽고 있는 다른 모든 회사를 우상화했고, 내 자신의 회사와 프로젝트가 너무 뒤쳐져 있다는 실망감을 느꼈습니다.
-내가 결국 배운 것
Many conference talks cover proof of concepts rather than real-world scenarios.:
많은 회의에서 실제 시나리오보다는 개념 증명을 다룹니다.
특정 기술에 대한 컨퍼런스 이야기를 봤다고 해서 회사가 일상 업무에서 해당 기술을 사용하거나 모든 코드가 완벽하다는 의미는 아닙니다.
종종 컨퍼런스 연설을 하는 사람들을 실제 사례 연구보다 장난간 앱을 발표하기 때문에 둘을 구별하는 것이 중요합니다.
레거시를 처리하는 것은 완전히 정상입니다.
아니요, 하지만 진지하게, 다른 회사에는 처리할 레거시가 없다고 상상하기 쉽습니다.
그러나 컨퍼런스에서 첨단 기술 회사에서 일하는 사람들과 이야기를 나누며 시간을 보내고 나면 우리 모두가 같은 배를 타고 있다는 것이 분명해집니다.
어떤 회사가 길들이려고 하는 (또는 어떤 시점에서 길들여야 했던) 거대한 PHP 또는 Ruby 모놀리스를 가지고 있지 않습니까?
레거시 코드는 정상이며, 아직 이해하지 못하는 개념에 더 많이 노출되기 때문에 이를 다루는 법을 배우면 앱을 스크래치로부터 처음부터 빌드하는 것보다 더 많은 것을 배울 수 있습니다.
- 내가 결국 배운것
해당 글에서 앞으로 시니어가 되기 위해 어떤 방향으로 나아가야 올바른 방향일지 접할 수 있었고
이런 방향에서 내가 가지고 있는 여러 잘못됐던 생각들을 수정하는 사람이 되겠다는 생각을 했다.
'피드백' 카테고리의 다른 글
IT 분야의 성장에 관하여 (0) | 2022.06.14 |
---|---|
그릿 점수와 내가 생각하는 성장이란 (0) | 2022.06.08 |
자바: 필드(인스턴스 변수)의 수를 줄이기 위해 노력한다. (0) | 2021.10.30 |
자바: 기능 목록 구현을 재검토한다. (0) | 2021.10.30 |
자바: 객체에 메시지를 보낸다. (0) | 2021.10.28 |