중급 프로그래밍 상태에 도달 [닫기]


32

나는 VBA에서 위치 프로그래밍을 한 소프트웨어 엔지니어입니다 (심지어 시행 착오이기 때문에 '실제'경험을 감히하지는 않지만!), Perl w / CGI, C # 및 ASP.NET. 후자 2 명은 학부생으로 '실제 세계'에 입학했습니다. 저는 2 년제 대학에 다니고 있으며 제가 언급 한 언어에 대해 5 년의 경험을 가지고 있습니다. 그러나 이력서에 관해서는 C #의 경우 2 년, ASP.NET의 경우 1 년 미만 만 줄일 수 있습니다.

C #을 알고있는 것 같은 느낌이 들지만 여전히 '이 방법은 무엇입니까?'에 시간을 소비해야하는 반면, 상급 엔지니어는 "오, 방법 X는이를 보지 않고도이 방법을 수행합니다. 전에 방법. " 그래서 나는 거기에 걸프가 있다는 것을 경험적으로 알고 있지만, 그것을 어떻게 연결해야하는지 잘 모르겠습니다. Project Euler 에서 프로그래밍을 시작했고 디자인 패턴에 관한 책을 집어 들었지만 앞으로 나아가는 대신 매일 물을 흘리며 보내는 느낌이 듭니다.

그것은 내가 진보 한 것처럼 느끼지 않는다는 것을 말하는 것이 아닙니다. 그것은 단지 매일 올 때까지, 나는 여전히 산 정상이 멀리 떨어져있는 것을 본다는 것을 의미합니다.

제 질문은 이것입니다 : 어떻게이 고원을 극복 했습니까? 시간이 얼마나 걸렸습니까? 이 문제를 해결하기 위해 어떤 방법을 제안 할 수 있습니까?

C #, 2 판을 통해 Code Complete , The Mythical Man MonthCLR을 읽었습니다. 제 질문은 : 지금 무엇을해야합니까?


편집 : 방금 중간 레벨 프로그래머를위한 프로젝트 에서이 질문을 발견 했습니다 . 나는 그것이 토론에 추가된다고 생각합니다 (그러나 그것은 내 질문을 대체하지는 않습니다). 따라서 나는 "추가 정보"로 질문에 추가하고 있습니다.


2
최근에 프로젝트 오일러와 함께 연주 해 왔으며 제한된 범위의 기술 만 다루고 있습니다. 메모 또는 동적 프로그래밍을 통해 기능을 최적화하는 것이 가장 좋지만 GUI 또는 웹 응용 프로그램을 작성하는 데 도움이되지 않습니다. 어려운 문제는 어려운 코딩이 아니라 어려운 수학으로 설계되었습니다.

좋은 재미, 그 모든 것 : 나는 그것에 반대하는 것이 아니며, 기본 데이터 유형, 구조 및 아마도 나와 같은 솔루션을 얻는 것을 선호한다면 몇 가지 최적화 기술 이외의 언어를 배우도록 돕기 위해 설계되지 않았습니다. 가능한 경우 0.1 초

@ Gortok, 나는 당신의 기술을 향상시키기 위해 당신이 할 수있는 많은 구체적인 일들이 있지만, 그것은 당신이하는 프로그래밍의 종류에 달려 있다는 것에 동의합니다. 예를 들어 Windows 개발자는 임베디드 장치 프로그래머와는 다른 기술이 필요합니다. 나는 묻는 질문이 실제로 너무 넓어서 좋은 대답을 얻지 못한다고 생각합니다.
Nathan Fellman 2016 년

1
저는 2 살 때부터 프로그래밍을 해왔습니다. 나는 세계 최고의 프로그래머가되지 못했고 이제는 내 인생을 싫어합니다. 저의 목표가 세계 최고의 포르노 스타가 되길 바랍니다.

