따끈따끈하게 stackoverflow에서 매년 진행하는 조사가 업데이트되었고, 간단하게 짚어넘어 가보려 합니다.

 

원문은

https://survey.stackoverflow.co/2023/#overview 를 참조하길 바랍니다.

 

 

[어떻게 공부합니까?] 작년에 비해 온라인으로 코드를 공부하는 사람이 70 ~ 80% 정도 늘었다. 18세 미만 응답자들은 주로 온라인 매체를 통해서 학습했고, 25~34세 응답자들은 온라인 코스나 기관을 통해 학습하는 비율은 52%, 그러나 여전히 학교에서 공부하는 사람도 55%정도 달했음

 

[가장 인기있는 툴은?] 가장 많이 사용하고 있는 툴은 Docker였음. 코드를 공부하는 사람들은 대부분 Docker보다는 npm과 pip를 이용하고 있었음. (Javascript와 Python이 학생들에게 가장 인기 있는 언어이기 때문에)

 

[그래프 몇 가지]

1. 인기있는 툴

 

 

 

2. 인기 언어 (응답자 카테고리 확인!)

 

 
 

 

 

 

 

 

3. 인기 DB

 

 

 
 

(SQLite가 국밥이었다)

 

4. 인기 클라우드

 

 

 
 

(클라우드는 AWS 미만은 거의 쟁쟁하다)

 

5. 인기 프레임워크

 

 
 

프론트 프레임워크를 제외한 프레임워크 순위들인데 작년(아래 사진)에 비해서 Spring, React가 국밥이 된 것 같다.

그리고 RabbitMQ가 급부상한 것을 볼 수 있다. 그외 인공지능 관련 툴들도 점유가 많이 늘어났음.

 

 

 

6. 인기 IDE

 

 

 

 

 

작년에 비해 Jupyter Notebook이 매우 늘어났음. 압도적 1등의 vscode...

 

 

 

7. 협업 관리 (비동기)

 

 

Jira 라는 프로그램을 많이 쓰는 것 같다.

 

8. 협업 툴 (동기- 화상회의 류)

 

 

Slack, Microsoft Teams, Zoom 을 많이 쓰는 것 같다.

 

 

Overview를 봤을 때 딱히 유용해보이는 정보는 없어서 정리는 여기까지만 하도록 하겠습니다.

 

감사합니다.

 

 

프로젝트 기간이 연장되었음에도 호기롭게 당초 1차 연장되었던 수요일에 제출을 하였다.

 

이른 아침에 이상복 교수님께서 호출하셨다. 시간을 더 줬는데 더 퀄리티를 올리지 않았냐 혼쭐이 날줄 알았지만 오히려 궁금한 부분에 대해서 상담도 해주시고 간단한 간식도 챙겨주셨다.

 

다만, 미션도 챙겨주셨다. 남은 프로젝트 기간동안 같은 학우들을 도와주라고 하셨는데, 사실 입싹 닫고 대충 시간 채우다가 일찍 퇴근해도 된다. 하지만, 나는 흔치 않은 기회라고 생각했고, 주어진 상황에 더 과몰입 하는 수를 둬보자고 생각했다.

 

내가 만약 이 일을 계속한다면 언젠간 PM이 되지 않을까? PM으로서 역할은 프로젝트를 시간 안에 완성시키게 하는 것. 소속 프로그래머들의 실력이 성장되도록 하는 것, 그러면서 사측에서는 한번에 많은 프로젝트와 많은 프로그래머들을 할당할 것이다.

 

모두의 니즈를 적절히 소화하려면 미리 연습을 해볼 좋은 기회라고 생각했고, 오늘 그 연습의 첫단추를 꿰어보았다.

 

목표는 내일 정오까지 키오스크를 만드는 것이고 각자 진행도가 달랐다. 막히는 부분을 뚫어주면 이후부분은 알아서 해쳐나가는 사람도 있고, 극심한 스트레스로 평소에 하던 일들도 잘 안되는 사람도 있었다.

 

대부분의 사람들이 불안이 높았고, 연일 발생하는 에러와 기능추가에 어디서부터 손을 대야겠는지 모를 구조와 스파게티 코드 속에서 헬프를 요청하는 학우들...

(그렇다고 나도 잘쓰는건 아니다.. 서로가 서로에게 스파게티.. )

 

모두 스스로 견뎌야하는 상황이다. 그렇지만 PM은 그 와중에 결과물을 만들어낼 수 있게 경영을 해야한다.

 

우선 나는 직접적으로 요청하는 사람은 바로 간다. (이 경우 보통 자기가 뭐가 문제인지 알아서 해결이 금방 된다. 자기 고집이 센 경우엔 오래걸린다. 그럼 다른 사람들 케어할 시간이 줄어든다. sjf로 가장 늦게 헬프 프로세스를 할당받을 확률이 커진다)

 

그리고 막혀서 스트레스가 큰 사람들은 주기적으로 방문을 한다. 어떤 기능이 구현 중인지 확인하고 너무 산으로 가고 있지 않는지 확인해준다. 막히는 부분이 없어도 간다. 물어볼 사람이 계속 어슬렁거리면, 이들에게 심리적 안정감이라도 줄 수 있다고 생각했다. (모든 답을 줄 수 있는건 아니지만..)

 

