독학 모바일 개발자로서 여정에서 배운 것

이 글에서는 제가 어떻게 전문 모바일 개발자가되었는지에 대한 전체 여정을 공유 할 것입니다.

제 경험에 대한 글이 현재와 미래를 되돌아 보는 데 도움이되고, 개발자로서 경력을 시작하는 데 도움이되거나 목표를 달성하는 데 동기를 부여하기를 바랍니다.

내 대학 학위와 모든 것이 시작된 방법

나는 루마니아의 작은 마을에서 수학과 정보학 학위로 고등학교를 마쳤습니다.

대부분의 친구들처럼 대학에 갈 도시는 두 가지 선택이있었습니다. 나는 루마니아의 수도 인 부쿠레슈티를 선택했습니다.

대학은 필수라고 생각하면서 자랐습니다. 아마도 대부분의 국가에서 발생합니다.

우리 부모님은 모두 그것을 원합니다.

나는 특정 학위를 선택하고 싶은 욕구를 느끼지 못했습니다. 익숙한가요? 내가 졸업 한 후에는 어떤 일로 일하는 것을 본 적이 없습니다.

결국 저는 부쿠레슈티에있는 경제 대학을 선택했습니다. 다시 두 가지 옵션이 있습니다. 하나는 좋은 대학으로 여겨졌 고 다른 하나는 학위를 받기 위해 많은 돈을 지불하는 곳이었습니다.

솔직히 말해서 공부하지 않고 첫 번째 시험에서 몇 가지 시험을 보았습니다. 그리고 분명히 통과하지 못했습니다.

두 번째 옵션을 선택해야했습니다.

빨리 감기는 경제 대학을 졸업했습니다. 하지만 2 년 늦게 졸업했습니다. 나는 경제에 대한 열정이 없었고 은행 가로 일하는 것을 보지 못했습니다. 저는 항상 졸업장을 받고 싶다고 생각했고 그게 다였습니다.

그 쓸모없는 학위에 얼마를 지불했는지 생각해 본 적이 없지만 사회에서 인정 받기 위해서는 졸업장이 필요했습니다.

나는 경제학 학위를 가진 실패자 였지만 경험이나 지식이 없었습니다. 그 후 몇 년 동안 가족의 도움으로 실패한 두 개의 사업을 만들 수있었습니다.

나는 이야기에서 그것들에 대해 논의하지 않을 것이지만 단지 내가 많이 배웠다고 말합시다. 나는 또한 온라인 포커를했고 꽤 잘했다.

고등학교를 졸업 한 지 7 년이 지났을 때 저는 직업 경험도, 사업도 성공하지도, 돈도 없었습니다.

나는 내가 조치를 취해야한다는 것을 알았고, 백업 계획이 없으면 성공적인 사업을위한 나의 모든 꿈이 곧 일어나지 않을 것이라는 것을 알고있었습니다.

그때 내가 생각했던 것 :

내가 자신의 사업을 결코 만들지 못하더라도 나를 행복하게하고, 돈을 잘주고, 30-40 세에 좋은 삶을 살 수있는 직업은 무엇입니까?

떠오른 유일한 대답은 프로그래밍이었습니다. 나는 고등학교에서 약간의 사전 경험이 있었고 몇 개의 웹 사이트를 만들었습니다.

단 하나의 문제가있었습니다. 저는 고등학교에서 수학을 좋아하지 않았고, 그것에 대한 훌륭한 이해 없이는 전문적인 프로그래밍을 배울 수 없을 것이라고 항상 생각했습니다.

내가 틀렸어.

저와 같은 생각과 의구심을 가진 사람들이 많이있을 것입니다. 하지만 당신이해야 할 일은 행동을 취하고 배우기 시작하는 것입니다.

Android 및 Java 학습

코딩을 배우기 위해 처음 아이디어를 찾기 시작한 것은 2014 년이었습니다.

