본문 바로가기
파이썬

왜 프로그래머가 되려고 하는가? 파이썬 입문 강의 001.

by 진심블로그 2024. 3. 6.

본 카테고리의 글들은,

 

프로그래밍 언어를 한 번도 배워본 적이 없고,

인터넷에서 정보를 검색하는 정도의 컴퓨터 경험을 가지고 있는 상태에서,

파이썬을 배워서 프로그래머가 되고자 하는 분들을 대상으로 합니다.

 

또는 프로그래밍 언어를 조금씩 경험해 보았지만,

파이썬 프로그래머 전문가가 되어 보겠다는 분들도 대상으로 합니다.

 

최대한 자세히 길게 설명하려고 노력하겠지만,

어떤 분들에게는 그래도 어렵고,

어떤 분들에게는 너무 초보적인 내용이라고 느껴질 수 있습니다.

 

프로그래로 10년, 20년 이상의 경력을 가진 사람들이 많습니다.

다만 그들의 실력은 경력에 비례하지 않습니다.

실력의 차이가 너무나도 큽니다.

 

기초가 없는 상태에서, 결과물을 '빨리'만들어야 하는 현실에서는,

프로그램을 대충 만들어도 당장 결과가 보이면 나중은 생각하지 않고

그냥 사용하는 경우가 많습니다.

 

자기가 만든 프로그램에서 사용하는 코드들에 대한 이해가 없는 상태에서,

여기저기서 가져다 쓴 코드들로 누더기처럼 변한 프로그램들도 많습니다.

 

내가 만든 프로그램이 왜 동작을 하는지, 만든 사람도 모른다는 겁니다.

 

프로그램을 한번도 시작하지 않은 분들은 무슨 말인지 이해가 안 될 수 있습니다.

 

다만, 이건 분명히 알고 시작해야 합니다.

 

앞으로 여러분이 만드는 프로그램에 대해서는,

구석 구석 완전히 이해하고 만드는 습관을 가지기 바랍니다.

 

이게 왜 이렇게 동작하는지 정확하게 알고 다음 과정으로 넘어가기 바랍니다.

앞으로, '그냥 넘어가', '괜찮겠지', '지금은 복잡하니 다음에,..'와 같은 생각들을

수도 없이 가지게 될 겁니다.

그때마다 그냥 넘기게 되면,

타인이 평가하는 여러분의 생산성은 좋아질지 모르지만,

여러분이 만든 프로그램의

 

- 안정성

- 신뢰성

- 재사용

- 가독성

- 영속성

 

이 떨어지게 됩니다.

 

아직 프로그래거 아니지만, 꼭 다음의 설명을 읽어보고, 마음에 새겨 두기 바랍니다.

 

- 안정성

: 지금 잘 동작하는 프로그램이 언제 어떤 상황에서 멈출지 모릅니다.

 

- 신뢰성

:  프로그램이 보여주는 결과값을 믿을 수 없습니다

 

- 재사용

: 여러분이 만든 프로그램을 다른 사람들이 재사용할 수 없습니다.

 

- 가독성

:  여러분이 만든 프로그램을 다른 사람이 읽을 수 없습니다.

 

- 영속성

: 결국 프로그램은 폐기됩니다.

 

성공한 프로그래머가 되려면, 내가 만든 프로그램이 세상에서 인정받아야 합니다.

그러려면, 위의 5가지 요소는 필수입니다.

 

위의 5가지 요소를 지키지 않으면,

여러분이 회사에서 다니다 퇴사를 하게 되면, 후임자는,

여러분이 만들었던 프로그램을 쓰레기통에 버리고

새로 만드는 것이 낫다고 생각할 겁니다

 

기계적으로, 창의적이지 않고, 생산성만 갖춘 프로그래머들이 많습니다.

깊은 이해가 없는 상태에서 프로그램을 만들다 보니,

프로그램의 속이 복잡하고 지저분하고 정신이 없습니다.

 

