프로그래밍에 왕도는 없다.
초보자들은 한가지 언어로 시작해서,
현실의 문제를 해결하는 프로그래밍을
개발하고, 실제로 가치를 만들어내는
과정까지는 상당히 많은 시간이
걸린다.
그 과정에서 상당수가 프로그래밍의 길을
접고, 다른길을 찾게 된다. 프로그래밍을
잘하는 방법은 무엇일까?
리눅스를 개발한 사람이나,
마이크로소프트 DOS OS를
개발한 사람이나 모두 같은 사람인데,
그들은 어떻게 프로그래밍에
접근했을까?
프로그램밍을 잘하는 여러가지가
있다. 그 중에서 7가지 방법론을
찾아보고, 자신에게 맞는 방법을
찾아가야 한다.
1. 최종 목표 파악
먼저 본인이 프로그래밍을 통해서
궁극적으로 어떤 모습이 되고 싶은지
로드맵을 그려보는게 첫번째 순서다.
대기업의 시니어 개발자가 되어서
스타트업의 CTO의 모습을 상상하는지,
아니면 시간과 공간에 자유롭게
프리랜서를 뛰면서 인디개발자의
형태를 원하는지, 사람마다 니즈가 다르고
환경이 다르기 때문에 자신에게
맞는 방법을 찾는게 중요하다.
프로그래밍 분야도 굉장히 많다.
데이터 사이언스 부터 머신러닝, AI,
웹 프론트, 웹 백엔드, 모바일 앱개발 등등
많은 분야중에서 본인이 가장 관심을
가지고 뛰어들 수 있는 분야를 정하는 것이
중요하다.
이것들을 찾기 위해서 가장 좋은 힌트는
바로 자신이 평소에 어떤 분야에서 강점을
가지고 있는지 생각해 보는 것이다.
자신의 관심이 결국 노력이 되고, 실력이
되는 것이다.
2. 프로그래밍 언어를 선택
본인 만의 로드맵을 완성했다면,
그 다음은 자신이 배우고 싶은 언어를 결정하는
것이다. 분명 자신이 선택한 분야에 따라서
가장 많이 사용되는 언어가 있을 것이다.
초보자 입장에서 가장 많이 사용되는 언어를
선택해야 하는 이유는 레퍼런스가 많기 때문이다.
프로그래밍 언어는 기본적으로 같은 틀을 공유한다.
조금씩 자신에게 맞는 기능을 추가로 가지고 있는
모습이고, 기본적으로 반복분, 조건문, 변수,
함수, 클래스 등의 개념은 공유한다.
즉, 한가지 언어에만 익숙해지면,
다른 언어를 배우는 것은 그리 힘들지 않다.
한가지 언어를 선택하라
언어를 선택했으면, 다음으로는 IDE 를 선택해야 한다.
효율적인 텍스터와 개발환경을 제공해주는 툴이다.
가장 많이 사용하는 툴로는 SublimeText나
VS code가 있다.
3. 자료 찾기 & 커리큘럼 구축
언어와 IDE를 선택했다면, 다음으로는
tutorial 레퍼런스를 찾아본다.
책도 좋고, document 도 좋고,
resource 웹사이트도 좋고,
비도코스, 유튜브, 유데미, 플루랄라이트, 린다, 쿠르세라 등등
레퍼런스를 찾아볼 곳은 굉장히 많다.
책의 경우 출판일저잉 기술의 발전 속도를
따라가지 못하는 경우가 많기 때문에,
웹에 존재하는 document나 resource
웹사이트가 유용한 경우가 많다.
기술이 발전하고, 웹이 대중화되면서
정보의 공유속도도 굉장히 빨라지고 있는게
사실이다. 조금만 찾아본다면 양질의 정보를
손쉽게 찾아볼 수 있을 것이다.
레퍼런스를 통해 조금 프로그래밍에
익숙해진다면, 프리코드캠프, 코드아카데미,
팀트리하우스 등의온라인 부트캠프나 코드워즈 등의
도전 웹사이트에 참여해서 실력을 키워보는 것도
좋은 방법이다.
4. 공동체를 찾아라
개발에 익숙해지기 시작하면,
이제 온라인 커뮤니티와 친해질 필요가 있다.
같은 것을 배우는 사람이 있으면, 본인의 실력도
빨리 늘 뿐만 아니라, 당신을 도와줄 멘토를
만날 가능성이 생기는 것이다.
도저히 해결할 수 없는 문제를 멘토를 만나
해결하는 경우가 많다. 온라인 커뮤니티에서
당신이 도움을 받은 것처럼 도움을 주는
사람이 된다면, 당신의 큰 발전을 도모하는
길이 될 수 있다.
또한 개발자의 모임에서 스타트업을
시작해볼 수도 있다. 1500만명의 회원을
보유한 당근마켓 또한 초기 창업멤버들은
모두 개발자였다. 개발자가 모이면, 서비스가
나오는 것은 당연하다.
5. 나만의 프로젝트 만들기
이게 사실 제일 중요하다.
개발언어와 환경을 만들고 튜토리얼을 보면서
개발에 익숙해지기 시작한 시점에 해야 할 일이다.
현실의 문제를 프로그래밍을 통해 해결하는
과정에서 문제해결 능력과, 프로그래밍 프로세스를
100% 이해하게 된다.
90%가 이 과정에서 무너진다.
어떤 로드맵을 그려야 할지 막막한 상태에서,
어떤 문제를 해결할지 정의하지 못하고,
코스만 따라가다 무너지는 경우가 대부분이다.
먼저 유사한 프로젝트를 진행한 사람들의
코드를 참고하면서, 본인의 문제를 해결하는게
좋다.
개발자는 문제해결능력 뿐만 아니라
문제정의능력이 더욱 중요하다. 어떤 문제를
해결해야 하는지 정의한다면 50%는 해결된 것이다.
다른 사람의 코드를 참고하고,
자신의 프로젝트를 빌드하고,
또 다른 사람의 코드와 레퍼런스를 참고해서
자신의 프로젝트를 만들어 가는 과정이
개발자로 성장하는 길이다.
6. PortFolio 만들기
자신만의 프로젝트를 진행하면서,
소스코드 및 알고리즘을 예쁘게 정리해서
포트폴리오로 만들어라.
요즘은 대학교의 학위가 중요하지 않다.
오로지 개발능력만 보고 취업이 되고,
창업을 하는 시대다.
학위에 집착하기 보다는
자신만의 멋진 포트폴리오 구축에
신경을 쓸 필요가 있다.
소스공유 코드는 Github에서
진행하는 것이 굉장히 편하다.
7. 오픈소스에 기여
중/고급 프로그래머가 된다면
Github에서 공유되는 오픈소스 프로젝트에
참여해서 commit을 진행해보자.
오픈소스 프로젝트에 참여함으로써
다른 개발자들과 협업하는 능력을
키울 수 있고, 멘토를 만날 가능성이
굉장히 높다.
오픈소스 프로젝트에 참여하기 위해서는
먼저 Github에 대한 이해도가 필요하고,
타인을 배려하는 자세가 필요하다.
물론 오픈소스에 contrib 한 내용들 또한
포트폴리오에 예쁘게 담아둘 필요가 있다.
마무리
개발자로 성장하는 7가지 과정을 모두
보면서, 본인은 어떤 단계인지 생각해보자.
멋진 개발자는 현실의 문제를 얼마나 잘
정의하고 해결하는가에서 드러나게 된다.
멋진 포트폴리오를 손에 넣었다면,
Linkedin에 자신의 이력서를 올려놓자.
그리고 실력을 키우자.
개발자는 세상을 바꿀 수 있는 직업이다.
'Programming' 카테고리의 다른 글
Django project setting 순서 및 방법 (0) | 2021.10.01 |
---|---|
[database] heroku VS django (0) | 2021.09.29 |
[Web app 배포 HEROKU] HEROKU 기본 셋팅 및 Django app 배포하기 (0) | 2021.09.29 |
Django 시작 전 반드시 알아야 할 것 들 (0) | 2021.09.28 |
[python] Tetris Game space bar hard drop implementation (0) | 2021.09.26 |
CSS 3분 끝장내기 #2 position ? (0) | 2021.09.24 |
댓글