나는 컴퓨터 과학 학위를 가지고 졸업하고 있지만 프로그램하는 법을 모른다는 느낌이 들지 않습니다.


1050

나는 컴퓨터 과학 학위를 가지고 졸업하고 있지만 Stack Overflow와 같은 웹 사이트와 Google과 같은 검색 엔진을 볼 수 있으며 그와 같은 것을 쓰기 시작한 곳조차 모릅니다. 한 여름 동안 나는 iPhone 개발자로 일할 기회가 있었지만, 다른 사람들이 작성한 내용을 거의 이해하지 못하고 다른 사람들이 작성한 라이브러리를 함께 붙인 것 같은 느낌이 들었다.

알고리즘을 연구하여 지식을 향상 시키려고 노력하고 있지만 길고 고통스러운 과정입니다. 나는 알고리즘이 어렵다는 것을 알았고 책에서 자료를 마스터하기 전에 10 년이 지났을 것으로 예상되는 속도로 배우고 있습니다. 현재 상황에서 한 달 동안 일을 찾고 있었지만 내 기술 (C, Python, Objective-C)은 상대적으로 얕고 C #, Java 및 웹 개발이 훨씬 높은 현지 시장에서는 바람직하지 않습니다. 수요. C와 Python의 기회는 존재하지 않지만 3 년이 넘는 경험을 요구하는 경향이 있습니다. 저의 GPA 는 괜찮지 만 (3.0) IBM과 같은 대기업에 지원하거나 대학원에 진학하기에 충분히 높지 않습니다.

기본적으로 저는 컴퓨터 과학 학위로 졸업하고 있지만 프로그래밍 방법을 배우지 않은 것 같습니다. 나는 회사에 합류하고 풀 타임으로 프로그래밍하면 내 기술을 개발하고 나보다 더 경험이 많은 사람들로부터 배울 수있는 기회가 될 것이라고 생각했지만, 일자리를 찾기 위해 애 쓰고 정말 좌절하기 시작했습니다.

나는 그물을 더 넓게 던져 내가 자란 도시를 넘어서 보려고하지만 비슷한 상황에있는 다른 사람들은 무엇을하려고 했는가? 나는 열심히 일했지만 내 자신을 나가서 내 자신의 응용 프로그램을 작성할 확신이 없습니다. (즉, iPhone 앱 시장에서 인디 개발자가 되십시오.) 아무것도 나오지 않으면 더 인기있는 기술을 업그레이드하고 배우거나 IT와 약간 관련이있는 것을 시도해야하지만 그 느낌에 모든 노력을 기울여야합니다. 코핑처럼.

답변:


533

프로그램을 배우는 가장 좋은 방법은 프로그램을 작성하는 것입니다.

두 가지 제안 :

  • 게임을 개발하다
  • 웹 사이트를 개발하다

알고리즘은 유용하지만 이해해야하지만 실제로 소프트웨어 디자인에 대한 두 번째 바이올린을 연주합니다. TDD / 디자인 패턴 / 아키텍처 / 리팩토링 / 단위 테스팅 / 코드를 조합하는 프로세스 등은 훨씬 더 중요한 기술입니다.

또한 자신의 시간 에이 작업을 수행하는 것이 훨씬 좋습니다. 이 작업을 작업에서 기다리지 마십시오. 더 나은 경향이있는 사람들은 자신의 시간에 자신의 기술을 개발하기 위해 노력하는 사람들이 초기에있는 것으로 알고 있습니다. 일반적으로 소프트웨어 개발에 대한 열정이 있기 때문에

  • 한 가지 더 " 책과 샘플을 읽는 것 "이며 부끄러워하지 마십시오. 배우고 싶다면 :)

70
+1 동의 함. 그리고 자신의 시간에이 일을하고 싶지 않다면 이것이 최선의 경력 경로가 아닐 수도 있습니다. 지금 물건을 정리하면 GPA를 보완 할 수있는 포트폴리오를 만들 수 있습니다.
Chris

68
@ 크리스, -1. 그것은 자신의 시간에 빈민을 위해 일을하지 않는 변호사가 잘못된 경력에 있다고 말하는 것과 같습니다. 내가 아는 많은 프로그래머들은 프로그래밍에 더 적은 시간을 소비하고 다른 일을하는 데 더 많은 시간을 할애하는 것이 좋습니다.

21
실제로 이빨을 자르고, 돈을 많이 지불하고, 앞서 나가기 위해 많은 시간을 더 투자 할 때 많은 변호사들이 있습니다.

22
변호사 직업과 프로그래머 직업을 비교할 수는 없습니다. 프로그래밍을 통해 스스로 기술을 습득 할 수 있습니다. 그 부분을 개선하기 위해 고용 주나 고객이 필요하지 않습니다.

31
실제로 프로그래밍이 특별하다고 생각하지 않아야합니다. 변호사는 우리가 할 수있는 것처럼 스스로 일하고 배울 수 있습니다. 그들은 저임금 일자리를 시작하고 오랜 시간을 일할 수도 있지만 많은 프로그래머들도 마찬가지입니다. "취미로 프로그램하지 않으면 프로그래머가되어서는 안됩니다"라는 문구는 매우 주관적입니다.

388

나는 다른 사람들이 작성한 라이브러리를 대부분 함께 붙이는 것처럼 느꼈습니다.

왜 이것이 "실제 프로그래밍"이 아닌 것 같은 느낌이 드는지 이해하지만, 통합 작업은 회사 프로그래머의 일반적인 작업량의 상당 부분을 차지한다는 사실입니다. 당신의 경험은 당신이 생각하는 것보다 조금 더 가치가있을 것입니다 :)


126
접착제 +1 아무도 새로운 집을 짓기 위해 전문가 그룹을 고용하지 않고 그 과정에서 주택 건축에 새로운 기술을 발명 할 것으로 기대하지 않습니다. 실제로, 위험 및 예산 관리에 관심이있는 사람은 그렇지 않은 것을 선호 할 것입니다.
Dan Bryant

14
나는 약간의 경우가 있다는 데 동의하지만 프로그래밍 작업의 75-80 %가 라이브러리를 함께 붙이는 종류가 있다고 말할 것입니다.

15
라이브러리를 서로 붙이는 것만으로 는 아무 문제 가 없습니다 . 그것이 당신을 생산적으로 만드는 것입니다!

10
확실히 내 작업의 90 %가 다른 사람의 코드 (라이브러리 또는 레거시 코드)를 연결하거나 이전 코드를 유지 관리하는 것입니다. 그러나 나는 갈 때 약간의 시간과 조각을 배우는 데 시간을 소비하므로 이제는 많은 도서관이 어떻게 작동하는지 알 수 있으며 일반적으로 어떻게 진행되는지에 대해 더 깊이 이해합니다. 평생 학습자가 되십시오. 그러면 결국에는 모두 선택할 것입니다.
CodexArcanum

53
라이브러리를 붙이지 않을 때는 보통 나중에 서로 붙일 라이브러리를 만듭니다.

238

먼저, 정직하게 질문 해 주셔서 감사합니다. 당면한 문제를 해결하는 방법에는 여러 가지가 있습니다. 다음은 제가 과거에 저에게 매우 도움이되었다고 생각하고 여전히 지식을 넓히기 위해 계속 사용하는 몇 가지 팁입니다.

  1. 더 배우고 배우고 배우십시오. 이것은 아마도 내가 줄 수있는 가장 중요한 팁일 것입니다. 학습을 중단하지 마십시오 . 하나의 언어를 아는 것이 좋으며, 여러 언어를 아는 것이 더 좋습니다. 다른 언어에 대한 지식이 있으면 더 나은 프로그래머가되고 특정 작업을보다 쉽게 ​​수행 할 수 있으며 일반적인 데이터 구조에 대한 더 나은 지식을 얻는 데 도움이됩니다.

  2. 작은 시작하십시오 .

  3. 여가 시간에 취미 프로젝트를 시작하십시오. 상당히 쉽게 달성 할 수있는 일을하지 마십시오. 어디서부터 시작해야할지 모르는 프로젝트를 진행하십시오. 깊은 곳에 자신을 던져. 이것의 장점은 당신이 결코 알지 못했던 것들을 배우고 그것을 완성 할 때 엄청난 자부심과 만족감을 느낄 것입니다. 이것이 계속 진행됩니다.

  4. 당신이하는 일에 대한 진정한 열정을 가지십시오. 사람들은 이것에 대해 저와 동의하지 않을 것입니다. 당신이 단순히 9-5 직업이라고 생각한다면이 분야에서 뛰어날 수 있다고 생각하지 않습니다. 그것을하려면 열정이 있어야합니다.

  5. 그래서 다른 사람들을 도와주세요! 이해하는 가장 좋은 방법은 다른 사람들에게 가르치는 것입니다.

  6. 다른 사람들의 프로그램을 연구하고 그들이 어떻게 작동하는지 알아 낸 다음 자신의 프로그램에서 유사한 기술을 구현하십시오. 그것을 읽고 이해하려고 노력한 다음 복사하여 붙여 넣기보다는 그 이해를 바탕으로 스스로 해보십시오.

  7. 그것을 유지하십시오 . 상황은 때때로 매우 실망 스럽지만 완료되면 매우 보람이 있습니다. 무언가를 이해하지 못하면 휴식을 취하고 생각을 지우고 다시 시도하십시오. SO에 문의하십시오! 우리는 기꺼이 무리입니다 :)

  8. 새로운 기술을 배우지 마십시오.

  9. 일부 책을 읽으십시오. 나는 학생이라는 것을 이해합니다. 당신은 많은 양의 독서를했을 것입니다. 다음은 여러분이 유용하게 활용할 수 있는 몇 가지 실용적인 책입니다 : 실용적으로 - 실용적인 프로그래머 : Journeyman에서 Master까지 - 코드 완성 : 소프트웨어 구축에 대한 실용적인 핸드북


13
읽기 쉬운 목록에 Clean Code를 추가하면 좋습니다.

7
"한 언어를 아는 것이 좋다"-> 틀렸다. 하나의 언어를 아는 것만으로 는 충분 하지 않습니다. 여러 언어를 아는 것이 좋으며, 더 많은 언어를 배우는 것이 더 좋습니다.
Denilson Sá Maia

10
"작은 시작"은 접근 가능한 프로젝트를 선택할뿐만 아니라 프로젝트 내에서 실행 가능한 부분을 구현하기 시작하는 것을 말합니다. 내 프로젝트는 시차에서 약간의 실험으로 시작되었고, "게임 배경을위한 멋진 스타 필드처럼 보인다"고 생각했습니다. 함선 추가 ... 외계인 추가 ... 한 번에 하나씩 미사일, 키보드 제어 및 충돌 감지 (각각의 간단한 문제)를 하나씩 추가하고, 내가 판매 한 상용 게임을 시간) 좋은 현금. 반면에 "게임 작성"은 모호하고 접근하기 어려운 작업입니다. 한 번에 한 비트.
mmc

