본문 바로가기
컴퓨터·IT/<노코딩 AI >

09. 코딩의 세계

by BOOKCAST 2022. 7. 5.
반응형

 


 

언어에 재능이 있는 사람 중에는 10개 국어를 구사하기도 하지만, 대부분 세계 공용어인 영어와 중국어 정도만 해도 세계 어디서나 큰 불편함이 없이 소통할 수 있다.

온라인 교육 서비스 업체인 코세라(Coursera)의 최고 기업 책임자인 리아벨스키(Leah Belsky)는 “지금은 그 어느 때보다도 구체적인 기술들이 취업 및 승진과 관련이 있다”라고 언급했다.

여러 컴퓨터 언어 중에서 잘 사용하는 언어를 가지고 있어야 취업 및 승진에 유리하다. 시장에서 수요가 많은 컴퓨터 언어를 먼저 배우고 다른 언어로 확대해야 한다.


AI 솔루션으로 AI 기술 적용을 하다 보면 현장의 문제를 해결하는 데 한계가 있다. AI 전문가로 성장하기 위해서는 아래와 같이 다양한 코딩 기반의 교육을 받을 필요가 있다. 그러나 모든 분야의 전문 지식을 갖추기란 현실적으로 어렵다. 따라서 취업하고자 하거나 재직하고 있는 산업 분야 및 직무의 현장 필요에 맞는 교육에 집중할 필요가 있다. 많은 분야의 기술을 알아도 현장에서 활용할 수 있는 수준으로 성장하지 않으면 소용없기 때문이다.

AI 기술 학습을 위해서는 대표적인 코딩 기초 언어인 Python과 머신 러닝 라이브러리, 프레임워크와 시각, 언어, 음성과 관련된 알고리즘에 대해 학습해야 한다.

[AI 학습 분류]


Python은 간결하고 인간의 사고 체계와 닮은 문법으로 많이 사용되는 프로그래밍 언어다. 또한, 풍부한 라이브러리로 인해 데이터 분석, 머신 러닝 등 AI 분야에 다양하게 활용되고 있다. 따라서 AI 분야를 공부하기 위해서는 Python 언어 공부가 필수적이다.

NumPy는 Numerical Python의 약자로, 대규모 다차원 배열을 다루는 라이브러리다. Python은 느린 속도가 큰 단점이나, Numpy는 python이 glue language인 점을 이용해 라이브러리 내부를 C 언어로 구현해 속도가 빠른 것이 특징이다.

빠른 속도와 더불어 편리한 사용성으로 python의 대표적인 라이브러리가 되었다. Scikit-learn, Tensorflow, Pytorch 등 인기 있는 기계 학습, 딥 러닝 라이브러리들은 모두 Numpy를 기반으로 만들어졌다.

Matplotlib은 data를 차트(chart)나 플롯(plot)으로 그려주는 시각화(visualization) 라이브러리다. pyplot이라는 서브 패키지를 주로 사용하는 데 matlab이라는 수치해석 소프트웨어의 시각화 명령을 거의 그대로사용할 수 있다. 기계 학습에서는 학습 데이터에 대한 이해를 돕기 위해서 활용한다.

Pandas는 R의 통계기능과 유사한 라벨링 된 데이터 구조를 제공해 Python의 활용성을 높여주는 데 활용한다.

Scikit-learn은 Python으로 구현된 가장 유명한 기계학습 오픈소스 라이브러리다. 기계 학습의 여러 가지 알고리즘 및 데이터 처리 기법을 쉽고 빠르게 적용해보고 최상의 결과를 얻을 수 있어서 기계 학습을 대표하는 라이브러리가 되었다.

Seaborn은 Matplotlib을 기반으로 다양한 색상 테마와 통계용 차트 등의 기능을 추가한 시각화 패키지다. 기본적인 시각화 기능은 Matplotlib 패키지에 의존하며, 통계 기능은 Stats models 패키지에 의존한다.

최근 CodeinGame.com에서 전 세계 소프트웨어 개발자 20,000명을 대상으로 조사한 결과를 발표했다. 잘 알고 주로 쓰는 언어는 자바스크립트(65.46 퍼센트), 자바(62.74 퍼센트), Python(57.13 퍼센트), C††(51.73 퍼센트), C(49.58 퍼센트) 순서이다. Clojure언어는 1.4퍼센트만이 사용하고 있다고 답했다.

