개드립

즐겨찾기
최근 방문 게시판

컴퓨터 비개발자 개붕이들을 위해 개발자 개붕이가 쓰는글

https://www.dogdrip.net/376791115

이런글이 종종 올라오는데, 개발이란 영역은 방대하기 때문에 비 개발자 개붕이들에게 글을 몇번 썼었다.

본 개붕이는 본래 읽판에 글을 몇번 썼는데 그때마다

https://www.dogdrip.net/47470715

이 공지에 의해서(자꾸 썰로 판정됨) 글이 날라가서 유저 개드립에 처음 글을 써본다.

솔직히 이 글이 개드립에 올라갈거란 자신이 없다.

 

H1.선요약

비 개발자 개붕이들이 하는 오해

Q1. 개발자는 수학을 잘 알아야 하나요?

A1. 이는 수학에 대한 오해로, 개임개발에 입사하거나, 최적화에 일하고자 하는 개붕이를 제외하고는

'수학'보다는 논리학을 잘 알아야 한다는 요구사항을 잘못 이해한 것에 가깝다.

 

Q2. 개발자는 평생 공부하나요.

A2. 반대로 묻건데, 입사할때 지식으로 평생 일할수 있는 고소득 지적 업무가 무엇이 있나요?

육체 노동을 제외한다면 평생 공부하는 것이 당연합니다.

의사, 변호사, 법무사, 회계사 등등 계속 공부해야하는 직업이 대부분입니다.

대체 무슨 고소득 직업이 공부하지 않고 버틸 수 있나요?

양심적으로 저는 의사들보다 훨씬 공부를 안하고 지내는거 같네요.

(즉, 반대로 저소득 프로그래머를 꿈꾼다면 굳이 공부하지 않아도 됩니다.)

 

Q3. 개발자는 돈을 잘 버나요?

A3. 수요공급 곡선을 따른다고 볼 수 있습니다.

채용 담당자의 능력이 모자라면, 자기 능력보다 더 높은 돈을 받을 수 있지만,

보통은 구하기 힘든 능려자가 많은 돈을 받고, 구하기 쉬운 능력자는 적은 돈을 받기 나렴입니다.

 

Q4. 제가 해도 될까요?

A4. 제 경험상 현업자들도 대부분 멍청하니까 해도 됩니다.

 

 

H2.개발자들을 위해 쓰는 글

나는 펌웨어 개발이라는 프로그래머....라고 부르기에도 되게 부끄러운 영역에 일하고 있기 때문에

반박하고 싶은 영역이 많을 거라고 생각함.

그러나, 이 글은 개발자가 아니라 비 개발자 혹은 개발자 입문을 위한 글이기에 감안해주길 바람.

 

 

 

 

 

 

M1.개발자란 대체 무엇인가?

개발자를 부르는 이름은 되게 많다.

개발자, 코더, 프로그래머, 아키텍쳐, 기타등등 여러 이름으로 불리지만,

나는 펌웨어 개발자인지라 오로지 프로그래머라고 불린다.

이름에 따라 역할이 규정되는 것은 아니고 내 기준으로 말하자면,

1. 시키는대로 하는 사람 : 코더

2. 1에 속하는 사람을 시키는 사람 : 프로그래머 혹은 아키텍쳐

라고 하고 싶다.

아무튼 프로그래머는,

3. 자연어(대부분의 사람이 이해할 수 있는 언어)로 규정되는 돈이 되는 컴퓨터 프로그램을 작성하는 사람

이라고 정의하겠다.

즉, 그 사람이 어떤 일을 하느냐보다 그 사람이 만드는 결과물이 "돈이 되느냐" 여부가 더 중요한게 아니냐?

가 펌웨어 개발자 입장에서의 관점이다.

 

M2. 개발자를 분류하자면

감히 내가 분류하자면

1. 전산수학 연구자 : 어떤 연산이 가장 호율적인가를 연구하는 사람

2. 프론트 엔드 : 사용자 눈에 보이는 것을 구현하는 사람

3. 백엔드 : 2번이 동작하도록 그러나 일 한 결과물이 사용자 눈에는 보이지 않는 사람

4. 펌웨어 : 작은 컴퓨터(논리회로)가 사용자의 의도에 맞게 동작하도록 하는 사람

라고 말하겠다.

먼저 말하자면, 나도 잘 모른다.

프론트엔드는 웹에서 동작하는 개념이다. 앱 에서는 적용되지 않는 개념이다.

백엔드 역시 웹에서 동작한다. 초창기 배민이 이벤트를 진행할 때 "미안하닭"을 띄우는 원인은 백엔드 최적화가 안되었기 때문이다.

12년에 SK가 서울 월드겁 야구 경기장에서 통신이 잘 안되었던 이유는, 월드컵 경기장 근처에는 삼성 기지국만 있었는데,

펌웨어 구현이 잘못되었기 때문임.

