정답
정답은 “상황에 따라 다릅니다!”입니다. 어떤 슬라이스에 더 관심이 있는지에 따라 달라집니다. 프런트 엔드, 풀 스택, 백엔드, 데이터 과학 등이 모든 것의 기초는 다음과 같이 추상화 할 수 있습니다.
- 원하는 것을 선택하세요. 프로그래밍 언어. 그리고 어떤 코드 문제 나 다른 문제에서 그것을 사용하도록 연습함으로써 그 언어의 모든 개념을 배우십시오. 이것은 패러다임이 완전히 다르더라도 다른 프로그래밍 언어를 배우는 데 좋은 토대가 될 것입니다. 어떤 의미에서는 모든 것이 상대적이기 때문에 A를 감상하려면 B를 맛봐야합니다. 문제를 해결하는 방법에 따라 언어를 비교하기 시작합니다.
- Do Code Katas. 같은 문제를 다른 방법으로 해결해보십시오. 시도한 다양한 접근 방식을 생각해보십시오. 다른 모든 코드 카타에 대해이 작업을 수행하십시오. 도움이됩니다!
- 문제를 해결하는 미니 프로젝트를 수행합니다. 잠시 후 다시 방문하여 기능을 추가 할 수 있는지 확인하십시오. 당신은 당신이 한 가난한 일 때문에 자신을 학대해야 할 것입니다. 이것은 좋은 깨달음입니다. 실수를 통해 생각하고 더 나은 방법이 무엇인지 생각하십시오. 실수로부터 배우십시오. 이것이 실제 경험입니다. 경험은 숫자가 아니라 일을하면서 배우는 것입니다.
- Github에서 미니 프로젝트 또는 라이브러리 코드를 선택하고 코드를 읽고 문제가 어떻게 해결되는지 확인합니다. 다른 코드를 읽고 생각하는 것이 도움이됩니다.
- 책, 블로그 등을 읽으십시오.
- 블로그를 통해 생각을 작성하십시오. 확실히 학습에 도움이됩니다.
- 모임과 컨퍼런스에 참석하여 주변에서 일어나는 일에 대한 노하우를 얻으세요. 학습을 유도 할 수 있습니다. 결국 우리 모두는 때때로 유도되는 약간의 동기 부여와 목적 의식이 필요합니다.
- 모임과 회의에서 배운 내용을 공유해보세요. 정말 마법처럼 작용합니다.
특별한 프로 팁 : 그 과정에서 에너지와 시간을 낭비하는 많은 농담을 접하게 될 것입니다. 당신이하는 일. 비평가와 농담을 구별하는 법을 배우는 것은 엄청난 생명의 은인입니다.
이것은 제가 커리어를 시작한 이래로 해왔고 지금도 계속하고 있습니다.
답변
답변
h2>
소프트웨어 엔지니어가 의미하는 바에 따라 다릅니다. 제가 찾은 최고의 소프트웨어 엔지니어링 리소스는 경험입니다. 잠시만 참아주세요. 여기에서 대부분의 답변은 프로그래밍에 관한 것으로 보이며 실제로 프로그래밍에 대한 훌륭한 리소스가 많이 있습니다 (여기 답변에 좋은 예제가 많이 있습니다). 저는 항상 문제가 세 가지 범주로 분류되는 것을 느꼈습니다.
- 프로그래밍. 오늘 다루고 싶은 문제에 대해 합리적인 언어를 선택하십시오. 잘 배우십시오. 많은 연습. 다른 존경받는 전문가 코드를 많이 읽었습니다. 좀 더 써주세요. 필요에 따라 또는 관심에 따라 언어를 추가합니다.
- 알고리즘, 데이터 구조, 비교 언어 및 일반적으로 컴퓨터 과학이라고하는 지식 체계. 이것이 바로 작은 문제를 해결하는 것에서 큰 문제를 해결하고 효율적으로 해결하는 것이 아니라 효과적으로 해결하고 솔루션의 한계를 이해하여 설명 할 수 있도록하는 것입니다.
- “소프트웨어 엔지니어링 ”는 위의 두 가지 아이디어와는 다른 것입니다. 소프트웨어가 “고객”에게 제공되는 프로세스입니다. 솔루션을 일관되게 반복 가능하고 안정적으로 제공합니다. GUI가 데스크탑에 초기 개념 증명 / 프로토 타입 솔루션을 구축하는 데는 좋지만 “프로덕션”에 제공하기에는 충분하지 않다는 점을 이해하고 있습니다. 각 단계의 전달 파이프 라인에 대한 이해와 각 단계가 수행되는 이유입니다. 그것은 모두 자동화와 규율입니다. 규율이 없으면 소프트웨어는 확장되지 않습니다. 대부분의 경우 실습이기 때문에 아직 이에 대한 과정을 보지 못했습니다. 그리고 많은 곳에서 이것을 잘못 알고 있습니다. 실수는 비용이 많이 듭니다.
제가 드릴 수있는 가장 좋은 비유는 요리 일 것입니다. 스스로 요리하는 법을 꽤 빨리 배울 수 있습니다. 몇 가지 요리법을 잘 익힐 수 있으며 연습을하면 금식 할 수 있습니다. 친구와 가족을 위해 멋진 식사를 준비하고 새로운 기술, 새로운 도구, 새로운 요리법이 필요할 수 있으므로 편안한 공간에서 조금 벗어나십시오. 한두 수업을 듣고 게임을 극적으로 향상시킬 수 있으며 수업은 지역 대학의 야간 수업에서 르 꼬르동 블루에 이르기까지 모든 것을 포함합니다. 그런 다음 모든 것을 바꾸는 레스토랑의 단계가 있습니다. 이제 기대하는 사람들에게 안정적으로 반복 가능한 음식 전달에 관한 것입니다. 소싱, 배치, 사전 준비, 준비 및 도구를 다르게 설정합니다. 프로세스의 “산업화”는 “엔지니어링”입니다. 이제 당신은 팀의 일원이되었습니다. 그리고 고객이 있습니다. 타코 가판대 든 미슐랭 별점을받은 레스토랑이든 상관 없습니다. 모든 실무 학습을 위해 충분한 교실 작업을 준비하는 것은 아닙니다.
그리고 한 번에 세 가지를 모두 배울 수 있습니다. 세 가지 기술 중 작업중인 기술을 이해하고 다른 두 가지 기술을 잊지 마십시오. 처음 두 가지는 연습과 함께 제공되는 경향이 있지만 후자는 경험과 함께 제공됩니다.