제가 제일 먼저 한 일은 부쿠레슈티의 일부 과정을 위해 Google에 갔는데 저를 사무실로 초대 한 회사를 찾았습니다. 나는 거기에 갔고, 많은 iMAC가있는 멋진 가구가 비치 된 사무실을 가지고 있었던 것을 기억합니다. 나는 스스로에게 "그게 내가 필요한 것"이라고 말했다.

10 분 후 나는 그들이 모든 코스를 온라인으로하고 있고 코스를하는 것보다 코스를 판매하는 것이 사무실에 더 가깝다는 것을 알게되었습니다.

정확한 가격은 기억 나지 않지만 약 1500-2000 USD였습니다. 나는 그것을받지 않았다.

나는 몇 달 동안 그 아이디어를 놔두고 2015 년이되었다. 새해, 새로운 계획, 새로운 삶, 알고 있습니까?

나는 다시 직접 과정을 조사하기 시작했고 그들이 부트 캠프라고 불렸다는 것을 알게되었습니다.

부쿠레슈티에서 하나를 발견했고 그들은 자바를하고 있었는데 4 개월 동안 약 800 달러 밖에 들지 않았습니다. 교사와 다른 학생들과 함께 하루에 몇 시간이 될 것입니다.

돌이켜 보면 그들이 제안한 것에 비해 값이 싸다고 생각하지만 우리가 두 번째 배치라고 생각합니다.

그들은 부트 캠프 이후에 고용되는 것에 대해 모든 종류의 이야기를했지만 나는 상관하지 않았습니다.

저는 코딩을 배우고 싶었고 몇 달 만에 빨리 일자리를 찾을 수있을 것이라고 생각했습니다. 내가 옳았지만 생각만큼 쉽지는 않았다.

수업이 시작되었습니다. 그들은 항상 우리 시간에 수업 만하는 것만으로는 충분하지 않다고 말했습니다.

나는 들으려고 노력했다. 그러나 집에서는 결코 말이되지 않았습니다. 프로그래밍이 어려웠고 부트 캠프를 마치지 못할 것이라고 자주 생각했습니다.

나는 더 세게 내 자신을 밀어 붙였다. 교육 과정이 시작된 지 한 달이 지났는데 Android로 Java를 배우게 될 것이라는 사실을 알게되었지만 다시 한 번 신경 쓰지 않았습니다. 나는 Eclipse와 사랑에 빠졌고 우리가 코딩하는 동안 화면에서 일이 일어났습니다.

Eclipse는 원래 Android 용으로 개발하는 데 사용 된 통합 개발 환경입니다. 이제 Android Studio를 사용합니다.

그것은 어려웠 어. 수업이 끝나면 변수, 클래스, 상속, 캡슐화, for 루프 등을 배우려고했습니다.

그러나 나는 고생했다. 이 모든 것을 더 큰 앱에서 어떻게 사용할 수 있는지에 대한 명확한 그림이 없었습니다. 많은 경우 말이되지 않았습니다.

방금 프로그래밍을 시작했고 같은 느낌이 든다면 그것이 정상이라는 것을 알고 싶습니다.

우리의 멘토들은 항상 우리에게 이렇게 말했습니다. "이 모든 것을 머릿속에서 알 필요는 없습니다. 단지 그것들이 무엇이며 어떻게 사용할 수 있는지 이해하려고 노력하십시오."

그들이 옳았지만 나중에 그것을 발견했습니다. 그 특정 순간에는 도움이되지 않았습니다.

아쉬운 점은 처음부터 프로젝트를하지 않았다는 것입니다. 저는 항상 제가 선생님이 필요하다고 생각했고 여러분은 온라인으로 어떤 것도 스스로 배울 수 없다고 생각했습니다. 나는 게으르고 또 틀렸다.

4 개월 후 나는 첫 번째 "작동하지 않는"앱을 만들 수있었습니다. 학생들이 다른 학생이나 사람들로부터 방을 빌릴 수있는 앱이었습니다.