본론으로 돌아와서, 왜 프로그래머가 되려고 하는가? 에 대해,

스스로 물어 보고 대답해 보기 바랍니다.

 

직업의 하나로 택하려고 하는지 취미인지, 지적 탐구용인지에 따라

다르겠지만 이글을 보는 분들은 대부분 앞으로 직업으로 삼으려는

분들이 많을 것 같기에 몇 가지 조언을 드립니다.

 

프로그래머가 되기로 결심하기 전에,

 

쉽게 말해, 적성에 맞아야 합니다.

하루 종일 컴퓨터 앞에 앉아 있어야 합니다.

허리도 아프고, 눈도 아프고, 손목, 팔꿈치 다 아프게 됩니다.

앉아 있는거에 적응이 안 되면, 다른 직업을 찾는 것이 좋습니다.

하루 한두시간만 하면 되겠지,.. 는 안됩니다.

활동적인 일이 적성에 맞는다면, 프로그래머는 아닙니다.

 

영어도 함께 배워야 합니다.

인터넷상의 정보는 90% 이상이 영어로 되어 있습니다.

프로그램언어도 한글로 도움을 받고는 있지만 100% 영어입니다.

공부해야 할 자료도, 번역은 할 수 있지만, 영어가 많습니다.

기본적인 영어를 배우려 하지 않고, 프로그래머가 될 수는 없습니다.

 

프로그래머는 공부를 해야 합니다.

프로그래머는 기능직과 같은 현장직이 아닙니다.

책을 포함한 여러 자료들을 통해 본인의 실력을 매일 같이 향상시켜야 합니다.

공부가 체질이 아닌 분들은, 프로그래머가 될 수 없습니다.

 

포기하지 않아야 합니다.

프로그램을 만들다 보면, 말도 안되게 막히는 부분들을 많이 만나게 됩니다.

이럴 때마다 포기를 반복하다 보면, 결국엔 아무것도 이루지 못합니다.

 

정리하면, 앉아서 매일 공부해야 하는 직업이 프로그래머입니다.

 

이런 각오가 되어 있는 상태에서 프로그래머가 되겠다고 결정했다면,

현실적인 문제로 들어가 보겠습니다.

 

우선은, 조금은 길고 넓게 바라보겠습니다.

 

"AI가 프로그래머들을 대체할 것이다"

 

중요한 이슈입니다.

 

AI도 결국은 프로그램이고,

AI의 결과물을 재가공하는 것도 결국에는 프로그램입니다.

 

이 프로그램들이 AI에 의해 만들어 진다고 해도,

깊게 파고 들어가면 결국 사람에 의해 만들어 집니다.

 

그렇지만, 결국은 AI가 상당수를 대체할 것으로 보입니다.

 

이 말의 뜻은,

 

"AI가 대체하지 않는 소수의 프로그래머들만이 살아남을 것이다."

 

입니다.

 

핵심적인 기술을 가지고 있는 소수의 프로그래머들을 말합니다.

 

이런 소수의 프로그래머 안에 든다는 것은, 어려운 일일 것입니다.

 

그래픽카드로 유명한 NVIDIA의 CEO는,

 

"더 이상 프로그래밍 언어를 배울 필요가 없다"

 

라고까지 말했습니다.

 

앞으로 10년, 20년 이후의 미래는 예측할 수는 있지만, 결과적으로는 아무도 모릅니다.

 

다만, 10년, 20년 이후에 태어나는 아이들이 프로그래밍 언어를 배운다는 것은

 

지금의 그것과 많이 다를 것 같다는 생각은 분명히 가지고 있습니다.

 

하지만 또 하나 분명한 것은,

 

"지금 프로그래밍 언어를 배우는 것은 충분히 가치 있는 일이다"라는 점입니다.

 

바로 지금을,

 

"프로그래밍 언어를 배워서 AI와 같은 기술을 익히고 활용할 수 있는 기회"

 

로 만들기 바랍니다.