많은 사람이 사용하지 않는 희소성이 있는 언어는 그 언어를 필요로 하는 곳에서는 그 효용이 크지만, 범용성이 없어서 많은 사람이 그러한 언어는 잘 학습하지는 않는다.

코딩 언어의 사용자 편의성에 따라 많이 사용하고 있는 언어와 가장 좋아하는 언어는 조금 차이가 있다, Python(35.97 퍼센트), 자바스크립트(29.48 퍼센트), 자바(29.1 퍼센트), C#(24.98 퍼센트), C††(24.26퍼센트) 순서로 좋아했다.

다루기 어려운 언어로는 PHP(25.10 퍼센트), 자바(23.93 퍼센트), 자바스크립트(21.29 퍼센트), VB.NET(17.27 퍼센트), C(15.44 퍼센트)를 꼽았다. 인기 프레임워크는 Node.js(35.76 퍼센트), React(23.80 퍼센트), NETCore(22.82 퍼센트), 기타(21.38 퍼센트), AngularJS(20.26 퍼센트), Spring(18.48 퍼센트) 순이다.

그들은 코딩을 어디서 배웠을까? 조사대상의 58 퍼센트는 학교에서 소프트웨어 개발을 배웠다고 응답했지만, 약 35 퍼센트는 독학으로 학습했다고 응답했다.

온라인 교육 강의와 유튜브 등 소프트웨어 개발 관련 좋은 콘텐츠가 공급되고 있어 소프트웨어 개발에 관심만 있다면 대학교 정규 과정을 학습하지 않고서도 소프트웨어 개발자가 될 수 있다.

소프트웨어 개발자들의 약 1/3은 학교 수업 및 회사 업무 외에도 하루 1시간 이상 소프트웨어 개발을 하고 있다고 밝혔다. 반면에 직무를 수행하는 과정에서 소프트웨어 개발을 학습하지 않은 것으로 나타났다. 이는 소프트웨어 개발자로서의 직무를 수행하기 위해서는 소프트웨어 개발 역량을 반드시 갖추어야 하며 다른 직무 수행자가 소프트웨어 개발 직무로 전환하는 것이 어렵다는 것을 의미한다. 비IT 직무를 수행하고 있는 산업 전문가가 소프트웨어 개발 역량을 갖추기란 쉽지 않다.

대부분 대학교 과정을 이수한 것으로 조사되었다. 2년제 전문대학(10.37 퍼센트). 3년제 전문대학(11.18 퍼센트), 학사(26.56 퍼센트), 석사(28.2 퍼센트), 박사(2.02 퍼센트) 과정의 비율이었다. 정규 과정을 이수하지 않은 소프트웨어 개발자도 21.67 퍼센트 있었다.

대학교 과정을 이수한 사람의 대부분은 컴퓨터 관련 전공을 학습했으나 약 10 퍼센트 정도는 경영, 건축, 마케팅, 철학 등 컴퓨터와 관련 없는 학과를 전공한 것으로 조사되었다.

소프트웨어 개발자들은 소프트웨어 개발 역량을 발전시키기 위해 64.9 퍼센트는 블로그 등 온라인 자료를 통해 지속적으로 학습하고 있다. 60.8 퍼센트는 새로운 소프트웨어 개발 기술을 학습하는데 유튜브를 선호하는 채널이라고 응답했다.

최근 트랜드를 반영하듯 소프트웨어 개발자들은 AI · 기계 학습(49.17 퍼센트), 게임 개발(35.43 퍼센트), 웹 개발(33.14 퍼센트), 모바일 개발(26.04 퍼센트)에 관심이 많으며, 인터넷 자료(블로그, 문서 등)와 유튜브, 온라인 교육 프로그램, 기술 서적을 이용해 관련 분야를 공부한다고 답했다.

코딩을 학습해 AI 기술을 적용하는 것은 AI 솔루션이 제공하지 못하는 영역의 AI 모델을 개발하는 데 장점이 있다. 코딩을 할 줄 알면 개발할 수 있는 범위가 다양해지므로 유리한 점이 있다.

AI 솔루션을 활용해서 AI 기술을 적용하다 보면 코딩을 배우고 싶을 때가 올 것이다. AI 솔루션을 활용하면서 코딩에 대한 기본적인 이해가 되어 훨씬 코딩을 쉽게 배울 수 있다. 무엇보다 코딩을 배우고 싶은 욕구가 생겼기 때문에 코딩을 학습하면서 겪을 어려움을 극복할 수 있다.

반응형

댓글