백엔드 나 사용자가 없기 때문에 "작동하지 않음"이라고 말했습니다. 데이터 저장을 위해 SQLite를 사용하는 데모 앱과 비슷했습니다.

몇 달 전에는 내가 할 수있을 거라고는 상상도 못했어요.

부트 캠프가 끝났고, 경영진의 누구와도 다시는 이야기하지 않은 것 같습니다.

그들이 저에게 직업을 얻으려고했는지 확실하지 않거나 개발자로서의 경력을 쌓기에 충분하지 않다고 생각했을 수도 있습니다.

주니어 Android 개발자로서 첫 인터뷰 및 첫 직업

인터뷰를 시작했고 첫 번째는 부쿠레슈티에 위치한 대기업에서 자바 역할을 맡은 것이 기억납니다. (힌트 : 직원 수는 30 만 명 이상이며 2019 년 매출은 약 770 억 명입니다.)

인터뷰는 못 봤는데 대화가 좋았다고 생각 해요. 나는 경험이 없어서 고용되지 않았을 것입니다.

그 후 다음 인터뷰를 받기까지 한 달이 더 걸렸습니다.

부트 캠프에서 만든 친구가 저를 추천 해 주었어요. 그가이 글을 읽으면 감사하고 싶다.

그 역할은 실제로 통신 회사와 계약을 맺은 루마니아 아웃소싱 회사의 Android 개발자였습니다.

나는 그들과 두 번의 인터뷰를 가졌는데, 대부분은 기술적 인 문제 였고, 그들이 역할을 제안하기 위해 전화했을 때를 아직도 기억합니다.

급여는 적었지만 중요하지 않았습니다.

2015 년 5 월 말에 부트 캠프를 시작했고 2016 년 1 월에 주니어 Android 개발자로서 첫 역할을 시작했습니다.

대단한 성과였습니다.

관리자가 저에게 프로젝트를 할당 한 후 버전 관리와 Agile 작업 방법, 2 주 동안의 작업 방법에 대해 배우기 시작했습니다.

프로그래밍을 배우기 시작했거나 시작하고 싶다면 세 가지를 추천합니다.

  • 오늘 시작하세요 (이미 시작했다면 선택 사항)
  • 최대한 많은 프로젝트 수행
  • 버전 관리 (Git, Bitbucket 또는 Gitlab)를 배우고 여기에 모든 프로젝트를 푸시하세요.

이 모든 것에 대해 다른 기사를 쓸 것입니다.

그 회사에서 근무하면서 친절하고 도움이되는 많은 사람들을 만났습니다. 처음에는 많은 도움을 요청했기 때문에 많은 사람들에게 짜증이 났을 것입니다.

새로운 국가 및 더 많은 Android 작업

9 개월 후 저는 채용 담당자로부터 많은 메시지를 받았기 때문에 런던으로 이사하기로 결정했습니다. 또한 그곳에서 경력을 쌓은 다음 부쿠레슈티로 돌아가는 것이 더 쉬울 것이라고 생각했습니다.

제 여동생이 그곳에 살게되어 운이 좋았고 그녀와 함께 살 수있을만큼 친절했습니다.

나에게 인터뷰 같은 것을 약속하는 채용 담당자가 있었을 때도 거기에 도착했을 때 나는 회의가 없었습니다.

쉽지 않을 거라는 걸 알고 온라인으로 많은 일에 지원했습니다.

2 주 후 영국 통신 서비스 회사에서 인터뷰를 받았습니다. 그들은 작은 IT 부서를 가지고 있었고 그들의 Android 개발자는 떠나고있었습니다. 직원들이 사용하는 내부 Android CRM 앱이 있었고 유지 관리 및 새 앱 개발을위한 누군가가 필요했습니다.

1 년 계약이었고 급여는 크지 않았지만 (나중에 알게 됐습니다) 다시 한번 행복했습니다.

나는 그해에 (내 스스로) 많은 것을 배웠다.

