이 Blog에서 다룰 프로그래밍 언어에 대한 Orientation이다. 뭐 하려고 하는지 어떤 내용 있는지 앞으로 어떤 내용 작성하려는지 정리해본다.
1. Intro
여기서 다룰 내용과 프로그래밍 언어는 아래와 같다.
1
2
3
4
5
Language = ['Python', 'VBA', 'HTML/CSS/JavaScript']
Area_Python = ['Engeineering Calculation', 'Machine Learning']
Area_VBA = ['Some Automation']
Area_WEB = ['WEB Page Development']
Grade = 'Elementary'
먼저, 작성자 자신도 초보다. 하지만 완전 처음에 시작할 때는 실은 어디서 시작해야하는지 부터 막막하다. 작성자가 헤맨부분은 똑같이 헤매지 않기를 바라며 같이 공부해 나가는 걸 목표로 한다.
가장 좋은 건 Small Success
를 느낄 수 있는 자그마한 문제를 정하고 실제로 코딩을 통해 해결하는 것 같다. 그래야 재미도 있다. 조금씩 성공을 쌓아가면서 꾸준히 취미로 하면 좋을 것 같다..
주된 내용들은 아무래도 Python으로 하는 공학용 계산이나 Machine Learning이 될 것 같다. 나머지는 경험해 본 것 중에 쓸만 했던 것 위주로 간단히 정리하려고 한다.
2. Plan
그래도 한 달에 한 번은 포스팅 써보려고 한다. 취미로 하는게 목표니 강제성은 없다.
3. Contents
강조하지만 작성자 자신도 초보기 때문에 정확하지 않은 정보가 섞여있을 수 있다. 그저 몇 안되는 경험상 이러이러 하다는 정도로 각 언어별 느낌을 정리해본다.
Stackoverflow라는 개발자 커뮤니티가 있다. 개발자만 있는건 아니고 그냥 코드 짜다가 모르는게 있으면 아무나 그냥 질문 올리고 그러면 고수분들이 질문 답해주는 그런 곳이다. 아쉽게도 영어지만 어차피 코드자체가 영어다. 아래 그래프는 그 커뮤니티에서 프로그래밍 언어별로 질문이 올라오는 횟수를 보여준다.
3.1. Python
- 장점1. HOT 하다
- 위 그래프에서 볼 수 있듯이 최근 몇 년 사이 가장 HOT한 프로그래밍언어다. 일단 그냥 뭔가 있어보인다. 머신러닝 덕분이 큰 것 같다. 할 수 있는 것도 많다.
- 장점2. 사용자가 많다.
- 사용자 수가 많다는 얘기는 그만큼 관련된 정보를 얻기도 쉽다는 얘기다. 커뮤니티가 활발하니 다양한 기능들이 알아서 이미 구현/공유 되어있다. 내가 원하는 기능 1부터 100까지 다 코드 직접 작성해서 쓰는 사람 없다. 비슷한 기능 구현된 코드 잘 가져다 쓰는게 이 바닥 능력인것 같다. 베끼기 쉬우려면, 그 언어 쓰는 사람이 많아야 한다.
- 장점3. 배우기 쉽다. (다른 언어에 비해)
- 그리고 프로그래밍이 처음이라면 입문언어로 다들 추천할 만큼 쉽다고 한다. 여기서 쉽다는 얘기는 다른 언어에 비해 쉽다는 얘기지 Python이 쉽다는 얘기는 아니라고 생각한다.
- 장점4. 무료다.
- 회사에서 ‘사용’하기에도 문제없는 무료 License다. 회사에서 뭔가 해보려는데 비용이 드는 소프트웨어 쓰는건 쉽지않다. Open-Source라는 것은 충분히 매력적이다. 덕분에 사용자도 많고 이건 장점2와 동일하다.
- 단점1. 그렇게 쉽지만은 않다.
- 초보자에게는 초기 개발환경 세팅 조금 어렵다. 배우기 쉽다고 하는데 실은 그렇게 쉽지만도 않다. 이거저거 보고 배워야할게 많긴한데 그래도 구글링하면 다 나온다. 어차피 초보자에게는 모든게 다 어렵다. 일단 배우려고 마음먹었을 때에는 크게 단점으로 와닿지는 않을 것 같다.
- 활용
- 공학용 계산, Machine Learning, 데이터 시각화, 자동화, Backend개발 등
3.2. Visual Basic for Application (VBA, aka Excel 매크로)
- 장점1. 쉬운 개발환경 Setting
- 개인 PC에 Excel 다들 설치 되 있을 것이다. (회사원이라면 특히) 그러면 따로 설치할 건 없다. 그냥 설정만 좀 해주면 바로 개발 가능하다. Window 유저 한정 편하다.
- 장점2. 은근한 활용성
- 생각보다 활용성 있다. 다른 프로그램 Control도 가능하다. 적당히 공부하면 회사에서 업무 자동화 관련 쓰기에 나쁘지 않다.
- 단점1. HOT하지가 않다.
- HOT하지가 않다. 인터페이스도 그닥 좋지 않다. 자연스레 사용자가 그렇게 많지는 않은 것 같다. 활용가능한 범위도 적다.
- 단점2. 사용자가 많지는 않다.
- 사용자가 상대적으로 적어서 그런지 인터넷에서 원하는 자료를 찾기 힘들다. 조금 공부해서는 복잡한 기능 구현은 쉽지 않아보인다. 보안관련 이슈도 있다고 하는데 이건 잘 모르겠다.
- 활용
- Excel 매크로, 프로그램 자동화
3.3. HTML/CSS/Javascript
- 장점1. 웹 개발의 모든것
- Front-end 웹개발 하려면 이거 알면 된다고 한다. 그냥 이거 좀 보는 순간 모든 웹사이트가 달리보인다. 뭐든지 새롭게 알아간다는건 나쁘지 않다. 요즘 웹개발자 수요 폭발이라던데 전직 가능할지도 모른다. 내 블로그 만들기도 가능은 하다. 가능은.
- 장점2. 사용자가 많다.
- 사용자가 많으면 일단 좋다. 편하게 구글링해서 코드 긁어다 쓸 수 있다.
- 단점1. 웹개발 관심 없으면 쓸모없다.
- 실은 웹개발에 관심있는 사람이 머 얼마나 있을까 모르겠다. 관심없으면 쓸모없다. Javascript는 좀 다를수 있을것 같다.
- 단점2. 웹개발 관심 있어도 더 많은 공부 필요하다.
- HTML/CSS/Javascript 각각 쉬운 언어긴 한데 3개 알았다고 해서 바로 할 수 있는건 많지 않다. 결과물의 퀄리티도 별로다. 그럴듯한 결과물을 만드려면 별의별 희안한 개발도구들 새로 익혀야한다.
이 블로그 자체도 Jekyll과 Git을 추가로 공부해야만 했다. 물론 HTML/CSS/Javascript를 모두 외우듯이 알아야 하는 건 아니다. 재미붙이면 나쁘진 않은데 이 바닥 트렌드가 하도 자주 바뀌어서 쉽지만은 않은 것 같다.
- 활용
- 웹개발 (Front-end)
4. Recommendation
그냥 Python 추천한다. 요즘은 회사에서도 Python정도는 강의를 제공해주는 경우가 많은 것 같다. 그것도 좋고 아니면 유튜브에도 많다. 이 블로그에는 Python 활용한 머신러닝, 공학용 계산 글이 많을 것 같다.
언어가 무료라서 그런가 입문 책마저도 무료가 많다. 기초는 점프투파이썬 추천한다. 한글이다.
Summary
프로그래밍 이쪽은 전공도 아니고 공부한지 오래되지도 않았지만 내 생활이나 업무에 적용해 볼만한 기능들도 꽤 있었다고 생각한다. Python이라는걸 접하고 제일 처음 했던 것은 대학원때 썼던 방정식 풀이로 공학용 계산이었지만 두번째는 게임 매크로만들어서 돌리는 것이였다. 그냥 생각나는거 아무거나 해볼 수 있다.
프로그래밍 언어 하나 그저 ‘다룰수 있다’는거 하나만으로도 충분히 큰 Merit가 되는 것 같다. (잘 할 필요도 없다.)
일단은 조금 다른 시각으로 세상을 볼 수 있다. 이게 뭐 대단한 것도 아닌게 인터넷 검색만 해 보면 된다. 당분간은 이 이상 취미로 좋은건 또 없을 것 같다.
시선을 조금만 돌려보면 세상에는 신기한거 배울거 참 많고 세상도 빠르게 변한다.