본문 바로가기
IT

막막한 비전공자에게 현직 개발자가 알려주는 친절한 코딩 입문 안내

by 성공의문 2021. 10. 9.

0. 1:1멘토링으로 배운다면 굳이 순서는 어느정도 파괴되어도 상관없다. 어차피 멘토가 보여준다. 다만 집단강의든 온라인이든 배운다면 당신이 해야할 일은 이것이다.


1) HTML CSS, Javscript로 입문하기 보다 파이썬으로 입문해라.

인간의 재미는 "추리가 가능한 인지적 재미" 상상이 가능한 심미적 재미"가 있다. HTML CSS, Javascript 는 화면을 만드는 미술도구에 가깝다. 인간은 시간관리형보다 목적관리형에 가깝기에 이것은 필연적으로 "구체적으로 화면에 대한 상상이 가능한 사람"이 더 잘한다. 인터렉티드 디벨로퍼가 어려운 이유도 이때문이다.
파이썬 이후 HTML, CSS, Javascript를 하는 것을 추천한다. 이 역시 자신의 웹스크래퍼, 사이트 등을 만드는 구체적인 목적에 의해서다.

www.piqsels.com


2. 파이썬을 한번 훑으면 그림으로 배우는 알고리즘 basicr 대충 한번 봐라. 파이썬의 내용과 겹치는 알고리즘 내용이 있을 것이다.


3. 필연적으로 혼자서 어쩌는 과정에서 두통이 있다. 머리가 흔들리는 운동을 해라. 달리기, 줄넘기 같은 것이다. 일주일에 하루를 쉬는 것도 필요하다. 덧붙여 모니터를 두개를 두는 것이 필요한 이유도 이 두통을 줄이기 위해서다.

장기적이고 잦은 작업전환은 당신에게 코티솔을 발생시키고 빠르게 뇌의 해마를 파괴한다. 기억에 일어나야할 과정으로 진행되지 않는 상태다. 멍하니 모니터만 들여다보고 책만 보고 있는 상태니 쉬어라.특히 초기에는 자료를 검색하면서 여러 자료를 수집하는 데이터스크래핑 과정에서도 이런 스트레스가 나올 것이다. 천천히 해라. 아직은 "기억"이 아니라 "인지"가 필요한 단계다.

동일한 원리로 작업전환의 난이도를 줄이기위해서 동영상을 볼때는 1.2배 1.5배로 훑듣이 듣고 다시 돌아가서 순서대로 진행하는 것이 좋다. 지루함을 감수해야한다. 스트레스 상태와 지루한 상태는 다른 개념이다. 스트레스 상태는 무조건 쉬어야한다. 지루하다는 것은 아직은 도구를 익히는 단계라 구체적인 목표가 없는 상태라는 것이다.


4. 엄밀히 말해서 코딩이란 "기억"보다는 "인지"로 시작하는 반복동작에 가깝다. 키보드를 다 외우지 않아도 글을 칠 수 있는 것과 비슷하다. 즉 감각을 장기적으로 익히는데 시간을 써라. 그게 당신의 속도며, 1:1이 아닌 이상 누구도 당신의 속도에 맞춰주지 못한다.


5. 관련 타인의 코드를 하루에 30분씩 읽고 시작해라. 이게 뭘 input 하고 뭘 output하는지, 무슨 동작원리인지 분석하는 것은 인지가 아니다. 기억(경험)에서 mapping 하는 것이다. 이것은 설계단계까지 이어진다. 특히 그날 일을 시작하는 첫 단게에서는 15분에서 30분간 스트레스 구간이 존재한다. 그 구간은 이렇게 감각을 키우는 시간으로 사용하면 적절하다.


6. 파이썬 언어로 개인 프로젝트를 3개 정도 해봐라. 유투브에도 많고, 인터넷에도 많고 책도 많다. 따라하기로 시작해 자신이 따라한 코드를 테스트하고 분석하는 단계다. 완벽을 기하지 마라.


