Medium - What Does an Entry-Level Programmer Need to Know Exactly?

원문 - Indrek Lasn

Trend 파악을 위한 Medium 기고문 포스팅 - 신입 개발자가 뭘 알고 있어야 할까?; 신입 개발자에게 요구되는 사항

Photo by Arian Darvishi on Unsplash

만약 여러분이 소프트웨어 엔지니어 커리어를 시작했거나 신입 엔지니어 구직을 하고 있는 중이라면 아마 벽에 부딪힌 느낌일 겁니다. 모든 기업들이 직무 내용을 두리뭉술 하게 적어놓거나 정확한 설명이 없기 때문이죠.

이것은 모든 기업들이 소프트웨어 엔지니어에 대한 자체적인 규정이 있기 때문일 겁니다. 길고 긴 요구사항 리스트를 읽어보며 신입 엔지니어로 구직을 하기에 어느정도의 역량이 필요한지 궁금할 것입니다. 이 기사에서는 어떻게 언제 무엇을 해야할지 설명해주는 판도라의 상자를 열 것입니다. 다음의 내용들은 Software-as-a-Service(SaaS) 기업에서는 신입 엔지니어에게 기대하는 것들입니다.

What Does It Mean to Have a Decent Grasp of a Programming Language?

모든 회사는 여러분이 하나의 언어라도 기본이 잘되어있길 바랄 것입니다. 그럼 여기서 기본이라는 것은 어느정도 일까요?

Photo by Priscilla Du Preez on Unsplash

저는 자바스크립트 엔지니어이기 때문에 자바스크립트 용어로 설명하겠습니다. 자바스크립트에 대한 기본이 충실하다면 쉽게 새로운 프레임워크를 사용할 수 있을겁니다. 아니면 최소한 학습한 것을 까먹지 않겠죠. 하나의 언어에 대해 기본이 탄탄하다면 특정 협업에 필요한 새로운 개념을 쉽게 배울 수도 있을 것이고 해당 언어로 설계된 특정 기술을 사용할 수도 있을 것입니다.

많은 곳들은 여러분이 해당 언어의 전문가라고 자부하는 것에 대해 별로 기대하지 않습니다. 몇몇 면접관들은 여러분의 지식에 대해 꽤 깊이 물어보지만 결국 이런것들은 그냥 여러분이 뭘 알고 있는지 보고싶은 것입니다. 항상 성장할 여지는 있기 때문에 면접관들은 여러분들이 부족한 경계까지 밀어붙여서 어디가 부족한 것인지 알고 싶을 것입니다. 누군가에게 모른다고 하는 것에 겁먹지 마세요. 이것은 모르는 것을 어떻게 처리하는 지 보고싶어하는 것입니다. 저라면 부족한 지식을 감추려고 하기보다는 “잘은 모르겠습니다만 제가 추측하기론 이런 것일 것 같습니다”라고 응답하는 사람을 뽑을 것 같군요. 항상 정직해야 먼길을 갈 수 있습니다.

You Need to Be Able to Build Something and Demonstrate Your Potential

프로그래밍 분야에서 고용가능한 수준이 되려면 가장 필요한 기술은 뭔가를 만들 수 있는 것입니다. 프로그래머는 코드를 작성하고 제품을 생산하는 제작자 입니다. 꾸준히 생산을 하기 위해서는 특정한 마인드 셋이 필요합니다. 편안한 곳을 벗어날 준비가 되어서 항상 배우고 새로운 것을 시도해보고 앞으로 나아가려는 욕구가 있어야 합니다.

Photo by Hannah Gibbs on Unsplash

오늘 당장 개발을 시작하고 시간을 버리지 마세요. 시간은우리가 가진 자원 중에 가장 소중한 것입니다. 항상 돈이나 물건들은 얻을 수 있지만 시간은 얻을 수 없습니다. 누구에게나 제한된 자원입니다. 여러분이 시작만 하면 어떤 것이라도 만들 수 있습니다. PostgreSQL로 시작해서 동물들로 데이터를 채우고 데이터를 가져오고 브라우져에 보여주는 겁니다. 뭘 만들어야 될지 모르겠다면 Six front end challenges를 확인하고 오늘부터 당장 만들어보세요.

