영감을 (inspire) 주고픈 개발 블로그

20180421 김 포프님의 "hello coding 개념부터 새로배우는 프로그래밍" 저자 세미나 후기 본문

후기

20180421 김 포프님의 "hello coding 개념부터 새로배우는 프로그래밍" 저자 세미나 후기

inspire12 2018. 4. 22. 15:39

소감
강연의 내용을 내가 느낀대로 간단히 요약하자면 
"개발하는 일반인 / 전문가 - 코드 몽키 / 전문가 - 엔지니어" 같은 시작점에 있는 친구들이 어느 수준까지 갈 사람인지는 태도가 중요하다" 그리고 강연은 그 태도에 대한 내용이 주를 이룹니다.

* 내용은 목차에 정리했습니다.

회사에서 돈 받고 일을 하면서 내가 얼마나 나혼자 읽는 코드를 짜왔는지 느꼈다. 금요일에 사수님이 코딩하는 걸 보면서 느낀 점이 오늘 강의를 들으며 더 와닿았다. 사수님이 코드를 짜면서 가장 먼저 한건 함수들로 나누고 
/** @description @return */으로 코드를 설명하는 일이었다. 포프님이 라면 끓이는 법을(알고리즘) 코딩으로 표현하면서 한 부분과 QA 시간 마지막 질문과 맞닿아 코딩 습관을 되돌아보는 계기가 되었다. 
QA 마지막 질문은 한 신입 개발자 분이 "되는 코드를 만들고 코드를 리펙토링 할 것인가 아니면 함수(로직)을 만들고 코드를 만들 것인가" 라는 내용이었다. 질문하신 분은 자기가 성격이 급해서 일단 되는 코드를 만든 후 그걸 고치는 스타일이라고 했다. 이에 대해 사수분이 너무 뭐라한다 어떻게 생각하냐 라는 물음이었고 질문하신 분은 자기 스타일도 맞다고 생각하신 것 같다. 그러나 포프님은 자신도 태클을 거실거라고 하셨다. 막 짠 코드가 돌아간다고 해서 거기에대해 실수가 없을 것 같냐 그리고 앞으로 회사일 하면서 중간에 다른 일에 투입되는 경우도 많은데 그 때 새로 투입되는 사람은 그걸 보고 어떤 생각을 할 거냐는 말이 비수로 날아들었다. 디자인 패턴이나 이런 허울이 아니라 진짜 로직을 먼저 짜고 그 안에 이슈들을 녹여내야 모듈도 분리되어 관리하기도 쉽고 이해하기도 쉽다. 최근 회사에서 사수분께 배우면서 내가 얼마나 코드를 나만 알아보게 짰는가, 
그리고 그 속에서 스스로에게 거짓말을 하고 있구나 라고 생각을 했다. 학교에서 알고리즘을 공부하고 대회에 사용하는 알고리즘은 많이 알지만 같이 코딩하려면 나만 아는 코드로는 아무것도 못하는 사람이란 걸 느꼈다. 고급 프로그래머일수록 코드가 깔끔하다. 현실적으로 난 아직 코드 몽키 수준도 못 된다. 내가 짠 코드는 너저분한데 사수분이 짠 코드는 더할나위 없이 간단하고 쉽다. 실력 좋은 선임 분을 만난 건 행운아인 것 같다. 코딩 많이 하자

목차
* 프로그래밍을 해야하는 이유 
* 바람직한 프로그래밍 입문 방식
* 입문 후 나뉘는 프로그래머의 세 방향
* 다른 직업은로서의 생활코딩

1. 프로그래밍을 해야하는 이유

넷플릭스 영화 알고리즘 - 실생활에 알고리즘이 통하는 법을 알려줌!!! (유클리드 호제법을 타일에 적용) 필요성을 느껴야 재밌다. 알고리즘은 컴퓨터 안에만 있는 게 아니라 실생활에 있는 것, 근데 왜 다들 컴퓨터에서 말할까? 사람은 주먹구구식으로 처리가 가능하지만, 컴퓨터는 그렇지 않아서
컴퓨터가 이해할 수 있도록 쉽게 (컴퓨터는 단순한 작업을 무지 빠르게 할 수 있는 장치)
알고리즘 자체는 누구나 따라할 수 있다. 단순한 단계를 따라하면 인간의 최소 삶이 질은 점점 나아질 것이다. 너무 무서워하지 않았으면 좋겠다.

생활 속의 프로그래밍 - 내 인생의 도움되는 것들을 해보자 포토샵에서 스크립트를 돌릴 수 있어. 손이 아닌 컴퓨터로 할 수 있다면 잘 나갈 수 
가까운 미래의 프로그래밍 모든 사람이 프로그래밍을 배우는 세상! 전문 프로그래머가 만든 틀 외의 생활코딩이 가능, 일회용 사용할 코딩

숫자가 하는 거짓말(거짓된 취업률, 조작된 효과) 지금 교육이 망가지는 이유 (후술)

2.올바른 입문법! 
핵심: 컴퓨터가 이해할 수 있는 명령 내리기! / 한번에 너무 많은 명령어를 주면 몰라

언어는 거들뿐, 파이썬이 입문에 좋은 언어인가? 아니다 (스크립트 언어, indentation에서 나오는 강제된 문제들) 입문용은 C# 이 좋아 - IDE, SCRATCH? : 유아용 개발이야... 생각할 능력이 생기면 코딩을해

