본인 기술수준이 어떤지 알 수 있는 방법이 있을까요?

안녕하세요.
저는 3년차 WPF(응용 프로그램)개발자 입니다.

요즘 들어서 저의 수준이 어떤지 궁금하다는 생각이 자주 드는데요.
대략적으로 수준을 알 수 있는 방법이 있을까요???

혹시 평가가 가능하다면 평가 부탁드립니다! 아니면 방법만이라도 알려주세요!



신입때는 winform이랑 코드 비하인드로 짜다가 1년차 부터 wpf mvvm으로 넘어갔습니다.
mvvm쓴다 하는데 각자마다 스타일이 있고 구성이 달라 알맞게 쓰는지 의문이 계속 들긴합니다 ㅎㅎ
(singleton, datacontext를 제외한 xaml.cs에 소스가 없음 viewmodel class에 event등 모두 존재)

View, ViewModel, Model로 기본틀을 구성하여 진행(Interface는 사용 x… 만들어보고 싶은데 기회가 없네요)

사수가 없고 혼자 일을 하기 때문에 Doc 및 오버플로우를 보며 스스로 해결 하는 편이에요.
(해결 안될시엔 협의하여 다른쪽으로 튼다든지 변형시킵니다.)

사용해본 상용 UI 컴포넌트는 infragistics, telerik 사용해봤습니다. 데브익스프레스는 안사줘서 ㅜㅜ…
주로 telerik사용 하고 ViewModel에 필요한 코드들은 처음엔 만들었으나,
지금은 상용 컴포넌트에서 지원해주는것(Delegate 등)을 대부분 사용합니다.
(제가 찾아서 만든 것 보다 안전하다고 생각하기 때문, 필요하거나 래핑이 필요한 부분은 만들어요)

디자인(xaml)경우에도 상용 컴포넌트위주로 사용 - 커스텀이 필요할경우 상용 컴퍼넌트 template을 뜯어서 재설계
(1부터 만드는건 이미 있기때문에 비효율적이다 생각합니다 물론 도움은 되지만 시간이 허락해주지않아요ㅠ)
Converter경우 제 입맛대로 만들어 사용합니다.
xaml 속성 넣는 DependencyProperty는 못만들어요. (키보드 눌러서 좌우스크롤 기능되는 간단한한거만)

웹 쪽 관련하여서는 건드리지 않아 지식이 없습니다.(단순 주소로 받아서 데이터 뿌리는 것만O, 웹 서비스 등 구축X)

DB는 소규모 프로젝트 CRUD만 사용했고 trigger등 대규모DB는 컨트롤해본 경험이 없습니다.

Excel Export/Import는 왠만한건 전부 가능한 수준이라 봅니다.
(하지만 여기에서 수준이 높은건 아니라 생각합니다. 나름 최적화 시킨다 해도 단순 구분하는 노가다 코드가 많기 때문에)

로직을 짤때 많이 간추리는걸 좋아해서 짧게 만들어요. linq, lambda등 (긴 코드는 함수로 따로 빼서 생성)
Text.Event += (s , e) => { ~~~ };
Itmes.~~~.ToList().All(x => Itmes.Remove(x));
if(Number is int number) { ~~~ }
var task = Task.Run(async ()=> { ~~~ });

Model같은경우도 생성자를 사용안하고
var aModel = new AModel{ Code=1, Name =“name”, };

이런식으로 사용합니다. 중괄호는 BSD스타일로 사용합니다

[+] 테스트 경우 단위 테스트 케이스를 만드는것이 아닌 실코드 디버깅으로 계속 돌려보며 확인합니다…
오류가 많거나 복잡한 경우 새로운 프로젝트 만들어 그 기능만 복붙하여 테스트

혼자 일하다보니 설계, 협의, 문서작업도 거진 혼자서하게 되는데 중간중간에 계속 바뀌고 문서 작성도 안늘고
문서랑 회의 때문에 작업도 미뤄지고 내가 이걸 왜 하고있는지 생각도 드네요 ㅋㅋㅋㅋ난 개발만 하고 싶은데,

생각나는대로 주저리 주저리 써봤는데 이렇게 보면 참 보잘것 없어보이기도…
상세한건 없지만 여러분들이 읽어보고 이런 수준은 어느 정도라고 보시나요~???

궁금한게 있다면 답해드립니다!

[추가 +] 다른 사람마다 기준이 다를것이지만 만약 내가 이 사람이랑 같이 일하게된다면? 3년차가 이 정도의 기술?들의 사용함에 있어 어떠한지 궁금합니다! (보시기에 기술이 부족하더라도 욕은 쪼금만 해주세요 ㅎㅎ. .)

3개의 좋아요

글쎄요… 상당히 자세히 글을 써주시긴 했지만 기술 수준을 평가하는 기준이 각기 사람마다 다를 것 같고 그게 맞다 보기도 어렵기 때문에 답변하기가 참 어려운 내용 같네요 ^^;

2개의 좋아요

사람마다 다 다르고 기술도 정형화 될 수가 없으니 판단이 어렵죠 ㅠㅠ…
그래서 객관적 평가가 아닌 주관적 평가를 말하는거 였는데 빠져있었네요!
여러사람들의 3년차에 대한 기술 수준은 어떤지도 궁금해서 그렇습니다! :grinning_face_with_smiling_eyes:

