프로그래밍/코딩 입문자 공부법

프로필 사진mingke

bootcamp mindset

목차

늘어난 프로그래밍/코딩 개발 입문자

요즘 프로그래밍/코딩에 입문하는 분들이 정말 많습니다. 부트캠프도 많고 인터넷 강의들도 정말 많아서 배우고자하면 배우기 정말 쉬운 세상이 된 것 같습니다. 현재 IT 교육 쪽에 몸 담고 있기 때문에 비전공 입문자들을 많이 만나는데 어떻게 공부해야 하는지에 대한 질문을 많이 받고 있습니다.

이번 포스팅에서 입문자가 프로그래밍을 어떻게 공부해야 하는지에 대해 저의 의견을 한 번 나눠보도록 하겠습니다.

새로운 용어 정리

입문하시는 분들 대부분 처음에 파이썬, 자바스크립트, 자바 등 프로그래밍 언어 하나를 집중해서 공부하실거라고 생각합니다. 프로그래밍 언어를 배우면서 처음 어려운 부분은 그 동안 들어보지 못했던 새로운 용어들이 마구 등장하는 것입니다. 객체, 클래스, 인스턴스, 파라미터, 메모리 등 새로운 용어들이 처음에는 매우 낯설고 이해하기 어려울 수 있습니다. 용어를 이해하는 것이 빨리 배우는 것의 첫걸음이라고 생각합니다. 모르는 용어를 마주한다면 스스로 정리해보는 시간을 갖는게 중요한 것 같습니다.

그래야 누군가에게 질문할 때도 질문을 더 잘할 수 있습니다. 공부하다가 뜻을 모르는 용어에 대해서 그냥 추론하지 말고 제대로 알아보고 가는 것을 권장합니다. 그래야 프로그래밍 영역에 대한 문해력이 올라갈 것 입니다.

사고 방식 변화

아래 이미지와 같은 개발자 유머가 있습니다. 그냥 웃자고 만든 유머겠지만 개발자적인 사고 방식이 잘 드러난 것 같습니다. 개발자에게 필요한 역량은 문제를 해결하기 위한 명확한 논리와 단계적인 사고입니다.

개발자 유머

위 짤에서 아내의 지시는 사실 모호하긴 하지만 보통 성인이라면 무슨 말인지 추론 가능하고 우유 1통과 아보카도 6개를 사왔을 것입니다. 하지만 컴퓨터는 모호한 지시(코드)에 제대로 동작하지 않을 것입니다. 컴퓨터처럼 명확하고 단계적으로 사고하는 방식은 개발 공부하는데 도움이 많이 되는 것 같습니다.

그리고 뒤에서 다루겠지만, 요즘 개발자들 AI를 정말 많이 사용하는데 AI에게 지시를 내리기 위해 프롬프트를 작성할 때도 이런 방식으로 지시를 내리는 것이 중요하다고 생각합니다. 컴퓨터는 사람처럼 추측하지 않기 때문입니다. (물론 미래에는 달라질 수 있겠지만요)

그렇다면 위 짤에서 아내는 어떻게 지시했어야 했을까요? 저는 이렇게 생각합니다. 명확하고 단계적으로 생각하기 위해 요구사항을 작은 단위로 쪼개어 생각해봤습니다.

// 우유와 아보카도 사오는 것
- 우유가 있는지 체크한다.
- 우유가 있으면 1개를 산다.
- 아보카도가 있는지 체크한다.
- 아보카도가 있으면 6개를 산다.

그럼 코드로도 표현해 볼까요?

# 아내의 요청
def shopping_request(mart):
    shopping_list = []
 
    # 아내의 지시사항
    if mart.get("우유"):
        shopping_list.append("우유 1개")
 
    if mart.get("아보카도"):
        shopping_list.append("아보카도 6개")
 
    return shopping_list
 
# 마트의 상태
mart = {
    "우유": True,  # 마트에 우유가 있음
    "아보카도": True  # 마트에 오렌지가 있음
}
 
# 남편의 행동
shopping_result = shopping_request(mart)

무엇인가 만들어보기