직관이 학문적 실습과 비즈니스 (실제) 실습 사이의 격차를 알려주기 때문에 발전하고 있다고 느끼지 않습니다. 그리고 직감이 맞습니다. 학업 연습은 모두 작은 독립적 인 문제와 연습에 관한 것입니다. 비즈니스에서 버그를 수정하거나 기능 / 웹 페이지 등을 거대하게 (보통) 추가하고 있습니다. 학업 연습은 재귀입니다. 비즈니스는 가독성과 유지 보수성입니다. 학업 연습은 수학 및 컴퓨터 과학 지식입니다. 비즈니스는 코딩만큼 사람 기술 및 요구 사항 분석입니다. 이것을 대답으로 넣었을 지 모르지만 Q는 닫힙니다.
브래드 토마스

답변:


41

축하합니다!

당신의 설명에서, 당신 중간 개발자입니다.

이 단계는 현재의 문제 이상으로 배우려는 의지에 따라 약 3-8 년 지속됩니다.

프로세스 속도를 높이고, 읽고, 서핑하고, 블로그를 작성하고, 사용자 그룹 회의에 참석하고, 멘토를 찾고, 독립적 인 조사를 수행하고, 부가 프로젝트를 코딩하고, 새로운 기술에 빠져보십시오. 이로 인해 1 년에서 2 년이 소요될 수 있습니다.

또는 프로그래밍 이외의 삶을 살 수도 있습니다. ;-)

진지하게, 현재와 성찰을 유지하지만, 때때로 # % $ @를 끄십시오.

부록 : 밖에 나가면 바지를 입는 것을 잊지 마십시오.


17
톨킨을 인용하는 것을 조심하십시오, 그것은 깨기 힘든 호빗입니다
Steven A. Lowe

1
Lowe 씨는 잘 연주했습니다.
kemiller2002

1
진지하게, 프로그래밍 밖에서 인생을 보내십시오. 하나 : 코드보다 더 많은 생명이 있습니다. 둘째 : 다른 분야에서 많은 것을 배울 수 있습니다.
kemiller2002

1
+1-잘 했어. 연습 (또는 좋은 유머 감각)을 대체하는 것은 없습니다.

15

산을 올라가는 가장 좋은 방법 중 하나는 원하기 때문에 스스로 무언가를 쓰는 것입니다. 최고의 프로그래머는 '여가 시간에 작성한 가장 흥미로운 프로그램이 무엇입니까?'라는 질문에 대한 훌륭한 답변을 얻습니다. 여가 시간에 코드를 작성하지 않으면 공예품을 더 좋아질만큼 좋아하지 않습니다.


8
나는이 이론을 싫어한다. 사람들은 정규직과 다른 책임이있다. 부가 프로젝트가없는 사람들은 프로그래밍을 충분히 좋아하지 않거나 나쁜 프로그래머라고 추정 할 책임이 없습니다. 허용되는 답변에서 알 수 있듯이 프로그래밍 외부에서 생활하십시오.

10
나는 최고의 프로그래머는 최고의 작가와 같다고 생각한다.
Norman Ramsey

2
그들은 스스로를 막을 수 없을 수도 있지만, 삶은 의지 할 수 있습니다.
섀넌 세브란스

@ShannonSeverance에 대해서는 많은 , 그것은 의지 에 대한뿐만 아니라 일부.
Pacerier

9

애벌레 단계를 거쳐야합니다.

지금은 Windows의 VB.NET에서 프로그램을 작성했지만 Linux x86에서 기본 언어로 어셈블리를 사용하여 애벌레 단계를 거쳤습니다.

한동안, 당신은 그것을 마스터 할 때까지 자신을 공예에 바쳐야합니다. 마스터 프로그래머의 본능이라고하는 것은 실제로 배운 행동입니다. 공유 문화입니다. 프로그래머는 서로, 기계처럼 생각해야합니다.

양은 양처럼 쉐퍼드가되고 양처럼 쉐퍼드는되지만 세상에서는 그리 길지 않습니다. [trees and] Ents를 사용하면 더 빠르고 더 가깝고 연령대를 함께 걸을 수 있습니다. -톨킨

알고 이해하십시오. 최고의 기술은 특정 언어에 국한된 기술이 아니라 거의 모든 언어에 적용될 수 있습니다. 개념을 알고, 문제와 언어로 개념을 찾고, 필요할 때 새로운 것을 발명 할 준비를하십시오.

