E D R , A S I H C RSS

무엇�공부할것�가

우리는 무엇� �기를 �하는가? 해당 목표를 �루기 위해서는 무엇� 공부할 것�가? 해당 지�� 언제쯤 공부하는 것� �당할까?

완벽하게 만들수는 없어�. 사람들� 어떠한 순서로 공부했고 어떤 ��� 했�까?

컴퓨터과학 혹� 컴퓨터공학� 효율�으로 할 수 있는 �련� 과정(커리�럼� �나요?)� ��해보�는 ��로 연 페�지�가요? --�기


Game Developer, System Software Developer, Software Architect, 전산학� �으로 ��� �업과 관련� 지�� 대한 Roadmap � 어떨까요? (예전� '~~한 개발�가 �기 위한 book map' 같� 것� 있었� 것 같��)

무엇�공부할것�가�는 것� 논하기 �전� 기본�� 전제� 대해 ��해 볼 필요가 있습니다. 그러면 문제 정� �체가 바뀌어 버릴 수가 있습니다. 예를 들어 "어떻게 하면 � 프로시줘를 옵티마�징할까"를 고민할 때, 아예 그 프로시줘를 실행시키지 않는 방법� 없�까를 묻는 것�죠.

전산학�, 프로그래�� 공부하는 사람��면, 만약 내가 지금 배우는 대부분� 지�과 기술들� 내가 졸업� 하고 회사� 입사를 할 약 4년(혹� 병역� 마치는 경우 6년) 후� 쓸모없어 진다면 어떨까 하고 ��� 해 볼 수 있겠죠. 오늘 내가 밤샘� 하고 고민� 하면서 내가 사용하는 특정 �구� 한계를 우회하기 위해 기발한 방법� 짜내면서 얻는 지�� 4년 혹� 6년 후� 어떤 가치가 있�까요? 그 노력� 비해 얼마나 가치가 있�까요? 만약 그런 과정� 통해 어떤 지혜를 얻� 수 있다면, 좀 � 효과��고 경제�� 방법� 없�까요?

SeparationOfConcerns로 유명한 ��비드 파르나스(David L. Parnas)는 FocusOnFundamentals를 �합니다. (see also 컴퓨터고전스터디) 최근 작고한 다�스트�(NoSmok:EdsgerDijkstra )는 수학과 언어� 능력� �합니다. Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. -- NoSmok:EdsgerDijkstra 참고로 다�스트�는 �기 밑� 학�� 받� 때� 전산학 전공�보다 수학 전공��게 � 믿�� 간다고 합니다.

최근 17세� 소년� 파�� 메�� 리스트� 파�� 언어를 배우는 것� 나중� 취�� 할 때 얼마나 �움� �까를 물었습니다. �� 대해 다�과 같� 답� 올�왔습니다.
(관련 �문)
~cpp 
As for the job market, Python isn't among the buzzwords that you'll find in 
job descriptions most of the time. But software development isn't that much 
about particular technologies, the important part is learning concepts. If 
you learn Python, you won't be able to avoid learning (at least): 
 
- Object Oriented Programming (OOP) 
- Procedural Programming 
 
There's a lot more concepts that you can learn while using Python, as you 
advance a little more: 
 
- Functional Programming 
- Test Driven Development 
- Dividing software into components 

......

Learn concepts, not tools. At least in the long run, this will make you 
more attractive to employers who have a clue about what's important in the 
software industry. 
 
There are some more skills that are especially important: 
 
- Team work: dividing up tasks. Defining the interfaces up front to avoid 
  blocking other team members who wait for you. Using a source code control 
  system [1] 
 
- Communication/efficient problem solving: not trying yourself for days to 
  solve a problem that could be solved a lot more efficiently by calling 
  the client or writing an email - I've had problems with this myself in 
  the past, I guess that's not an uncommon problem for developers. 
 
- Software reliability: that's a difficult one. IMO experience, 
  concentration, unit tests, and always trying to improve on yourself help 
  you achieve it. 

--JuNe

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:29
Processing time 0.0062 sec