본문 바로가기
삶을 윤택하게 하는 것들

프로그래머가 되려면, 그리고 혼자 코딩 배우기

by 반짝이는강 2018. 2. 7.
반응형
긴긴 인생, 앞으로 30년은 더 일해야 될꺼 같은 그런 생각이 들었다. 그러자면, 그냥 하던 일만 해서는 안되고, 남들은 안하는 혹은 못하는 다른 특이사항이 있어야 할 것 같았다. 내 나이대 혹은 그 보다 나이가 많은 사람은, 프로그래머가 아닌 이상 대부분은 코딩을 할줄 모른다. 요즘 자라나는 아이들은 어렸을때부터 코딩을 배우고 있고, 미국에서는 교과과정의 일부가 되어간다는 말에, 나도 대충 감이라도 있어야겠구나 하는 생각이 들었다. 더이상 학위를 할 생각은 없고, 혼자 독학으로 조금이나마 맛을 보고 싶어다. 하여 이런 저런 정보들을 조금 찾아보았고, 혹시나 비슷한 생각을 하는 분이 있을까 하여 블로그에도 남겨본다. 

이미지의 출처: https://simpleprogrammer.com/learning-programming-teaching-yourself/



프로그래머가 되려면? WikiHow에서는 이 질문에 대한 답으로 다음의 과정을 제시하고 있다. 
1. Logic/ Discrete mathematics/ programming language 중에 하나를 선택하여 입문 (혹은 소개) 과정을 들어본다. 

2. Tables, views/queries and procedures 등의 데이타베이스 개념을 배운다. 
- MS Access , DB V, Fox Pro, Paradox, MySQL (이건 무료이고 일반적으로 쓰인다고 함) 등의 패키지를 사용할 수 있음.

3. 어떤 타입의 프로그래머가 될지 정한다. 대략적인 분류는 다음과 같다.
  • Web programmer
  • Desktop application programmer
  • Distributed applications programmer
  • Library, platform, framework, core programmer
  • System programmer
  •  Programming scientist 

4. 3에서 정한 분야와 관련이 있는 프로그래밍 언어 및 기술을 배운다. 


나는 웹프로그래밍에 관심이 있어서, 웹프로그래머가 되는 과정을 좀 더 살펴보았다. 

  1. 웹프로그래밍에서는 다음의 웹 테크놀로지가 사용기때문에 다음의 것들을 배워야 한다. 
      • HTTP

      • FTP

      • POP3

      • SMTP

      • TCP

      • IP protocols

      • HTML

      • XML

      • Coldfusion

      • ASP

      • JSP

      • PHP

      • ASP.NET


  1. 다양한 웹사이트들이 어떻게 생겼는지 구경하고 견문을 넓힌다. 구경을 제대로 하기 위해선 마우스 오른쪽 키 --> view source 클릭 (혹은 F12). 웹사이트의 타입/콘텐츠 등을 보라는 말이다. 가령 다음의 타입이 있을 수 있겠다. 그런데, 이걸 보고 배우려면 위의 1번 과정을 대충이라도 해야 보는 눈이 생긴다. 
      • 기관의 홈피 (회사, 비영리 단체/ 기관, 정부기관 등)
      • Web indexing engines (검색 엔진, meta search sites, specialized search engines, directories)
      • Data mining sites
      • Personal sites
      • 정보 혹은 백화사전 사이트 (가량 Wiki, data sheets, blogs and journals, news, yellow pages, etc.)
      • 소셜미디어 
      • Collaborative sites  

  1. 최소 하나 이상의 Brainstorming 기술/ 방법과 그걸 적용하는데 필요한 소프트웨어를 배운다. 이게 뭔지는 아직 잘 모르겠다.
  2. 웹사이트 구조 만들기(structuring)와 친해져야 한다. 웹사이트 구조만들기란 web diagrams, site maps, navigation structures를 만든는 과정을 말한다.
  3. 그래픽 디자인 코스를 듣는다. 최소 1개 이상의 그래픽 편집 소프트웨어 패키지를 배우는게 좋다. 
  4. 인터넷 인프라의 기본을 배운다. 즉, base web services protocol (HTTP, FTP, SMTP, POP3, IMAP4), web server software, web browsing software, email server and client software에 대해 배운다.
  5. HTML 과 CSS 언어를 배운다.
  6. XML 및 관련 기술 (XSL과 XPath)을 배운다.
  7. HTML이 익숙하고 편해질때까지 정적인 웹사이트를 만들어 본다. 즉, 온라인으로 퍼블리슁 하지 말고 오프라인으로 만들어 보라는 말이다. 
  8. Client-side scripting language (Java script)를 배운다. 
  9. 10에서 배운 client-side scripting language에 익히고 능숙하게 사용할 수 있도록 한다. 
  10. 1가지 이상의 server-side 프로그램 언어를 배운다.
  11. 위에서 배운 server-side 프로그래밍 언어 실력을 확인해 볼겸 시험 프로젝트를 만든다.
  12. 자기만의 홈페이지를 만들어서 온라인에 퍼블리슁 하여 테스팅을 시작한다. 