대부분 이 지점에서 인문계식 공부와 착각한다.
"잘하기 때문에 문제를 푸는 것이 아니라"
"목표를 풀수 없을 것 같은 문제에 도전했기에 잘해지는 것"이다.


7. 경험은 무조건 해결과정, 성장내용의 회고를 해야만 한 의미가 있다.


8. 이제부터는 선택이다.

JAVASCIPRT 프레임워크를 팔것인가?

JAVA를 익힐 것인가.

C, C++을 익힐 것인가.

파이썬 프레임워크를 팔 것인가.

인프라계열 이라면 파이썬이면 충분할 것이고 추가한다면 GO정도다,

백엔드 개발자라면 자신이 가고자하는 기술스택에 맞추어야하고 금융, 웹이라면 JAVA다.

서버개발자 혹은 솔루션이라면 C C++ 이다.

데이터라면 파이썬이다.

이 모든 것은 채용공고에 있다. 가고 싶은 회사중 가장 연봉이 높고 가장 커보이는 회사의 공고를 참고해 기술스택을 익혀라.


8. 프레임워크는 주요한 기능이 왜 쓰이는지 이유만은 파악해둬라. 설계부터는 지식이 메인이 되고 구현의 기준점이 되어준다.


9. 백날 완벽하게 만들려고 노력해봐야 공학의 모든 것은 트레이드 오프를 넘기 위한 과정이다. 즉 기계팔 달린 말이 두발로 뛰는 모양새다. 그것조차도 쌩말보다는 암석을 잘 오른다. 언젠가는 새로운 기술이 말을 버리고 대체한다. 서비스는 영원할 수 없는 법이다.


10. 암석산을 오르는 데 필요없을 거라 생각했던 기계팔이 고장이 나고 균형이 흐트러지고 앞에 있던 장애물을 치울 수 없는 상황이 생긴다는 것을 깨닫는 순간

당신에겐 3가지가 필요하다.

• 네트워크와 서버(일단 코딩과 인프라는 같이 익혀라)

• 자료구조 알고리즘

• 과제를 제시해줄 만한 다음 멘토


10. 당신이 무언가 목적을 가지요 언어를 익히기 시작했고 나름의 실력에 도달했다고 생각했는데 뭘 만들지 모르겠고, 생산성의 증대가 없다면 그건 지금 할일의 우선순위를 착각하고 있는 거다. 그리고 그 업무순서가 뇌에 입력되지 않아 혼란스러운거다

본래 금융 없이 금융앱이 있을 수 없고 숙박없이 숙박앱이 있을 수 없고 배달 없이 배달앱이 있을 수 없다.

기술은 "사람이 쌩으로 다 가능한 데서" 적합하게 쓰이는 용도다. 즉 일의 FLOW가 안 갖춰진 상태에서 기술만 고려하면 어디다 집어넣어야하는지 모른다. 이건 전문가를 불러도 모른다. 그들은 특정분야의 전문가이지 사람들끼리 일의 순서를 잡는 전문가가 아니다.

기술없이 쌩으로 순서를 잡을 수 있어야 적합한 기술을 찾고 적용할 수 있다.


11. 그리고 그것이 목적이 되고 필요한 기술은 찾아익히고 가져다 쓰는 식이다. 그렇게 "기술영역확대"가 이루어진다.


12. 이걸 반복하면서 "기술은 비즈니스문제를 해결하는 도구"에 지나지 않는 다는 것을 점차 깨닫게 된다. 동시에 비즈니스든 기술이든 "사람의 일, 혹은 문제"이라는 것도 감각이 길러진다. 상위개념으로 올라가고 있는 것이다. 프로그래머에서 개발자로 전환중이다.


13. 이 다음 단계는 일을 한다면 고객문제, 내부 직원 및 조직의 문제, 사회라는 조직의 문제 등을 고려하게 되면 기술기반 경영자가 된다.

출처: 생활코딩