jongfeel / BookReview

Reviews the IT or any books slowly and steady.
MIT License
4 stars 0 forks source link

미래에 소프트웨어 개발자를 꿈꾸는 학생들에게 #968

Closed jongfeel closed 2 hours ago

jongfeel commented 3 hours ago

미래에 소프트웨어 개발자를 꿈꾸는 학생들에게

재미있게 시작한 소프트웨어 개발도 지루하고 재미없는 일이 되는 것이 대부분의 소프트웨어 개발이다.

소프트웨어 개발자가 알아야 하는 몇 가지 이야기

소프트웨어 아키텍트가 알아야 할 97가지는 아키텍처에 대한 40여명의 소프트웨어 아키텍트들의 생각과 충고에 대한 글을 모아두었다.

소프트웨어 누가 이렇게 이렇게 개떡같이 만드는 거야? 는 보안시스템이 보안담당자에게 걸려온 전화 한 통에 의해 무력화되는 상황에 대해 보여준다.

위대한 게임의 탄생은 사용자를 행복하게 해줄 수 있는 게임은 불행한 개발자에게서 나오지 않는다는 얘기가 있다.

소프트웨어 개발 과정은 정해진 명세 -> 지시된 설계 -> 구현 -> 그 결과 테스트 -> 정해진 명세 -> ... 무한 반복 이다.

기업용 애플리케이션은 이런 단순 반복 공정으로 만들어진 산출물이 가장 효과적이기도 하다. 다양성과 창의성은 없고 구체적이고 확실한 결과물을 만들어야 하므로 그 도메인과 업무의 매력이 느껴지지 않는다면 소프트웨어 개발은 지루하고 재미없게 된다.

학생들이 착각하는 건 소프트웨어 개발이 정말 창의적인 것을 요구하는 것이 많다고 생각하는 것이다.

잉여 개발과 독립 개발을 꿈꾸는 사람들

개발을 즐기고 싶다면 직업적인 프로그래머가 아닌 독립 개발 혹은 잉여 개발을 취미로 하는 방법이 있다.

융합의 시대에는 타 도메인의 전문적인 지식을 가지고 소프트웨어 기술을 효과적으로 활용할 줄 아는 인재가 최고의 인재로 대우받는 시대가 됐다.

소프트웨어 개발만 하고 싶어요 학교 공부는 좀 적게 할 방법이 없나요?

소프트웨어 개발을 제대로 하려면 글을 잘 쓰거나 그림을 잘 보거나 이해하는 것처럼 인문적인 지식이 남들과 다를 정도로 탁월하고 상식 또한 시야가 매우 넓어야 한다.

뛰어난 소프트웨어 개발자들 대부분은 특정 분야에서는 마니아를 넘어섰고 독서 능력과 수학적인 능력, 어학적인 능력까지 탁월한 소프트웨어 개발자들이 더 멋지게 성장한다.

소프트웨어 기술은 지식과 정보를 자유롭게 다루는 기술이다. 그래서 지식과 정보 없이 아무리 뛰어난 소프트웨어 기술도 못 없는 망치일 뿐이다.

소프트웨어 개발자를 꿈꾸는 아이들의 부모님들에게

소프트웨어는 미래지향적인 직업이지만 개발자 절반 이상은 일반적으로 따분하고 지루한 기업용 소프트웨어를 개발하고 있다. 이런 일은 인력 중심의 서비스업이고 현재 그리고 미래는 인간의 삶과 질을 향상하기 위한 소프트웨어로 발전하고 있다.

제대로 된 소프트웨어 개발자가 되려면 무엇을 공부해야 하는가?

고급 개발자들이 동의하는 첫 번째는 소프트웨어 이론이 정립된 사람이다.

둘째는 오픈소스와 같은 개발 커뮤니티에서 공동으로 꿈을 꾸는 무언가를 만들어보는 것이다. 이는 적극적으로 무언가를 위해서 자신의 시간을 투자하고 잉여를 제대로 활용할 줄 아는 사람으로 변화하게 한다.

세 번째는 폭넓은 상식과 인문학적인 개념이다. 소프트웨어는 사람과 사람을 이해하지 못하면 서비스를 제대로 구현하지 못한다. 세상의 새로운 가치를 창출하거나 사람들이 즐거워할 그 무언가를 위해 자신의 잉여를 풀 줄 아는 사람이 최고의 인재로 대우받는 세상이다.

학생들은 세 번째 얘기를 꼭 명심해야 한다. 인문학적 소양이 없으면 성장할 수 없는 시대가 됐다.

개발자! 소프트웨어 개발자!

40을 넘어서 소프트웨어 개발 이외에 많은 것을 공부하고 알게 되었을 때 더 깊고 재미있는 세계를 알게 한 것이 소프트웨어 개발의 세계였다. 소프트웨어 개발에 눈을 뜬 젊은 친구들은 전문적인 특정 분야나 스킬에 집중하고 그 부분을 파고드는 경향이 있다. 즐겁게 일하기 위해 폭넓은 시야와 지식을 갖추는 것이 최선의 길이라는 걸 20년이라는 세월을 지내고 알게 됐다. 한 분야에 집중하는 개발자라도 몇 가지 경험을 해보면 좋다.

하나, 전문영역이 아닌 전체영역으로 소프트웨어 개발을 살펴볼 수 있는 틀이 갖춰진 정형화된 기업 말고 아직 그 틀이 갖춰지지 않은 기업에서 자신의 역량으로 그 틈을 메워보자.

둘, 신입 때 급여를 따라다니면 10년 20년 후에 많은 손해를 본다. 자신을 대우해주고 존중해주는 기업을 찾는게 우선이다.

셋, 소프트웨어 개발자는 게으르다. 그래서 자동화를 한다. 자동화는 사람의 능력을 확장시키는 자동화를 해야 한다. 발전가능성이 있는 자동화여야지 사람을 기계처럼 일하게 시키는 것이 자동화가 아니다.

넷, 행복을 찾아라. 소프트웨어를 통해 사람들이 행복을 얻을 수 잇게 하는 것이 소프트웨어 개발자로서 최고의 행복이다.


세상의 자본주의가 극단적으로 변하고 돈을 선택할 수 밖에 없는 삶을 살아야 한다고 해도 내가 만드는 소프트웨어가 억압의 수단이거나 불법의 수단이 되는 건 피해야 한다.

소프트웨어 개발자는 사람을 지향하는 소프트웨어를 만들어야 하고 내가 행복한 만큼 다른 사람도 행복할 수 있는 소프트웨어를 만들어야 진정한 소프트웨어 개발자가 되는 길이다.

인재를 구할 때 사용하는 말로 끝맺음을 하겠다.

(생략, 신현묵님의 블로그 어디엔가 있는 글이다)

jongfeel commented 3 hours ago

소프트웨어 아키텍트가 알아야 할 97가지

이 책도 프로그래머가 알아야 할 97가지 시리즈 중에 하나였다.

현재는 출판된지 13년이 지나서 품절 됐는데 신현묵님이 소개해줬으니 읽어보려 한다. 절판된 책 구매 이유는 아래 disscussions에 추가해 본다.

jongfeel commented 2 hours ago

소프트웨어, 누가 이렇게 개떡같이 만든거야 : 사용성을 제대로 이해하는 유쾌한 통찰 새창

이것도 2008년 출판이라 14년 지난 책인데 절판되지 않고 아직 판매중이다. 역시 인사이트 출판사는 기대를 저버리지 않는다.

그래서 중고로 2500원에 팔아서 구매했다.