2
@Denilson OP는 자신이 프로그래밍 방법을 모른다고 느끼지 않는다고 말했습니다. 프로그래밍에 대해 확신이없는 사람을 위해 한 가지 언어를 아는 것이 좋습니다. 내 목록은이 상황에만 적용됩니다.

7
@Denilson는 수 당신은 첫 번째 언어를 배우지 않고 여러 언어를 배운?
Péter Török

141

개인 프로젝트를 시작하십시오. 학교에서의 문제는 당신이 한 가장 복잡한 일은 15 주에서 1 년이 걸렸으며 다른 두 사람이 참여한 프로젝트였습니다. 문제 영역은 잘 이해되었습니다 (교수는 학기에 깔끔하게 맞지 않은 어떤 과제도주지 않았습니다). 이것은 현실 세계가 제공하는 사치가 아닙니다.

열정을 가질 수있는 중요한 시작부터 끝까지해야 할 일이 있으면 뇌가 그 과정을 마무리하기 시작합니다. 이것은 단지 경력 일 뿐이고 그에 대한 사랑이 없다면, 아직하지 않은 것처럼 느껴질 것입니다.


나는 1) 이력서 보내기 2) 책 읽기 사이를 나누고 있었지만 2) 코드 작성에 더 나은 것처럼 보입니다. 저는 많은 고용주들이 업계 경험이 거의없는 사람을 고용 할 위험을 감수하고 싶지 않아서 제가 인턴쉽을하지 않은 지금은 정말 매력적으로 보입니다.

5
+1. 나는 완전히 동의한다. 작은 앱을 시작한 다음 원하는대로 기능을 추가하십시오. 건물이 계속되면서 더 많은 일을 할 수 있다는 것을 깨닫기 시작하면 건물을 추가 할 수 있습니다.

11
"문제 영역은 잘 이해되었습니다 (교수는 학기에 꼭 맞지 않는 어떤 과제도주지 않았습니다)."이것은 컴퓨터 과학 교육의 가장 큰 문제 중 하나입니다. 이 문제를 해결하는 몇 가지 CS 또는 소프트웨어 엔지니어링 프로그램이 있지만 대부분 상자 밖에서 생각하지는 않습니다. 당신은 정말로 자신의 프로젝트를 수행해야합니다. Stackoverflow가 어떻게 구축되었는지 모르는 경우 직접 복제본을 만들어보십시오. 어떤 수업보다 더 많은 것을 배울 수 있습니다.
매트 올레 닉

훌륭한 아이디어. 그러나 핵심 기능이있는 작은 것으로 시작하여 천천히 추가하십시오. 하나의 거대한 완벽한 앱을 얻는 것보다이 방법으로 동기를 부여 할 것입니다. 또한 책의 풍부한 정보만큼 많은 정보와 튜토리얼을 찾지 못할 것이라고 생각합니다.
Xster

@Xster, 그게 제 뜻입니다. 매우 기본적인 기능을 갖춘 "질문과 대답"응용 프로그램을 작성하는 작업을 시작하는 것이 좋습니다.
매트 올레 닉

106
  1. K. Nicholas의 말처럼 프로젝트를 사용하여 주문형 언어 중 하나에서 시작하십시오.
  2. StackOverflow로 자신을 측정하지 마십시오. 불필요하게 낙담 할 것입니다.

81
# 2에 +1- 자신과 군중에 대한 지식을 비교하지 마십시오.
gf

8
StakOverflow 자체는 virtuoso 제품입니다. 말할 것도없이, 다양한 제품에 수십 년의 경험을 가진 사람들이 있습니다.

6
StackOverflow에 대해 스스로를 측정하는 것은 나쁜 일이라고 생각하지 않습니다. 여기에 똑똑한 사람들이 많이 있습니다. 일부는 당신보다 더 똑똑합니다. 그러나 그들은 당신이 계속 배우기를 원하는 사람들입니다.

15
이봐, 내가 왜 그렇게 중독 된지 알아! 12 가지 이유로 훌륭합니다. 그러나 당신이 모르는 모든 것에 지속적으로 노출되는 것은 겸손합니다. 겁내지 않도록 조심해야합니다. 그게 전부입니다.

@Georg-멋진 게임 중력. KGS Smandoli

72

나는 당신의 직업 상황에 도움을 줄 수 없지만, 당신이 당신의 기술을 개발하고 자신의 기술에 대한 느낌을 원근법에 넣도록 도울 수 있기를 바랍니다.

나는 컴퓨터 과학 학위를 가지고 졸업하고 있지만 프로그래밍 방법을 모른다고 느끼지 않습니다.

강사가 부끄러운 일을했을 가능성이 있습니다. 프로그램하는 방법을 모른다는 느낌이 자연스럽고이 단계의 삶과 교육에 적합 할 수도 있습니다. 다음은 도움이 될만한 아이디어입니다.

  • 많은 고용주는 성적표에있는 과정이나 GPA가 무엇인지 상관하지 않습니다. 대신 그들은 당신이 무엇을 할 수 있는지, 특히 무엇을 지 었는지 알고 싶어합니다. 좋은 일을하려면, 이력서의 기술 (C, C #, 가지고있는 것)보다 구축 한 것이 더 중요합니다.

  • 교육 기간 동안 여러 가지 흥미로운 프로젝트를 만들 기회가 없다면 강사를 부끄러워하십시오. 그러나 지금 이러한 프로젝트를 구축 할 수 있습니다. 흥미로운 문제가 있는지 웹 사이트를 검색하십시오. 우리의 2 학기 학생들은 "Song Search"를 마치고 있습니다. 우리는 웹 사이트의 가사를 엄청나게 끌어서 거꾸로 한 색인을 만들고 키워드를 제공하며 문맥에 해당 단어가 포함 된 가사를 보여줍니다. Google은 아니지만 유사한 데이터 구조를 가진 동일한 원칙으로 만들어 졌으므로 지금 구축을 시작할 수 있습니다.

나는 열심히 일했지만 혼자서 나가서 내 응용 프로그램을 작성할 확신이 없습니다.

올바른 종류의 문제에 대해 열심히 노력하지 않았습니까? 문제를 찾는 것이 좋습니다

  • 개방형
  • 하나 이상의 좋은 솔루션을
  • 나쁜 해결책이 많이 있습니다

이런 종류의 문제를 해결한다면, 선택을하고, 결과에 따라 생활하며, 효과가 없다면, 돌아가서 선택을 다시 방문하는 법을 배웁니다. 성공보다 실패에서 더 많은 것을 배우지 만 실패보다 성공에서 더 많은 자신감을 얻게됩니다.

위에 열거 한 것과 같은 속성을 가진 좋은 문제는 금과 같습니다. 단, 다른 사람으로부터 좋은 문제를 겪으면 아무 것도 잃지 않습니다. 좋은 문제와 연습, 연습, 연습을 위해 정찰하십시오 . 오일러 문제가 당신이 시작해야하는 곳이라면, 초보자도 괜찮습니다. 그러나 곧 당신은 당신이 정말로 멋지다고 생각하는 중소 규모의 프로젝트를 만들고 싶을 것 입니다. 당신이 만든 것에 흥미가 있다면 잠재적 인 고용주에게 깊은 인상을 줄 것입니다. 당신이 흥분하지 않으면, 당신을 고용하기 어렵다.

Peter Norvig 는 전문가가되기까지 10 년이 걸린다고 보고했다 . 물론 당신은 학위를 취득한 후 전문가처럼 느끼지 않습니다. 나는 당신에게 약간의 비밀을 알려줄 것입니다 : 대부분의 하버드 교수진 (8 년 동안 1 살)은 하버드에 소속되어 있지 않은 것 같은 느낌이 들었습니다. 그들은 충분히 알지 못합니다. 그들은 고용되었다. 이런 종류의 느낌은 학교에서 직장으로 또는 한 직업에서 다른 직업으로 전환하는 사람들에게 매우 일반적입니다. "명칭 증후군"이라는 이름이 일반적입니다.

학위를 받았더라도 대학은 여전히 ​​귀하와 대화 할 것입니다. 당신이 정말 좋은 교수가 있다면, 그들은 여전히 ​​당신을 걱정할 것입니다. 그들은 분명히 학생들 중 하나가 B 평균으로 졸업했지만 그녀가 무역의 기본 기술을 습득하지 못했다고 생각합니다. 따라서 당신의 프로그램에서 가장 활기차고 가장 동정심 많은 교수 중 한 명 또는 두 명을 찾아 좋은 문제를 찾는 데 도움을 받으십시오. 그런 다음 넣어 자신을 담당하고 당신의 기술, 지식, 그리고 그들에 대한 자신의 감정의. 매일 조금씩 무언가를 만들고, 정말 멋진 것이 아닌 소중한 건물 시간을 낭비하지 마십시오. 결국, 나는 당신이 프로그래밍에 대한 흥분의 느낌을 되 찾을 것이며, 그에 따라 자신에 대한 자신감을 키울 수 있다고 약속합니다.


동의해야합니다. C, Python, Objective-C를 알고 무언가를 수행하는 독립적 인 응용 프로그램을 작성하고 있다는 것을 예상 고용주에게 증명하십시오. 사람들은 종종 게임에 따라 도전적인 디자인과 구현이 필요할 수 있고 많은 라이브러리가 무료이기 때문에 게임을 선택합니다. Windows 용 게임을 만드는 경우 GDI / + 또는 DirectX는 모두 사용할 수있는 무료 라이브러리입니다.
DeadMG

"Harvard 교수진의 대부분의 회원 (8 년 동안 1 살)은 실제로 Harvard에 속해 있지 않은 것 같은 느낌이 들며, 충분히 알지 못했으며, 그들이 고용 된 것은 실수 였을 것입니다." of Dunning–Kruger effect =)

2
무언가를 만들려면 +1 : 특히 유용한 무언가라면 군중과 차별화됩니다.

5
@Alex, HR을 절대 겪지 마십시오. 운이 좋으면 아는 사람이 일하고 싶은 사람을 알고 있습니다.
노먼 램지

1
알다시피, 제가 일반적으로 구직을 찾은 방식으로 언급했습니다. 아마도 미래에는 네트워크 내 (또는 주변 환경)의 작업에 더 집중하고 키워드 스캐너의 무관심을 아끼지 않을 것입니다.

59

DA가 오래된 법률 및 질서에 관한 장면이 있었는데 그녀는 로스쿨에서 일을하는 방법에 대해서는 전혀 배우지 않았으며 현실 세계에 대해서는 전혀 배우지 않았다고 불평했습니다. 그녀가 불평하는 교수는 "그것은 변호사 학교가 아니라 법률 학교입니다."