저는 항상 좋은 개발자가 되는 비결은 뭔가를 만들어보는 것이라고 말하곤 합니다. 헬스나 조깅에 비교해보세요, 매일 운동을 하면 건강한 몸을 갖게 됩니다. 코딩도 마찬가지 입니다. 코드 수정에 마음을 열고 뭔가를 만들면서 지식을 축적하세요. 그냥 책을 읽는 데에만 시간을 너무 낭비하지 마세요. 80% 시간은 코드 에디터에 보내세요.

Consider Most Job “Requirements”s as “Nice-to-Haves”

직업 요구사항에 적혀있는 길고 긴 리스트를 보고 너무 낙심하지 마세요. 이런 것들은 다 할줄 알면 좋은 것이고 그런 이상적인 지원자는 존재하지 않습니다. 대개 인사담당자는 기술적인 문제에 대한 배경지식이 없기 때문에 많은 키워드들을 넣곤 합니다. 제가 조언해드리고 싶은 것은 회사의 미션과 배경에 대해 조사를 해보세요. 기업이 하는 일과 미션에 확신이 든다면 지원할만한 가치가 있을 것입니다.

Photo by Darius Bashar on Unsplash

신입 개발자에게는 두가지 종류의 고용자들이 있습니다. 문제 해결자 타입과 금방 전문가 타입입니다. 문제 해결자 타입을 원하는 곳은 구글이나 애플 MS입니다. 수학 전문가와 알고리즘 천재들로 문제를 푸는 새로운 방법을 발견하죠. 그리고 해당 기업들은 여러분들이 새로운 기술에 빠르게 적응하길 바랍니다. 친밀감은 별로 없지만 두세달 안으로 여러분은 효과적인 문제 해결자가 되길 요구받을 것입니다. 알고리즘과 문제 해결 능력이 높은 탄탄한 교육을 받은 사람들이 이런 회사를 좋아할 것입니다.

전문가 타입은 정부, 앱 회사, 금융권, 국제 IT 부서 에서 특정 프레임워크와 기술에 대한 경험이 있는 엔지니어를 원하는 유형입니다. 특정 기술 도메인에 대해서 높은 이해를 해야합니다. 기술적 혁신은 그들에게 관심이 없습니다. 그들이 바라는 것은 빠른 실행과 기술에 대한 높은 이해압니다. 그들은 그들의 비즈니스나 제품에 중점을 둔 혁신을 더욱 좋아합니다. 메인터넌스 직무는 시스템이 잘 돌아갈 수 있도록 유지보수 하는 것입니다. 이런 직업들은 적은 요구사항과 업무 강도가 낮은 대신에 보수도 낮고 도전적이지도 않고 별로 재미가 없죠. 안정적이긴 할겁니다.

여러분 스스로가 어떤 형태에 더 적합한지 셍각해보세요.

When Should I Start Applying for Junior Engineering Jobs?

이 질문과 비슷한 속담이 있습니다. 나무를 심기 가장 좋은 것은 20년 전이었다. 그 다음으로 좋은 것은 지금이다. 구직을 하는 입장에서 지원하기 가장 좋은 시점은 어제 하는 것이었습니다. 실제 업무를 하면서 현업의 문제를 끊임없이 해결하며 성장하게 될 것입니다. 하루에 한시간 정도는 직업을 찾아보면서 여러분이 무엇에 관심이 있는지 알아보세요. 흥미로운 구직 공고를 본다면 기업을 조사해서 그 기업이 뭘하고 누가 있고 어떤 기술을 쓰는지 보세요. 만약 구글러가 되고 싶다면 Go나 C++을 배우셔야 할 겁니다. 스타트업에서 일을 하고 싶다면 노드나 리액트를 배워야 겠죠. 여러분이 원하는 직무에서 요구하는 기술적 수준이 어떤 종류인지 알아내셔야 합니다. 여러분의 무릎위로 좋은게 그냥 떨어지는 것이 아닙니다. 노력을 기울이고 쟁취해야 합니다.

Conclusion

첫날 입사할 때부터 기업에서 여러분에게 기대하는 것이 뭔지 명백하게 여러분의 머리속에 그려져야 합니다. 좋은 것은 항상 쉽게 얻어지지 않습니다. 만약 쉽다면 누구나 하고 있겠죠. 막 시작했을 때가 어렵지만 걷다보면 재밌고 짜릿한 커리어가 될 것입니다.

Summary

  • 기업에서 신입 개발자에게 요구하는 것 - 모르는 것에 대해 두려워하지 않기, 하나의 언어에 대한 탄탄한 기본, 최소한 뭔가를 만들 수 있는 능력

© 2019. All rights reserved.

Powered by Hydejack v8.1.1