다음과 같은 Android 관련 기술을 배웠습니다.

  • Model-View-Presenter와 같은 아키텍처는 무엇이며 앱에서 사용하는 방법
  • 적절한 단위 테스트를 수행하는 방법
  • SOLID 원칙

등등.

나는 직장과 자유 시간에 모든 것을 배웠습니다. 나는 일하고 있었고 여가 시간에 나 자신을위한 앱을 만들고있었습니다.

현재까지 모든 내 앱 (Android의 5 개)은 대부분 유기적이며 100,000 개 이상의 다운로드를 기록했지만 그중 하나만 2,000 달러 이상을 벌었습니다.

나는 통신 회사에서 정확히 1 년 동안 일했습니다. 저는 런던에서 다른 것을 시도하고 더 많은 Android 개발자와 함께 작업하고 싶었습니다.

소프트웨어 개발자로서 직장에서하는 일보다 항상 더 많은 일을해야한다는 것을 이해하는 데 시간이 좀 걸렸습니다. 의사 나 변호사도 마찬가지입니다. 그들은 다른 사람들보다 더 잘하기 위해 정기적으로 지식을 향상시켜야합니다.

더 중요한 프로젝트를 진행할 준비가되었다고 느꼈지만 충분히 숙련되지 않았다고 생각합니다.

낙담하지 않았고 글로벌 아웃소싱 회사에서 Android 역할을 맡았습니다.

런던에있는 영국의 큰 은행에서 일하려고 했어요.

처음에는 무서웠지만 그 프로젝트에 참여한 것 같은 느낌을받는 데 한 달이 걸렸습니다.

프로젝트에 들어가기 전에 세 번의 인터뷰를했습니다.

제 경력 동안 제가 한 모든 인터뷰는 2 ~ 3 단계를 거쳤습니다.

첫 번째는 일반적으로 HR과 함께 귀하의 경험에 대해 질문합니다.

두 번째 인터뷰는 기술적 인 질문, 집으로 가져가는 과제 또는 일부 알고리즘을 사용한 기술 질문이 될 수 있습니다.

세 번째 인터뷰는 기술 책임자, 관리자 또는 HR 담당자와의 인터뷰 일 수 있습니다.  

저는 적절한 스크럼 팀의 은행에서 일하기 시작했습니다. 우리는 4 명의 Android 개발자, 4 명의 iOS 개발자, 프로젝트 관리자, 제품 소유자, 2-3 명의 품질 보증 엔지니어, 비즈니스 분석가, 카피라이터, 디자이너였습니다.

이 모든 사람들이 앱의 중요한 부분을 개발하고있었습니다. 프로젝트는 방대했습니다.

개발팀에만 30 명 이상의 Android와 30 명 이상의 iOS 개발자가있었습니다.

나는 이전 직장과 마찬가지로 1 년 동안 그 역할에 머물렀다. 이유? 루마니아로 돌아가고 싶었습니다.

주변에 좋은 동료 만있을만큼 운이 좋았습니다.

배우고 싶다면 도움을 요청하는 것이 결코 잘못이 아닙니다. 우리는 모두 처음부터 지식이 전혀없는 상태에서 시작했습니다. 모를 때 배우고 싶지 않다는 것이 끔찍하다고 느낍니다.

은행에서의 한 해는 저에게 많은 것을 배웠고 몇 년 동안 느꼈습니다. 나는 배웠다:

  • 코드 검토 방법
  • 단위 테스트를 위해 100 % 코드 커버리지가 필요한 프로젝트에서 작업하는 방법
  • 정시에 기능을 제공하는 방법
  • 깨끗한 아키텍처 란 무엇이며 많은 주석을 남기지 않고 읽기 쉬운 코드를 작성하는 방법

그리고 내가 기억하지 못하는 더 많은 것.

더 많은 지식을 가지고 집으로 돌아 가기

2 년 동안 런던에서 생활 한 후 부쿠레슈티로 돌아온 것은 2018 년 11 월이었습니다.

훌륭한 경험 이었지만 집처럼 느껴지지 않았습니다.