컴퓨터 과학에도 동일하게 적용됩니다. 온라인에서 볼 수있는 일부 프로젝트에 즉시 기여하는 방법을 배우지 않았을 수도 있지만 장기적으로 성공해야 할 기초를 개발했을 것입니다.

먼저 직업을 구하십시오. 자급 자족하십시오. 특히 현재 경제에서, 나는 서점에서 일하거나 더 적절한 일자리를 찾는 동안 어떤 후보도 잘못하지 않을 것입니다. 나는 아무것도하지 않는 사람들에게 질문이 있습니다.

프로젝트, 모든 프로젝트를 찾으십시오. 예를 들어 github.com에는 많은 적용 가능한 프로젝트가 있습니다.

좋은 소식은 생각보다 빨리 학교에 다니는 곳, GPA가 무엇인지 등을 신경 쓰지 않을 것입니다.

잠깐만! 힘든 일이지만 언젠가는 그 경험에 기뻐할 것입니다.


8
우리는 최근 이것에 대해 직장에서 토론하고 있습니다. 경력과 관련이없는 직업을 얻는 것이 이력서를 전혀 도울 것이라고 생각하십니까? 재정적 인 이유로 과일을 골라야한다면, 그래도 프로그래머로서 경력을 쌓으려고 노력한다면 이력서에 자리가 없다고 생각합니다. 재정적 제약이 없다면 경제적 보상이나 사업을 시작하지 않고 프로젝트에 참여하는 것이 좋습니다. 현장 기술자 인 경우에도 오픈 소스 프로젝트 또는 현장 관련 작업에 참여하는 것이 제 생각에는 훨씬 좋습니다.

1
@piotr-당신은 스스로 말 했어요- "재무 적 제약이 없다면" 최근 대학 졸업생은 엄마와 아빠와 함께 살지 않는 한이 문제를 겪을 것입니다. David M에 동의합니다. 해당 분야에서 직접 일자리를 찾을 수 없으면 일자리를 구하십시오. 그냥 앉아 있지 않다는 것을 보여주십시오. 그런 다음, 하루 종일 일하지 않을 때는 밤에도 계속 배우고 프로젝트 등을 통해 필드를 이해하십시오. 물론 이력서도 전화하고 발송하십시오.

이력서에서는 모든 직업이 더 좋아 보이고, 차이는 없습니다.
Jim C

당신의 경력이 시작될 때, 관련없는 직업은 직업이없는 것보다 낫습니다. 그러나 이력서에 직업이없는 것보다 직업이 더 좋다는 것에 동의하지 않습니다. "직무 없음"에 대한 정당한 이유가 있다면 "직무"보다 낫습니다. 자발적으로 오랫동안 실업을 겪었지만, 일관되게 설명 할 수있는 확실한 이유가있었습니다.

5
piotr : "실제로 경력과 관련이없는 직업을 얻는 것이 이력서를 전혀 도울 것이라고 생각합니까?" 네 그럼요. 하루 종일 집에 앉아있는 프로그래머보다 다운 타임 동안 프로그래머가 작업하는 것을 훨씬 더 높게 생각합니다. 직장 윤리를 보여줍니다. 나는 집에서 코드를 작성하는 고독한 천재를 고용하기를 원하지 않았다. 그들은 다른 사람들과 잘 일하는 법을 알지 못하거나 더러운 일을하는 경향이 없습니다.

59

ProjectEuler를 보셨습니까 ? 나는 그 사이트에서 문제를 해결함으로써 파이썬을 스스로 가르쳤다. :] Java 또는 C #을 학습 한 후 사용해 볼 수 있습니다. 또한 GUI 프로그래밍도 시도해 보는 것이 좋습니다.

편집하다:

코딩 연습을 위해 살펴볼 수있는 많은 링크에 대한 SO에 대한 훌륭한 주제는 다음과 같습니다.

https://stackoverflow.com/questions/662283/websites-like-projecteuler-net


4
나는 사이트에 대해 많이 들었지만 문제를 시도 할 시간이 없었지만 요즘에는 유일하게 자유 시간 인 것처럼 보이므로 바쁘게 지낼 수 있습니다.

44
프로젝트 오일러는 프로그래밍 지식을 구축하려는 초보자 프로그래머에게는 거의 쓸모가 없습니다. 알고리즘을 코딩하여 수학 문제를 해결하는 방법을 찾는 데 중점을 둡니다. 훌륭한 프로그래머가되지 않고도 수백만 명을 할 수 있습니다 (아마도 훌륭한 수학자가 될 것입니다). 대부분의 프로그래밍 작업에는 훌륭한 알고리즘을 작성하는 것이 우선 순위가 아닙니다.

1
Charles-Euler는 특정 개념을 이해하고 그 개념을 이해하도록 동기를 부여 할 것입니다.
Broam

Xavier Ho로 사용하는 것은 재미 있고 유용 해 보였습니다. 즉, 새로운 언어의 기초를 익히 게됩니다. PE가 프로그래밍 (소규모)이나 수학에 도움이 될 것 같습니다. 어느 쪽이든 뛰어들 수 있습니다. 이 점들을 제쳐두고, 나는 Charles에 동의한다.

6
pythonchallenge.com 이 핵심입니다! 오일러는 프로그래밍으로 풀어야 할 수학 문제이지만, pythonchallenge는 순수한 프로그래밍 문제입니다.
Xster

48

나는 당신의 사용자 이름에서 당신이 여자라고 추측하고 있습니다 ... 그렇지 않다면, 이것을 무시하거나 자신의 관점에 맞게 조정하십시오.

내 경험에 따르면 컴퓨터 과학 대학을 졸업 한 여성들은 비슷한 기술을 가진 남성들보다 자신이 훨씬 유능하다고 생각합니다. 여성은 자신의 결점에 비해 더 정직한 여성이라고 할 수 있지만 결국에는 고용주에게 판매하는 데 더 많은 어려움을 겪게 될 수 있습니다.

(나는 대부분의 대학원생을 동료들과 비교할 때 총체적인 실패와 같은 느낌을 보냈고 결국 내 수업을 졸업했습니다.)

그래서 제 충고는 자신에게 정직하고 기술 개발에 계속 노력하는 것입니다. 그러나 구직 할 때 알고있는 것을 경시하지 말고 "도달 범위"구직 신청을 자제하지 마십시오.

  • 귀하의 가치를 실제로 평가할 수있는 멘토를 찾으십시오.
  • 가짜 인터뷰를 실시하고 자신감, 에너지 및 열정을 투영하는 방법을 배우십시오.
  • 인터뷰를 할 때 개인 프로젝트에 대해 이야기하고 기술적 인 질문을하십시오. 배우려는 동력과 에너지는 최고의 자산입니다.

나중에 생각하여 추가 :

  • 첫 직장에 착륙 할 때 급여 협상을 두려워하지 마십시오. 너무 많은 여성들이 첫 번째 제안을 고맙게 받아들이고 그들이받을만한 것을 얻지 못합니다.

이 .... 관련
폴 나단에게

+1, 모든 좋은 포인트. 학교에있을 때 동료 여성 동료들과 비슷한 감정을 경험했습니다.
Heather M

6
여성 일뿐만 아니라; 이미 유능한 사람이거나 성장해야한다는 것을 알 수있는 사람들 (Yay you!)은 자신의 무능함을 의심하지 않는 사람들보다 자신의 능력에 대해 의문을 갖는 경향이 있습니다. 이 현상의 이름이 있습니다. 독촉 – 크루거 효과. 학교에서 당신이 어떤 간병인이든지 평생 학습 경로를 계속 유지할 수 있다면 학교에서의 경험은 놀라운 성공을 거두었습니다. 행운을 빕니다!
Warren P

1
워렌 : 물론입니다. 저의 목소리가 적은 남성 동료들도 같은 문제를 겪었습니다. 북미를 포함한 전 세계의 많은 문화에서 어린 소녀들은 어린 소년만큼 공격적으로 경쟁하고 자신의 기술을 과시하도록 장려되지 않으므로 여성의 경우 그 특성이 더 자주 나타납니다. 그러나 그것은 단지 여성적인 것이 아닙니다.

