[주간 인프런 #2] 방학맞이 코딩 길라잡이 (1) 공대 편 cover

[주간 인프런 #2] 방학맞이 코딩 길라잡이 (1) 공대 편

 

20학번의 캠퍼스 라이프는 시작부터 무척 험난합니다. 사상 초유의 개강 연기에 원격 수업까지... 새내기 기분은 못 냈지만 그래도 방학만큼은 철저히 사수해야겠죠. 멀리 놀러 나가거나, 여럿이 한데 모이긴 쉽지 않겠지만요.

이번 <주간 인프런> 에서는 대학생이 시작하면 좋은 인기 프로그래밍 언어를 3주에 걸쳐 소개합니다. 다가올 여름방학엔 코딩을 배워보려는 분들이 정말 많을 텐데요. (이미 첫 학기부터 코딩의 쓴맛을 본 공학도도 있겠죠…😢) 코딩 열풍은 식을 줄을 모르는데, 무엇부터 해야 할지 모르겠다면! 공대 - 상경대 - 예대까지 어떤 프로그래밍 언어를 배우면 좋을지 살펴볼까요? 물론 전공이 달라도, 대학생이 아니어도 환영해요!

 

방학맞이 코딩 길라잡이 (1)
공대 편(6월 셋째 주) → 상경대 편 → 예대 편

C Java Python

•••

컴공은 C언어를 피할 수 없는 걸까요?

연구에, 공학수학에, 프로젝트, 포트폴리오, 코딩테스트 준비까지…
영원히 고통받는 나는 공대생(Computer Science & Engineering, etc.)

*이 글에서는 편의상 학부 과정에서 프로그래밍을 학습하는 대학을 “공대”라고 지칭했지만, 실제로 컴퓨터공학, 컴퓨터과학, 소프트웨어공학, 전자공학, 정보통신학, 콘텐츠학 등 여러 전공에서 프로그래밍을 학습하고 있습니다. 소속 단과대 역시 공과대학(공대), 자연과학대학, 정보대학 등 다양합니다. 유념해서 읽어주셔요! 👩‍💻

 

씨, 씨쁠쁠, 씨샵! 우리는 C언어 패밀리

이른바 "C언어 삼대장", C, C++, C#

프로그래밍을 모르는 사람도 C언어라는 이름은 한번쯤 들어봤을 텐데요. 그만큼 C의 역사는 무척 길답니다. 1972년에 처음 등장해, 가장 오랫동안 살아남은 프로그래밍 언어 중 하나예요. 복잡한 연산이 빠르게 이루어져야 하는 시스템이나 운영 체제(OS), 가전 제품 등에 내장돼 하드웨어를 제어하는 프로그램 등 다방면에 활용되고, 대부분의 컴퓨터공학/컴퓨터과학 학부 과정에서 기본으로 다루고 있는 언어예요. 어셈블리어*의 특징을 따온 만큼 컴퓨터의 구조와 무척 닮아 있다는 점이 특징이죠. 

하지만 컴퓨터 구조에 밀접한 언어라는 건 이해하기 어렵다는 뜻이기도 해요. (일반적인 사고가 아니라 컴퓨터 구조를 기준으로 생각해야 하니까요!) 실제로 컴퓨터공학, 컴퓨터과학을 전공하는 학생들이 1, 2학년 때 C를 배우면서 적잖이 애를 먹죠. 특히 포인터 개념을 익힐 때가 처음으로 전과나 자퇴, 혹은 ‘전공 포기’를 고민하는 순간으로 악명이 높아요. 대신 C++, C#, Java, GO(고), PHP에 이르기까지 다양한 언어에 영향을 끼친 언어이니만큼 C를 잘 알고 있다면 다른 언어를 훨씬 수월하게 배울 수 있답니다. (화이팅!)

그럼 C++, C#은 뭘까요? 절차 지향 언어인 C에 객체 지향*의 개념을 담은 게 C++과 C#이랍니다. C++는 최근에는 영상 처리, VFX, 게임 등 고성능 그래픽 처리가 필요한 비주얼 산업에서 주로 쓰여요. C#은 C++에 Java의 특징을 덧붙인 언어로, 마이크로소프트가 개발한 만큼 윈도 운영체제 폼 기반의 애플리케이션을 만드는 데 특화되어 있습니다. 특히 게임 엔진 유니티(Unity)가 C#을 기본 개발 언어로 채택하고 있죠.

*어셈블리어: Assembly Language 또는 Assembler Language. 0과 1로 이루어진 기계어에 일대일로 대응할 수 있도록 만든 컴퓨터 프로그래밍의 저급 언어로, 기계어와 프로그래밍 언어의 ‘중간 언어’ 역할을 합니다.

*객체 지향: OOP(Object-Oriented Programming), 컴퓨터 프로그램을 하나의 명령어가 아니라 메소드와 변수의 묶음으로 이루어진 여러 개의 객체 단위로 보는 프로그래밍 패러다임을 일컬어요.

 

 

인기 많은 자바를 잡아볼까요?

TIOBE 선정 2020년 6월 인기 개발언어 순위. Java는 2위를 기록했다.

ⓒ TIOBE(www.tiobe.com/tiobe-index/) 선정 2020년 6월 인기 개발언어 순위 

자바(Java)는 세계에서 제일 인기있는 프로그래밍 언어 중 하나입니다. 특히 한국에서는 명실상부 ‘원톱’이라고 해도 과언이 아니에요. 실제로 코딩 국비교육 대다수가 자바 백엔드 과정으로 이루어지죠. 한국 웹 진영에서 주로 쓰이는 스프링 프레임워크, 전자정부 프레임워크가 모두 자바 기반인 만큼 취업에 유리하기 때문이에요. 안드로이드 앱 개발에도 자바를 주로 사용하고 있구요. “자바를 배우면 취업할 수 있다”는 말이 아주 근거없는 소리는 아니랍니다.

그럼 자바는 왜 이렇게 인기가 많은 걸까요? 자바는 객체지향 언어이기 때문에 처음 프로그래밍을 배운다면 쉽지 않을 수도 있어요. 그래도 문법 자체는 일관적인 만큼 개념을 이해한다면 금방 배울 수 있답니다. 쓰는 사람도 워낙 많아서, 조금만 검색해 보면 엄청나게 많은 자료를 찾을 수 있죠. 또한 다른 언어에 비해 안정적이고, 다양한 환경에서도 높은 호환성을 자랑하며, (C나 C++에 비해) 생산성이 높은 언어이기 때문에 당분간은 인기가 쉽게 식지 않을 듯해요.

 

💡 자바 & 자바스크립트, 무엇이 다른가요?
자바와 자바스크립트는 햄과 햄스터와 비슷한 관계입니다. (=이름만 비슷한 것일 뿐!)
• 자바와 자바스크립트의 차이는 햄과 햄스터의 차이랑 비슷하다는 농담이 있죠. 자바스크립트는 프로그래밍 언어 중에서도 파이썬, PHP, Ruby 등과 함께 묶이는 동적 언어*예요. 반면 자바는 C, C#, C++ 등의 C 계열 언어처럼 정적 언어*에 속합니다. 둘 다 객체 지향 언어라는 점은 같지만, 하나하나 뜯어보면 전혀 다른 언어랍니다.

*정적 언어: 컴파일을 진행할 때 변수 타입이 결정되는 언어로, 변수에 따라 자료형(Type)을 지정해주어야 하는 언어입니다.
*동적 언어: 함수 또는 메소드 등 언어가 실행되는 환경에 따라 자료형(Type)이 그때그때 바뀌는 언어로, 자료형을 정해줄 필요가 없는 언어입니다.

 

 

인생은 짧아요, 파이썬을 쓰세요.

자바와 파이썬에서 "Hello, World!"를 출력하는 과정을 비교했습니다. 파이썬이 훨씬 짧은 코드로 이루어져 있지요.

컴퓨터공학, 컴퓨터과학 등 학부에서 프로그래밍을 배운다고 하면 C, C++, Java를 떠올리는 것도 머잖아 옛날 얘기가 될지 모르겠네요. 최근 학부 기초 프로그래밍 언어 커리큘럼이 C, C++, Java에서 파이썬(Python)으로 옮겨가는 추세입니다. 코딩을 처음 배우는 사람이라도 비교적 쉽게 배울 수 있기 때문이죠. 특히 데이터 분석 및 업무 자동화에도 활용할 수 있기 때문에 문과생이나 비개발 직군에서도 인기를 끌고 있어요. (앗, 이 얘기는 다음 시간에!)

물론 파이썬의 인기는 단순히 배우기 쉬워서만이 아닙니다. 웹 개발부터 시작해 데이터 분석, 게임, 머신러닝/딥러닝 분야에 이르기까지 다양한 분야에 활용할 수 있다는 게 파이썬의 강점이죠. 여기에 취업 시장에서 떠오르고 있다는 점도 한몫합니다. 채용 과정에서 삼성, 카카오, 네이버 등 유명한 기업을 중심으로 파이썬 코딩테스트를 실시하는 사례가 늘고 있어요. 이해하기 쉬운 문법, 높은 활용도, 급부상하는 언어라는 데 매력을 느낀다면 파이썬을 배워보는 건 어떨까요?

 

 

코딩에 골머리를 앓고 있을 여러분께 💌

물론 이밖에도 수많은 프로그래밍 언어가 있죠. 웹 개발, 보안, 데이터베이스, 게임 개발, 데이터 사이언스 등 선택의 폭도 그만큼 넓습니다. 다만 중요한 건 어떤 언어가 뜨고 지는지, 우월하고 뒤떨어지는지를 구분하는 게 아니예요. 

일단 언어를 딱 하나 정해서 파고들어 보세요. 언어 하나를 차근차근 배우고 나면, 그 언어는 여러분의 개발 커리어에 확실한 무기가 되어줄 거예요. 나중에는 필요에 따라 어떤 언어라도 도전할 수 있게 된답니다. 결국 프로그래밍이라는 본질은 같으니까요! 일단 자신감을 갖고 부딪혀 보세요. 여러분의 배움을 늘 응원할게요.

 -

이번 [주간 인프] 어떠셨나요?
솔직한 의견을 들려주세요!

유익해요 | 보통이에요 | 아쉬워요

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스