본문 바로가기

Programming/Translation

"How do I become a better developer?" 번역

더 나은 개발자가 되려면 어떻게 해야 할까

(처음 해본 발번역 이니 매끄럽지 않고 이해가 되지 않는 부분이 많아도 이해 부탁드립니다)

Google 번역이 더 나을지도 ㅠㅠ

나는 현실에서 그리고 React Native Community를 통해 몇몇 놀라운 개발자들을 만나왔다. 그리고 나는 그들에게 어떻게 하면 더 나은 개발자가 될 수 있는지 물어보기로 했다. 이 질문에 열정적으로 대답해준 모두에게 감사한다.

이글은 내가 그들에게 받은 대답들을 모아둔 것이다. 몇몇 인용구들은 특정 질문의 대답에만 국한되지는 않는다

만약 당신이 세계의 성장하는 개발자들에게 해줄 좋은 의견이나 지식을 공유하고 싶다면 sungwoopark95@gmail.com 로 이메일을 보내주길 바란다.

 

Q&A

Aravind Kumaraguru

Q. 어떻게 하면 내가 더 나은 개발자가 될 수 있니 ?

 

A. 확실한건 당신이 아는것에 절대 만족하고 머물지 말라는 것이다 이 분야는 매우 빠르게 변화하고 당신은 그것을 따라잡을 필요가 있다. 기술산업의 정보들에 따르면 아마도 최근에 사용한 Python 모둘의 소스코드를 읽어봐야 할 것이다.

 

내 친구는 겨울 휴가 기간 여유 시간이 생겨서 Django를 공부하고 SMS와 상호작용 할 수 있는 웹앱을 만들기로 결심 했다. 그건 일종의 장난감 프로젝트 였지만 그는 다른 개발 페러다임을 배우는 것을 즐겼다. 사실 그는 로봇과 임배디드 시스템 전문이기 때문에 이 것 (Django로 개발)이 그의 익숙한 분야는 아니다.

 

하지만 자신이 다른 것들을 시도하도록 만드는 것은 당신을 엔지니어로서 더 강하게 만들어 줄 것이다. 나는 개인적으로 올해가 가기전에 더 많은 웹 개발을 하고 싶다. 조직(PiE) 내에서 우리는 고등학생들이 사용할 새로운 반복 로봇킷을 개발중이다. 내가 기계어 같은 시스템에 대해 좋은 이해도를 가지고 있는 반면 나는 우리의 UI 디자인을 관리하는 분야에는 약하다. 그런 종류(약한분야) 의 일을 전담해서 하는것에 관심을 갖으라는 것이 아니라 표면적인 지식정도만 갖춘다 해도 그것은 매우 도움이 될 것이다.

 

Q.당신이 잘하는 분야에서 벗어난 일을 하게 만든 프로젝트가 있었니

 

A. 나는 지난 여름 RFID 카드를 스캔 했을 때 기계식 레버가 문을 열수 있도록 작동하는 자동화된 도어 오프너를 만들었다. 그 프로젝트는 매우 강력한 모터와 조정하기 매우 어렵기로 입증된 손잡이의 상태를 인식하기 위한 복잡한 센서들이 사용 되었다. 나는 내가 이제껏 해왔던것과 완전히 다른 그 장치의 코드를 돌려보기 전에 수많은 오프라인 테스트를 해볼 필요가 있다는 것을 매우 빨리 배울 수 있었다.

 

내가 막 CS 189(데이터 싸이언스, 최적화 그리고 확률의 거대한 충돌을 연상 시키는 과정이었던)를 마쳤던 학창 시절 그 수업에서 내가 했던 프로그래밍 또한 내가 사용해왔던 것과는 매우 달랐다 그것이 전부 Python 인데도 말이다.

 

Brent Vatne

Q. 난 정말 더 나은 개발자가 되고 싶은데 우선 어떤 조언을 해줄 수 있니 ?

 

A. 니가 좋아하는 것을 해라 그리고 오픈소스에 기여해라 :-D

 

Q. 몇 살이니 ? 그리고 프로그래머로서의 경력이 어떻게 되니 ?

 