프론트에서 잘못 개발해서 사용자 서비스에서 문제가 있던건 뭐가 있을까....

유튜브의 싫어요 버튼 사라진다거나, 영상마다 얼마나 봤는지 바를 보여주지 않는게 프론트 문제일까..?

근데 이건 기획의 잘못이 아닌가..?

프론트를 모르니 어떤 문제가 프론트의 잘못으로 발생하는지 잘 모르겠다.

 

M3. 개발자간의 의견이 갈리는 이유

본인은 펌웨어 개발자기 때문에, 솔직히 별로 공부하지 않는다.

대부분 개발자의 의견이 갈리는 이유는, 결과물이 어느정도의 크기를 가지는지에 대해 생각의 차이점이 있기 때문이다.

 

컴퓨터에는 '진정한'의미의 무작위 숫자 추출이 없다.

 n개의 무작위 숫자 추출을 필요로 하는 프로그램이 있다고 하자.

이는 1~m까지의 숫자 중 n개의 숫자를 추출해야 한다.

이를 구현하는 방법은...크게 2가지의 방법이 있다.

1. 1~m까지 구현한 다음, n번 랜덤을 추출한 다음, i번째와 n번째 랜덤 숫자를 교체하는 방식

2. 1~m까지의 숫자를 추출하는 함수를 돌린 후, 이전에 구현되지 않은 경우 다시 랜덤을 뽑는 방식.

 

1번의 대충 짠 코드는 아래와 같다.

1....m까지의 배열을 만든다. (공간소요 m, 시간소요 m)

2. i번째로 랜덤으로 숫자를 뽑는다.

3. 결과물 숫자와 i번째의 결과물을 서로 바꾼다. ( 시간소요 3)

4. 2~3번과정을 n번 반복한다.

이는, 결정적을 m+3n번 걸린다.

 

2번의 대충 짠 코드는 아래와 같다.

1. 랜덤을 추출한다.

2. 0...i번째 배열에서 1번에서 추출한 코드가 있는지 확인한다.(공간소요 i, 시간소요 i) 있다면 이번 절차는 무효화한다.

3. 1~2번 과정을 n번 반복한다.

이는, n~m*n번까지 랜덤하게 발생한다. (최악은 무한시간인데 기대값이 얼마인지 지금 취해서 계산이 안된다)

어느 경우가 나은지는 경우마다 다르다.

10가지 가지수 중 5번 뽑는 것은 1번이 유리하지만,