1개의 좋아요

분명한 업무 분야를 정해놓고 3년 이상 같은 회사에서 일하셨다면, 적어도 그 업무의 전반을 이해하고, 각각의 상황에 맞추어 어떻게 코드를 작성하는 것이 효율적인지 잘 알고 계신 것을 다른 분들도 기대하지 않을까 싶습니다. 일단 이 부분이 충분해야, 그 다음으로 적절한 프로그래밍 스킬, 스택을 정할 수 있을 것이라고 생각합니다.

예를 들어, 웹 프론트엔드 개발이 주요 미션인 회사에서 그런 일을 주로 한다면, 웹 프론트엔드 개발은 3년동안 일했다면 흔히 말하는 3년차 이상의 실력을 보일 수 있지만, 집중하지 않는 다른 분야인 백엔드, 혹은 임베디드나 머신러닝 같은 분야는 본인이 따로 독학하지 않는 이상 실력이 늘어날 수가 없겠죠.

특정한 기술을 다뤄봤다, 혹은 얼마나 잘 다룬다 같은것은 제가 보기에는 크게 중요한 토픽이 아닌 것 같습니다. 바꿔말하면 그런 부분들은 굳이 달달 외우지 않더라도 얼마든지 다른 레퍼런스를 이용하여 쉽게 목적을 달성할 수도 있으니까요. 수단에 관한 부분보다는, 어떤 분야에서 일을 하고 있는지 먼저 이정표를 확인하신 후, 그 상황에 맞는 스택이 무엇인지 학습 지도를 그려보면서 조언을 얻으시는 것이 더 좋아보인다고 생각합니다.

5개의 좋아요

와… 이미 잘 하고 계시네요.

실력있다, 평범하다, 별로다… 는 사실 매우 주관적인 평가라 다수가 동의하기 어려울 거라고 생각해요.
그래서 그냥 등급으로 보는 게 어떨까 하는 게 제 생각입니다.

제 기준에서 좀 자세한 얘기를 해드린다면요…

3년 차라는 건 만 2년을 넘겼다는 얘기죠? 제가 생각하는 등급은

(연차와 관계없이 해당 업무 분야에서) 주니어, 인터, 시니어 요정도 인데요.
굳이 요걸 연차로 연결해 보자면 주니어는 1~4년, 인터는 5~9년, 시니어는 10년 이상 정도이겠네요.
(하지만 10년차 주니어 개발자도 종종 보는지라 꼭 연차가 개발자의 등급으로 직결된다고 생각하지는 않습니다.)

실제 업무에서, 구현 → 구성 으로 관심사가 넘어가면 시니어에 가까워지고 있다고 보면 될 듯합니닷.

주니어 때에는 눈 앞에 닥친 구현을 해결하기 위해 이것저것 헤딩하는 단계이고
이제 이게 여유로워지면 조금 더 안정적이고 확장성 있는 구성을 위해 고민하는 시기가 오면서 점점 시니어로 가는 거죠.

요걸 굳이 특정 분야에 대해서
특히 C# 과 WPF + 프로그래밍 전반으로 좁혀보면…

C# 언어에 대한 이해도가 실력을 결정할 거구요. WPF는 기본 컨트롤과 MVVM에 대한 이해도가 실력을 결정할 거 같아요. 그리고 프로그래밍 전반은 협업과 관련 있을 거 같습니다.

C# 은 기본기 → 언어 고급 기능 순서로 판단할 수 있을 거 같은데,
이것들을 적재적소에 잘 사용하느냐, 얼마나 추상화된 기능을 활용하느냐 정도가 높을 수록 고급에 가까울 거 같구요.
WPF 는 기본 개념 → 컨트롤 활용도 → MVVM 적용 능력 순서로 능력치를 판단할 수 있지 않을까 해요.

그리고 프로그래밍 전반은… 음…
객체지향에 대한 이해를 바탕으로 협업하는 팀원들에게 욕 안 먹을 수준이 되는가… 가 중요할 거 같습니다.
그러려면 당연히 의식의 흐름 따라 코딩하면 안 되겠죠? (-ㅁ-)
항상, 의존성과 추상화에 대한 것을 기본으로 가지고 가면서 확장성과 테스트를 포함한 유지보수 측면을 고려한 코드 작성을 해야하겠죠.

지금은 자신의 레벨이 어느정도인지 확신이 없는 상태인 거 같은데요.
누가 막막 모라고 해도 기죽지 마세요. 개발자의 자신감은 실력에서 나옵니당. >ㅂ< 화이팅!

5개의 좋아요

이거 진짜 어렵죠.

프로그래밍이라는게 워낙 분야가 방대하고, 자유도가 높은 게임이다보니 정량적으로 기술 수준을 측정하기가 어려운거 같습니다…

측정 단위의 기준을 어디에 두느냐가 중요한데…

저는 개인적으로 특정 포지션을 수행하기 위해 사사용하는 것들에 대한 깊이보다

프로그래밍의 포괄적인 이론을 이해하냐를 기준으로 생각합니다 !

그리고 특정 뭔가를 정확히 이해하고 있는가도…

예를 들어 http가 어디에서도 유용한 통신이냐와 같은…
Mvvm을 구현했냐 마냐보다는 mvvm이 무얼 이루기 위함인지와 같은…

5개의 좋아요