돌아다니면서 느낀점은 적당히 헬프 칠 줄 아는 것도 능력인 것 같다. 삽질 거하게 해놓고 시간 날리고 프로젝트 실패보다 부끄럽거나 잔소리 좀 먹는것 감수하고 목표를 달성시킬 줄 아는 개인의 능력도 요구되는 것 같다. 다만 삽질이 나쁜게 아니다. 그로 인해 배우는게 있기 때문에 평상시에는 많이 해보는게 좋다. 적절히 자기가 스스로 터득하여 얻는 기회와 성취감을 적절히 트레이드오프 할 줄 아는 것이 능력이고 평상시 이런 트레이드오프의 강제성이 발생하지 않게 실력을 갈고 닦는 것도 필요할 것이다.

 

또, 자주 중간 체크를 하면 평소보다 더 많이 코드를 치게 되는 것 같다. 아무래도 어떤 일을 하는지 확인하고 생각을 들어보고 어떻게 할건지 물어보면서 생각이 정리가 되서 그럴 수 있을 것 같다. 참고로 중간 체크라 함은 어떤 기능을 구현중인지 물어보는 것이다.

 

거의 정답까지 다 와놓고 못하는 사람도 있고 어디서부터 손대야할지 막막한 사람들도 있다. 공통적으로 짜증이 많이 나 있는 상태이고 괜히 나한테 화풀이 할 수도 있는데 그걸 참고 대부분 묵묵히 잘 성공해보려고 으쌰으쌰해서 같이 파이팅해서 늦게까지 헬프를 다닐 수 있었던 것 같다.

 

다들 무사히 잘 프로젝트 마치고 좋은 경험이 되어 또 좋은 곳으로 갈 수 있으면 좋겠습니다.

 

감사합니다.

 

 

좋은 개발자는 뚝딱뚝딱 원하는 프로그램을 만드는 사람이지 않을까?

그러면 머리도 좋고 경험도 풍부하고 공부도 많이 하면 되겠지?

그럼, 전쟁용 무인 살인 드론 프로그램을 뚝딱뚝딱 만들 줄 알면 좋은 개발자일까?

개인 정보를 탈취하여 금전 이득을 취하는 악성 앱을 잘 만들줄 알면 좋은 개발자일까?

팀원의 의견을 묵살하더라도 fancy한 프로그램을 만들어서 부자가 되면 좋은 개발자일까?

성과가 안나오더라도 묵묵히 프로그래밍을 하는 사람을 좋은 개발자라고 할 수 있을까?

...

머리가 복잡해진다. 나도 멋지고 좋은 개발자가 되보고 싶은데, 그게 무엇인지 알 수 없다면 과연 달성할 수 있는 목표인가?

불가능하다. 그럼 그대로 놔둘 것인가? Nope

모호한 의미 분명하게 구체화한다 가능한 목표라 생각한다.

그러기 위해선 자료 조사와 내 나름의 의미 부여가 필요하다.

...

'좋다'는 무엇인가?

<표준국어대사전>에서만 7가지의 의미를 가지고 있다. 모든 내용을 갖고와도 안보기 때문에  내가 취하고 싶은 만 골랐다.

대상의 성질이나 내용 따위가 보통 이상의 수준이어서 만족할 만하다.
어떤 일이나 대상이 마음에 들 만큼 흡족하다.
어떤 물질이 몸이나 건강에 긍정적인 효과를 미치는 성질이 있다.
어떤 것이 다른 것보다 질이나 수준 따위가 더 높거나 가치가 있다.

맘에 드는 해석을 고르다보니 4개의 meaning이 나왔다. 각각의 의미를 다른 단어로 대체 또는 해석 해보자면?

{'품질이 좋은', '만족하는', '주변에 좋은 영향을 끼치는', '가치 있는'}

이런 긍정적인 뜻을 가진 의미로 내포하고 있었다.

...

그럼 개발자는 무엇인가?

開發者 in naver 옥편

미개지(未開地) 개척(開拓)하여 발전(發展)시키는 사람

산업(産業)을 일으켜 자원(資源)으로 인간(人間) 사회(社會)를 돕는 사람

아이들을 교육(敎育)시키는 데 문답식을 써서 자발적(自發的)으로 이해(理解)시키고, 아이들의 창의(創意)를 북돋아서 자조심을 불러일으키는 사람

영어로는 Developer라고 한다.

영문위키발 developer의 어원

부정(des-)을 뜻하는 ```de-``` 와 감싸다(wrap)의 의미 ```velop```, 그걸 하는 사람의 의미로 '''-er''' 가 조합되어 만들어진 단어로, 감싸고 있는 무언갈 깨는 사람이다. 17세기부터 사용되었으며, 알을 깨고 동물이 나와 성장하는 모습을 의미한다고 한다.

 

OPEN API 에서는 '개발자' 현세에 다양한 용도로 혼용되어 쓰이고 있어 문맥을 통해 파악해야한다고 한다. , 소프트웨어, 부동산 등의 업종들도 모두 개발자라고 하고 있으며, 이들의 공통적인 특징은 모두 초기 단계에서부터 이를 변형하여 기능적이고 가치있게 완성시키는 일을 한다 것이다.

이정도 뜻풀이를 보다보니, '개발자는 없던 무언가에서 새로 창조하여 만들고 완성시키는 사람이구나!' 라고 내 나름의 정의를 내릴 수 있었다.

...

그럼 통합 + 과대해석 해보자면,

좋은 개발자란 무엇인가?

"오류도 잘 안나고 성능도 빠른 소프트웨어 프로그램을 만들면서, 그의 정도는 스스로 흡족할만한 정도이다. 그러면서 주변과 사회에 좋은 영향을 끼치면서, 높은 부가가치를 창출해내는 세상에도 없던 무언갈 만들고 이를 완성시키기 위해 노력하는 사람"

개인적인 생각으로 점철된 뻘글이지만, 이로써 제 나름 정리가 되었습니다. 갈 길이 머네요...... ^^7

감사합니다~

+ Recent posts