멋진 대답입니다. 전적으로 동의합니다. 또한, 나는 졸업반에서 그것을 뽑아 낸 여성들이 종종 최고 학생이라는 것을 알았습니다. (슬프게도, 탈락 한 많은 여성들이 완벽하게 유능한 프로그래머를 만들 수

39

많은 사람들이 개인 프로젝트를 시작해야한다고 말했습니다. 제 생각에는 이것이 여기에 가장 좋은 조언입니다. 다른 답변을 읽을 때 보지 못한 것을 추가하고 싶습니다 ...

  • 당신이 지역에서 어떤 선택 열정적 약을 . 이것을 찾는 가장 좋은 장소는 컴퓨터 과학 이외의 관심사 일 것입니다. 그것은 당신이 관여하는 비영리, 열정적 인 취미, 당신이하는 스포츠 일 수 있습니다.

  • 공동 작업자를 찾으십시오 . 혼자서 코딩하는 것은 어렵 기 때문에이 프로젝트에서 동료와 협력 할 수있는 친구를 찾았다면 엄청난 도움이 될 것입니다. 이것은 훨씬 재미 있고 동기 부여를 유지합니다. 그의 최근 블로그 게시물에서 Jeff Attwood는 자신의 SO 구축 경험 에서이 정확한 것에 대해 이야기합니다. http://www.codinghorror.com/blog/2010/05/on-working-remotely.html

  • 적당한 것을 (초기) 선택하십시오 . 이상적인 프로젝트는 작은 것으로 시작합니다. 만약 게이트 밖으로 나가는 목표가 너무 야심적이라면, 너무 어려워 질 것입니다. PC, 전화, 임베디드 시스템 및 웹에 대한 개발을 마친 후에는 웹을 통해 다른 사람들이 즉시 사용할 수있는 것을 찾을 수 있다고 생각합니다.

  • 가능 하면 다른 사람들이 사용할 것을 선택하십시오 . "고객"이 10 명인데도 다른 사람들이 자신이 만든 것을 사용하게하는 느낌은 마약과 같습니다. 매우 만족합니다. 고객으로부터 배우고 응답하는 것도 귀중한 학습 경험입니다.

이 프로젝트가 당신이 행복하게 밤에 깊게 일하고 다음날 아침에 침대에서 뛰어내어 다시 돌아 오면 좋은 일이 뒤따를 것입니다. 당신은 배우고 자신감이 커질 것입니다. 그리고 사람들이 볼 수있는 무언가가 있으면 포트폴리오의 시작이됩니다. 프로그래머와 (관리자) 고용 관리자에게 실제적인 것보다 감동을주는 것은 없습니다.


가능하다면 다른 사람들이 사용할 것을 선택하십시오. 이것이 피드백을 얻는 가장 좋은 방법입니다.
balalakshmi

34

20 년 이상 개발자 인 사람의 관점에서 몇 가지 의견 :

Stackoverflow와 같은 웹 사이트와 Google과 같은 검색 엔진을 보았으며 그와 같은 것을 작성하기 시작한 곳조차 모릅니다.

이들은 팀의 제품이며, 주로 다른 팀에서 제작 한 라이브러리 및 인프라 (.net, java, asp.net 등)를 기반으로하며 경험과 자원이 뒷받침합니다. 당신이 개인적으로 비슷한 일을 어디서 시작 해야할지 모른다는 것은 완전히 이해할 수 있습니다. 걱정하지 마십시오.

한 여름 동안 나는 iPhone 개발자로 일할 기회가 있었지만, 다른 사람들이 작성한 내용을 거의 이해하지 못하고 다른 사람들이 작성한 라이브러리를 함께 붙인 것 같은 느낌이 들었다.

많은 개발 작업이 이제는 그렇게 두려워요. 그러나 해당 라이브러리에서 '최고의'흥미로운 작업을 수행 할 수있는 많은 범위가 있습니다. 그리고 알고리즘을 찾기가 어려울 염려가 없습니다. 거의 확실하게 퀵 정렬, 링크 된 목록 또는 경력 중 어떤 것도 구현할 필요가 없습니다. 그것이 바로 도서관의 목적입니다.

기본적으로 저는 컴퓨터 과학 학위로 졸업하고 있지만 프로그래밍 방법을 배우지 않은 것 같습니다.

프로그래밍 방법과 전문 개발자로서 기능하는 방법을 아는 것은 매우 다른 두 가지입니다. 실제 시스템에서 다른 개발자와 함께 작업하는 것이 좋습니다. 스킬 셋에 C # 또는 Java를 추가하십시오. 기술간에 차이가 크지 않으므로 지식을 양도 할 수 있습니다. 너무 빨리 전문화되는 것을 조심하십시오. 당신은 즉시 많은 돈을 벌지 않을 것이라는 점을 받아 들여야 할 수도 있으므로, 가능한 한 개인 비용을 얼마 동안 낮게 유지하십시오.

언급 한 프로젝트에서 작업을 시작하지만 프로그래밍 지식을 높이고 버전 관리, 단위 및 통합 테스트, 간단한 문서 작성과 같은 관련 기술을 경험할 수있는 방법을 사용하십시오. 이러한 종류의 기술은 개발자와 프로그래머를 구별하는 것이며 예비 고용주에게 좋은 쇼케이스입니다. 도움이 될 수있는 무료 도구 (Visual Studio, github, nunit, Google 앱의 익스프레스 에디션)가 많이 있습니다.

당신이 쓴 것에서 그것은 당신의 CS 학위가 기술적 인 문제에 대해 생각하는 방법을 가르쳐 준 것처럼 들립니다. 또한 현재의 기술 한계와 경험에 대한 정보를 포함하여 수준 높은 자체 지식을 갖고있는 것 같습니다. 이것들을 장점으로 사용하십시오. 지금은 구직 시장에 들어가기에 좋은시기는 아니지만 열심히 일하면 괜찮을 것입니다. 걱정하지 말고, 배우고, 경험을 쌓고, 최신 상태를 유지하고, 즐기는 일을하십시오.

행운을 빕니다!


"당신은 거의 확실하게 퀵소트, 링크 된리스트, 또는 당신의 커리어 동안 무엇이든 구현할 필요가 없을 것입니다."나의 현재 입장에서 나는 커스텀 서면 링크드리스트를위한 퀵소트를 구현해야했습니다. 그래도 목록을 구현할 필요는 없었습니다. 기본적인 것들이 어떻게 작동하는지 아는 데는 분명한 가치가 있습니다.

좋은 개발자는 이러한 기본 데이터 구조와 알고리즘의 작동 방식을 알고 구현할 수 있다는 데 동의합니다. 나는 내 자신의 링크 된 목록을 두 번 굴려야했지만 결코 (운이 좋을 때) 퀵 정렬을 작성하지 않아도되었습니다. 내 요점은 OP가 많은 언어 / 플랫폼 (.net, Java, C ++ 등)에 사전 작성된 구현이 포함되어 있기 때문에 학위 과정에서 공부했을 알고리즘에 대해 너무 걱정하지 않아야한다는 것입니다.

31

대학 과정에서의 프로그래밍이나 GPA에 대한 이해는 프로그래밍이 아닙니다. 프로그래밍은 상자 밖에서 생각할 수있는 능력, 배우고 자하는 욕구와 의지, 무엇보다도 창의력에 관한 것입니다.

개인적으로 저는 지난 5 월에 대학을 졸업했고 끔찍한 GPA를 받았습니다. 나는 학계보다 사회 생활에 더 집중했고 가격을 지불했습니다.

그러나 최근 대학에서 (면접 하는데 1 년도 걸리지 않은) 면접에서 나는 창의력, 학습에 대한 열정, 분석 기술을 보여 주었고, 그로 인해 취업에 도움이되었습니다.


27

참고 :이 게시물이 다운 투표 될 것으로 예상됩니다. 이것은 원래 포스터에 대한 답변이 아니라 위에서 읽은 대부분의 의견에 대한 관찰입니다.

위에서 읽은 답변은 정말 무섭습니다. comp.sci 학위가 쓸모 없거나 관련이 없거나, 당신에게 아무것도 가르치지 않는 거의 보편적 인 느낌이있는 것 같습니다. comp.sci 학위가 실제로 그렇게 나쁘게 되었습니까? 아니면 학위가없는 개발자의 뜨거운 공기가 부족합니까?

진심으로 사람들, 요즘 대학에서 사람들에게 무엇을 가르치고 있습니까? 졸업 할 때까지 CS 학위를 받으면 (적어도 학생이었을 때) 컴파일러 디자인을 잘 이해하게 될 것입니다. 복잡성, 형식적 방법 및 논리, 전체 데이터 구조 및 알고리즘 동물원, 기본 운영 연구 (LP 등), 데이터베이스, 암호화 및 보안, 스케줄링 알고리즘, 네트워크 프로토콜, 인터넷 개발, OS 및 커널 설계, 병렬 알고리즘 및 데이터 구조, 수치 알고리즘과 훨씬 더. 전체 논문은 일반적으로 최종 논문의 일부를 구성하는 거대한 프로그래밍 프로젝트로 채워집니다. comp.sci 졸업생들이 연습 프로그램을 충분히 얻지 못했다고 말하지 마십시오.

또한 좀 더 전통적인 comp.sci 학위 중 일부는 소프트웨어 개발주기의 일부 측면을 생략한다는 사실에 감사합니다. TDD, 단위 테스트에 대해 많이 이야기하지 않을 것입니다. 그러나 잔인하게 정직하자 : 그것은 실제로 로켓 과학이 아닌가? SCRUM이나 기능 점 분석에 대해서도 듣지 못할 것입니다. 요즘 많은 학위가 학생들에게 이러한 것들이 어떻게 작동하는지에 대한 아이디어를 제공하는 시스템 설계 과정을 가지고 있지만 이러한 기본 문제에 대한 자세한 과정을 가르치는 것은 상당히 중복 적입니다.

물론, .NET, PHP 또는 기타 현재 업계 표준의 전문가는 아니지만 관련이 없습니다. 5-10 년 후에는 선택한 언어가 바뀌 었습니다. 푸조에서 운전을 배운다고해서 피아트를 운전할 수 없어야한다는 의미는 아니며 프로그래밍 언어에도 동일하게 적용됩니다. 어떤 언어로든 일하기 위해서는 몇 권의 좋은 책을 가지고 몇 달 동안 연습해야합니다.

확실히 시간 낭비 인 경우 전자 객관식 시험에 응시하고 특정 아키텍처 또는 언어의 (일반적으로 무의미한) 세부 사항에 대해 묻는 비용이 많이 드는 "인증"입니다. 그들은 특정 병리학 적 프로그래밍 사례에 대한 지식으로 프로그래머의 역량을 측정하는 경향이 있습니다.

저는 여러 회사의 IT 산업에서 일했으며 다른 소프트웨어 개발자를위한 인터뷰 프로세스에도 참여했습니다. 우리는 일반적인 피즈 버즈 질문 중 몇 가지를 제시했지만 공식적인 교육이나 연수생이없는 사람들을 주로 목표로했습니다. 나는 기본적이지 않은 프로그래밍 질문에 대답 할 수없는 comp.sci 졸업생을 본 적이 없다.

참고 유럽에 거주하며 유럽 대학 학위에 대해서만 알고 있습니다. 그러나 나는 미국의 대학 표준이 EU의 표준보다 훨씬 높다고 확신합니다.


4
이것은 모든 사람들이 일단 학위를 받으면 느끼는 것과 같은 방식입니다. 학교는 일반적으로 다양한 상황에 대비합니다. 일단 일을 시작하면 더 전문화되고 학교에서 모든 에너지를 낭비하는 것처럼 느낄지 모르지만 실제로 실제로 무엇을하게 될지 어떻게 알았습니까? 전혀 배운 적이없는 것보다 더 많이 배울 수있는 것이 안전합니다.

1
나는 논쟁의 양쪽을 본다. 나는 정말 똑똑한 CompSci 학위를 만났지만 CompSci에 관심이 없기 때문에 현재 콜 센터에서 일하고있는 CompSci 학위를 가진 사람들을 만났습니다. CompSci 과정에서 많은 것을 배웠지 만 제 시간에 학교 밖에서 배운 직업을 착륙시키는 대부분의 기술 능력을 인정해야합니다. 소프트웨어 엔지니어링 작업에 대해 인터뷰 할 때 일반적으로 특정 기술, 문제 해결 전략 및 대인 관계 기술에 대한 지식을 테스트합니다. 대학에서 명시 적으로 가르치는 것은 없습니다.
Cerin

1
나는 인터뷰하면서 수십 명의 CS 졸업생을 만났으며 5 분 동안 생각해야한다고해도 정렬 알고리즘을 설명 할 수 없었습니다. 아마도 미국의 대학 표준은 전반적으로 잘 적용되지 않을 것입니다. @Chris S가 지적했듯이, 많은 것을 배우지 않고도 학위를 쉽게 통과 할 수 있습니다.
Dean J

여기서 두 가지를 섞고 있습니다. 나는 매우 유용한 정도를 발견했다. 나는 그것이 훨씬 더 나은 코더가되었다는 것을 알고 있지만, 왜 그런지 정확히 알아낼 수는 없다. 즉, 512 바이트의 룩업 테이블을 사용하여 (9,5) ECC를 구현하는 방법조차 알지 못하는 상당히 많은 유명 대학 출신의 졸업생들이 많이 있습니다. 좋은 코더는 "이것을 이해하지 못하지만 시험 문제를 할 수 있습니다"를 넘어서는 사람들입니다.

1
흥미로운 문제이지만 하드웨어를 제외하고 ECC 테스트를 정상적으로 수행하는 이유는 무엇입니까? 그러나 자발적인 물건의 좋은 예는 아닙니다. compSci

24

당신의 겸손이 당신을 잘 섬길 것입니다. 초보자의 마음은 상관없이 우리가 얼마나 많은 교육과 경험 학습, 모든 종류의 도움이되지 않습니다.

프로젝트 오일러 와 다른 곳 에서 다른 사람들이 제안한 것처럼 운동을 통해 작업하십시오 .

SO에 대한 다른 사람들을 돕기 위해 솔루션을 개발하십시오. 질문을 이해하고, 적용 할 수있는 것을 결정하고, 마지막으로 답을 표현하는 연습은 연습이 기술을 쌓을 때 자신감을 키우는 데 도움이됩니다.

그것에 충실하십시오; 너는 괜찮아 질거다.


9
잘 서비스를 제공합니다 겸손 그렇지 않은 경우를 제외하고 - (문에 발을 얻을 포함 당신은 chutzpa의 일정 금액을 필요로 개인 프로젝트)을, 당신도 비이성적 확신 할 필요가있다.

@Ian, 나는 당신의 정정을 겸손히 받아들입니다. ;-) 진지하게-그것은 좋은 지적이며 좋은 기사입니다. 나는 여성이 남성처럼 멍청해야한다는 결론을 좋아하지 않지만 그 실용성에 대해 논쟁하기는 어렵습니다.
Carl Manaster