영어 공부할 때를 생각해볼까요? 책을 보며 문법과 단어를 외우고 해도 막상 외국인과 대화를 해보려고 하면 말이 잘 안나오는 경험들을 많이 합니다. 저는 군생활을 카투사로 미국인들과 함께 했었는데, 20년 책으로 영어 공부했던 것보다 2년간 미국인들과 어울리면서 배웠던 게 훨씬 더 많은 성장했었습니다.

개발도 마찬가지 같습니다. 본인이 만들어 보고 싶은게 있다면 그것을 만들어보기 위해 노력해보는 것이 좋고 그게 아니라면 공식 문서나 책이나 강의들을 볼 때 제공되는 튜토리얼이나 클론 코딩 같은 것이라도 무엇인가 만들어보는 것이 중요한 것 같습니다. 쓰고 보니 너무 당연한 이야기를 하게 되었네요

AI 활용하기

바야흐로 대 AI시대가 도래했습니다. AI와 관련된 강연 같은 것도 있으면 보러 다니곤합니다. AI가 너무 발전하고 있어서 AI에게 일자리를 빼앗길까 걱정하는 사람도 많아졌습니다. 그런데 AI는 욕망이 없기 때문에 사람의 일자리를 뺏지 않는다고 합니다. 바로 AI를 잘 쓰는 사람이 AI를 잘 못 쓰는 사람의 일자리를 빼앗을 것이라고 합니다. 개발자에게도 동일하게 적용될 것 같습니다. 개발자 모두는 AI-Powered 개발자가 되어야 한다고 하네요.

써보니 학습할 때도 적극 활용하는게 좋더군요. 다만 프롬프트 고민은 좀 필요합니다. 그냥 아무렇게나 물어보면 답변이 썩 맘에 들지 않을 수도 있습니다. 그러니 프롬프트 고민을 좀 하고 공부하면서 정말 많이 질문해보세요. 그리고 AI가 알려주면 AI가 알려주는 내용을 잘 읽어 보는 것을 권합니다. AI에게 코딩과 관련된 질문을 하고 답변해 줄 때 글은 읽지 않고 코드만 보고 복붙하는 경우도 정말 많이 봤는데 이렇게 하는 것은 스스로에게 도움되는 행동은 아니라고 생각합니다.

아래 이미지는 Rust의 Serialize에 대해 공부 하면서 질문을 했던 내용의 마지막 부분을 캡쳐한 내용인데 질문한 내용을 기반으로 답변을 해주고 추가 학습 내용까지 추천해 줍니다. 프롬프트를 본인 필요에 맞게 잘 작성해보세요.

프롬프트 예시

시간을 투자하기

또 다시 당연한 이야기를 하게 되는데 입문자일 수록 정말 많은 시간을 투자해서 공부해야합니다. 배우는 것들이 모두 다 처음 듣는 것이기 때문에 어려운게 너무 당연한 것입니다. 그렇기 때문에 정말 많은 시간을 투자해야합니다. 오름캠프 백엔드 2기 분들 중에 빠르게 취업 소식을 전해 오는 분들은 부트캠프 기간동안 시간을 정말 많이 투자한 분들 입니다. 수업 중에 열심히 하는 것은 물론 그 후에도 스터디를 만들어서 12시, 1시까지 매알 빠짐없이 공부한 사람들 입니다. 심지어 중간에 추석이 있었는데 그 때도 빠지지 않고 공부를 하더군요.

그럼 무엇을 공부했을까요? 수업시간에 받은 자료들, 인터넷에 조금만 찾아봐도 나오는 문제 풀이 사이트들, 추가로 배우고 싶은 강의를 찾아서 들었습니다. 관련해서 많이 가이드도 해드렸죠.

마무리

개발 공부하기 정말 좋은 시대가 된 것은 틀림 없는 것 같습니다. 공부에 왕도는 없다고 하지 않습니까. 어떻게 꾸준하게 열심히 하는가가 관건인 것 같습니다. 학습 채널도 다양하고 방법도 다양합니다. 조금만 검색해봐도 어떤 순서로 무엇을 공부해야하는지 로드맵도 다 나옵니다.

교육 쪽에서 입문자들을 많이 만나다보니 그 분들에게 하고 싶은 말을들 적어봤는데요. 입문자 분들 모두 힘내시길 바랍니다. 화이팅

Loading...