나는 돌아온 후 매우 빠르게 (2 주) 다른 아웃소싱 루마니아 회사에서 새로운 일자리를 얻었습니다.

런던에서 새로운 6 개월 프로젝트를 위해 다시 떠나는 데 4 개월 밖에 걸리지 않았습니다.

여자 친구를 내버려 두는 것이 기쁘지 않았지만 돈은 6 개월 동안 만 일할 수있었습니다.

기밀 유지 계약에 서명했기 때문에 프로젝트에 대한 정보를 공개 할 수 없으며 지금도 여전히 작업 중입니다. 하지만 저는 지금 부쿠레슈티에 있습니다. 현재 회사에서 일한 지 1 년 반이 넘었습니다.

이 프로젝트에서 무엇을 배웠습니까?

  • 팀을 만드는 방법
  • 처음부터 큰 앱을 시작하는 방법. 우리가 출시하면 나는 아마 매우 자랑 스러울 것이고 사람들은 그것을 사용할 것입니다.
  • 미지수가 많은 요구 사항을 조정하는 방법.
  • 전 세계 사람들과 협력하여 전달하는 방법.

미친 여정이었습니다.

결론과 내가 배운 것

내 게시물은 2000 단어 이상이며 내가 배운 내용에 대해 많은 세부 정보를 제공하지 않은 것 같습니다. 나는 표면 만 긁었다.

쉽지는 않았지만이 직업을 선택한 것을 후회하지 않습니다.

당신이 5 년 전의 저라면 시작하세요.

그만두는 기분이들 것입니다. 당신은 당신이 충분히 똑똑하지 않다고 생각할 것이고, 당신은 운없이 무언가를 해결하는데 몇 시간 / 일이 걸리는 개발자처럼 느껴질 것입니다.

모르는 것이 잘못이 아니며 어리석은 질문은 없습니다. 배우고 싶지 않으면 끔찍합니다.

오늘날 그 어느 때보 다 더 많은 개발자가 기꺼이 도와주고 있습니다. 사람들이 귀하의 프로그래밍 질문에 기꺼이 대답하는 Discord 그룹을 쉽게 찾을 수 있습니다. 도움이 될 Reddit 커뮤니티가 많이 있습니다. Slack 채널도 도움이 될 수 있습니다. 멘토를 찾는 것도 해결책이 될 수 있습니다.

freeCodeCamp와 같은 웹 사이트와 YouTube 채널 만 있으면 시작할 수 있습니다.

이 게시물에서 배웠 으면하는 모든 내용은 다음과 같습니다.

  • 시작은 어렵지만 매일 새로운 것을 배우는 것은 엄청난 만족을 줄 것입니다.
  • 모든 종류의 프로젝트를 수행해야합니다. 기본 사항을 아는 것은 좋지만 무언가를 구축하고 버전 제어로 작업하면 향후 작업을 준비하는 데 도움이됩니다.
  • 사람들은 기꺼이 도와줍니다 (온라인 및 미래의 동료 모두)
  • 아무것도 작동하지 않는 날이있을 것입니다. 해결책을 쉽게 찾을 수 없습니다. 긴장을 풀고 나중에 문제로 돌아 오거나 도움을 요청하십시오.
  • 모든 개발자 (주니어, 중급 또는 시니어)는 Google에서 솔루션을 검색하고 자주 문제가 발생합니다.
  • 당신은 가짜 신드롬을 느낄 것이지만, 저보다 더 나쁜 CS 학위를 가진 개발자를 만났다고 말할 때 저를 믿으십시오.
  • 개발자가되는 것은 코딩에 관한 것이 아닙니다. 소프트 스킬도 중요합니다.

이 기사가 마음에 들었고 더 많은 정보를 원하시면 Twitter에서 저를 팔로우하십시오. 저는 모바일 개발자로서의 여정, 실패 / 성공한 스타트 업, 앱 마케팅 및 지난 10 년 동안 배운 모든 종류의 내용에 대해 씁니다.