@Carl-결론의 너무 빠름 :-) 채용 직원 / 관리자는 그 오만 / 자기 승진을 먹습니다. 특히 요구 사항을 이해하지 못하는 기술적 인 위치에 대한 후보자를 평가할 때. 나는 그 불쌍한 여성들과 같은 보트에서 많은 자격을 갖춘 남성들을 보았습니다. 더 많은 여성들이 지나치게 자신감을 갖도록 격려하는 것이 승리라고 생각할 수 없습니다. 우리가 가장 잘 할 수있는 곳 (IMHO)은 HR 직원들에게 더 나은 결정을 내릴 수 있도록 훈련 시키거나 프로세스를 다시 뱀피하는 것입니다.

23

음악 학위를 졸업하면 더 이상 음악 프로그램을 졸업하는 것보다 훌륭한 프로그래머가되지 않습니다.

연습, 연습, 연습 및 경험을 대신 할 수있는 것은 없습니다. 프로그램은 하루에 8 시간, 5 년 안에 현재 부족하다는 이해를 가질 수 있습니다.


6
캐치 -22 아닌가요? 원하는 직업을 갖기 위해 풀 타임으로 프로그램하십시오.
Jim Schubert

16
아니오, 5 년 안에 당신은 아무것도 모른다는 것을 알게 될 것입니다 :)
Earlz

1
@Earlz, 그리고 마지막으로 아는 것은 이미 쓸모가 없습니다.
Dan Bryant

4
실제로 "모든 Java 학교"(여기서는 아닐 수도 있고 아닐 수도 있음)에서 컴퓨터 과학은 프로그래밍이 아니라는 사실을 잊기 쉽습니다. 나는 CS 학위를 받고 의대에 다니는 사람들과 프로그래머가 된 생물 학자들을 알고 있습니다. 그러나 아무도 생물학 학위를 왜 외과 의사로 만들지 않았는지 묻는 사람은 아무도 없습니다.

1
@Earlz 얼마나 젠 :)
Tullo_x86

23

그런 솔직한 질문, 좋은 답변-나는 간단히 잠깐 들릴거야. :)

지금까지의 대답은 나를 조금 비 웃게했습니다. 그들은 잠재적으로 우리 자신의 위대함을 조금도 아이러니하게 축하합니다. 프레임 워크의 문서화와 버그로 ​​인해 SO에 왔습니다. 여기에는 분명히 다른 금이 있지만, 당신이 위대한 개발자가 되더라도 겸손을 유지하는 것이 가치가 있습니다. 그리고 나는 개인적인 역사적 (?) 오만이라는 관점에서 그렇게 말합니다.

더 나은 HR 직원과 관리자가 기술자를 사용하여 평가하기는하지만 기술자가 고용하지 않을 수도 있습니다.

고용주는 직원을위한 계획을 세우고, 계획을 완전히 이해하고 존중하며 자신을 정중하게 집어 넣어 약간의 개인적 회전과 향상을 시도합니다. 고용주가 실제로 특정 계획이없는 경우 어려움과 기회가 발생할 수 있습니다. 좋은 질문을하고 계획을 지정하도록 도와 주면 실제로 이러한 상황에서 벗어날 수 있습니다.

비즈니스 사람들은 이해하지 못하는 결정에 도움을주기 위해 인식을 약간 관리해야하기 때문에 개발자가 자신을 후원하는 것에 대해 (올바르게) 편집증이 될 수 있습니다. 또는 비 기술적 인 동료를 개발하십시오. 나는 이것이 기술과 비 기술자들 사이의 관계의 본질이라는 것을 이해하는 것이 중요하다고 생각합니다. 피하는 것이 어렵습니다. 우리가하는 일은 모호합니다.

전문적이고 개방적이며 정중 한 태도를 취하면 직업이 생깁니다. 전문가가 무엇인지 모호한 경우 웹에서 작업 할 수있는 곳이 있다고 확신합니다. 시작했을 때 누군가 나에게 지적했으면 좋겠습니다. :)

마지막으로 말할 것은 개발 및 아키텍처가 향상되고 이미이 길을 밟은 것처럼 들리면 전문 코드가 심각하더라도 불만족 스러울 수 있다는 것입니다. 적절한 해결책.

나는 해결책이 무엇인지 확신하지 못하지만 콘센트를 찾고 노력에 덜 감정적으로 참여하려고 노력하십시오. 그것은 자신을 페이스하고 더 나은 삶을 사는 데 도움이 될 것입니다-특히 노력을 기울이는 데주의를 기울이십시오. 무언가 "올바른"-동료들에게 복잡한 문제를 일으킬 많은 시간이 있으며 프로젝트 기간 내에이를 실현하는 데 필요한 시간을 거의 할 수 없을 것입니다. 이 증상은 "어두워지는 것"입니다. 다른 사람에게하고 싶은 것을 설명하고 싶지 않은 경우. 많은 최고의 개발자들이 평범한 사람에게 무엇을하고 있는지에 대한 본질을 설명 할 수 있습니다. 이것은 배우는 데 훌륭한 기술이며 지식을 실천하는 것이 지적으로 자유로 웠습니다.

Heh, 그리고 추정 할 때, 작업을 비트로 나누고 시간을 합한 다음 두 배로 늘리십시오 (이를 호출, 나누기, 정복, 집으로 행진하십시오).

행운을 빕니다! 나는 스키 강사가되기를 기대하면서 학교를 떠났고 리드 개발을 마쳤다. 나는 당신이 결국에는 무엇이든 잘 할 것이라고 확신합니다.


10
첫 번째 문장은 잠깐 동안 울리겠다고했지만 아직 가장 긴 답변 중 하나입니다. ;)

"작업을 비트로 나누고 시간을 계산 한 다음 두 배로 늘리십시오 (소위 나누기, 정복하기, 집으로 가기)"에 대해 +1입니다. 시간을 절반으로 줄이고 예상치의 연장을 허용하지 않고 동일한 기간에 수행해야하는 다른 프로젝트를 추가하십시오. 심지어 "2를 곱하고 단위를 늘리면 (1 시간 => 2 일, 1 일 => 2 주, 1 주 => 2 개월, 1 개월 => 2 쿼터, 1 쿼터 => 2 년, .. .) 그리고 실제 작업 경험이

방금 이것을 인쇄하고 벽에 붙
질문은 무엇입니까

22

그렇습니다. 대부분의 학교, 심지어 명문 학교는 컴퓨터 과학 교육과 소프트웨어 개발 교육에있어 훌륭한 일을합니다. 이것은 점점 나아지고 있지만 여전히 갈 길이 멀다.

어쨌든, 당신이 옳은 일을 대부분하는 것처럼 들립니다.

  • 일 이외의 프로그램
  • 소프트웨어 개발에 관한 책을 읽으십시오 (코드 완성, 디자인 패턴, 신화적인 Man-Month 등).
  • 새로운 기술을 계속 배우십시오 – 학교는 언어 자체가 아닌 언어를 배우는 방법을 가르쳐 주어야합니다. 새로운 프레임 워크, IDE, API, 라이브러리, 빌드 도구 등을 배우십시오.
  • SO와 같은 사이트를 둘러보십시오. 경험이 많은 사람들과 정기적으로 상호 작용하는 것은 지혜에 대한 몇 가지 지름길 중 하나입니다.

1
솔직히, 신화적인 Man-Month는 약간 과대 평가되지 않습니까? (하지만 저는 "*"로 된 책을 정말 좋아합니다.)
Camilo Martin

2
@Camilo가 동의하지 않습니다. Mythical Man Month는 소프트웨어 엔지니어링의 주제이며, 핵심 책은 단일 기술에 관한 것입니다. 결국 소프트웨어 개발과 관련된 사람들웨어 문제에 대한 이해가 필요합니다. MMM은 주제를 다루는 읽기 중 하나입니다.
브라이언 Wigginton

21

정말 좋은 질문입니다. 나는 당신이 인생의 모든 단계와 직업 시장에서 묘사 한 것을 정확하게 겪고있는 많은 사람들이 있다고 확신합니다.

먼저 통제 할 수없는 것들에 대해 더 이상 걱정하지 않아도됩니다. 당신은 학교, 당신이 배우거나 배우지 않은 것, 또는 학문적으로 얼마나 잘했는지 강조하거나 생각할 수 없습니다.

둘째-전문화하십시오. 그들이하는 일이 모호 해지더라도 자신이하는 일에 정말 능숙한 사람들에 대한 요구가 항상있을 것입니다. 자주 사용하는 프로그래밍 언어를 선택하고 해당 언어를 완전히 익히고 "자신의 언어로 만들기"로 결심해야합니다. 프로그래밍 기술을 향상시키는 방법에 대한 많은 훌륭한 조언이 있지만 하루가 끝날 무렵에는 모든 페이지를 읽고 책이주는 모든 예를 쓰면서 주제에 대한 권위있는 책과 며칠 동안 방에 몸을 가두십시오.