이것이 위대함의 길입니다.


2
어떻게 든 치토가 포함됩니까? 내 머리 속의 그림은 치토와 관련이 있습니다.

2
lol "치즈하기 쉽지 않아!"
gnovice

애벌레 단계 또는 라 라벨 단계? ;)
Brad Thomas

9

저는 8 살 때부터 프로그래밍을 해왔습니다. 저는 크리스마스 이브에서 33 살이됩니다. 나는 아직도 멀리 떨어져있는 산을 본다. 아무리 멀리 오더라도 항상 배울 것이 더 많습니다.

자신의 벨트 아래 패러다임을 얻고 현재 코딩중인 언어가 이러한 패러다임을 어떻게 구현하는지 파악하십시오. 프로그래밍은 평생 배울 수있는 경험입니다. 아무리 능숙하더라도 항상 더 있습니다.

내가 일반적으로 배우지 않을 새로운 것들을 배우는 한 가지 방법은 여기에서 사람들이 질문하는 바이트 및 전문가 교환과 같은 다른 프로그래밍 포럼에서 시간을 보내는 것입니다. 질문에 대답 할 수 있다면, 계속 진행할 수 없다면, 직접 과제를 완수하는 방법을 찾아보십시오. OP는 노력과 지원에 감사 할뿐만 아니라 새로운 것을 배우게 될 것입니다.

나는 다른 사람들이 내가 매일 모르는 것들에 대한 답을 찾도록 도와줌으로써 더 많은 것을 배우고 있음을 알게되었습니다.


9

중급 프로그래밍 상태는 코드 원숭이의 "더 빠른 유형"사고 방식에서 벗어나 실제 시스템을 경력으로 구축하려는 영역으로 이동하고 있음을 의미합니다. 이것은 주요한 전문적인 변화이며 솔직히 기술적 인 기술에 관한 것이 아닙니다. 중급 (일명 "개발자") 수준에서 일하려면 상당히 고급 인 기술이 필요합니다.

생각할 수있는 증상은 다음과 같습니다.

  1. 온라인 편집 전쟁에 참여하십니까? 그렇다면 다른 사람의 관점을 이해하려는 것보다 안락 지대 내부의 세부 사항에 대해 논쟁하고 싶다는 것을 보여줄 수 있습니다.
  2. 언어를 정말로 다른 것으로 생각하십니까? C #과 Java는 모두 자체 플랫폼과 리소스를 테이블로 가져 오지만 효과적인 컴퓨팅 모델입니다. 일을하기 위해 돈을받을만큼 빨리 새로운 언어와 플랫폼을 배울 수 있습니까?
  3. 여전히 소프트웨어 작업을 입력이라고 생각하십니까? 직장에서 과제를 받았다면 왜 그렇습니까? 이 코드는 무엇에 사용됩니까? 어떤 시스템이 될까요? 이 정보는 제안 된 솔루션을 크게 바꿀 수 있습니다.
  4. 당신 은 당신의 삶의 모든 것을 알고있는 단계 를 떠난 적이 있습니까? 나머지 팀의 말을 듣거나 다음에 할 말을 생각하고 있습니까?
  5. 버그가있는 최신 솔루션을 만들기 위해 "밤새도록 뛰는 것"이 ​​더 이상 인상적이지 않다는 것을 알고 계셨습니까? 처음 8 시간이 지나면 나머지 시간이 버그 입력에 사용되었다는 것을 쉽게 상상할 수 있습니다.

내가 생각해 낼 수있는 가장 좋은 요약은 중급 프로그래머 (또는 "개발자")가 8 시간 동안 생산성이 높아져서 집에 가서 일을 할 수 없다는 것을 알게되었습니다.

배우자를 찾아서 재생산하면 보너스 포인트가 부여됩니다 ....


8

지금하고있는 일은 훌륭하지만, 진행 속도를 획기적으로 높이려면 두 가지 추가 작업을 수행 할 수 있습니다.