생활 속의 알고리즘 - ex) 요리 (라면 끓이는 걸 알고리즘으로 바꿔보자)

재미를 느낄려면 내가 만들고 싶은 걸 삽질해보면서 만들었을 때 쾌감

공부하는 3부류
프로그래밍을 할 줄 아는 사람은 셋으로 나뉠 것 
* 전문 프로그래머 - 엔지니어 급
* 전문 프로그래머 - 코드 몽키급 
* 프로그래밍 할 줄 아는 직장인 
* 생활에 코딩을 접목 - 일회성 코딩, 프로그래머를 업으로 삼지 않음 다른 일을 하면서 필요에 따라 기존의 프로그램을 실행
* 코딩 몽키급 프로그래머 - 스타벅스의 바리스타 같은 존재 엔지니어급 프로그래머가 정해준 알고리즘을 프로그래밍 언어로 작성 머신러닝이 대체할 거라고 하는 프로그래머 지군
야근 등 처우 문제 이야기 누구나 시작은 여기
* 더 배울 것들 
* 설계서를 주면 조립 해줄 수 있어야 한다. 
* 생활코더가 배운 것들 전부
* 코딩 스타일, 남이 읽기 좋은 코드 만들기 
* 탈출하는 노력,

프로그래머는 여러가지 (창업, 일) 등등 자유 전문 프로그래머 -엔진니어 급 뜬 그룸 잡는 요구를 받더라도 제품을 설계 가능 자기 삶의 주인이 될 수 있는 위치 생활습관자체에서 최적화된 알고리즘이 보임 : 지금 할 수 있는 가장 좋은 일, 생활을 단순화 하자 한국에서도 매우 처우가 좋은 프로그래머 직군
* 더 배울 것들 
* 부상을 당하지 앟을 실력 쌓기 
* 코드 몽키가 배운 것 전부 
* 컴퓨터와 일심동체 (하드웨어 이해) 
* 순수 CPU 외에 운영체제, 메모리 진행 방식

현 프로그래밍 교육의 문제
- 프로그래머 진실을 너무 늦게 깨달아 
- 모두를 위한 교육 프로그래밍 교육의 하향 평준화 (최근 교수의 금전적 보수가 적어져서 현업에 많이 있음)
- 교수진 품질의 저하
- 다수결이 최고다 
- 눈가리고 아웅하기 밥그릇 지키기 
- 수업에서 하드웨어 관련 과목 많이 들을 것 // 학원 출신들이 특히 보완 필요
* 운영체제
* C,C++
* 컴퓨터 구조 
* 알고리즘

대학! 실패할 창업을 시도할 기회 
* 나만의 제품을 만들면서 얻는 재미, 책임감, 생각보다 할게 엄청 많아 
* -> 스스로 일을 찾아서 해

좋은 직장이란? 
* 외주보다는 자체 제품을 만드는 회사 
* 야근을 강요하지 않는 회사 
* 내가 내 시간을 벌 수 있는 회사

사이드 프로젝트 
* 회사에서 배우는 것은 한계가 있음 
*새로운 것을 해볼 기회가 적음 
*1만 시간 법칙의 문제
* 사이드 프로젝트를 할 때는 새로운 기술들을 시도 친절하지 않은 많은 기술을 접하며 컴퓨터가 생각하는 방식에 익숙해짐

포프가 생각하는 더 나은 교육기관 
* 거짓말 안 하는 학원, 멍 때리며 따라한 뒤 ' 아~ 난 이제 이거 알아' 라는 잘못된 자기만족을 지양 (찔렸다. ) 
* 현재 열심히 개발 중인 학원 엔지니어를 키우는 에리트 교육이 목표 (학점 80~90% 이상) 잘했다고 말하는 건 위험 교수자한테는 편해, 그런데 학생들은 진짜 잘하는 지 알아 온라인 강의 단점 & 해결 : 
* 멍때리고 보고 먼가 얻은 척 - 해결 ex) 문제 Udacity 
* 조교랑 질문을 받고 하는 자리를 만듦 
* 실습, 과제 자동 채점 (코딩 스타일, 카피 체크)

Q&A (QA만 1시간을 했습니다. 이 중 개인적으로 인상 깊은 것만 정리했습니다.)
Q: 신입프로그래머 싹수, 자랄 환경 선의의 경쟁심! 
시간 대비 할 수 있는 능력 기르기, 몇년차에 이정도? / 장기적으로 봐야해, 쉽게 보이는 길은 도움이 안될 수도 있다

Q: 프로그래밍이 막힐 때? 
- 질문을 할 사람이 없을 때 가장 힘들어, 커뮤니티 활용, 생활에서 문제가 되는 프로세스를 찾아 개선해는 연습도 좋아

Q: 최근 트랜드 최근 백엔드 프로그래머가 프론트엔드로 넘어가면서 돈은 많이 받는 거지 
과거 모바일 개발자를 보면 알아, 결국 평준화 될거야, 최근 모바일 쪽은 외국 외주를 많이 주는데 프론트엔드 개발자를 준비한다는 건 그들과 경쟁해야할 거임, 결국 컴공 쪽 지식을 많이 갖추자

이미지: 사람 1명
이미지: 사람 1명, 실내


반응형