(1번의 경우 10+5번 걸리나, 2번의 경우 1(최초 추출) + 1*1/0.99 + 1/0.98 + 1/0.97 + 1/0.96

100가지 가지수 중 5번 뽑는 것은 2번이 유리하다.

(1번의 경우 100+5번 걸리나, 2번의 경우 기대값이 6보다 작을걸로 기대하지만, 아무리 커도 100보단 작기 때문.)

 

이처럼 서비스가 어느정도 필요할지에 대한 생각에 차이에 의해 어떤 구현체가 답인지 갈라질 수 있다.

즉 뭐가 답인지가 정해져 있기 않기 때문에 개발자간의 의견이 갈린다.

spring이란 백엔드 프레임워크가 있는데, 이게 정부 표준이다.

근데 spring은 너무 방대한 프레임워크라 nodeJS를 좋아한다는 동기가 있다.

난 그쪽 분야에서 일하는게 아니라 뭐가 맞는 말인지 모르겠지만,

아무튼 복수 정답이라는 것은 이해할 수 있으리라 믿는다.

 

 

 

 

뭐 대충 아래와 같은 사항에 대해

https://www.dogdrip.net/371177794

1. 신호등을 추가한다

2. 각 차량간 정책을 정해서 지금처럼 신호등 없이 잘 처리하도록 한다.

라는 의견이 나올 수 있는데,

뭐가 답인지는 도로가 어떻게 생겼는지, 어떤 차가 주로 들어오는지, 어느방향으로 주로 가는지에 따라 달라진다.

심지어 공간소요에 방점을 찍느냐, 시간소요에 방점을 찍느냐에 따라서도 의견이 갈린다.

그렇다보니 개발자간의 의견이 통일되기는 몹시 어렵다.

 

M4. 수학은 개발자에게 얼마나 중요한가요?

"전산수학" 이라는 분야가 있다.

여기서 다루는 내용은 어떠한 연산을 어떤 순서로 계산하면 빠르게 계산할 수 있는가 이다.

이 내용은 되게 중요한게, 전산수학의 한계로 인해 스1 유닛이 스2의 유닛보다 길찾기를 존나 못한다.

네이버 길찾기가 지금처럼 길을 잘 찾는 것도 전산수학이 발달한 결과이고,

문명5에선 일꾼배치를 수동으로 해야 했지만, 문명6에서는 정책만 결정하면 일꾼배치가 수동보다 나은 것도,

최신 게임이 옛날게임보다 그래픽이 좋은 것도 하드웨어가 발달한 것 뿐만 아니라 전산수학이 발달한 덕분이다.

 

근데 실제 프로그램의 속도는 전산'수학'보다는 프로그램이 어떻게 설계되었는지가 중요하다.

내가 일하던 펌웨어 분야는 남이 아주 개판으로 짰어도, 어지간해서는 블럭 사이즈를 초과하지 않기 때문에 문제가 되지 않고

따라서 전산수학의 발전을 따라가지 않아도 서버에 문제가 발생하지는 않는다.

내가 지금 일하는 분야도 솔직히 전산수학 전혀 안 쓴다.

 

근데 '수학'이라고 이름은 붙어있지만, 결과물이 다르다.

이것저것 쓰고 싶은 내용이 많은데 술먹고 쓰는지라 뭘 써야 할지 모르겠다.

 

 

 

 

 

 

프로그래밍은 어쩌구 저쩌구 말이 많은데

프레임워크에 전혀 의존하지 않는 펌웨어 개발 입장에서

"프로그래밍"에 대한 이야기는

 

원자 명령을 모아서 분자명령을 만들고,

분자명령을 모아서 고분자명령을 만들고,

고분자명령을 모아서 현실세계의 문제를 해결하는 과정이라고 말하겠음.

 

즉 모든 문제는 '원자 명령'의 집합체로 해결됨.

c건 자바건 파이선이건.

(이 과정에서 스테이트건, 스레드건 하면서 골때리는 문제가 발생하지만, 그건 논외로 하고)

 

 

 

 

자.

여러분에게는 '원자명령'으로 a와 b 중에 뭐가 큰지를 판단하는 명령이 있다고 가정하자.

2개의 변수가 들어왔을때 둘 중에 큰 값을 출력하는 프로그램을 만들라고하면 어떻게 될까?

나는 많이 모자란 사람이라, 아래의 2가지 구현만 떠오른다.

 

1.

if(a>b)

ans = a;

else

ans = b;

 

2.

if (a>b)

temp = a;

else

temp = b;

ans = temp;

 

위 두가지 구현은 생긴건 많이 달라보이지만, 컴퓨터 입장에서는 썩 다를게.

문제는, 변수가 3개... 4개.. 혹은 그 이상일때 발생한다.

 

변수가 3개라고 하자

 

1.

if(a>b)

{

-if(a>c) ans = c;

-else ans = a;

}

else

{

-if(b>c) ans =b;

-else ans = c;

}

 

2.

if(a>b)

{

-temp = a;

}

else

{

-temp = b;

}

if(temp > c)

{

-do nothing;

}

else

{

-temp = c;

}

ans = temp;

별로 다르지 않다고?

변수가 4개라고 가정하자.

 

1.

if(a>b)

{

-if(a>c)

-{

--if(a>d) ans = a;

--else ans = d;

-}

-else // a<=c

-{

-if(c>d) ans = c;

-else ans = d;

}

else // a<=b

{

-if(b>c)

-{

--if(b>d) ans = b;

--else ans = d;

-}

-else // b<=c

-{

--if( c>=d) ans = c;

--else ans = d;

-}

}

 

2.

if(a>b)

{

-temp = a;

}

else

{

-temp = b;

}

if(temp > c)

{

-do nothing;

}

else

{

-temp = c;

}

if(temp>d)

{

-do nothing;

}

else

{

-temp = d;

}

ans = temp;

 

이처럼 같은 명령을 이용하더라도, 1과 2처럼 어떻게 동작할지는 달라진다.

중복된 코드를 빨간색으로 설정했는데, 어느쪽이 변수 4개를 5개로 확장했을 때 더 편할지를 생각해보자.

사람은 원체 다양하기 때문에 1번이 더 편하다는 사람이 존재할 수 있지만,

수학적으로는 2번이 더 편하다.

2번은 ans=temp 앞에다가 temp와 e를 비교하는 구문을 추가하면 끝이지만, 1번은 d와 비교하는 모든 구문에 e와 비교해야 한다.

1번은 temp 라는 변수를 사용하지 않았지만, "나"가 귀찮아진다.

2번은 "나"는 편하지만, temp라는 변수를 추가로 사용한다.

 

 

내가 다루는 펌웨어 기준으로 (c)

var1.var2->var3.var4[var5].var6.var7.var8.var9.var10

따위 코드는 굉장히 흔한 편이다.

위 코드는 어차피 복붙이라 입력하는것 자체는 문제가 없다.

var10이 typeA 라고 한다면,

typeA *shortCut = &var1.var2->var3.var4[var5].var6.var7.var8.var9.var10

라고하고 해당 변수를 바로 접근하는 대신 shortCut으로 접근하는 방법도 있다.

32비트 머신의 경우 shortCut은 32비트의 추가 메모리를 소모하지만, 변수를 1번에 접근할 수 있다.

shortCut을 적용하지 않은 경우 메모리를 접근하는데 var5가 변수인 경우 최악 더하기 1번 + read9번에서 최선의 경우 더하기 2번+read 1명령에 수행할 수 있게 된다.

심지어 read는 파이프라이닝을 할 수도 없다.

그렇다면 메모리의 용량 상황에 따라

shortCut을 선언하는 것이 효율적일 수도 있고, 선언하지 말아야 할 수도 있다.

 

 

 

 

 

struct {

int32 v1:4;

int32 v2:1;

....

}

같은 코드는 본래라면 권장하지 않는다.

각 변수에 들어갈 수 있는 값이 범위를 벗어날 수 있기 때문에.

그래서 struct 선언한 뒤에

#if V1_MAX_VAL > 16

ERROR!!!!!

#endif

같은 짓을 왕창 해둔다

V1_MAX_VAL이 늘어날 경우 struct의 bitfiled값을 바꾸도록 빌드에러를 발생시키는 건데

당연히 존나게 권장하지 않는 방법이다.

하지만 메모리를 아끼기 위해서 존나게 권장하지 않는 방법을 해야만할 때도 있다.

 

 

 

 

 

프로그래밍은 본래 프로그래머를 존나게 믿었지만, 현대 프로그래밍으로 갈 수록 안 믿는다.

이는 어떠한 수학적 발전이 아니라, 수 많은 경험 상 인간이 평균적으로 멍청하단 것을 알았기 때문에 발생한 경향이라고 본다.

그로 인해서 최신 프로그래밍은 "할 줄 아는" 것이 어렵지 "하기" 자체는 어렵지 않다고.. 생각한다.

 

뭐 c만 다루는 유사 개발자라서 틀린 말일 수도 있지만.

149개의 댓글

2022.01.15
[삭제 되었습니다]
@대머리와빗

저는 좆밥이라 모르겠지만

클라우드는 AWS에 위탁하고

인프라는 도커로 배포해서 암담하지 않을까 싶습니다.

네트워크 엔지니어는 뭔 일을 하는지 모르겠네오.

어쨌든. 우수한 프로그래머는 만능이라고 생각하지만, '왜'를 모르는 이것저것 다루는 프로그래머는 별 의미가 없지 않을까오?

0
2022.01.15
@월급받으며개드립하기
[삭제 되었습니다]
@대머리와빗

다 따로 답한거 라고 생각하는데 질문을 이해못했다고 말하다니 슬프네오.

AWS위탁/도커위탁/네트워크는 네트워크라고 말하는 분야가 너무 많아서 뭘 묻는지 모르겠음.

하여간 1과 2는 암담.

0
@대머리와빗

네떡? 인프라 공부랑 파이썬, 앤서블 해야됨

0
2022.01.15
@가로세로대각선
[삭제 되었습니다]
@대머리와빗

몸뚱이 편할려면 자동화 해야지?

0
@대머리와빗

네떡할거면 CCIE 목표로 공부해라. 이 자격증만 있어도 회사 서류랑 실무진 면접은 합격하고 들어간다

0
@대머리와빗

클라우드와 인프라 그리고 네트웍은 서로 전혀 달라. 클라우드는 이미 만들어진 서비스를 이용하는것이고 인프라는 흔히 말하는 서버, DB, 스토리지, 네트워크와 같은 것을 의미해

 

서비스만 운영한다면 쿠버나 도커만으로 충분 함.

 

네트워크는 인프라를 위한 인프라라는 말이 있을정도고 수요는 있는데 공급이 없음.

 

개념자체가 조금 추상적이고 여기저기 다 끼이니까 장애생기면 1순위 호출임

0
2022.01.15
@가로세로대각선
[삭제 되었습니다]
@대머리와빗

그럼 클라우드 계속하십쇼. 네떡에 사람이 없어야 내가 먹고살지

0

사람을 화나게하는 방법 두가지 중 첫번째는 말을 하다가 마는 것이고,

두번째는 드컵 경기장 근처에는 삼성 기지국만 있었는데,

1
@타카네다이스키

월드컵 경기장 근처에는 삼성 기지국만 있었는데,

펌웨어 구현이 잘못되었기 때문임.

 

cac라는 단계가 있는데 단말을 기지국에 연결할지말지를 결정하는 거임

근데 당시 삼성이 cac단계를 잘못 짜서인지 sk에서 요구한 로직이 잘못되었는지

너무 많은 단말이 접속을 하려고 하면 몇대의 단말만 연결하는게 아니라 다 같이 안되는 문제가 있었음

그래서 kt가 그시절 야구장에서도 lte 된다고 광고했던거고 ㅋㅋ

0
2022.01.15

프로그래머 재미없어요. ( 나는 코더 )

진짜 자살하고 싶다

1
2022.01.15

Q1을 물어보는 이유가

프로그래밍이 이과영역에 있다고 인식하기때문임.

그리고 루프나 재귀, 페이징, 날짜계산 같은거 때문에

수학적 능력이 필요하다고 하는데.

사실 필요한건 논리력임.

코딩의 기본은 코드를 얼마나 논리적으로 짤수있느냐고,

자기가 짠 코드 또는 파악한 코드를 얼마나 논리적으로 이해했냐가 중요함.

수학식은 그 이후에 짜거나, 아니면 정말 길게풀더라도 원하는 값만 도출하면됨.

0
@짱구아빠

일반적인 문과 출신들은 저런 사고 자체를 해본 경험이 없음.

설대에서도 좀 생각있고 뛰어난 문과애들 프로그래밍 기본만 빡세게 시키면 웬만한 애들만큼 따라옴.

1
2022.01.15
@중복은붐업부터박고시작

어떻게보면 이게 공교육의 실패임

문과에서 논리력에대한 개념공부를 해야지

뭐 맨날 수능식 문학독해랑 암기식 역사공부만 하니까

논리도없고, 역사의식도없고, 사탐으로 배우는건 이론범위에불과하고...에라이

이러니까 취직을 못하지

나 문과고졸 플밍러인데, 진짜 학원다녀도 절반은 나가리되더라

0
@짱구아빠

맞음. 공교육 교과 과정을 정말 잘 따라오는 친구들은 이런 고민 할 필요도 없음.

이과 기준으로 굉장히 많은 문과 친구들이 제대로 따라오지 못하고, 오히려 암기 위주의 공부를 한 친구들이 성적이 더 높게 나오는 경우가 심심치 않게 나오니...

그래서 나는 항상 사고력을 기반으로 한 수능 문제들이 변별력을 갖추면 좋겠다는 입장임.

0
2022.01.15
@중복은붐업부터박고시작

그말이 맞는거같음.

문과 수험문제들 보면 대부분 조선시조,근현대문학 작품에 대한 해석 해설에대한 암기부분이 많은데

이건 단순암기니까 고졸 아니더라도 외우기만하면 되는거고.

고졸이라는 사고력을 키우려면 특정 문장을 제시하고

논리적으로 맞지않는 이유나 알맞게 들어갈 정답을 선택하게해야지.

개드립 빤쓰런한 애들 글만 모아도 수능문제 줄줄 나오겠다

0
2022.01.15

수학을 잘해야하는건 일차적으로 주로 쓰이는 표면적인 문법을 이해해야 하고

 

둘째로 수학을 터득하면서 발생하는 논리적인 개념이 뇌에 쌓이기 때문이지 말 그대로 어떤 순서도를 그릴때

 

누구는 단순히 버튼 하나 키는 것에 5개의 순서도를 그려넣으면 어떤 애는 100가지를 넣어서 세밀하게 조정이 가능한거임

 

당연히 100가지의 순서도를 그려 넣는애는 5가지로 압축이 가능하지만 5가지가 100가지의 영역에 들어서기까지

 

많은 논리영역에서의 실험과 시행착오와 논리를 세우는 것의 습관화가 밥먹는것처럼 되어있어야 함

 

많은 사람들이 경찰제복 하면 흰색 또는 파란색 떠올리는것처럼 자동적으로 연계가 되서 불필요한 연산에 에너지를 덜 쓴다고

 

영어로 된 글 읽을려면 알파벳을알고 그 다음에 알파벳간 조합의 발음을 알고 그 발음으로 단어를 알고

 

단어의 어원까지 알아서 접미사 접두사를 통해 처음 보는 단어의 뜻을 유추하고 그런 식으로 기반을 다져가는거라 보면 됨

 

해서 처음부터 수학을 잘할 필요는 없는데 그 끝은 결국 논리적인 학문인 수학이나 다른 논리학 관련 학문이라

 

그것들이 한계에 다다르면 연봉이든 직급이든 한계가 온다고 들었다

0
@렙용사

그래서 이름난 대학의 석사, 박사 출신중 프로그래밍 할 줄 아는 사람들을 돈 몇천씩 더주고 뽑는 이유가 이거다.

최신 기술이라고 알려진 것들을 가져다 쓰는건 대부분 사람들이 할 수 있지만, 그걸 자신의 포지션에 적용해서 최적화 시키고 발전 시키는건 연구자&개발자의 몫이기 때문

0
2022.01.15
@중복은붐업부터박고시작

따라하는건 누구나 다하니까 하지만 미지의 영역을 완전히 개척하는 창작의 영역에선

 

그쪽으로 계속 생각한 녀석들을 못 이기지

0
@렙용사

우리나라에서 '수학' 이라고 하면 미적분이니 수능수학이니 하는 하는 이야기가 나오는데

프로그래밍에서 다루는 '수학'은 '수'를 다루는 학문 보다는

'환'이나 '집합'을 다루는 학문이라 (이또한 수학이다만) 괴리감이 심하긴 해

리스코프 치환 원칙이 뭔지 모르는 인간들도 되게 많고

나는 펌웨어다보니 c로 개발하는데, c니까 객체지향에서 다루는 개념을 무시해도 된다고 생각하는 인간들도 많고 그래.

0
@월급받으며개드립하기

일반인들에게 있어서 수학에 대한 고정관념이 그저 고등학교 수준에 머물러 있는게 한 몫 하는거 같다.

우리나라의 문과 출신 대부분은 수학이 어렵다고 느끼고, 그에 대한 반감이 많은거 같음.

수학은 논리를 기반으로 쌓아 올려진 학문인데도 불구하고 다 쌩까고 공식만 외워서 푸는 이유 때문일까?

0
@중복은붐업부터박고시작

내가 감히 말하자면, 고교 수학은 오히려 프로그래밍에 너무 과분한 레벨이 아닌가 싶어.

극한이니 수열이니 하는 내용보다 중학과정에서 다루던 순서도 레벨에서 그치는게 프로그래밍이 아닌가 싶어.

각종 스테이트머신을 어떻게 핸들링하느냐 대해서 선천적인 센스가 중요하지만 네 말 대로 '답'이 있다느 허상에 갇혀서

현실에 존재하는 문제를 해결하지 못하는게 아닐까 싶어.

0
2022.01.15
@월급받으며개드립하기

난 문과라 잘은 몰라 근데 한국 수학보면 이상한데 집착하는거 같아보임

 

반드시 답이 정해져 있는데 조건을 조금만 틀어보면 이상해보이는 답도 보이고 그럴때 생기는 궁금증은 일단 제쳐두고

 

교과과정 쫒아가야되는 수업방식이 난 별로였음 해서 수학 점수가 엉망일지도

0
@렙용사

한국 수학 고교과정 자체에는 문제가 없다고 생각합니다.

한국 수학 고교과정은 다루는 내용의 문제가 아니라 그걸 평가하는 과정의 문제가 아닐까 싶네오.

일단 고교과정에서는 이견이 존재할 수 없습니다.

(다른 풀이로 다른 답이 나오면 문제가 잘못되었거나, 풀이과정에서 전제조건을 충족하지 못하거나, 문제를 잘못냈거나 하겠지요.)

문제 풀이에 대해서 좀 더 비효율적인 과정이 존재할 수는 있지만 본문에 예를 든 것처럼

n과 m에 대해 '최적'이 달라지는 풀이과정이 존재하지 않거든요. (다시 말하지만, 고교수학에서 복수정답은 잘못 설계된 문제입니다.)

너무 많은 내용을 다루기 때문에 '궁금증을 제쳐두고 진도를 쫓아가야 하는' 대부분의 학생에 대해서 무관심한 교육방법의 문제는 동의하지만

가르치지 않아도 되는 것을 가르쳐야 한다거나, 가르쳐야 하는 것을 누락한다거나 하는 교육과정 자체의 문제는 없지 않은가 싶습니다.

0
2022.01.15
@월급받으며개드립하기

수학 자체를 모르니 단원선정의 최소기준이나 생략같은건 모르겠습니다

 

하지만 분명히 수학을 이해만 하는 애들을 끌고가고 나머지는 들러리로 새우는 교수법은 분명히 문제가 있다는데는 저도 동의합니다.

0
2022.01.15
@렙용사

추가적으로 5개의 가짓수로 압축되는게 시간도 덜걸리고 무조건적으로 좋은거 아님? 할 수 있는데

 

그 개발자한테 요구하는 기업의 환경, 시류

 

주 이용층의 연령대 또는 성별, 종교유무, 이용층의 경제관 가치관등 요구하는 방법가지가 다 다름

 

솔직히 이건 붙이기 나름이다 해서 요새 데이터마이닝이 뜨는거고

 

많고 많은 정보의 바다에서 유의미한 정보만 집어내는건 오랜 교육도 필요하지만 재능도 있어야 함

 

그렇기에 각 국가는 일찍이 방첩기관을 통해서 정보분석을 위한 고급인력을 양성해 온거고

 

무튼 일반인이 일반적으로 5개의 순서도가 필요하다면 하반신 불수의 장애인은 몇개의 순서를 더 추가해야하고

 

5개의 가짓수에 필요없는 몇가지를 빼고 공통적인 사항이 무엇이기에 필수적으로 넣고

 

또 시각장애인, 청각장애인, 나이에 따른 불을킨다는 목표에 대한 유도등등 생각하라면

 

필요한 가짓수를 많이 알고 있으면 알고 있을수록 좋음 그런걸 생각하는게 곧 논리의 시작이고

0
2022.01.15

정보추

 

0
2022.01.15

Q. 프로그래밍에서 수학 잘해야 하나요?

제어쪽이라면 답은 예.

Matrix, 미분, 적분, 누적, LPF, HPF 사용하려면 최소한 미적분은 알아야함

0
@노농

제어쪽 하는 친구들은 대학 내내 수학을 도구로 쓰는 친구들일테니 잘 알지 않을까 싶음. 그것도 잘 모르는 상태로 졸업하면 깜깜한건 자기들이 더 피부로 와 닿겠지

0
2022.01.15
@중복은붐업부터박고시작

단순 On/Off 정도로만 하는 제품이라면 뭐 솔직히 수학 잘 몰라도 되는데 모터제어나 추종알고리즘 같은거 들어가기 시작하면 대가리깨지기 시작함.

0
@노농

어느 제어를 말하는지 모르겠지만... 필터는 대부분 라이브러리로 다 캡슐화되어있기에 굳이 알아야 하나 의문입니다.

제어쪽이면 오히려 스테이트머신이라 기존 구현체에 대한공부가 수학에 대한 공부보다 먼저가 아닐까 싶네오.

뭐 제어를 어떻게 구현했는지에 따라 다른 이야기겠지오.

FFT를 어떻게 구현하는지 몰라도, 맷랩에서 fft(x)로 바로 해결하는 것 처럼 말입니다.

인버티드 팬듈럼도 학부과정에서 다루는 내용이지, 드론 펌웨어 단에서는 그게 다 은닉되어있으니까오.

0
@월급받으며개드립하기

FFT는 단순히 DFT를 빠르게 계산하는 알고리즘에 불과한거고.. 시그널을 주파수 영역으로 왜 변환 시키는지, 그로 부터 얻을수 있는 이점은 무엇인지, 내가 적용하려는 분야에는 어떻게 응용 할 수 있는지를 아는게 더 중요한게 아닐까 하는 생각이 드네

0
2022.01.15
@월급받으며개드립하기

펌웨어 32kb 짜리 MCU에 math 라이브러리 무턱대고 넣어서 빌드하면 용량이 충분한가요?

 

라이브러리로 캡슐화 되어있다고 무턱대고 라이브러리 끌어다 쓰면 결국은 Flash 메모리 부족으로 MCU 사양 올리던가 다 뜯어 고쳐야합니다.

 

한 2~4MB 짜리 MCU 사용하면 막 써도 되겠는데 이것도 제어 로직이 무거우면???

 

결국은 알아야 합니다.

알아야 디버깅도 하구요.

 

라이브러리 잘되어 있는데 알 필요가 뭐야~~ 하고 빌드하고 릴리즈 하는 경우는 십중팔구 버그터지고 원인 못찾아서 대가리 깨집니다.

 

대충 곱셈하고 연산하는거야 용량 널널하면 라이브러리 갖다 쓰면 되는데

입출력에 대한 설계하고 적용하려는 부분이라면 꼭 알아야합니다.

 

수학 할 줄 알아야해요.

1
@노농

글쎄요. 32kb MCU면 ......

opcode를 몇개 올릴 수 있을까요?

8bit 머신이라고 가정하면

8+8 (+8) 형태겠네요.

8+8과 8+8+8이 1:1로 있다고 가정할 때,

1.6k 개의 opcode를 넣을 수 있겠군요.

이 정도 메모리로 fft를 구현할 수 있을까요?

안해봐서 모르겠지만 fft는 무리고 dft도 제대로 구현할 수 있을지 몹시 의문입니다.

다익스트라를 c로 구현해도 200kb를 먹으니까오. 32bit에서 200k면 8bit에선 50k일까요?

long jump 문제 때문에 더 들거 같네오.

256 opcode 내에서 점프하는 일보다는 더 멀리 점프하는 일이 많을거 같으니까오.

아무튼 수학적 사고로는 32kb mcu에 푸리에 변환이 필요한 비지니스를 요구한 설계측에 문제가 있다고 봐야하지 않을까요?

32kb에 꾸역꾸역 dft를 구현해서 넣는다면, 향후 사업자 요구사항을 어떻게 구현할 생각인건지...

 

많은 사람들이 어디까지 디버그 해야 할지에 대해서 되게 헷갈려 하는데

기본적으로 라이브러리는 안전하다고 가정합니다.

(그렇기 때문에 하트블리드 같은 일이 발생하긴 했지만 몹시 이례적인 일이므로 예외사항입니다.)

라이브러리가 잘 되어 있는데 알게 뭐야~~ 하다가 라이브러리에서 진짜 문제가 발생하는 경우보다

"난 잘했는데 라이브러리가 잘못했음."하고 디버그 하는 상황이 더 낭비가 심하다고 봐야죠.

자기가 라이브러리를 잘 못 쓴거지 설계된 대로 사용한다면 라이브러리에 문제가 발생할거라고 가정하는건 시간낭비라고 봐야죠.

 

얼마전에 GTA5에서 로딩타임을 단축하고, 소울워커에서 로딩타임을 16%로 단축한 것도

zip파일 로더를 못 믿은 개발자가 문제를 일으킨 것 처럼 말입니다.

0
2022.01.15

수학 잘해야한다고 생각함

컴퓨터 관련학과에서 이산수학이라고 배우는데

이 이산수학도 결국에는 수학에 포함됨

그리고 이 이산수학에는 논리학, 알고리즘, 등등…

컴퓨터관련으로 쓰이는 부분이 많음

물론 저 부분을 몰라도 코드는 짜겠지만

0
2022.01.15

이렇게 구현된 프로그램을 내가 테스트한다 시부랄...

0
2022.01.15

지우지마 나중에 읽어보게

0

Q#. C++과 임베디드와 그래픽렌더링과(셰이더) PLC와 자바 앱개발을 전부 하는데 심도있지는 못한 개발자는 밥빌어먹고 살 수 있나요?

0
2022.01.15

또또또 개발자들 지들끼리만 아는거 들고와서는

컴하하하하

 

0
@단톡경보기

Q 개발자는 왤케 설치나요?

A 얼굴을 마주한채로는 이렇게 길게 말할 기회가 없기 때문입니다.

0
2022.01.15

금요일 밤에 회사에서 힘든일 있었니?ㅋㅋ

1
2022.01.15

ㅇㄷ

0
2022.01.15

수학은 필요하면 공부하면 된다. 없어도 코딩할 수 있다. 백엔드 쪽으로 갈수록 혹은 더 근본적인 최저 계층?쪽 코딩으로 갈수록 대수학 지식이 많이 필요하다. 이거는 직급이 바뀐다고 바뀌는게 아니니까 본인이 필요하면 공부해서 구현하면 된다고 생각한다. 나는 전산수학 R&D 부서에 가까운 부서에 있지만 어플은 이쁜게 장땡이라 생각하는 사람이다.

1
2022.01.15

와... 존나 뭔지는 모르겠는데 존나 치열하게 사는거 같다... 난 존나 야간교대 공장노예 인생인데....

0
@아침밥

지금 개발자들은 그냥 운이 좋은게 아닌가 싶습니다.

내 생각에는 개발자 수요에 거품이 껴 있는 것 같은데,

그 거품이 꺼졌을때 살아남는 사람이 얼마나 될 지 궁금하네오.

0
2022.01.15
@월급받으며개드립하기
[삭제 되었습니다]
@홍홍야

밑에 애가 말했다시피

필요한건 고급 개발자인데 수요의 거품 때문에 저급 개발자들도 일단 데려와서 와꾸만 갖추는 경우가 많기 때문임

젤 마지막에 적었다시피 프로그래밍이란 작업은 점점 사람을 안믿게 발전하기에,

어느순간 메타버스나 언텍트 관련 개쩌는 프레임워크가 나오면

기존의 고급개발자 1 + 저급개발자 5 따위로 구성된 팀이 고급개발자 1 정도로도 비슷한 구현이 가능해지기 때문임

0
무분별한 사용은 차단될 수 있습니다.
제목 글쓴이 추천 수 날짜
남자분들 진짜 이러시나요? 62 고드십 37 6 분 전
🔪 고양이 등에 칼 꽂는 허스키 10 힝잉잉 34 11 분 전
알바 놔두고 사장끼리 싸운 썰 17 온푸 27 13 분 전
정리) 현재 개드립 상황 요약.jpg 47 드럼을잘치자 69 18 분 전
ㅆㄷ)금요일저녁 오마카세.manhwa 35 짱구조아 53 21 분 전
롯데 vs NC 실시간 티빙중계 24 Kixx 35 21 분 전
개붕이네 아파트 주차 근황 43 Gerber 54 21 분 전
결혼했는데 다른 여자가 좋아 고민인 직장인 36 mjonetool 28 22 분 전
하지만 넌 그러지 않았어 Manwha 25 삼립호빵 35 22 분 전
성심당 근황 33 모르가나vs아나까나 42 23 분 전
속보) 일본 신칸센 사고로 1억 2천만명 사망...jpg 75 뭉탱이 72 33 분 전
'영광의 시대'의 흔적으로 재난을 막는 클리셰 24 잡학교수박학식 43 33 분 전
ㅇㅎ,ㅆㄷ) 젖보똥 마법소녀 애니 마지막화 22 수육을쏘면탕수육 51 50 분 전
커뮤 화법으로 대화하면 안되는 이유.jpg 25 쥬지쥬스 51 50 분 전
투팍 사망소식 듣고 울었다는 최자 44 착한생각올바른생각 77 58 분 전
어제자 닭장 워딩으로 펀딩 내려간 인디게임 53 책한권만읽은무서... 49 59 분 전
🍆 ) 운세뽑기하는 manhwa 28 듀오덤싫어요이지... 34 1 시간 전
택시에서 ㅇㄱㄸ벤 하는 방법 49 책한권만읽은무서... 80 1 시간 전
이마트 24 어플 드디어 전격개편.jpg 40 돈찐 75 1 시간 전
스트리머 쵸단 65 책한권만읽은무서... 98 1 시간 전