우리는 무엇ì�´ ë�˜ê¸°ë¥¼ ì›�하는가? 해당 목표를 ì�´ë£¨ê¸° 위해서는 무엇ì�„ ê³µë¶€í• ê²ƒì�¸ê°€? 해당 ì§€ì‹�ì�€ ì–¸ì œì¯¤ 공부하는 것ì�´ ì �ë‹¹í• ê¹Œ?
완벽하게 만들수는 없어ë�„. 사람들ì�€ ì–´ë– í•œ 순서로 ê³µë¶€í–ˆê³ ì–´ë–¤ ìƒ�ê°�ì�„ í–ˆì�„까?
컴퓨터과학 혹ì�€ 컴퓨터공학ì�„ 효율ì �으로 í• ìˆ˜ 있는 ì�¼ë ¨ì�˜ ê³¼ì •(커리í�˜ëŸ¼ì�´ ë�˜ë‚˜ìš”?)ì�„ ìƒ�ê°�í•´ë³´ìž�는 ì�˜ë�„로 ì—° 페ì�´ì§€ì�¸ê°€ìš”? --ë�°ê¸°
Game Developer, System Software Developer, Software Architect, ì „ì‚°í•™ìž� ì‹�으로 ê°�ê°�ì�˜ ì§�ì—…ê³¼ ê´€ë ¨ë�œ ì§€ì‹�ì—� 대한 Roadmap ì�€ 어떨까요? (ì˜ˆì „ì—� '~~한 개발ìž�ê°€ ë�˜ê¸° 위한 book map' ê°™ì�€ 것ë�„ 있었ë�˜ 것 ê°™ì�€ë�°)
무엇ì�„ê³µë¶€í• ê²ƒì�¸ê°€ë�¼ëŠ” 것ì�„ 논하기 ì�´ì „ì—� 기본ì �ì�¸ ì „ì œì—� 대해 ìƒ�ê°�í•´ ë³¼ 필요가 있습니다. 그러면 ë¬¸ì œ ì •ì�˜ ìž�ì²´ê°€ 바뀌어 버릴 수가 있습니다. 예를 들어 "어떻게 하면 ì�´ 프로시줘를 옵티마ì�´ì§•í• ê¹Œ"를 ê³ ë¯¼í• ë•Œ, 아예 ê·¸ 프로시줘를 실행시키지 않는 방법ì�€ ì—†ì�„까를 묻는 것ì�´ì£ .
ì „ì‚°í•™ì�„, 프로그래ë°�ì�„ 공부하는 사람ì�´ë�¼ë©´, 만약 ë‚´ê°€ 지금 배우는 대부분ì�˜ ì§€ì‹�ê³¼ ê¸°ìˆ ë“¤ì�´ ë‚´ê°€ 졸업ì�„ í•˜ê³ íšŒì‚¬ì—� 입사를 í• ì•½ 4ë…„(혹ì�€ 병ì—ì�„ 마치는 경우 6ë…„) 후ì—� 쓸모없어 진다면 어떨까 í•˜ê³ ìƒ�ê°�ì�„ í•´ ë³¼ 수 ìžˆê² ì£ . 오늘 ë‚´ê°€ 밤샘ì�„ í•˜ê³ ê³ ë¯¼ì�„ 하면서 ë‚´ê°€ 사용하는 íŠ¹ì • ë�„구ì�˜ 한계를 우회하기 위해 기발한 방법ì�„ 짜내면서 얻는 ì§€ì‹�ì�€ 4ë…„ 혹ì�€ 6ë…„ 후ì—� ì–´ë–¤ 가치가 있ì�„까요? ê·¸ ë…¸ë ¥ì—� 비해 얼마나 가치가 있ì�„까요? 만약 그런 ê³¼ì •ì�„ 통해 ì–´ë–¤ 지혜를 ì–»ì�„ 수 있다면, 좀 ë�” 효과ì �ì�´ê³ ê²½ì œì �ì�¸ 방법ì�€ ì—†ì�„까요?
SeparationOfConcerns로 ìœ ëª…í•œ ë�°ì�´ë¹„드 파르나스(David L. Parnas)는 FocusOnFundamentals를 ë§�합니다. (see also ì»´í“¨í„°ê³ ì „ìŠ¤í„°ë””) 최근 ìž‘ê³ í•œ 다ì�µìŠ¤íŠ¸ë�¼(
EdsgerDijkstra )는 수학과 언어ì � ëŠ¥ë ¥ì�„ ë§�합니다. Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. --
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