셋째-자신을 광고하십시오. 이 컴퓨터 과학의 역사에서이 단계는 오늘날보다 쉬운 적이 없었습니다. 귀하가 제공 한 답변과 이에 대한 질문은 이력서입니다. 숙달하기로 결정한 언어에 대한 SO의 주도적 권위자가 되려면 스스로 그것을 가져 가십시오. 이 서버를 통해 태그가있는이 서버를 통해 발생하는 모든 질문에 대해 책임을 져야합니다. 시간이 많이 걸리는 조사와 늦은 답변이 나오는 경우에도 마찬가지입니다. 아카이브를 검색하고 주제에 대해 SO에 대한 모든 질문을 읽어보십시오. 잘못된 정보를 수정하고, 자신의 답변과 답변에 대한 변형을 제공하고, 기존의 몇 가지 답변을 하나의 더 나은 답변으로 결합하십시오. 당신의 의견, 답변 및 편집의 끝없는 스트림으로 너무 범람하는 것은 당신의 raison d' etre 해야합니다 (평판 포인트를 얻었 기 때문에 재미).

넷째-공개 이미지 작업. 최고의 일자리를 얻기 위해서는 자신감이 필수적입니다. 회사는 훌륭한 동료, 공동 작업자 및 의사 소통을 원하는 사람들을 원합니다. 이것이 문제가 될 수 있다고 생각되면 친구들에게 자아를 높이고 끝없는 보완 물로 샤워를하고 지역 도서관으로 가서 이들 중 하나를 선택해야한다고 친구에게 말하십시오 .


2
협업 / 통신 기술의 중요성을 언급 한 +1 대부분의 졸업생에게는 부족합니다.
Denis Otkidach

1
나는 전문화에 동의하지 않습니다. 모든 기술은 언젠가는 죽을 것이므로 너무 많이 전문화하면 일하지 않고 끝내게됩니다 ... 좋아요, 일부 기술 (=> COBOL)은 매우 느리게 죽어서 새로운 기술을 전문화 할 충분한 시간을 허용합니다 그러나 여전히 위험합니다.

1
전문화가 자리를 잡았지만 대학 밖에서 올바른 시간인지 확실하지 않습니다. 또한 수요와 공급에 대해서도 논쟁 할 것입니다. 전문화의 요령 중 하나는 이미 가득 찬 것이 아니라 충전이 필요한 틈새를 찾는 것입니다. (그리고 2 년 전 COBOL 전선에서 비행기에 앉은 좌석 동료는 20 대 중반에서 20 대 사이에있는 것처럼 보였지만 레거시 시스템을 포팅하는 프로젝트를 다루고있었습니다. 그들은 여전히 ​​COBOL을 고수하고 있었고 새로운 하드웨어로 옮겨야했습니다. 따라서 잠재적으로 새로운 세대의 COBOL 프로그래머가있을 것입니다)

21

자,이 해커 뉴스를 보았는데 저는 "나만의 크랩 이요 !!"

그래서 지난해 12 월 CS 학위를 받았으며 어떻게 든 수업을 마치고 실제로 학점을받지 않고 학위를 취득 할 수 있다고 느꼈습니다. 모든 반 친구들이 놀라운 코딩 기술을 가지고있는 것처럼 느꼈고, 기본적인 Java 프로그램을 만드는 것이 전부였습니다. 코딩하는 법을 배우고 좋은 코더가 되려면 많은 시간이 걸립니다. 배울 수있는 많은 것들이 있으며 내 충고는 단지 조금 시간이 걸리는 것입니다. 갈 때 배우게됩니다. 다른 사람들이 슬퍼하는 것처럼, 배우는 가장 좋은 방법은 특히 코딩을하는 것입니다. 말할 것도없이 학교에서 당신에게 귀찮게하지 않는 응용 프로그램을 구축하는 것에 대해서는 너무나 많은 것이 있습니다. 기분 나빠하지 말고, 배우기에는 많은 것이 있다는 것을 알고, 배우는 데 시간이 걸릴 것임을 깨달으십시오.

네가 자란 도시를 지나쳐 봐야 할 것 같아. CS 졸업생을 고용하는 회사는 수없이 많으며, 모두 학교 밖에서 훌륭한 프로그래머가 될 것을 요구하거나 기대하지는 않습니다. 코딩 질문을하지 않은 곳에서 많은 인터뷰가있었습니다 (알고리즘을 해결하고 코딩하도록 요청한 것도 많았습니다). 이미 알고있는 것보다 배우는 능력에 더 관심이있는 회사에 적용하십시오 (제 경험상 대기업은 코드를 즉시 크 랭킹 할 수없는 경우 큰 영향을 미치지 않기 때문에 더 큰 관심을 기울입니다).

코딩이 당신이 원하고 추구하고 싶은 것인지 모르겠지만, 기술적 배경이 필요한 비 기술적 인 직업도 많이 있습니다. 이러한 옵션을 살펴볼 수 있습니다.

나는 C #이나 Java와 같은 하나의 언어에 대한 학습에 중점을 두지 않고 프로그래밍 원칙에 중점을 둡니다. 좋은 코딩 기술을 전수하고 어떤 언어로든 적용 할 수 있어야합니다 (이는 경력 기간 동안 중요합니다. Java는 영원히 뜨겁지 않을 것입니다). 다른 한편으로, "뜨거운 기술"을 아는 것은 구직에 도움이 될 수 있습니다. 인터뷰 기술은 정말 중요합니다. 연습을위한 것이더라도 모든 인터뷰를 가져 가십시오.

어쨌든 IBM과 같은 대기업이 접근 할 수 없다고 생각합니다. 몇 달 전과 같은 느낌이 들었고 지금은 IBM에서 일하고 있습니다. 저의 GPA도 그다지 좋지 않았습니다. 나는 여전히 프로그래밍에 빠지지만 시간이 지남에 따라 나아질 것입니다. 배우는 능력에 확신을 가지십시오!


1
나는 IBM 같은 대기업이라는 것을 말하고 싶지만 많은 다른 곳보다 가까이하고를 - 그들은 당신이 실행 땅에 떨어 것으로 예상 거라고 작은 장소와는 달리, 재능 자신의 풀을 훈련 할 수있는이 충분한 사람들이있다. 그리고 항상 인턴쉽이 있습니다. 이미 졸업한지 조금 늦었지만 많은 정부 기관이 여름 인턴을 데려옵니다. 따라서 이력서에서 'NASA'또는 이와 유사한 것을 얻을 수 있습니다.

20

와우,이 질문 전에 많은 답변이 있습니다.

완전히 다른 반응은 어떻습니까?

인간이라는 관점에서 문제를 재구성 할 수 있습니다.

"나는 임신 반을 졸업하고 막 태어날 예정입니다. 어머니가 왕관을 치고 내일 아침에 배달 될 예정입니다.하지만 우사 인 볼트 와 같은 운동 선수를 보면 "어떻게 실행할 수 있을까요? " 빠른?".

그러나 여기, 당신은 완전히 본격적인 인간이고, 학교를 다니고, 걷고, 말하고, 컴퓨팅 과정을 마쳤다면 부팅하는 것이 현명합니다. 부끄러워 할 것이 없습니다.

이제 우사 인 볼트가 태어나 자 갑자기 궤도에 오르기 시작했거나 인생에서 많은 관심을 보였으며 관심이있는 것을 발견 한 다음, 엄청난 양의 응용 프로그램이 뒤따 랐습니다. 밤! " 그는 거기 있었어.

후자가 더 가능성이 높습니다. 따라서해야 할 일을 알지 못하는 데 어려움을 겪지 마십시오. 자신에게 맞는 것을 해결하는 데 시간이 걸립니다. 즉위한 당신 부모님이 당신의 동료는 생각하지 무엇을 생각하지 무슨. 어떤 것이 적합한 당신 . 당신의 불을 밝히는 . 다른 사람들이 바지라고 생각할 때조차도 "그렇게 멋지다"고 생각하는 것.

당신이 원하는 것을 모르고 학위를 시작하는 것은 드문 일이 아닙니다.

저에게는 O 레벨 (영국 자격)에서 학교에서 잘 지냈지 만 A 레벨 (대학에 학위를 받기 위해 필요한)에 대해서는 망설 일 수 없었습니다. 그래서 나는 학위를 받기 위해 더 적은 곳으로갔습니다 (결과적으로 내가 선호하는 정도는 아닙니다). 그러나 나는 그것을 쫓아 냈고 (여전히 직업으로 원했던 단서가 없었습니다) 대부분의 소프트웨어 사용자가 결코 배우지 못한 전자 제품과 물건에 대해 많은 것을 배웠습니다. 이 기간 동안 저는 컴퓨터 게임 작가로 프리랜서로 일했습니다.

최종 결과? 학위를 취득한 후 (칭찬과 함께) 나는 일렉트로닉스를 사용하는 사람들보다 높은 연봉으로 면접을 보며 직장에 들어 갔으며 머리를 바꾸거나 양복을 입지 않았습니다. 뭐? 23 살 때 그 일이 중요합니다 (지금 되돌아 보면 44 세가 되겠네요.하지만 그게 젊음의 어리 석음입니다).

그 회사는 파산했고 점점 진지해지기 시작했습니다. 그러나 우연히 (실수로) 나에게 정말로 흥미가있는 것을 발견하기까지 아마 몇 년 동안은 아니었을 것이다. 저수준 소프트웨어 도구로 판명되었습니다. 내가 분명히 말했던 것-내가 쓴 모든 컴퓨터 게임은 어셈블리로 작성되었으므로 나는 다른 사람이 머리를 head 수없는 낮은 수준의 물건을 항상 좋아했습니다. 그러나 미래를보기 위해서는 20 대 중반까지는 실제로 나타나지 않았다는 사실에 더 많은 성숙과 놀라움이 필요합니다.

나는 종종 십대에있는 젊은이들이 자신이하고 싶은 일을 알고있는 것 같다는 사실에 종종 감명을받습니다. 그러나 실제 질문은, 그들은 여전히 ​​27 세에 그것을하고 있습니까? 아니면 초기 아이디어가 정확하지 않아 과정을 변경 했습니까?

THAT (Google, SO) 과 같이 인상적인 작업을 어떻게 수행 합니까? 글쎄, 당신은 소프트웨어와 인생의 다른 모든 것을하는 것처럼 덩어리로합니다. 기본부터 시작하여 경험을 쌓으십시오. 당신이 충분히 잘하면 계속해서 더 많은 경험을 얻거나, 당신이 충분히 좋지 않거나 지옥만큼 지루하다는 것을 깨닫기 때문에 그것을 버립니다. 금광이었다. 나를 위해, 그것은 지루하다!).

꼭 동료들을보고, 장로들을보고, 그들의 선택과 관심사를 살펴보십시오. 그러나 자신도 조사하십시오. 종종 첫눈에 광기 / 보커들이 실제로 거래되는 것 같습니다. 흥미로운 (아니라 단지 청구서를 지불 제외) 찾을 뭔가를하는 것은 SO 훨씬 더 보람.

