흔하지 않고 좋은 웹 개발자가 되는 방법


개발Tip 카테고리에 글을 너무 안쓴거 같아서 개발관련

검색을하다 좋은 글을 찾아서 내 블로그로 퍼왔다.

일단 이 글 은 쓰여진지 얼마 안됬고, 글쓴이는 비전공으로 7년의

웹 개발 경력을 가지고 있다고 한다.


글 내용은 이 사람이 겪은 경험과 이것을 통한 느낌과 생각을

글로 표현했다. 전공자든 비전공자든 상관없이

웹 개발을 준비하고있거나 이미 일을 하고 있다면

한번쯤 읽어 보는것도 나쁘지 않을것이다.


(번역은 제가 직접 번역기 돌려가면서 좀 읽기 쉽게 바꿨습니다.

영어 할 줄 아시는분은 아래 원글을 직접 읽어주세요.)


출처 : (https://medium.freecodecamp.org/how-to-be-an-uncommonly-good-web-developer-7f745978351f)




=================================================




정말 좋은 웹 개발자가 되기 위해서는 무엇이 필요할까?


당신이 만약 신입 프로그래머 라면 위 사실이 쉽지 않다는 것을 금방 깨닫게 될것이다.


우리는 흔히 알고 있는 한 가지 방법은 코딩 튜토리얼을 보고, 프로그래밍 책을 읽고,

포트폴리오 사이트를 만드는거다. 

다른 방법으로는 스펙으로 웹 사이트를 만들고, 마감 시간을 지키고,

가장 중요한것은 상사와 고객이 만족할 수 있도록 해야합니다.


무엇보다도 기술변화가 빠릅니다. 때문에 지금 최신 기술을 쫒고 있지

않으면 내년에는 도태될 것 같죠.


비밀을 알고 싶으세요? 걱정마세요.


당신이 일을 계속 하면서 당신은 경험을 얻게 될것입니다.

마찬가지로 코딩을 배우고 일을 하다보면 끝내주는 개발자가 될 수있죠.


좋은 웹 개잘자가 되는 것은 가능합니다. 그리고 나아가서 더 좋은 웹 개발자가 될 수 있죠.

(내가 당신의 직업을 보장해줄순 없지만, 난 당신이 의미하는 바를 알고 있습니다.)




나의 첫 직업


저는 컴퓨터 전공을 하지 않고, 독학으로 프로그래밍을 배운 웹 개발자입니다.

전 7년의 경력을 갖고 있습니다. 물론, 지금까지 새로운 기술들을 배우기 위해

안간힘을 써왔죠.


그 과정에서 저는 정말 좋은 경험과 기술들을 많이 배웠습니다.

아마 이 글을 읽고 있는 당신도 비슷한 경험을 해봤을 겁니다.


제가 맨 처음 주니어 웹 개발자로 시작했을때 너무 즐거웠습니다.

하지만 첫 2년 동안은 정말 두려웠습니다.


매일 난 뭔가를 해야하는데 뭔지도 모르고 했죠. 그리고

어떻게 시작해야 하는지도 몰랐습니다.


매일 저에대한 무능함을 느꼈습니다.


고맙게도, 일을 잘 풀렸습니다. 저에게 호의적인 상사와 동료들이

저를 도와줬죠. 그리고 다행스럽게 전 마감시간을 다 지킬수 있었습니다.


시간이 지날수록 이전처럼 스트레스를 받지 않았죠.


그리고 4~5년이 지난 후, 저는 제 코딩에 자신감이 붙기 시작했습니다.


당신이 신입 개발자라면 5년이라는 시간이 정말 길 것입니다.


이것을 기억해 주세요.


하룻밤 사이 성공은 일어나지 않습니다. 그러나 하루, 일주일, 한 달, 1년 동안

열심히 노력하고 포기하지 않는다면 성공할 수 있습니다.


저는 제 짧은 경력에서 많은 것을 배웠습니다. 그래서

저는 힘들게 웹 개발을 시작하려는 분들께 도움을 주고 싶습니다.


제가 생각하기에 많은 개발자들 사이에서 돋보이려는 개발자가 되기 위해서는

몇가지 원칙이 있습니다. 이 원칙을 적용하면 당신과 당신의 회사에

중요한 자산이 될것입니다.


만약 당신이 아직 일을 하지 않고있다해도, 아래의 원칙들을 학습 과정에

적용할 수 있을 것입니다.


흔하지 않은 웹 개발자가 되고 싶습니까? 그럼 읽어주세요.


1.특정 기술을 마스터하는 것은

단거리 달리기가 아니라, 마라톤 입니다.


당신이 대학이나 국비지원을 끝내고, 바로 직업을 구했다면 정말 잘 하신겁니다.

하지만 코딩은 이제 시작입니다.


웹 개발 이라는 분야는 굉장히 넓고 일을 숙달하는데에 정말

오랜 시간이 걸립니다. 지금도 아직 모르는게 많을 것입니다.

앞으로 갈 길이 많이 있다는 거죠.


하지만 괜찮습니다 당신은 이제막 시작한 신입 개발자이고,

지금 당장 전문가가 될 순 없으니까요.


지금바로 모든것을 알아야 한다고 생각하지 마세요. 이것은 불가능합니다.

그리고 엄청난 스트레스를 받으실 거에요.


분명 당신은 웹 개발을 더 잘하고싶고, 배우고 싶을 겁니다. 그럼,

지금 현실적인 당신의 현재 위치를 알고, 당신의 발전을 위한 과정을

넓게 보세요. 당신의 커리어를 짧게 보지말고 길게 봐야 합니다.

그리고 너무 일찍 포기하지 마세요.


2.누군가에게 도움을 요청하기 전까지

최대한 스스로 먼저해보세요.


난 내가 모르는 일을 해결 해야할 때, 많은 불안과 스트레스를 받았습니다.


도움을 요청해야 할 시점을 알아야한다.


앞에 상황에서 전 2가지의 선택지가 이었습니다.

첫 번째 선택지는, 상사한테 먼저가서 "죄송합니다. 이 일을 하려면 어떻게

해야하는지 잘 모르겠습니다. 어떻게 해야할까요?"


이렇게 하면 단기적으로 압박을 좀 덜 받을 수 있습니다.

하지만 장기적으로는 도움이 되지않습니다.

왜냐하면 스스로 해결하지 못하는 직원은 결국

회사 동료들의 시간을 뺏어야 하기 때문이죠.


다른 선택지로는 스스로 최대한 해결해보려는 것입니다.

결국, 스스로 최대한 이해할수 있는 부분까지는 알수 있을것입니다.


만약 문제를 풀지 못했더라도,  상사한테 가서 이렇게 말할순 있죠

"죄송합니다. 제가 이 부분을 잘 모르겠습니다. 여기까지는 알아봤는데,

 이 부분을 잘 모르겠습니다."


차이점이 보이시나요?


일찍 포기하고 다른 사람에게 내 문제를 물어보기 전까지

최선을 다한겁니다. 누군가에게 도움을 요청할 때에는

요청하기 전까지, 어느정도의 노력을 했는지를 보여줘야 합니다.


스스로 터득하는 방법 배우기


스스로 조사하고 직접 문제 해결을 해나가면, 아래와 같은 좋은점이 있습니다.


먼저 당신의 일 에 대한 새로운 기술을 배웁니다.

어떻게 말하면, 당신은 돈받으면서 배우는거죠.

스스로 해결할 수 있는 문제를 상사와 회사 동료들에게

질문하는데 시간을 쓰지않아도 됩니다. 그러므로 당신은

회사의 마이너스가 아닌 플러스가 되는거죠.


물론 물어보면 금방 해결될 문제를 스스로 해결 해보려다가

몇 시간 또는 몇 일을 보내는건 시간 낭비입니다. 

때문에 특정 어떠한 문제에 시간을 너무많이 쓰면 효율이 떨어집니다.


당신이 이 문제를 직접 해결할지, 또는 누군가에게

도움을 요청할지는 당신 스스로 결정해야합니다.

아마 몇번 해보다보면 알수 있을것입니다.


3.호기심 가지기


제가 처음 일을 시작했을때, 저는 자주 스폰지처럼 정보를

잘 흡수한다고, 많은 좋은얘기를 들었습니다.

어떻게 해야하는지 잘 몰라도 뭐라도 해보려고 했죠, 그리고 

이 프로그램들이 어떻게 동작하는지 궁금했습니다.


프로그램들이 어떻게 동작하는지 알고싶어한다는 것은

모든 개발자들이 가지고있습니다. 당신의 호기심으로

그 욕구를 자극하세요.


그냥 빨리 일을 끝내려고 프로그램을 확인 하지않고 그냥 끄지마세요.

어떻게 동작하는지를 알아야하는것이 굉장히 중요하니까요.


만약 당신이 어떤 일을 하는데 스택 오버플로우에서

이 소스를 찾았다고 일을 끝내지 마세요. 정말

마감기간이 얼마 남지 않은 것이 아니라면, 시간을 좀더 써서

코드가 어떻게 동작되고 적용되는지 보세요.


왜 지금 코드는 돌아가고 이전의 코드는 안돌아 갔을까 를 알아야합니다.

이 모든것을 100% 이해하지 못해도 괜찮습니다.

그냥 개념만 파악하세요. 이번엔 완전히 이해하지 못했지만,

다음번에 또 이런 문제가 발생했을때는 이해할수 있을겁니다.


4.항상 향상되고 있습니다.


이것은 웹 개발뿐만 아니라, 요리, 운전 등 다른 영역에서도

적용이 될것입니다.


실수를 분석하고 배우세요.



어떤 문제가 잘 풀리지 않을때에는, 한 발짝 뒤로 물러서서 생각해보세요.

그리고 스스로 질문해보세요. 내가 뭘 하려고했는지, 근데 왜 되지않았는지.


만약에 당신의 코드가 웹 사이트를 손상시켰다면, 어떤일이 일어난걸까요?

그리고 앞으로 이 문제를 어떻게 피할수 있을까요?


아래의 순서를 해보세요.

- 뒤로 돌아가서 이 상황을 분석해 보세요.

- 무슨일이 발생한것인지 파악해보세요.

- 다음에 또 이러한 문제 발생시 피할수 있는 방법을 생각해 보세요.


이것은 시간이 좀 걸립니다. 그리고 이 문제들에 대해 다시 돌아가

파악할 시간은 없습니다. 하지만, 실수에서 배우려 하지않는다면 

이와 똑같은 실수를 되풀이 할것입니다.


한번 이런 어려운 문제를 해결하고 다시 본다는것은 본능적으로

하고싶지 않을것입니다. 때문에 이것은 어렵죠.


그럼, 이것을 디버깅으로 보면 어떨까요? 

만약에 해당 부분과 소스에 똑같은 오류가 발생하면 이것은

굉장히 비효율적입니다. 때문에 이 오류가 다시 발생하지 않게

개선하고 배워야합니다.


작은 실수와 오류라도 위 처럼 분석하고 배운다면,

장기적으로 볼때 당신은 능력있는 개발자가 될 수 있을겁니다.


5.문제 해결에 능숙해지기


웹 개발자로서 많은 업무들이 문제 해결을 위한 것일 겁니다.

새로 코드를 작성하든 기존 코드를 디버깅하든

최종 목표는 내가 원하는 코드를 작성하는 것이죠.


그렇다면 어떻게해야 코드의 문제를 어떻게 해결할 수 있을까요?


1. 당신은 그 코드를 정확히 이해해야 합니다. 그리고

동작과 관련된 모든 부분을 이해해야 합니다.


문제가 발생한 원인에 대해 생각을 해보세요. 그럼 그 문제를 풀수 있습니다.


램프 고치기


예를 들어, 고장난 램프를 고쳐야 한다고 생각해봅시다.

이 램프의 문제를 해결하려면 먼저 정상적으로 동작을 하는지 알아야합니다.

먼저 램프는 전원을 켜면 불이 들어와야 합니다.


하지만 불이 들어오지 않는다면 이 과정에있는

각 단계를 점검하여 무엇이 잘못인지 확인할 수 있습니다.


각 단계를 다음과같이 만들 수 있습니다.


1. 집안의 전기가 들어오는지, 콘센트에 전기가 흐르는지 확인한다.

2.램프가 콘센트에 꽂혀있는지 전기가 램프에 흐르는지 확인한다.

3.전기가 램프의 선과 스위치를 통해 잘 작동하는지 확인한다.

4.램프의 스위치를 켰을때, 램프의 전구가 잘 켜지는지 확인한다.


이렇게 각 단계를 테스트해서 문제가 발생한 곳을 찾을수 있습니다.


디버깅 : 웹 개발자의 최고의 삶과 최악의 삶


코드에서 에러를 발견하고 이를 해결하는 것은 램프를 고치는 일보다 어렵습니다.

하지만 과정은 비슷합니다.


코드를 디버깅하고 에러를 해결하는 일은 정말 어렵죠.

전 특정 문제에 대해, 몇 일, 몇 주를 쓴적도 있습니다.

이게 웹 개발자로서의 최악의삶 인것 같습니다.


하지만 반대로 그 해결책을 찾는다면 놀라운 성취감을 느낍니다.

그 순간 만큼은 굉장한 자신감을 느끼죠. 이 순간이 바로

웹 개발자의 최고의 삶 입니다.


비 기술적인 부분들을 간과하지 마세요.


마지막 두 개의 팁은 지금까지 다룬 얘기들과 성격이 다릅니다.

최고의 웹 개발자가 되기 위해서는 코딩과 관계없는 것들도 필요합니다.


보통 소프트 스킬, 대인관계 능력 이라 부릅니다.


대인관계 능력은 프로그래밍 실력 만큼이나 중요합니다.


우리는 코드로 일하지만 결국엔 사람들과 일합니다.

웹 사이트와 앱은 사람을 대상으로 하죠. 직장과 상관없이

고객, 고객또는 동료와 함께 일합니다.


코딩만 잘한다고 최고의 웹 개발자는 아닙니다.

큰 그림을 이해하고, 사람들과 잘 어울려 일을 같이 할수 있어야합니다.


다음 두 개의 팁은 기존과 다른 사고방식을 필요로 하기 때문에

배우기 힘들 것입니다.


많은 웹 개발자들은 이러한 비 기술적인 것들을 중요하게 생각하지 않습니다.

이 것들을 발달시키면 돋보이는 웹 개발자가 될 수 있습니다.


6.다른 사람들에 대한 공감대 형성하기


공감 이란것은 다른 사람들의 감정, 요구사항 등을 인식하고 이해하는 것을 포함합니다.


"승리"하는 것보다


남편이랑 싸우고나면 어색해집니다. 

내말이 100%맞는데? 라고 느낄수도 있지만 현실은 그렇지 않죠

그래서 하기 힘들지만 우린 솔직하게 생각을 말합니다.


결국 우린 서로를 오해 했거나 둘 중 한명이 그냥 기분이 나빴던 것임을

깨닫습니다. 그때서야 서로의 입장을 이해하죠.


다른 사람의 말을 듣고 공감하고 이해하자는 겁니다.


직장에서 공감하기


같은 방식으로 직장에서 일을 하다 보면, 의견충돌이 일어납니다.

그때 바로 결론을 내려하지말고 그 사람들 비난 하지 마세요.

아마 그사람이 한 행동이나 말은 고의가 아닐겁니다.


그와 얘기를 해보고 이해하려 해보세요.


그들은 아마 이메일 하는것을 잊었을 수도있고, 방금 회의로 인해

스트레스를 받아서 당신에게 스트레스를 푼 것일수도 있습니다.


다른 사람들을 존중하기.


공감이란 다른 사람의 업무량과 상황을 알고 존중해주는 것일수 있습니다.


동료 중 한 명이 마감 기간이 얼마 안남아 미친듯이 일을 하고 있다고 생각해봅시다.

정말로 급한일이 아니라면 그를 찾지 마세요.


다음 동료가 그 일을 끝내고, 그 일을 잘처리 했는지 물어본느것은

좋은 행동입니다.


7.수동적이지 않고 능동적이어야 한다.


개인적으로 수동적이지않고 능동적인 사람이 성공하는 사람들의 특징인것 같다.


수동적인태도


수동적인 직원은 맡은 일만 합니다. 절대 그 일 이상 하지않죠.

만약 뭔가 문제가 생기면 고치기는 합니다. 하지만

그 문제가 또 발생하지 않도록 미리 생각은 하지않죠.


수동적인 사람은 큰 그림을 생각하지 않고, 

시스템의 연동된 부분들은 고민하지 않습니다.

수동적인 사람들은 "나한테만 영향없으면, 내문젠 아니다" 라고 생각하죠.


이건 정말 짧은 생각입니다. 물론 여기서 수동적인 사람이 잘못됬다는 것은 아닙니다.

그들이 더 할 수 있는 무언가를 놓치고 있다는 것을 유의해야합니다.


능동적인 태도


대조적으로, 능동적인 사람은 주어진 일만 하지 않습니다.

항상 조금이라도 개선하려고 노력하죠.


만약 뭔가 일이 생긴다면 무슨 일이 일어났는지 분석해서 개선한다음

다음에 똑같은 오류가 발생하지 않도록 할것입니다.

이 사람들은 항상 회사에서 업무를 효율적으로 하기위해 끊임없이 생각할 것입니다.


즉, 능동적인 사람들은 현재의 일을 해결 함으로써 앞으로의 상황을 개선할것입니다.


능동적인 사람들은 큰 그림도 잘 보고, 더 개선시키기 위해 많은 노력을 합니다. 맞죠?

능동적인 자세를 갖기 위해서는 많은 시행착오가 있어야 합니다. 일단

한번 느껴 보면 당신의 삶에서 많은 부분에 좋은일이 생길것 입니다.



끝으로

좋은 웹 개발자가 되기 위한 제 개인적인 생각을 읽어주셔서 감사합니다. 

만약 당신이 신입 웹 개발자라면 당신에게 도움이 되었으면 좋겠습니다.



댓글

Designed by JB FACTORY