ìž„ì�¸íƒ�ì�´ 위키 í•해를 하ë�˜ì¤‘ xper seminar wikiì—�서 다ì�Œê³¼ ê°™ì�€ 글ì�„ 보았다.
{{|
Understandable
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
Ok, I'll try
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
- Communication/efficient problem solving: not trying yourself for days to
- Software reliability: that's a difficult one. IMO experience,
1 If you have some spare time you can learn that by joining an Open
Source project.
--
Gerhard Häring
OPUS GmbH München
Tel.: +49 89 - 889 49 7 - 32
http://www.opus-gmbh.net/
{{|
최근 파ì�´ì�¬ 뉴스그룹ì—� "파ì�´ì�¬ì�„ 배우는 것ì�´ 가치가 있나"하는 질문ì�„ ì˜¬ë ¸ë‹¤. 다ì�Œì�€ 거기ì—� 올ë�¼ì˜¨ 답변 중 하나.
Raphael Ribeiro wrote: I wanna start learning some real programming language (I know now only
Visual Basic , but i don't find it interesting, sorry for the vb
programmers, but this is my opinion).
And I was reading some docs, which were talking about lots of programming
languages, I saw there Python, and took a look at some python sites. I
saw some snippets and read some docs and liked the language a lot. But I
don't know if this language is well-accepted in the market and if having
a good python knowledge would give me a good job.
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):
- Procedural Programming
advance a little more:
- Test Driven Development
- Dividing software into components
I am only 17 and I'm only making plans, so if you have any suggestions
tell me.
more attractive to employers who have a clue about what's important in the
software industry.
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.
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.
concentration, unit tests, and always trying to improve on yourself help
you achieve it.
you achieve it.
Source project.
--
Gerhard Häring
OPUS GmbH München
Tel.: +49 89 - 889 49 7 - 32
http://www.opus-gmbh.net/
|}}
ìž„ì�¸íƒ�ì�€ 1학년때ì—� 수업시간ì—� 보는 ì±…ì�„ ì–´ëŠ�ì •ë�„ ë³´ì•˜ë‹¤ê³ ìƒ�ê°�í•˜ê³ ë‚œ 후, 형들한테 ì�´ëŸ°ê²ƒì�„ ë§Žì�´ 질문했ë�˜ 기억ì�´ 난다.
ìž„ì�¸íƒ�ì�€ 1학년때ì—� 수업시간ì—� 보는 ì±…ì�„ ì–´ëŠ�ì •ë�„ ë³´ì•˜ë‹¤ê³ ìƒ�ê°�í•˜ê³ ë‚œ 후, 형들한테 ì�´ëŸ°ê²ƒì�„ ë§Žì�´ 질문했ë�˜ 기억ì�´ 난다.
- 형, ì�´ ì±… 다 ë³´ë©´ ë˜ ë´�야 í• ê¹Œìš”?
- ì�´ 언어 ë³´ê³ ë‚œ 다ì�Œì—�는 무얼 보아야 좋ì�„까요?
지금 ì�´ 순간ì—� 후배들ì�´ ê°™ì�€ 질문ì�„ 한다면 NotToolsButConcepts ë�¼ëŠ” 대답ì�„ í•´ì£¼ê³ ì‹¶ë‹¤(단, 언어ë�„ 하나ì�˜ 툴ì�´ë�¼ê³ ê°€ì •í• ê²½ìš°). 1, 2ë…„ 후배를 ë°›ì�„ 때까지는 잘 몰ëž�지만, ë�°ë¸”ìŠ¤ìº í”„ë‚˜ 새내기가 참가하는 세미나를 찾아갈 때마다 매번 들리는 소리였다. - ì�´ 언어 ë³´ê³ ë‚œ 다ì�Œì—�는 무얼 보아야 좋ì�„까요?
툴ì�´ 아닌 ê°œë…� ¶
SICP를 ì±…ì�„ ë³´ë©´ ì˜ˆì œ 코드가 SchemeLanguage로 나온다. SchemeLanguageì—� 대해서는 잘 모르지만, ì�´ 언어를 사용하면 ê°œë…� ì „ë‹¬ì�„ 쉽게 í• ìˆ˜ 있어서ì�¸ë“¯ 싶다. 툴ì�´ì•¼ 몇번 ì“°ë©´ ìž�ë�™ì �으로 ì�µí˜€ì§€ê²Œ ë�˜ì§€ë§Œ(ë�”군다나 요즈ì�Œì—� 나오는 툴들ì�€ ë�”하다) 하나ì�˜ ê°œë…�, 패러다임ì�„ ìž�기 것으로 만드는 ë�°ì—�는 얼마나 오랜 시간ì�´ 걸리는가. (ToyProblems 때ë�„, 간단한 ë¬¸ì œë¥¼ ê°€ì§€ê³ ì—¬ëŸ¬ 가지 방법으로 ì ‘ê·¼í•˜ì˜€ë�˜ 기억ì�´ 난다). ë°¥ì�„ 짓는 법ì�„ 안다면, 가스불로 만들ë�˜, ì „ê¸°ë°¥ì†¥ì—� 하ë�˜ ìƒ�ê´€ì�´ 없다.
예 ¶
- STL, Container, 등등� 아닌 GenericProgramming
- MFC, VB 등� 아닌 EventDrivenProgramming + 그외� 녹아있는 패러다임들.
- Java, C#� 아닌 OOP(ObjectOrientedProgramming),AOP(AspectOrientedProgramming)
- Goto 쓰지 마�! 가 아닌 GotoConsideredHarmful 같� �야기
...
Thread ¶
1002 ê°€ Windows Programming ì�„ 오래 하다가 EventDrivenProgramming ì�˜ ê°œë…�ì�„ 나름대로 ì œëŒ€ë¡œ 받아들였다는 ëŠ�낌ì�´ 들었ì�„때는 해당 플랫í�¼ì—�서 1ë…„ ì�´ìƒ� 작업했ì�„ 때 였다.(여기서 '받아들였다'는 ì‹¤ì œ EventDriven Model로 ë””ìž�ì�¸í•´ì„œ 구현해보는 ì •ë�„) 사람들ì�˜ 공부 스타ì�¼ì—� ë”°ë�¼ ì°¨ì�´ê°€ 있지만, 해당 ê°œë…�ì—� 대해 ì œëŒ€ë¡œ ì�´í•´í•˜ê¸° ìœ„í•´ì„ êµ¬í˜„ë ˆë²¨ì—�서ì�˜ 경험ë�„ 필요하다. 위ì�˜ '예' ì—�서 '아닌 - Not' ì�´ëž€ ë‹¨ì–´ëŒ€ì‹ '넘어서 - Beyond' ë�¼ëŠ” 단어로 바꿔서 ì�½ì–´ë³´ë©´ 어떨까.
구현ì�„ 하는 사람ì�€ 늘 ë°°ê²½ ê°œë…�들ì—� 대해 ì‚¬ê³ í•´ì•¼ í• ê²ƒì�´ë©°, ê°œë…�ì�„ 공부하는 사람ì�€ 구현 ë ˆë²¨ì—�서ì�˜ 코드와 결과물ì—� 대해서 ìƒ�ê°�해보아야 í• ê²ƒì�´ë‹¤. 한쪽만으로ì�˜ 치우침ì�€ 위험하다는 ìƒ�ê°�ì�„ 해본다. -- 1002
NeoCoin ì�€ ì�´ë ‡ê²Œë§Œ ìƒ�ê°�했지만, 2ë…„ ì „ 즈ì�Œì—� ìƒ�ê°�ì�„ 바꾸었다. 구지 ì˜�어로 비슷하게 표현하면 UseToolAndLearnConcepts ì�´ëž„까? ë�Œì�´ì¼œ ë³´ë©´ ì�´ëŸ° ìƒ�황ì�„ ë�” ë§Žì�´ ì ‘í•˜ì˜€ë‹¤. 언어를 ë– ë‚˜ ê°™ì�€ 시기 ë�™ì•ˆì—� ê°™ì�€ ì�¼ì—� 대하여, ê°™ì�€ ë�„구를 사용하는ë�°, 한달뒤ì�˜ 사용 ì •ë�„와 ì�´í•´ë�„ê°€ 다른 사람들ì�„ ìž�주 보게 ë�œë‹¤. ë�„구ì�˜ 사용 ëŠ¥ë ¥ ì°¨ì�´ê°€ 재미와 ë§žë¬¼ë ¤ì„œ ë�„ë©”ì�¸ì�˜ 사용 í�ì�˜ ì�´í•´ë�„ ì—시 비슷하게 ë”°ë�¼ì˜¤ëŠ” 모습ì�„ ëŠ�낄수 있었다. ë©‹ì§„ ë�„구ì—� ê°�íƒ„í•˜ê³ , ì‚¬ìš©í•˜ë ¤ëŠ” ë…¸ë ¥ 반대로 멋지지 않ì�€ ë�„구ì—�서 ë©‹ì§„ ë©´ì�„ ì°¾ì•„ë‚´ê³ ì‚¬ìš©í•˜ë ¤ëŠ” ë…¸ë ¥ ì�´ë‘˜ì�€ 근본ì �ì�¸ Conceptì�„ 배우는 것과 멀리 떨어진것ì�€ 아닌것 같다.
--NeoCoin
NotToolsButConceptsë�¼ëŠ” ë§�ì�€ 수사ì �ì�¸ 표현으로 ìš©ë‚©í• ë§Œí•œ 범위ì—� ë“ ë‹¤ê³ ë´…ë‹ˆë‹¤.
{{|
Teach them skepticism about tools, and explain how the state of the software development art (in terms of platforms, techniques, and paradigms) always runs slightly ahead of tool support, so those who aren't dependent on fancy tools have an advantage. --Glenn Vanderburg, see |}}
ì €ëŠ” ì�´ 페ì�´ì§€ê°€ 컴퓨터 과학 ë¿�ë§Œì�´ ì•„ë‹ˆê³ ëŒ€í•™ìƒ�들ì�˜ 공부 ì „ë°˜ê³¼ ê´€ë ¨ë�œ ë¬¸ì œë�¼ê³ ìƒ�ê°�합니다. 대학ì—�서 무엇ì�„ 배워야 하는가? 무엇ì�„ ë°°ìš°ë ¤ê³ ë…¸ë ¥í•´ì•¼ 하는가? ì €ëŠ” 그것ì�´ ë�„구ì�´ê±´, ê°œë…�ì�´ê±´ ê°„ì—�, 그것ì�´ 좀ë�” 근본ì �ì�´ê³ , 그것ì�„ ë§Œë“ ì‚¬ëžŒì�˜ ì‚¬ìœ ì—� ê·¼ì ‘í• ìˆ˜ 있는 것ì�´ê³ , 그것ì�„ 배우는 ê³¼ì •ì—�서 ìž�ì‹ ì�˜ ì‚¬ê³ ê·¼ìœ¡ì�„ ì œëŒ€ë¡œ ë‹¨ë ¨í• ìˆ˜ 있는 것ì�´ì–´ì•¼ í•œë‹¤ê³ ë´…ë‹ˆë‹¤.오ë�„í• ìœ„í—˜ì�„ ì•ˆê³ êµ¬ì²´ì �ì�¸ 예를 한가지 ë“ ë‹¤ë©´, Swayë�¼ëŠ” GUI ë�¼ì�´ë¸ŒëŸ¬ë¦¬ë¥¼ ê³µë¶€í• ë•Œ, ë�™ì‹œì—� Sway를 ë§Œë“ ì‚¬ëžŒ(ê·¸ë¦¬ê³ ê·¸ 사람ì�˜ 아버지, ...)ì�˜ 머리ì†�ê³¼ ì‚¬ê³ ê³¼ì •ì�„ ë“¤ì—¬ë‹¤ë³´ê³ (ê´€ë ¨ ì„ êµ¬ì � 논문들ì�„ ì°¾ì•„ë³´ê³ ), 그것과 ë�™ê¸°í™”í•´ë³´ê³ , 다시 그것ì—� 대해 스스로 íŒ�단ì�„ ë‚´ë ¤ë³´ëŠ” ë…¸ë ¥ì�„ í•˜ê³ , ì�´ë¥¼ 다시 간단하게 구현해서 실험해 ë³´ê³ í•˜ëŠ” 것ì�„ 반복하는 것ì�´ ì œê°€ ë´¤ì�„ 때ì—�, NotToolsButConceptsì�˜ ì •ì‹ ì—� ë§žì§€ 않나 하는 ìƒ�ê°�ì�´ ë“니다. ì�´ê²ƒì�´ ì œê°€ ë°°ìš´ "ì œëŒ€ë¡œ 학문하는 법"입니다. 남ì�˜ 최종 결과물(artifact) ì†�ì—�서만 계ì†� 놀지 ë§�ê³ , 그가 그걸 만들어낸 ë¬¸ì œì�˜ì‹�ê³¼ ê³¼ì •ì�„ ë‚´ 몸으로 ì§�ì ‘ 체험해 ë³´ê³ ê±°ê¸°ì—� 나 스스로 íŒ�단ì�„ ë‚´ë ¤ 보는 것입니다.
가족오ë�½ê´€ì—�서 ë³´ë©´ 여러명ì�´ ì�¼ë ¬ë¡œ 서서, 맨 ë��ì�˜ 한 사람ì—�게만 ì†�ë‹´ì�´ë‚˜ 사ìž� 성어를 하나 ë³´ì—¬ì£¼ê³ , 그걸 몸짓으로 차례로 ì „ë‹¬í•´ì„œ 마지막 사람ì�´ 맞추는 게임ì�´ 있습니다. 최초 몸짓ì�„ 하는 사람ì�˜ ì�˜ë�„를 ì�´í•´í•˜ì§€ ì•Šê³ ê·¸ 모션ì�„ 그대로 ì�´ìš©í• 수는 있습니다. 하지만 ê·¸ ë‚´ë©´ì � ì�˜ë¯¸ë¥¼ ê¿°ëš«ê³ ìžˆì§€ 못하다면, 비ë¡� 아무리 잘 관찰ì�„ í–ˆë‹¤ê³ í•´ë�„ 나는 분명 모션ì�˜ ì�¼ë¶€ë¥¼ 왜곡하거나 ë¹ íŠ¸ë¦° 채 ì „ë‹¬ì�„ í•˜ê² ì§€ìš”. 그러나 ì�´ìš©ì�„ 계ì†� 하다보면 우연히(그러나 꽤 오랜 시간 후ì—�) ê·¸ ì�˜ë�„를 ê¹¨ì¹ ìˆ˜ë�„ ìžˆê² ì§€ìš”. 하지만 우리는 "ì�˜ë�„ì �으로" ê·¸ 사람ì�˜ ì�˜ë�„를 들여다 ë³´ë ¤ëŠ” ë…¸ë ¥ì�„ 해야 합니다 -- ê·¸ 사람ì�˜ ì‚¬ê³ ë¥¼ 거슬러 올ë�¼ê°€ê¸°ë�„ 하는 등 여러 방법ì�„ ë�™ì›�해서 ë§�ì�´ì£ . ê·¸ë ‡ê²Œ ë�˜ë©´ 우리는 똑같ì�€ 사ìž� 성어ì—� 대해 훨씬 ë�” ìš°ì•„í•˜ê³ ë�” 단순하며 명료하게 다듬ì�€ 모션ì�„, 혹ì�€ ì „í˜€ 다른 모션ì�„ 새로ì�´ 창조해서 다ì�Œ 사람ì—�게 ì „ë‹¬í• ìˆ˜ë�„ 있지 ì•Šê² ìŠµë‹ˆê¹Œ?
--JuNe
See Also 무엇ì�„ê³µë¶€í• ê²ƒì�¸ê°€