A. 나는 서른살이고 경력은 매우 많아

 

Q. 어떻게 Exponent에 들어갔고 들어간 이유는 뭐니 ?

 

A. 제임스와 나는 React-native outside of facebook 의 가장 활동적인 기여자다. 그러다 보니 우리는 이야기도 많이 나누었었다. 제임스는 찰리와 함게 Exponent를 만들었다. 내가 그들과 컨설팅 작업을 마친뒤 찰리는 내게 혹시 함께 일할 의향이 있는지 물어봤다. 매우 재미있어 보였고 나는 합류 하기로 했다.

 

Q, 내가 만약 React Native를 하려면 Object C Java를 완벽하게 알아야 하는거지 ?

 

A. 이미 만들어진 수만은 pure javascript 들과 문서들이 있으니 너는 그것을 니가 필요한데 가서 배울 수 있다.

 

Charlie Cheever

Q. 무료 오픈소스 Exponent 의 목적(동기)은 무엇이냐?

 

A. 나는 12살의 내가 사용할 수 있는 무언가를 정말 만들고 싶었다. 그래서 프로그래밍에 대해 아는게 없는 사람들도 신용카드나 많은 돈은 없지만 시간과 창의력, 휴대폰이랑 친구들만 있으면 새로운것들을 배울 수 있기를 원했다. 나는 TI-85에서 계산 게임들을 만드는 프로그램을 배웠었는데 아이들이 오늘날 휴대폰으로 그런것들을 만들 수 없다는게 매우 슬펐다..

 

Q. Quora를 떠났니 ?

 

A. 나는 그곳에서 모바일 팀들을 관리 했고 우리들이 좋은 사람들임에도 불구하고 그 앱들은 매우 느렸다. 나는 매우 실망스러웠다. 그리고 나와서 나는 모바일 제품들을 만들었고 제품들을 만드는데에 다른 기술들이 필요 하다는 것을 경정하는 것은 매우 귀찮은 일이었다. 그래서 제임스와 나는 React Native 같은 lon이라 불리는 것을 만들었다. 그것은 사실 상당히 비슷하다. 그러나 React Native 는 이미 안드로이드의 서포트를 받고 있고 20명의 사람들이 작업중이고 우린 두명 이었다. 그래서 우리는 우리가 만들고 싶었던 것 외에 모든 것을 만들기로 결정 했다.

 

Q. Facebook 에서는 뭘 했었니 ?

 

A. FarmVille 같은 모든 게임들의 개발자 플랫폼을 만들었다. 정확히 말해 모두는 아니지만 두명의 메인 개발자들 중 한명정도는 될 것이다. 그리고 나는 facebook video 의 최초 버전에서 일했고 그 외에 많은 작업들을 하기도 했다 그 뒤 타 사이트에서 facebook 으로 로그인하는 것을 관리 했고 Quora 로 옮겼다

 

Christopher Chedeau

Q. Facebook에서 뭐하니 ?

 

A. 초반엔 사진팀에 있었다 그 후 나는 React를 발견하여 내무적으로 외부적으로 React를 반영시키기 시작했다. 나는 React Native 의 초기단계에 있었고 3개월 전까지 그것에 전념하였다. 최근 Nuclide 팀으로 이동 하였지만 나는 여전히 React Native 3위 기여자다.

 

Q. (facebook) 이전 근무 경력이 있니 ?

A. 나는 학자금을 벌기 위해 학생때 Curse (블리쟈드 게임을 위한 웹사이트) 에서 일했었다. 한길드의 5명이 100명 회사로 가는 회사를 보는 것은 즐거웠다

 

Q. Facebook 에서의 하루하루는 ? 니가 현재 하고 있는 프로젝트는 뭐니 ?

 