위의 과정들을 주욱 읽어보고 요약하기는 했지만, 코딩이나 프로그래밍에 대한 지식이 전무한 상태라 뭐가뭔지 여전히 감이 잘 안온다. 그래서 coding을 혼자 배울 수 있는 웹사이트들을 좀 찾아보았다. 

도서관에서 Coding for dummies라는 책을 빌려서 봤는데, 그 책에서 추천한 웹사이트다. 직접 들어가 봤었는데, HTML이 경우 초보자가 알아듣기 쉽게 설명해 두었다. 연습삼아 해볼 수 있는 기능이 함께 있어서, 혼자 독학하는 사람에게 적합하다. 단점이라면, 아마 영어로 되어있다는 것일텐데, 코딩은 원래 영어로 해야하는 점을 감안한다면, 꼭 단점만은 아닌거 같기도 하다. 

HTML, CSS, JavaScript, Server Side language (SQL, PHP, ASP, Node.js Raspberry Pi), Web building, XML이 자세히 설명되어있다. 처음에 Codeacademy 웹사이트에서 맛을 보고 w3school 웹사이트를 알게되었는데, 이건 거의 신세계였다. 한눈에 보기 쉬운 목차와 구성, 그리고 연급해보기 기능들이 적절하게 있고, 필요한 경우 되돌아가기 혹은 찾아보기도 매우 쉽게 되어있다. 강력추천!!  
  • CS50 
코딩 배우기에 대해 구글 검색을 하니 하버드대에서 녹화된 CS50가 나왔다. 실제 학생들을 대상으로 한 한 학기 분량의 강의인데, Youtube에서 모두 볼 수 있다. 유튜브에서는 2016년 그리고 2017년 판이 올라와 있다. Youtube 링크는 여기: https://www.youtube.com/channel/UCcabW7890RKJzL968QWEykA 
코스 전체에 대한 설명 및 apple 기기로 듣고 싶거나, certi를 받고 싶거나, 트위터를 팔로하고 싶다면 여기로: https://courses.edx.org/courses/course-v1:HarvardX+CS50+X/course/ 참고로  USD 90 내고 코스를 완료하면 수료증을 배부해 준다고 한다. 
린다닷컴은 교세라처럼 다양한 지식 혹은 기술들을 온라인으로 배울 수 있는 유료 포털인데, 영어권에서는 나름 유명한 것 같다. 시드니 오피스에서 한 IT 부서 매니저로 있는 사람이 내가 혼자 코딩을 배울 계획이라고 했더니 추천해준 웹사이트이다. 또 다른 책에서도 Lynda.com을 매우 유용한 self-learning website로 추천한 것을 본적이 있다. 린다닷컴에서는 소프트웨어뿐 아니라 마케팅, 회계 (accounting), 리더쉽 등의 비지니스 스킬 등등 다양한 분야의 교육을 제공한다. 30일 무료 체험판도 제공하고 있으니, 관심있는 분들은 가보시라. 
인프런 - 들어보신 분도 있지 않을까 싶다. 인프런은 한국어로 무료/유료 온라인 강좌들을 제공한다. 프로그래밍, 디자인, CG, IT 비지니스에 대해 꽤 많은 강좌들을 유/무료로 제공하는 것 같으니 관심있는 분들은 인프런을 방문해 보시도록! 


적고보니 위의 웹사이트는 마지막 인프런을 제외하면 다 영어로 된 웹사이트들이다. 영어라는데 거부감을 느낄 수도 있지만, 조금 익숙해지면, 영어는 매우 쉽고, 또한 기술적인 용어들은 반복적이기도 하므로, 한 번 도전해 보시길 바란다. 프로그래머가 되려면 혹은 코딩을 하려면 어차피 영어로 해야하니깐, 말이다. 화이팅! 


반응형

댓글