1) "가르치다"-이것을하는 간단한 방법은 블로그를 시작하고 정기적으로 (주간) 유용한 무언가를 제공하는 것입니다. 최근에 배웠거나 아직 모르는 것에 대해 목표로 삼으십시오 . 즉, 연구, 이해 및 재검토를 강요해야합니다.

BTW, 기존 개발 커뮤니티에서 무료 블로그를 얻을 수있는 SingingEels 계정 에 매우 쉽게 가입 할 수 있습니다 .

2) 많은 미니 프로그램을 작성하십시오-이것은 주당 약 1을 의미합니다. 위의 내용과 함께 사용하거나 재미있게 사용할 수 있습니다. 내가 어린 개발자로 한 일은 .NET 프레임 워크에서 네임 스페이스를 임의로 선택 (농담하지는 않음)했습니다. 그 전에는 본 적이없는 수업을 골라 그것을 사용하는 작은 프로그램을 만드십시오.


8

하려고 노력하다

더 많은 책 읽기 아마존에서 큰 책을 집어 들어 읽으십시오 . 예를 들어, Code Complete의 저자는 소프트웨어 엔지니어링에 대한 훌륭한 책인 Rapid Software Development를 작성하여 구입하여 읽었습니다.

다른 프로그래밍 언어 배우기 python / ruby와 같은 스크립팅 언어는 공부할 가치가 있습니다. 또는 아마도 함수형 프로그래밍 언어 :) 이것은 프로그래밍의 마음을 바꿀 수 있습니다. 이러한 종류의 언어에는 일부 GOF 패턴이 필요하지 않을 수도 있습니다.

커뮤니티 참여 사람들은 다른 사람들의 의견을 듣고 발표함으로써 그들의 생각을 교환 할 수 있습니다.


4

똑똑한 프로그래머를 찾아서 배우십시오. 그들을 모방하십시오. 그들이 당신과 다르게하는 것을 주목하십시오.

귀사는 코드 검토를 수행합니까? 그것이 배우는 가장 좋은 방법 중 하나입니다. 고급 프로그래머가 제안하는 내용과 코딩하는 동안하는 일에 놀랄 것입니다.


3

진행중인 다른 오픈 소스 프로젝트에 참여하여 최소한 귀하의 작업이 누군가에게 가치가 있고 실제 작업을 수행하는 다른 고급 개발자와 배우고 상호 작용할 수 있도록하는 방법은 무엇입니까?

최소한 배우고 자하는 프로젝트 나 수행하려는 프로젝트 유형에 제한을 두지 않아야합니다. 이미 사용중인 무료 도구이므로 실제로 더 잘 만드는 데 도움이된다는 사실에 자부심을 가질 수 있습니다.

이력서에도 잘 나타납니다. :)

그래도 여가 시간이 남아 있다면 블로그에 학습, 경험 및 그 밖의 내용을 기록해 두십시오. 누가 알든지, 당신은 소프트웨어 또는 코딩 공포에 대한 다음 joel이 될 수 있습니다 : p


-1

C # 개발자로서 뛰어나려면 다음 두 가지를 읽으십시오. 점을 유의 초점 이 책은에 더 언어 (C #을) 하지 프레임 워크 (.NET) ..

  1. 필수 C # : 링크는 최신 버전입니다. 나는 실제로 이전 것 (C # 4.0)을 읽었지만 새로운 것이 더 좋다고 가정합니다. 이 책에는 몇 가지 기본 사항이 있지만 책 표지를 참을성있게 읽으십시오.
  2. C # in Depth : 10-15 일 후에 릴리스 될 최신 버전에 대한 링크입니다. 나는 그 책을 훑어 보았지만 그것을 읽은 나의 동료들은 이것을 높이 평가하고있다.

이미 C #을 통해 CLR을 읽었습니다 . 그렇지 않으면 C # 개발자를위한 누군가가 세 번째 제안 일 것입니다.

또한 프레임 워크 디자인 가이드 라인레거시 코드를 효과적으로 사용 하는 더 나은 개발자가되어야합니다 .


왜 다운 보트를 설명해야합니까?
Asim Ghaffar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.