A. 난 현재 Nuclide (Facebook's IDE built on-top of Atom)에 있다. 나는 내 시간의 반은 코딩하데 사용하고 반은 facebook에서 사람들이 하고 있는 온갖 재미난 것들을 응원하고 지지하는데 사용한다.

 

Q. 한 사람이 더 나은 개발자가 되려면 어떻게 해야하니

 

A. 내생각에 여러 가지로 나누어 볼 수 있겠는데.

 

첫째는 모든 개념들을 마스터 하는 것이다. 예를 들면 어제 나는 큰 중첩된 객체에서 특정 키들을 제거하는 function을 작성해야 했다. 나는 과거에 이러한 일들을 매우 여러번 해봤었기 때문에 나는 고민할 필요 없이 한번에 해결할 수 있었고 그 function 은 한번에 작동하였다. 이렇게 경험들은 정말 중요하다. 너는 너의 근육 기억들을 훈련시키기 위애 같은 종류의 것들을 여러번 코딩 해야할 것이다.

 

두 번째는 어떻게 미래에 멈추지 않게 개발 하는가 이다. 이상적으로 당신이 한번 무언가를 개발 한다면 당신은 다음것으로 넘어갈 수 있을 것이다 그리고 그것은 당신이 없어도 계속 돌아갈 것이다. 이것은 수많은 개발자들이 코드베이스와 제품의 방향을 수차례 바꾸고 건드리게 될 때 매우 어려움을 격게 될 것이다.

 

세 번째는 어떻게 처음에서 조차 존재 하는 모든 클레스의 문제들을 막는가 이다. 좋은 예로 manual dom mutations 가 있다. Dom에서 제거된 Dom node 와 상호작용하는 일부 코드를 트리거 하는 것은 매우 쉽다. React 는 이런 문제들을 해결해줬다. 당신은 그렇게 하기 위해서 당신이 하던 방법을 떨쳐내야 한다. 그리고 설령 당신이 이러한 일들을 하고 싶다면 당신은 그것을 작동하게 만드는 도구들을 가질 것이다.

 

Q. 너는 프로그래머로서 더 일찍 알았으면 또는 배웠었으면 했던 것들이 있니 ?

 

A. 아마도 가장 중요한 것은 협상 일 것이고 협상은 어디든 존재한다는 것이다.

 

만약 당신이 아무도 사용하지 않을 어떤 임의의 일회용 기능을 작업중이라면 그 코드를 유지하던 말던 누가 신경이나 쓰겠냐. 지금 내가 자주 보는 하나의 실수는 사람들이 쉬운것들에만 지나치게 엔지니어링 한고 그들은 CS 관점에서 덜 깨끗한 아키텍쳐를 기꺼이 만들려 하지 않는다는 것이다. 비록 그것이 실제로 너에게 필요한 사용자 경험을 제공한다 해도 말이다.

 

하루의 끝에서 우리는 사용자들을 위한 이 모든 코드들을 작성한다 우리는 먼저 사용자 경험이 어떠해야 하는지부터 이해해야 하고 그 다음 그것을 얻기 위애 필요한 일들을 해야한다. 만약 사용자가 단지 어떤 컨텐츠를 보여주길 원하고 그것을 쉽게 편집할 수 있길 원한다면 그냥 wordpress를 설치 하고 보기좋은 테마를 하나 골라라 그리고 그것을 하루라 불러라

 

Dan Horrigan

Q. 프로그래머로서 너의 배경은 뭐니 ?

 

A. 11살 때 프로그래밍을 시작했고 빠져들었다. 나는 가능한 빠르게 내가 할 수 있는 것들을 배웠고 나는 Visual Basic 과 같은 몇 개의 언어들을 배웠다 그리고 C C++을 시작했다.

먼저 html css를 배우고 Perl에서 작성된 간단한 CGI scripts를 추가 하였다 그리고 결국 Classic ASP를 추가 했다.

 

내가 처음 돈을번 프로젝트는 내가 14살 때 였다. 아버지가 일하시는 회사의 웹사이트로 이는 고객 포털과 함게 그들이 그들의 일하는 과정을 볼 수 있게 해줬다. 이것은 전부 ASP안에 있었다. 나는 PHP를 배우기 시작했고j 여지껏 나의 언어로 사용해왔다. 하지만 나는 JS, Python, Ruby, Java, C#, Go, Object C 와 같은 다른 언어들의 경험을 계속 쌓았다.

 

Q. 현재 작업중인 프로젝트들은 뭐니 ?

 

A. 나는 Futuri Media에서 일하고 있다. 우리는 Broadcast 라디오와 티비 회사들을 위한 SaaS 솔루션을 제공한다. 우리는 white label mobile applications, social engagement and discovery, audio streaming and podcast solutions 등을 제공한다. 나는 최근 많은 오픈소스 프로젝트에 기여하느라 자유시간을 갖지 못했다 하지만 곧 바뀌길 바란다 !

 

현재 나는 시니어 백엔드 웹 개발자이다. 그러나 나는 Director of Technical Operations 이 되기 위해 변화 중이다.

 

Q. 너는 프로그래머로서 더 일찍 알았으면 또는 배웠었으면 했던 것들이 있니 ?

 

A. 나는 내 경력이 괜찮다고 생각했던게 잘 못 된 것이라는 것과 실패는 배움의 기회라는 것을 더 일찍 깨닳았으면 좋았을 것 같다.

 

Q. 좋은 개발자가 되기 위한 첫 걸음은 무엇이라 생각하니 ?

 

A. 당신이 멋지다 생각하는 또는 당신의 삶을 좀 더 쉽게 만들 수 있는 작은 프로젝트를 떠올리고 만들어 보는 것이다. 너무 많은 사람들이 목표도 없이 코딩하는 것을 배우려고만 한다. 목표가 없으면 당신은 단지 문서들을 읽거나 튜토리얼에서 복사 붙여넣기를 할 뿐인거고 이런것들로 당신은 배울 수 없다.

 

더 나은 개발자가 되기 위해 당신은 단순히 한가지만 하면 된다 : 절대 배우는 것을 멈추지 말아라. 다른사람들의 코드를 읽고 어떻게 하나의 (당신이 본 정말 멋진)앱이 작동하는지 알아내고 블로그를 읽어라. 당신이 얼마나 잘났던 항상 누군가 더 나은 사람이 있다 그리고 더 배울것들이 있다.

 

Q. 현재 관심있는 특정 프로젝트가 있니? 다음에 배울 리스트가 있니 ?

 

A. 2015년 초중반부터 React Native를 사용하고 기여하고 있으며 여전히 흥미를 갖고 있다.

 

내가 다음에 배울 것은 Erlang/Elixir 이다. 우리는 내가 일하는 곳의 분단 시스템을 개발중이고 저런 언어를 통해 많은 이득을 가질 수 있을 것 같다.

 

Frank W. Zammetti

Q. 내가 어떻게 하면 더 나은 개발자가 되겠니 ?

 

A. (생략)

시간이 부족하여 생략하게 되었습니다 죄송합니다. 필요하시면 나중에라도...

 

Janic Duplessis

Q. 더나은 개발자가 되기위한 팁 ?

 

A. 뭔가 특별한게 있을거라 생각지 말아라 당신은 단지 걔속 배우고 새로운 언어나 프래임워크를 그 때 그 때 배우는 것처럼 당신의 익숙함에서 벗어나려 해야한다. 적어도 그것이 내가 하는 것이다. 그러나 나는 어떤 다른 좋은 방법들도 있으리라 확신한다.

 

Q. 어떻게 하면 내가 React Native 에 기여할 수 있니 ?

 

A. 최선은 우선 작은 버그 수정이나 컴포넌트에 extra prop 같은 작은 기술등을 추가하는 것이다. 대부분의 기여자들은 IOS 또는 안드로이드 그리고 약간의 Javascript를 안다. 또한 packager cli 같은 것들을 작업하는 몇몇 Javascript 개발자들도 있다. 우리는 시작하기 좋은 장소가 되는 곳에 좋은 첫 번째 임무 라벨의 몇몇 이슈를 남겨둔다.

 

Jake Murzy

Q. 제이크 더 나은 프로그래머가 되기위한 팁 있니 ?

 

A. 당신이 해야하는 하나는 당신이 사용할 언어를 배우기 전에 당신이 사용할 도구들을 배우는 것이다. 왜나면 그것이 더 빠른 피드백을 이끌 것이고 당신은 적은 시간에 더 많은 경험을 얻을 것이다. 그래서 linter을 설치해라 그것이 대부분의 오타 에러등을 잡아줄 것이다. 그것은 너의 코드를 분석하고 앞으로 나올 가장 적합한 것들을 추천해 줄 것이다. 당신은 그들에게 질문을 하기 위한 충분한 경험들을 얻을때까지 항상 그들을 따르는 것이 좋다.

 

Jun Ho Hwang

Q. 넌 어떻게 더 나은 개발자가 되었니 ?

 

A. ‘더 낫다라는 단어는 프로그래밍 분야에선 다양하게 묘사될 수 있다. 좋은 개발자는 개발에 엄청난 재능이 있는 사람이거나 놀라운 커뮤니케이션 능력을 갖춘사람 또는 비즈니스를 매우잘 이해하는 사람일 수 있다. 나는 개인적으로 좋은 개발자란 그 또는 그녀의 비즈니스 문제, 그들의 개발 능력 그리고 그 이슈에 대한 다른사람들과의 켜뮤니케이션 능력 등을 고루 갖춘 (중간인) 사람이다. 결국 이런 것을 성취하기 위해서는 많은 연습을 요구한다 그리고 나는 당신에게 자신만의 서비스를 만들기를 추천한다. 사용자의 관점에서 보고 생각하며 그들이 필요한것들을 충족시키기 위한 서비스를 개선하려 하는것은 정말 당신이 더 나은 개발자로 성장하는 것을 도와줄 것이다.

 

Q. 너는 프로그래머로서 더 일찍 알았으면 또는 배웠었으면 했던 것들이 있니 ?

 

A. 나는 내 자신의 서비스를 더 일찍 시작 했으면 한다. 개발전 파악하기 가장 힘든 것은 당신이 배웠던 것을 어떻게 적용할지 깨닿는 것이다. 많은 개발자들은 서비스를 시작하기를 두려워한다. 왜냐하면 그것은 어렵게 들리기 때문이다. 하지만 만드는 것 어디서 시작하는지에 대해 빠지는것과 그 후 생각했던 것들을 연결하는 작업들은 당신이 더 나은 개발자로 성장하는 것을 도와줄 것이다.

 

Q. 쿠팡에서 뭐 하니 ? 현재 어떤 일을 하니 ?

 

A. 쿠팡은 로켓 배송 서비스를 제공한다. 그리고 나는 보험과 재정관리와 연관이 있는 쿠팡카라 불리는 시스템을 개발하고 있다. 더 나아가 나는 로그로부터 데이터를 분석하기 위한 기술과 transporation control 시스템을 추가하는것에 대해 생각하고 있다.

 

Keon Kim

Q. 너의 관심사가 뭐니 ? 어떤 프로젝트에서 일하고 있니 ?

 

A. 나는 요즘 머신러닝 프로젝트를 하는 중이다. 나는 영어로 쓰여진 코드를 번역하기 위한 목표를 가진 딥코딩 프로젝트의 맴버중 한명이고 나는 mlpack 이라 불리는 C++ 머신러닝 프래임워크에 기여하고 있다 이는 Python scikit-learn 에 해당한다.

 

나는 또한 몇몇 재미있는 프로젝트들을 하고 있는데 DeepStock 프로젝트는 매일 매일 뉴스의 해드라인을 분석하여 주식 시장 트랜드를 예측 시도 하는 프로젝트 이다. 그리고 GodeGanSeqGan이라 불리는 새로운 딥러닝 방법들 중 하나를 사용하는 소스코드 생산도구 이다.

 

Q. 어떻게 더 나은 개발자가 되었니 ?

 

A. 나는 기초를 이해하는 것이 정말 중요하다고 생각한다. 기초라 함은 수학, 데이터 구조, 그리고 알고리즘 이다. 딥러닝은 요세 매우 인기가 있다 그리고 나는 요세 컴퓨터 과학과 수학에 대한 기본지식도 없이 그것을 배우기 위해 뛰어드는 사람들은 많이 본다. 그리고 물론 그들중 대부분은 튜토리얼에서 수학적 표기법들이 나타나자마자 포기 한다. 나는 이를 잘 안다 왜냐하면 나는 그러한 사람들 중 한명이었기 때문이다 그래서 몇몇 기초가 튼튼한 학생들이 단시간에 이해할 수 있는 개념들을 이해하는데 정말 오랜 시간이 걸렸었다. 요세 새로운 언어 라이브러리 그리고 프래임워크들은 매일 소개된다 그리고 당신은 그들을 익히기 위해 기초가 필요하다.

 

Munseok Oh

Q. 어떻게 더 나은 개발자가 됐니 ?

 

A. 내가 매우 어리고 건방지던 시절 나는 다른 개발자들을 그들의 코딩 스타일에 따라 평가 했었다. 거기엔 그들이 좋은 개발자인지 내가 판단하기 위한 특정 기준들이 있었다. 그러나 현재 나는 그런식으로 생각하지 않는다 현재 나는 모든 개발자는 진보적이라 생각한다. 이는 그 또는 그녀가 매일 더 나은 개발자가 되는중이라는 것이다. 그 스타일이 나쁘거나 코드가 좋거나 프로그램이 도는한 문제가 되지 않는다. 나는 대단하다 생각한다 프로그램이 버그가 있던 나는 개발하기위한 동기가 진정 중요하다 생각한다. 개발자들은 대게 그들의 능력에 만족하지 못 한다. 그들은 항상 더 나아지기를 갈망한다. 아마도 그것이 당신이 개발을 하는 이유일 것이다. 좋은 개발자를 정의하는 것은 정말 어렵다. 당신과 같은 사람들은 언젠가 나보다 더 나아질 것이다. 나는 여전히 내가 좋은 개발자라 생각하지 않는다.

 

Q. 당신이 Sketchware를 개발 할 때 가장 어려웠던 것은 ?

 

A. Sketchware를 개발하는 것은 그렇게까지 어렵진 않았다 왜냐하면 우리는 그 아이템을 위한 좋은 청사진을 가지고 있었기 때문이다. 우리가 갈 방향이 매우 명확했고 그것을 개발하는 것은 순조로웠다. 하지만 Sketchware를 유지 해야할 두 개의 라인이 있었다 이 라인은 두 조건이 있었다.

1. Sketchware 는 어플리케이션을 만드는 누구에게나 쉬운 도구여야 한다.

2. 사용자가 Sketchware에서 무엇을 제거하든 Sketchware 는 그들의 미래 케리어에 적용될 수 있다.

Sketchware 가 사용자가 프로그래밍 개념들을 배울수 있는 효과적인 도구가 되기를 원한 이후로 나는 어플리케이션에 새로운 기능을 추가할 일이 생길 때 많이 고심하고 생각하게 된다.

 

Q. 개발자로서 당신이 더 일찍 알았거나 고쳤으면 하는 것이 있니 ?

 

A. 나는 스타트업 세계로 더 일찍 들어왔었으면 한다. 개발할 시기가 오면 당신은 당신이 하는 것을 진정으로 즐기고 열정적이게 될 필요가 있다. 설령 3일 밤을 지세운다 해도 새로운 알고리즘에 하루종일 푹 빠져있거나 새로운 버그에 스트레스를 받아도 당신이 그것을 즐긴다면 모든 것은 괜찮을 것이다. 다시 질문으로 돌아가면 #1 나는 내가 개발할 때 내가 얻는 즐거움으로부터 힘을 얻는다. 그리고 그 즐거움은 결국 당신을 더 나은 개발자로 만들 것이다. 삶이 직면했을 때 만약 당신이 그것을 일로서만 생각한다면 대부분의 개발자들은 개발에 대한 열정을 잃어버린다. 나는 예전에 그러했었다 하지만 지금 나는 정말 걱정하지 않는다 지금은 개발이 나에게 즐거움을 주기 때문이다. 설령 우리가 자금이 부족하거나 회사가 불타버린다 해도 나는 내가 하는일을 최대한 활용하고 있기에 괜찮다.

 

Satyajit Sahoo

Q. 프로그래머로서 당신의 배경은 ?

 

A. 나는 실제 프로그래밍 배경을 가지지 않았고 임학(삼림관리)을 졸업하였으며 졸업 후 일을 제공 받은 후에는 뒤도 돌아보지 않고 떠났다.

 

Q. 당신의 하루하루는 어떠한가 ?

 

A. 상당히 지루하다 나는 일어나서 온라인으로 아침을 주문하거나 밖에 나간다 그 후 회사 일을 시작 한다. 저녁에 시간이 있을때면 나는 bar에 가거나 조깅을 한다. 밤에 나는 대부분 드라마를 보거나 사이드 프로젝트를 해킹한다.

 

Q. 오픈소스 프로젝트에 기여하는 동기는 무엇인가 ?

 

A. 나는 오랜기간 오픈소스 활동을 해왔다. 내가 졸업할 때 나는 리눅스에 빠졌고 오픈소스의 세상에대해 알게 되었다. 나는 다른 프로젝트들로부터 많은 것을 배울수 있는 방법을 좋아했다. 개발자들이 그들의 코드를 무료로 보고 사용할 수 있게 해주는 것이 나를 매료시켰다. 대학 생활 동안 나는 많은 오픈 소스 프로젝트들을 했다. 그리고 그것은 항상 나를 기쁘게 해줬다. 사람들이 오픈소스를 포크하고 그들이 필요한것들을 위해 바꿨으며 그것들을 고치기 위해 pull request를 보냈다.

 

개발자로서 나는 대부분의 시간을 오픈소스에 기여하였다. 왜냐하면 나는 기술이 필요하거나 그것이 내가 좋아하는 프로젝트에 무언가를 개선시키기 때문이다. 나는 만약 우리가 단순한 이슈들 보다 우리에게 중요한 것들을 고치기 위해 함께 일한다면 더 좋을거라 생각한다.

 

Q. 내가 어떻게 더 나은 개발자가 될 수 있니 ?

 

A. 나는 우리가 새로운 것들을 오픈 하는 것이 중요하다고 생각한다. 배울 것은 많고 우리가 우리 안에 갖쳐 지낸다면 우리는 배울 수 없다. 설령 표면적으로 복잡해 보여도 새로운것들에 도전해라. 나는 여러번 실패를 해봤다 그러나 결국 성곡했다. 이 과정에서 나는 문제와 해결법을 이해하고 결국 그것들은 매우 단순한게 된다.

 

Sonny Lazuardi Hermawan

Q. 어떻게 더 나은 개발자가 되었니 ?

 

A. 난 항상 배움을 갈망하는 것이 열쇠라 본다. 모든 것에 도전해라, 실수하고 실수로부터 배워라. 나는 파트너들이나 시니어 엔지니어들로 부터의 코드리뷰가 우리의 코드를 더 좋게 만들거라 생각한다. 당신 자신만의 오픈소스들을 만들어 보고 다른 대단한 개발자들을 만나 그들로부터 배워라.

 

Q. 오픈 소스를 만드는 동기는 무엇이니 ?

 

A. 나는 단지 사람들이 우리의 아이디어에 대해 알기를 원하고 그래서 다른 사람들이 우리 프로젝트를 사용할수 있게 구현하려 한다. 나는 redux를 만든 Don Abramov처럼 많은 개발자들에 의해 사용되는 오픈 소스 프로젝트에서 일하는 사람들에게 정말로 감명을 받았다.

 

Sunggu Hwang

Q. 어떻게 더 나은 개발자가 되었니 ?

 

A. 흠.. 좋은 개발자가 되는 것... 모든 개발자는 프로그래밍을 함으로써 그들의 자신의 개성을 가진다. 대장장이에 대해 생각해보자 모든 대장장이들이 똑같지 않다. 몇몇은 최고의 검을 만드는 것을 즐기는 반면 다른 몇몇은 검을 만드는 것 보다 테스트 하는 것에 더 즐거움을 느낄 수 있다. 나는 내가 행동을 하기 전에 생각들을 계획하고 정리하는 사람이다. 내 생각에 좋은 개발자는 어떻게 간결하고 명확하게 코드를 작성해야할지 안다. 당신은 이러한 습관을 연습해야한다. 설령 프로그래밍의 트랜드가 항상 변하고 많은 사람들이 다른 언어들을 사용한다 해도 누구나 코메트 없이 이해할 수 있는 코드를 작성해라.

 

Q. 다음 대박은 뭐라 생각하니 ?

 

A. 나는 프로그램 언어들의 진화를 관촬해와싿. 그리고 나는 그것이 매 세대 점점 더 추상화 되는 중이라 생각한다.--procedural programming, imperative programming, functional programming... 나는 약 20~30년 미래에 우리는 컴퓨터가 우리를 위해 코드를 짜고 우리는 단지 그들을 레고처럼 조립만 하면 되는 세상에 살거라 생각한다

 

Q. 어떤 공부에 초점을 맞춰야 하니 ?

 

A. 내 생각에 딥러닝은 필수다. 다른 여러 튜토리얼들을 해보고 열정적으로 그것을 배워라 수학 알고리즘 어떤것이든 멀리 봤을 때 당신에게 도움이 될 것이다.

 

Timothy Ko

Q. 스냅쳇에서 뭐하니 ?

 

A. 나는 재정팀의 소프트웨어 엔지니어다. 그래서 나는 돈만드는 것과 관련 된 모든 일을 한다. 예를 들면 iOS 나 안드로이드 앱 안에 있는 Snapchat Discover 나 뉴스 플랫폼 프로젝트 들이 있다. 또한 나는 스냅쳇에서 과거 인턴이었기 때문에 가끔 새로온 인턴들에게 질의응답을 해주거나 대화를 나누기도 한다. 나는 또한 고용에 많은 투자를 하고 있으며 많은 인터뷰를 진행하고 있다.

 

Q. 너희들은 어떤 언어와 플랫폼을 사용하니 ?

 

A. 서버단에서는 Java를 화면단에서는 React Redux를 사용 한다. 대부분의 팀들은 구글 앱 엔진에서 일하기 때문에 우리가 Java를 사용하는 것이다. 하지만 몇몇 팀들은 앱엔진의 한계로 인해 약간의 변경을 하였다 그리고 물론 생산팀들은 iOS Object C 그리고 안드로이드는 Java 로 작업 한다.

 

Q. 내가 더 나은 개발자가 되려면 어떻게 해야할까 ?

 

A. 내 생각에 최고의 방법은 가능한 많이 해보는 것이다. 나는 학교에 다니는 동안 7번의 인턴쉽을 했다. 그래서 나는 이미 졸업전 2년의 경력을 얻었다. 일에 대한 경험은 엄청나게 중요하다. 왜냐하면 실제 사용자들이 쓰는 기업 소프트웨어와 앱에서 일하는것과 해커톤 코딩이나 개인 프로젝트를 하는 것 그리고 학교 과제를 하는것과는 완전히 다른 작업이기 때문이다. 그러나 당신은 어딘가에서는 시작 해야만 한다. 그래서 학교를 가거나 개인 프로젝트를 하거나 해커톤에서 경쟁을 하는 것이다. 그리고 일 하면서 가장 성공적인 방법은 많이 질문하는 것과 직접 하면서 배우는 것이라고 생각한다. 당신은 당신이 원하는 모든 것을 공부하고 읽을 수 있다 하지만 당신은 그것을 실제 해보기 전까지는 확실히 이해하지 못할 것이다. 또다른 것은 코드리뷰다 당신은 수석 엔지니어가 당신의 소스를 보고 어떻게 더 낫게 만들지 알려주면서 더욱 방대한 지식을 얻을 수도 있다. 또한 만약 당신이 문제를 어떻게 해결할지 제안하면서 기술적인 어려운 질문들을 던진다면 매우 상세한 부분까지 얻을 수 있게 될 것이다.