예, 23 세인 당신은 Audi TT와 쿨 플랫에 초점을 맞추고 현명한 직업 선택보다는 돈에 의해 유혹을 받는다는 것을 알고 있습니다. 그 여자는 당신이 운전하는 것이 아니라 당신이 누구인지 당신을 좋아해야합니다.

진심으로 생각해보십시오. 그렇게 멋진 솔루션은 정답 일 수 있습니다.


-1 : 이것을 조금 강화하고 질문에 더 집중하고 자신에 대해 덜 집중할 수 있습니까?
Jim G.

2
그것은 '나'가 아니라 처음에 '여기'가 어디에 있는지 알지 못하고 내가 여기에서 어떻게 왔는지에 관한 것이 아닙니다. 나는 내 경험을 다른 사람의 경험보다 잘 알고 있기 때문에 자신의 경험을 예로 사용하고 있습니다. 당신이 나에 대해 읽었다면, 잘못된 관점에서 읽습니다. 당신이 그것을 넣을 때 "조임"을한다면, 당신은 표현되는 관점에 대한 배경을 제공하지 않고 독자를 혼란스럽게합니다. 나는 "졸업 할 때 무엇을하고 싶었는지 전혀 몰랐지만 지금은 저를 불렀습니다"라고 쓸 수있었습니다. "실제로 믿어야 할 이유"(TM)가없는 사람은 계속해서 영감을 얻지 못할 것입니다.

좋은 대답입니다, 스티븐 다른 답변과 다른 POV에서 온 것입니다.

+1,이 질문에 대한 답변으로 1000 표를 추가 할 수 있기를 바랍니다. 만졌어요!

18

다른 사람들이 제공 한 훌륭한 조언 외에도 귀하의 지역에서 개발자 이벤트에 참여하고 싶습니다. 모임, 사용자 그룹, 바 캠프, 코드 캠프 등을 찾으십시오.이를 통해 다른 개발자와 네트워크를 형성하고, 직무를 주도하며, 새로운 기술을 유지하고, 다른 개발자의 기술 수준을 현실적으로 엿볼 수 있습니다.


나는 이것에 차임하고 싶다. 이 작업을 수행. 병원의 의료 기록을 관리하는 기술 학교에서 신선했습니다. 로컬 .NET 회의를 시작했습니다. 어느 정도 시간이 걸리지 만 마침내 서버 및 응용 프로그램 지원을 수행하는 개발 회사에 자리를 잡았습니다. 인생의 마지막 목표는 아니지만 의료 파일을 스캔하는 것보다 훨씬 뛰어납니다.

17

10,000 시간 규칙을 따릅니다.

무언가의 주인이 되려면 적어도 10,000 시간 동안 연습해야합니다. 따라서 10,000 시간을 프로그래밍하면 마스터가 될 것입니다. 프로그래밍하는 데 10,000 시간을 소비하지 않고 공예의 주인처럼 느끼지 않는다면 실망하지 말고 더 많은 시간을 코딩하십시오.

또한 하루에 8 시간 동안 프로그래밍하는 경우 약 3 년 반이 소요될 수 있습니다. 업무 시간에만 프로그램을 작성하는 경우 약 4 년이 소요될 수 있습니다. 3/4 년 학위 과정에서이 많은 시간을 보내지 않았다면 아마도 마스터처럼 느껴지지 않을 것입니다.


1
그리고 같은 시간을 반복해서 반복하지 않도록해야합니다! 계속 배워야합니다.
Froome

10k 규칙 +1 처음 들어 봤지만 마케팅 적으로 훌륭하고 매우 현실적입니다.

14

내가 몇 가지 생각 만하면됩니다.

웬디는 CS 학위로 졸업 할 수 있지만 프로그래밍 실습에 대해서는 거의 알지 못한다고 말합니다. 그렇게 끔찍하고, 끔찍하지 않습니까? 70 년대에 영어 부서에 잠입 한 사기만큼이나 혼란 스럽습니다. 문학은 이해하고 통합 할 수있는 아이디어의 모음이 아니라 학생이 추상화하고 '해체'해야하는 많은 '텍스트'입니다 ( http : / /www.answers.com/topic/deconstruction ). 행복하게도, 그 조잡한 파도는 물러 가고 있습니다. 아마도 잡초를 피우는 강사들이 지금 은퇴하고 있기 때문일 것입니다.

몇 년 전-수십 년 전에 CS의 첫 번째 과정은 정렬, 해싱 및 검색 (예 : 재귀)과 같은 실제 문제를 사용하여 어셈블리 언어 (C가 발명되기 전에)를 가르쳐주었습니다. 두 번째 과정은 실제 라이브 작업 컴파일러의 디자인과 실현을 가르쳤습니다. 저는 MIT에서 아르바이트를했으며이 두 과정은 프로그래머로 임금을 받기 시작하는 데 필요한 전부였습니다. 2-3 개월 후에는 다소 생산성이 높아질 것입니다.

그래서 오늘 아침 웬디의 외침을 듣고, 나는 모든 곳에서 확실히 MIT가 제공하는 것을 희석시킬 수 없으며 (프로그램 실습의 맥락에서) 학생들을 쓸모없는 쓰레기로 대피 할 수 없다고 생각합니다. 그러나 MIT의 EE / CS 커리큘럼을 살펴보면 이것이 일어난 일입니다.

http://student.mit.edu/catalog/m6a.html

특히이 부서에서 Python을 교육 언어로 사용하고 있습니다. 정말! MIT의 CS 학위는 학생이 MIT의 CS 교사가 될 수있는 자격을 갖추는 것을 의미합니다. 재귀에 대해 이야기하십시오!

그런 다음 코딩 공포 ( http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html )에 대한이 기여를 보았고 요점까지 매우 생각했습니다. 이 대화의

"[프로그래머 후보자의 성공을 예측하는 방법에 대해]이 토론의 후발이지만, 30 세의 CS 학부 선배로서의 경험에서 나는 프로그래밍 수업이 쓸모없고 덜 나쁘다는 것을 알게되었습니다. 나는 커뮤니티 칼리지와 시카고 일리노이 대학교에 다녔지 만 입문 프로그래밍 수업은 다음과 같습니다.

"1. 객체 지향적, 학생들에게 절차 적 방법에 대한 이해가 거의 또는 전혀없이 남게 됨

"2. 잡초 (Weed-out) 수업.이 수업은 주로 사람들이 그 책을 읽도록 지시받은 연대와 구조가 아니라 다양한 유형의 문제와 그에 따른 수학에 대한 설명으로 구성되었습니다.

"코드는 Data Structures 핵심까지 거의 직접 인정받지 못했지만 여전히 어떤 강사에 의존했는지, 일부는 매우 코드가 밝고 일부는 코드가 무겁습니다. 교사가 코드를 밝히는 것이 큰 유혹이라고 말할 수 있습니다. 이 시점에서 코드에 집중한다면 2 년 동안 컴퓨터 과학 과정을 수료 한 학생들을 프로그램하는 방법을 가르치는 데 집중해야하기 때문입니다.

"코딩은 많은 젊은이들에게 취미이기 때문에 교육 기관은 예상되는 학습 곡선을 설정하여 학교에 입학했을 때 프로그래밍 경험이 거의 없거나 전혀없는 사람들이 선택의 여지가없고 미친 것처럼 속임수를 쓰고 모든 것을 소비한다고 생각합니다. CS에서 빠져 나간 사람을 알고있는 모든 사람들이 전기 공학을하게 되었기 때문에 내 경험에있어 추상적 인 사고가 반드시 필요한 것은 아닙니다. 그들은 머리 나 꼬리를 만들 수없는 수학을하는 동안 여전히 프로그래밍하는 법을 모른다.

"1. 필요한 프로그래밍 언어 인 Java. 여기서 Java를 강타하지는 않겠지 만, 학생들이 자신의 가비지 수집을 배우는 것이 좋지 않을까요? 그리고 포인터가 배우기에는 좋지 않을 것입니다. 우리가 그들과 다시 언어로 프로그래밍하기로 결정하지 않더라도?

"2. Java로 제거 된 후 운영 체제 이론에서 핵심 클래스를 수강하고 캠퍼스에 C 클래스가 하나도없는 C (물론)인지 확인 했습니까?

"물론, 저는 30 세이고 항상 프로그래밍을 한 사람들 중 한 명이므로 문제가 없었지만, 알고있는 많은 사람들이 저보다 추상화에 더 나은 것을 보았습니다 (전의 미적분학, DiffEQ, 물리 수업에서) ) 그리고 그들에게 쌓여진 프로그램을 마치려고했을 때의 총체적인 고통. "

단지 몇 가지 데이터 포인트이지만 다른 사람들이 말했듯이 잊혀지지 않습니다.

-피트


나는이 황홀한 관점에 너무 지쳤다.
Andres Jaan Tack

파이썬은 현존하는 최고의 교육 언어 중 하나입니다
Casebash

codinghorror.com의 @Icplben, Pete 또는 Jamaal?
Zaki

14

먼저, 거기에 걸어!

둘째, 여기에 도움이 된 것들이 있습니다.

  1. 관심 분야를 넘어 구직을 계속하십시오. 재배치해도 좋습니다. 나가서 새로운 장소를 볼 수있는 좋은 기회!
  2. 경험이 적기 때문에 면접관은 당신이 일하고 해결하는 데 흥분하고 활력이 넘치는 사람이되기를 원한다고 생각합니다. 그래서 저는 회사 코딩에 관심이있었습니다. 내가 어느;)
  3. 면접관에게 질문하십시오. 인터뷰 중에 회사를 조사하고 자료를 준비하십시오. 어떤 디자인 패턴을 사용하십니까? Y 기술 대신 X 기술이 필요한 이유는 무엇입니까? 나는 이것이 인터뷰 중에 사람으로 당신을 반올림하고 휴식을 취할 수있는 기회를 제공한다고 생각합니다.
  4. 집에서 즐길 수있는 코드! 성공할 필요는 없지만 읽은 기술이나 데이터베이스와 같은 기술을 활용하는 코드를 작성하면됩니다.

셋째로, 나는 다시 졸업했을 때 당신과 비슷한 보트에 있었고, 거기에 매달리고 검색을 계속합니다. 당신의 첫 번째 직업이 있습니다.


14

거의 연구 하지 않은 분야의 전문가가되는 분야를 졸업 하는 사람은 거의 없습니다 . 컴퓨터 과학은 그런 점에서 특별한 것이 아닙니다. 경험적 경험을 능가하는 것은 없으며 실제 요구 사항을 충족시키는 모든 요구 사항, 시간 제약, 변경 및 팀워크와 함께 실제 클라이언트를위한 완전한 소프트웨어 개발을 통해서만 얻을 수 있습니다.


1
불행히도, 사실입니다. 총각은 당신이 그것을 통해 관리 배지를 제외하고는 쓸모가 없습니다. 즉, comp sci curriculum은 학부 수준에서 끔찍합니다. CM의 커리큘럼에는 5 개의 수학이 필요하지만 공식 언어, 오토마타 및 계산 기능이 하나의 코스로 결합되어 선택 과목입니다.
MIA

4
100 % 동의합니다. 당신은 왜 당신이 자격 것에 대해 전문가가 되겠습니까 ?
Alex Feinman

13

며칠 전에이 악의적 인 사이트를 찾았습니다 http://99designs.com/ 웹 사이트 디자인 또는 기타 디자인에서 소프트웨어 관련 프로젝트를 찾을 수 있습니다.

이것은 코딩을하고 새로운 기술을 개발하며 잠재적 인 고용주가 될 수있는 새로운 사람들을 만나고 돈을 벌 수있는 좋은 방법입니다.

나는 당신이 직업이 없었음에도 불구하고 당신이 당신의 엉덩이에 앉아 있지 않다는 것을 보여 주면서 고용주에게 큰 가치가 있음을 발견했습니다. 당신이 거기 나와서 몇몇 프로젝트를했다고 보여주십시오.


나는 하루를 1) 이력서 보내기 2) 책 검토 사이에서 나누고 있었지만 어떤 프로젝트도 진행하지 않았습니다. 그건 그렇고 매우 흥미로운 사이트입니다. 소프트웨어 개발자보다 아티스트와 디자이너에게 더 많은 목표를두고 있지만 추가 조사가 필요합니다.

나는 그 책들에 대해 그렇게 많이 걱정하지 않을 것입니다. 다른 곳에서 언급했듯이, 배우는 유일한 확실한 방법은 실천하는 것입니다. 일자리를 찾는 데 시간이 걸리는 것에 낙심하지 마십시오. 불행한 일이지만 때로는 올바른 것을 찾는 데 몇 달이 걸립니다. 계속 노력하십시오 :) 동의합니다.이 사이트는 예술 / 디자인을 목표로하고 있지만 웹 사이트에 관심이 있다면 그중 일부가 있습니다. 이점은 아이디어를 직접 얻지 않고도 프로젝트를 수행 할 수 있다는 점입니다. 비용을 지불하면 다른 프로젝트 아이디어에 대해 sourceforge.net 을 볼 수 있습니다.

13

걱정마 로마는 하루에 지어지지 않았습니다.

For each P in PeopleYouKnow
Try
  ask/call P for a Job apply for job;
Catch Denial As Exception
  don be worry;
  //you'll get a job later
End Try

Finally
 If you haven't found a job yet
  For each programmingJobAd in internet

 Try
    apply for job;
    Follow up;
  Catch Denial As Exception
   don be worry;
  //you'll get a job later
 End Try
end
//Keep trying.
//find a bug from this code.

편집하다: #! diff A B

3c3
<   ask/call P for a Job apply for job;
---
>   ask/call P for a Job job; if job is available apply for job;
9a10
>  //(sic)
14c15
<     apply for job;
---
>     apply for programmingJobAd;
20c21
< end
---
> End

12

먼저 Google을 코딩 할 수 없다고 걱정하지 마십시오. Google은 경험이 많은 많은 프로그래머에 의해 수년에 걸쳐 만들어졌습니다. 그것은 시각 예술 학위를 마치고 어떻게 최후의 만찬을 만들 수 있는지 궁금해하는 것과 같습니다.

직업 사냥을 위해 요구 사항을 땀 흘리지 마십시오. 그냥 전화해서 몇 년이 없지만 아직 신청하고 싶다고 말하십시오. 그들이 실제로 경험을 원한다면 더 많은 주니어 포지션이 있는지 물어보십시오. 그들은 당신을 위해 새로운 포지션을 만들 수 있습니다. 대부분의 작업은 특정 사람을 위해 만들어집니다. HR 부서가 아닌 프로젝트 관리자에게 문의하십시오. HR은 일반적으로 새로운 일자리를 창출하지 않고 종종 기존 일자리에 대한 지원자를 선별합니다. 이 경우 Google은 친구입니다.)

약 6 개월을 투자하지 않는 한 웹 앱 (예 : Google 또는 스택 오버플로)을 코딩하려고 시도하지 마십시오. 큰 학습 곡선입니다. VCS 관리, 웹 서버, HTML JS 및 CSS 코딩, 데이터베이스 시스템 및 웹 앱 언어 실행 방법을 배워야합니다. 잔인합니다. 웹 작업을 원하지 않는 한 이러한 기술의 대부분은 양도 할 수 없습니다.

- 당신은 웹 응용 프로그램을 수행 할 경우, 당신은 국가 조회 응용 프로그램이 장고 기반의 IP (같은 간단한 웹 응용 프로그램을 설치 볼 수 http://www.coulix.net/blog/2006/aug/17/ip- country-flags-django-comments / ). $ 90의 dreamhost 할인 코드를 구매하고 (실제 웹 서버에서 작업 할 수 있음) 설정할 수 있습니다. 보안이나 성능에 대한 걱정을 너무 많이 (하지만 안 사용 SSH를) - 그냥 학습 프로젝트입니다.

데스크탑에서 작업하고 싶다면 파이 게임을 살펴보십시오.


Google의 첫 번째 버전이 짧은 시간 내에 만들어 진다고 생각 했습니까? 여름이나 그런 식으로
Earlz

데스크탑에서 Linux로 실행되는 Apache는 "실제 웹 서버"이므로 돈을 쓸 필요가 없습니다. 호스팅 회사가 무엇을 운영하고 있다고 생각하십니까?
TMN

@TMN은 웹 서버로 프로덕션 하드웨어 및 소프트웨어 스택을 의미했습니다. DH는 Apache와 MySQL을 사용하지만 프로덕션 서버에서 개발하면 장점은 (메일과 같은 까다로운 것을 포함하여 모든 것이 설정되고 도메인 등록을 수행함) 단점이 있습니다 (루트가 없으므로) 원격 개발에 사용). 프로덕션 서버를 사용하면 웹 작업을 시작할 수 있습니다.

11

프로그래밍에 관한 모든 것을 읽을 수는 있지만, 잘 프로그래밍 할 수있을 때까지 프로그래밍하는 법을 배우지 못할 것입니다. 프로그래밍을 시작하십시오!

개인 프로젝트를 시작하는 것이 좋습니다. 무엇을 만들고 싶은가? 게임? 블로그? 중요하지 않습니다. 그냥 무언가를 만드십시오!

그런 다음 몇 주 또는 몇 달 동안 실제 코딩을 한 후에 오픈 소스 프로젝트에 기여하는 것이 좋습니다. 개인 프로젝트는 목표가 아직 마련되지 않은 경우 프로그램하는 방법을 파악하는 데 도움이됩니다 (실제로 학교에서 무언가를 디자인하는 방법을 알고있는 경우). 기존 프로젝트에 기여하면 팀에서 일하고 코드 표준을 따르도록 가르칩니다.

나는 다른 많은 것을 읽는 데 시간을 낭비하지 않을 것입니다. 나는 최대 약 20 %의 시간을 읽고 다른 80 %의 코드를 작성해야한다고 말하고 싶습니다. (물론, 시간이 지나면 프로그래밍 관련 사항을 위해 시간을 따랐다는 의미입니다)


9

글쎄, 여기에 내 두 센트가 있습니다 ... 몇 가지 다른 출처의 인용문과 함께.

컴퓨터 프로그래밍 분야의 석사 학위와 박사 학위를 소지 한 지원자라도 놀라 울 정도로 많은 지원자들이 기본적인 프로그래밍 작업을 수행 할 때 인터뷰 중에 실패합니다.

-Jeff Atwood를 통한 Dan Kegel

http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html

이력서에서 수년간의 "경험"을 가진 사람들이 간단한 작업을 수행 할 수없는 수준까지, 지금까지 많은 문제를 보았습니다. 개인적으로, 나는 교육 기관이 주제에 대해 알지 못하거나 돈없이 특별한 돈을 벌고 자하는 학생들을지도해야하는 카운슬러들에게 가르 칠 수없는 책임이 있다고 생각합니다. 현장 자체에 대한 합리적인 관심.

당신의 질문의 소리에서, 당신은 종이 한 장을 얻기 위해 몇 년의 인생에서 망 쳐진 것처럼 대학 느낌에서 나오고 있습니다. 요즘 많은 채용 대행사가 프로그래머에게 학위를 보는 방식입니다. 그들은 종이 한 장을 가진 사람이 아니라 자신이 프로그래밍 할 수 있다는 것을 증명 한 사람들을 원합니다. 그러나 당신이 처음 에이 질문을한다는 사실은 실제로 프로그래밍을 배우고 싶다는 소망을 보여줍니다.

배우기 위해 할 수있는 가장 좋은 일 중 하나는 이미 프로그래밍 작업 인 여러 번 지적되었습니다. 불행히도, 이것은 기술에 대한 지식과 이해를 절대적으로 증가시킬 것이지만, 이력서에 넣을 수있는 것이 아니라면 일자리를 찾는 데 도움을 줄 수는 없습니다.

구체적인 목적으로 몇 가지 응용 프로그램을 직접 작성하여 시작하여 수행 할 수있는 작업과 앞으로 나아가 야 할 과제를 파악한 다음 프리랜서 작업을 수행 할 수있는 곳으로 이동하는 것이 좋습니다. 웹에서 픽업하는 프리랜서 작업에 대해 막대한 금액을 지불하지 않아도됩니다. 지갑이 아닌 이력서에 추가하려고합니다. "내가 만들었습니다"또는 "내가 그 기능을 디자인했습니다"라고 말하고 말할 수있는 3-5 개의 항목을 찾았 으면 해당 항목을 모두 나열하고 채용 대행사를 찾으십시오. 헤드 헌터)와 몇 명의 직원과 함께 이력서를 능률화하여 할 일을 찾는 데있어 교육과 자원을 강조하고 경험 부족의 측면을 최소화합니다.

잠재적 인 고용주와 이야기 할 때 (사람들이 항상 혼란스러워하는 것을 볼 때) 기억해야 할 가장 큰 점은 모든 분야의 사용자가주의해야 할 점은 자신을 짧게 팔고 싶지는 않다는 것입니다. 또는 할 수있는 일을 최소화하고, 자신을 과도하게 팔지 말고, 실마리가없는 일을 할 수 있다고 믿게하십시오. 고용주는 항상 당신이 어떻게 해야할지 모르는 일을하도록 요구하는 요령을 가지고 있으며, 그 시점에서 그것을 알아내는 것이 당신의 일이지만, 당신이 이미 할 수 있다고 말하면 나중에 말을 먹을 것입니다 .

당신에게 행운을 빕니다!

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