Differences between revisions 2 and 15 (spanning 13 versions)
Revision 2 as of 2010-01-26 07:09:11
Size: 8217
Editor: ZoomQuiet
Comment:
Revision 15 as of 2010-04-06 15:10:44
Size: 11284
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
:status: 草稿; ZoomQuiet ;完成度 80%;
:status: 草稿; ZoomQuiet+清风 ;完成度 100%;
Line 10: Line 11:

.. 链接定义区
    建议在文章头部,统一定义各种链接/图片... 内容资源!

.. |biohazard| image:: biohazard.png

.. _Docutils-Users mailing list:
   http://lists.sourceforge.net/lists/listinfo/docutils-users
.. _Docutils project web site: http://docutils.sourceforge.net/
Line 30: Line 22:
    PythoniCamp ~ try to train fast for Python programmer     PythoniCamp ~ quickly trainning Python programmer
Line 37: Line 29:

:Author:

  - Zoom.Quiet <[email protected]>

   - Administrator of CPyUG (Chinese Python User Group http://wiki.woodpecker.org.cn/moin/CPUG)
   - Core members of ZEUUX.org (http://www.zeuux.org/about/about.html)
   - Core members of ECUG (Erlang China User Group http://ecug.org/)
   - Community Advisory of SLL( http://sociallearnlab.org )


 - Qing Feng <[email protected]>

  - Is responsible for managing the daily affairs of the community,inwork-related accidents, is committed to education, to promote Pythonin China's development.
  - Administrator of http://wiki.woodpecker.org.cn (CPyUG 's WIKI support environment)

Line 39: Line 48:
    Python never becamed one of main trend choice for development,
    also can not enter college, to became one class of computer profession.
    but more and more team or project choice base Python to development.
    there is big contradiction between enterprise need pythoner and society lost python training school!
    how to fixed it?
    we discover one way to fast train Pythoner in one month:
    
    - base realy project developing
    - through frequently communicate and prompt
    - force team in highest power export, feeling Pythonic in show time
    Python is never one of the mainstream choice for development, also can not enter into college classes.
    But more and more teams or projects choose Python to develop.
    There is a big contradiction between enterprises' demands for pythoners and the loss of python training schools!
    How to balance the contradiction?
    We discovered one way to quickly train Pythoner in one month:
    
     - Base the real development environment to enable the trainees to practise
     - Prompt frequently
     - Force the team to elaborate the biggest learning abilities and experience Pythonic in shortest time
Line 54: Line 62:
Line 58: Line 65:
- most programmer not computer Professional background
- in college, institutions of computer science educational methods is very primitive , same as mathematics education
- witch is mainstream development technologies? in china ,the choice only base witch company can make mainstream advertisement
- for student, Which technology to learn, only base:

  - relevant technical books is many
  - related technical certification is more

- so! in china Python far from the mainstream
- in China most programmer s are not computer communication and technology majors
- in Chinese universities, the educational mode of institutions of computer science and technology is very primitive, which is same with mathematics education.China's universities are merely instruction in C, Java,. Net and other development language, Python as a compulsory subject in China has only one university.
- A large part because the teacher did not know Python, so fewer students to understand the Python language
- Python is not the university's main course
- Teaching Python books is still relatively small
- What are the mainstream development technologies? in china, the main choices depend on the market share of IT companies
- then the students will choose the relative technologies to learn by:
 
  - Reading the books of the most popular technologies;
  - Learning the technologies with most technical certifications

- so! in china Python is far from mainstream
Line 72: Line 82:
- but,Internet companies increasingly need Pythoner:

 - in Game Development, need python quickly binding functions witch complete by C / C + + / Lua / Perl / PHP, and so
 - in WebSite Development, need python quickly complete site,or publish some web service
 - in Desktop Development, need python quickly complete cross-platform scheduling of automated testing / integration,
 - etc.

- 怎么办?

 - 等待学校筹备并开办出靠谱的专业?
 - 给出高薪吸引自学成才的Python 程序员?
 - 自己创办专门学校来培养?
 
- 蟒营,是金山探索出的一种快速针对大三/四 实习生的快速Python 培训方式


项目介绍 What's PytohniCamp ?
------------------------------------------------------------------------------

- 金山学校是金山创办的招收大三/四学生,在假期来公司全日制培训的机构:

 - 一般持续4~5周
 - 承诺优先和成绩好的学员签定三方合同
 - 主要形式是自行作C++ 编程习题,教员定期讲解


- 蟒营,是在金山学校某学期中,开辟出的Pytohn 特训班:
 
 - 公开宣讲介绍什么是Python ,并承诺优先签定意向合同
 - 对自愿参加的学员集中进行4小时的Python 基本语法和开发介绍
 - 发布若干实用项目需求(都是公司内部团队真实需要的小系统/工具)
 - 由学员自行组成对应的开发小组,在指导老师的引导下立即开始迭代式开发
 - 一周为一迭代;持续4周;
 - 每天上午/下午,各进行一次一刻钟之内的站立会议,通报开发计划/主要成果/主要问题
 - 通过邮件列表随时进行技术解答
 - 每周5要求进行公开的系统演示
 - 所有代码进入SVN进行管理
 - 所有任务/问题/缺陷,记述到 Trac 中进行追踪



动机 Why PytohniCamp ?
------------------------------------------------------------------------------

- `想游泳,必须下水!`
- 对于已经在学校中形成了错误的软件开发体验的学生,必须将其投入权限环境重构体验!

 - 在企业中,必须依赖团队集体作战
 - Python 开发本身并不神秘,想成功完成开发,难的是需求的理解和团队内外沟通
 - 良好的代码管理/配置习惯,只能在食过亏后才可能建立起习惯
 - 一切承诺必须公开,这样才有公信力
 - 任何时候必须为团队他人着想,你的代码/文档/沟通,才可能有效!

- 基于以上设想,才营造出一个无限接近公司真空开发氛围的情景:

 - 指导老师是可以提供一切,但是无法主动提供,学员必须意识到,要及时吼出来需要什么
 - 指导老师一般不会直接给出答案,只能指出思路,一切要靠自己通过搜索和文档研读获得
 - 项目是有真实死线和演示压力的,不尽力去作立即就可以看出差别



简单的演示 Basic recurrence
------------------------------------------------------------------------------

- 每日站立会议有录音
- 每周演示会议有录音
- 每周学员活动有评分

 - 评分标准不公开
 - 评分根据学员的主动性进行量化评估
 - 评分关注协同性/责任性/沟通能力等等真实项目环境中团队需要的特性



进一步的演示 More sophisticated recurrence
------------------------------------------------------------------------------

- 快速形成指导老师的权威
- 快速形成学员和指导老师的对抗
- 只有及时放弃对抗,尋求合作的团队能够拿到真实需求来完成
- 一直团结起来对接的团队,将无法完成项目


其它方面 Other capabilities of ...
------------------------------------------------------------------------------

- 如此设计也是迫不得已
  
  - 指导老师,都是公司成员,日常也有开发任务,无法象金山学校的教员一样全日投入
  - 指导老师,都没有师范经历,针对实际技术问题才可能进行分享
  - 在公司的真实环境中,不可能有友好的成员,无私的帮助你完成任务!大家有心无力的!
  - 在公司的真实项目中,不可能有从容的时间给你进行技术钻研,一切都在压力中挤出时间来进行学习的!
  
- 如果学生在进入真实岗位前,对程序开发有什么不切实的幻想,对于个人和企业都是隐患!
- 提早真实感受到相关情景,有利于:

 - 企业及时甄别学员是否适合程序员这一职业
 - 学员及时调整心态和建立合适的习惯



结论 Conclusion
------------------------------------------------------------------------------

- 中国学生在学校正常课程中打下的基础是坚固的
- 只要有 Pascal/C/C++/JAVA 基础的学生,在一天之内掌握Python 的基本语法并能够完成可执行的脚本没有任何问题
- 一般这种蟒营的指导老师都是相关社区的活跃成员,这样最终局面是:

 - 学校不用组织专门的有企业管理经验的教师来引导学习,但是获得了良好的就业率
 - 学生不用花费额外的培训费用,在最短的时间里从学校式被动学习,转化到主动的面向问题的学习和行为模式来,提高应聘成功率
 - 企业不用向招聘服务机构支付额外的费用,就可以从社区中获得有潜力的学生名单,并预先进行相关岗位的技能灌输,提高招聘成功率
 - 社区不用额外的努力,就可以在有明确目标和各种支持的项目中,发挥各自的愛好和能力,反馈社区,提高技术社区的影响力


- but, Internet companies need Pythoners more and more urgently:

    - in Game Development, need to quickly bind python with functions witch complete by C / C + + / Lua / Perl / PHP, etc
    - in WebSite Development, need to use python to complete web site or realize some web services, etc
    - in Desktop Development, need to use python to quickly complete cross-platform deployment of automated testing / integration,etc
    - ...

- How to do?

 - Wait for the universities to prepare and open a good course?
 - High salaries to attract self-taught Python programmers?
 - Create the specialized schools to train programmers?
 
- PythoniCamp is a fast training method for junior and senior students to rapidly learn Python technologies.


What's PytohniCamp ?
------------------------------------------------------------------------------

- `KingsoftCollege`_ founded by kingsoft.com, is a full-time training organization for junior students in holidays.

 - Usually lasts for 4 to 5 weeks
 - Promises to give offers to excellent students
 - The students finish the C++ programming exercises, and the teachers explain the exercises regularly


- PythoniCamp is a specified training from `KingsoftCollege`_ :
 
 - Preaches and introduces Python, and promises to give offer to the best students
 - For the voluntary participation of the trainees, make a four-hour introduction of basic syntax and development in Python
 - Published a number of practical project requirements, which are the truly needed small system or tools of the teams within the company
 - The development teams formed by the trainees themselves, experiments the iterative development under the guidance of the instructor

  - Through the mailing list at any time for technical answers
  - an open presentation to run the system demo every Friday
  - All of the codes are committed to SVN repository
  - All of the tasks / issues / defects are recorded in `Trac`_


Why PytohniCamp ?
------------------------------------------------------------------------------

- `Learnning swim, must in water`
- students have formed a wrong software development concept in universities, they must be push into permission environments to refactory a correct concept:
 
 - in enterprises, team work is indispensible
 - Python development itself is not a mystery. To successfully complete the development, the difficulties are to accurately understand the requirements and communicate in or out of the team
 - Good habits of code management / configuration practices . It's useless to build habits after a failure
 - All commitments must be open, so that the credibility can be guaranteed
 - Any time, a participator should be considerate of others, then your code / documentation / communication can be effective!


- Based on these assumptions , an atmosphere infinitely close to the real development environment can be created:

 - master is able to provide everything, but can not take the initiative to offer, students must be aware that roar out of what is required to promptly
 - master generally does not give the specific answers, only points out a direction, the rest is relied on the students' own efforts
 - The project is a real dead line and the pressure for demon presentation ,so which team is better can be immediately notice by everyone


Basic recurrence
------------------------------------------------------------------------------

- Daily standup meetings have sound recordings
- Weekly standup meetings have sound recordings
- Weekly student activities score

 - Evaluation criteria are not publicly released
 - The quantitative evaluation according to the student initiatives
 - the evaluation is rated in the perspectives of cooperativeness/ responsibility / communication skills, and they are the important characteristics needed in a real project environment



More sophisticated recurrence
------------------------------------------------------------------------------

- Rapid formation of the authority of the master
- Rapid formation of opposition between master and students
- Only the team which gives up opposition timely and seeks cooperation is able to obtain the real requirements to complete the project
- If the team is always united for against master, them will not complete project neither



Other capabilities
------------------------------------------------------------------------------

- PythoniCamp is designed in this way is owing to:

 - master are the company staff, they also have their own development tasks, can not be fully involved in the training projects like the trainees
 - master do not have teaching background, they can only solve the problems occurred in the pratices
 - In a real company environment, it is impossible that a kind-hearted memeber will help you complete the mission!
 - In a real company project, there is no time for you to study the technologies, you can only squeeze time to learn.

- If the students have any imaginations about program development, it's risky for individuals and enterprises
- Experiencing the real development environment earlier has the following benefits:

 - Enterprise can tell whether a student is fit for the IT industry
 - Students are able to adjust themselves and form an appropriate habit.


- Considerable effects of PythoniCamp:

 - The first PythoniCamp started on 2008-09,
 - 22 students participated,
 - only two quit the training.
 - The 20 students formed 5 development teams
 - finally finished 3 system.
 - Among the 20 students, five students passed the assessment and three was hired by Kingsoft.


- in Beijing City University (http://www.bcu.edu.cn) PythoniCamp try 1v1 mode:

  - Students who prefer to set up Python classes 1v1
  - From a practical point of view, interest is the best teacher
  - Provides internship opportunities to Python
  - 1v1 classes the students have gradually become a company of professional Python Development Engineer

- 1v1 mode had running four semesters.

  - Curriculum, the main teaching Django for Website Development
  - A total of 80 hours per semester, four lessons per week



Conclusion
------------------------------------------------------------------------------

- Chinese students have solid foundations in normal school courses
- As long as the students have the Pascal / C / C + + / JAVA based students, it is easy to master the basic syntax of Python and complete the executable script
- Python itself is very easy to learn
- Python is also similar to Java as the lack of a complete training system
- The general guidance of the python camp teachers are active members of the communities, so that the final situation is:

 - Colleges need not to organize experienced IT company staffs to have classes, but a good employment rate will be achieved
 - Students do not have to spend the extra training fees, they can transfer the passive learning to the active learning in the shortest time, the employment rate can be improved
 - Enterprise do not have to pay additional fees, then they can recruit potential students from the community list and previously teach the technical skills to improve the employment rate
 - The communities can improve the influences without any extra efforts in the projects that have clear objectives and a variety of supports


*that mean all win!*


.. 链接定义区
    建议在文章头部,统一定义各种链接/图片... 内容资源!

.. _Docutils-Users mailing list:
   http://lists.sourceforge.net/lists/listinfo/docutils-users
.. _Docutils project web site: http://docutils.sourceforge.net/

.. _Trac:
    http://trac.edgewall.org/
    
.. _金山训练营:
    http://www.kingsoft.com/zt/2008/kscollege/
.. _KingsoftCollege:
    http://www.kingsoft.com/zt/2008/kscollege/


.. |biohazard| image:: biohazard.png
Line 191: Line 244:
.. [#] If that relative link doesn't work, try the master document:
   http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html.

.. [#是也乎] 有标签的脚注可以多次使用
   在不同场合 是也乎_

.. [this] here.

Rendering of reStructured text is not possible, please install Docutils.


:status: 草稿; ZoomQuiet+清风 ;完成度 100%;

.. contents::
  :depth: 3



:参考: 
    
    - `PyCon2010亚洲 <PyCon2010>`_
    - `蟒营~快速培训Python 人才的尝试 <PythonicCamp>`_


outline
==============================================================================
:Title:
    PythoniCamp ~ quickly trainning Python programmer
:Duration:
    30min
:Level:
    beginner
:Categories:
    Python in Education

:Author:

  - Zoom.Quiet <[email protected]>

   - Administrator of CPyUG (Chinese Python User Group http://wiki.woodpecker.org.cn/moin/CPUG)
   - Core members of ZEUUX.org (http://www.zeuux.org/about/about.html)
   - Core members of ECUG (Erlang China User Group http://ecug.org/)
   - Community Advisory of SLL( http://sociallearnlab.org )


 - Qing Feng <[email protected]>

  - Is responsible for managing the daily affairs of the community,inwork-related accidents, is committed to education, to promote Pythonin China's development.
  - Administrator of http://wiki.woodpecker.org.cn (CPyUG 's WIKI support environment)


:Summary:
    
    Python is never one of the mainstream choice for development, also can not enter  into college classes. 
    But more and more teams or projects choose Python to develop. 
    There is a big contradiction between enterprises' demands for pythoners and the loss of  python training schools! 
    How to balance the contradiction? 
    We discovered one way to quickly train Pythoner in one month:
    
     - Base the real development environment to enable the trainees to practise
     - Prompt frequently
     - Force the team to elaborate the biggest learning abilities and experience  Pythonic in shortest time


PythoniCamp ~ try to train fast for Python programmer
==============================================================================

Background on China
------------------------------------------------------------------------------

- in China most programmer s are not computer communication and technology majors
- in Chinese universities, the educational mode of institutions of computer science and technology is very primitive, which is same with mathematics education.China's universities are merely instruction in C, Java,. Net and other development language, Python as a compulsory subject in China has only one university.
- A large part because the teacher did not know Python, so fewer students to understand the Python language
- Python is not the university's main course
- Teaching Python books is still relatively small
- What are the mainstream development technologies? in china, the main choices depend on the market share of IT companies
- then the students will choose the relative technologies to learn by: 
 
  - Reading the books of the most popular technologies;
  - Learning the technologies with most technical certifications

- so! in china Python is far from mainstream 


Problems need solve
------------------------------------------------------------------------------

- but, Internet companies need Pythoners more and more urgently:

    - in Game Development, need to quickly bind python with functions witch complete by C / C + + / Lua / Perl / PHP, etc
    - in WebSite Development, need  to use python to complete web site or realize some web services, etc
    - in Desktop Development, need to use python to quickly complete cross-platform deployment of automated testing / integration,etc
    - ...

- How to do?

 - Wait for the universities to prepare and open a good course?
 - High salaries to attract self-taught Python programmers?
 - Create the specialized schools to train programmers?
 
- PythoniCamp is a fast training method for junior and senior students to rapidly learn Python technologies.


What's PytohniCamp ?
------------------------------------------------------------------------------

- `KingsoftCollege`_ founded by kingsoft.com, is a full-time training organization for junior students in holidays. 

 - Usually lasts for 4 to 5 weeks
 - Promises to give offers to excellent students
 - The students finish the C++ programming exercises, and the teachers explain the exercises regularly


- PythoniCamp is a specified training from `KingsoftCollege`_ :
 
 - Preaches and introduces Python, and promises to give offer to the best students
 - For the voluntary participation of the trainees, make a four-hour introduction of basic syntax and development in Python
 - Published a number of practical project requirements, which are the truly needed small system or tools of the teams within the company
 - The development teams formed by the trainees themselves, experiments the iterative development under the guidance of the instructor 

  - Through the mailing list at any time for technical answers
  - an open presentation to run the system demo every Friday 
  - All of the codes are committed to SVN repository
  - All of the tasks / issues / defects are recorded in `Trac`_


Why PytohniCamp ?
------------------------------------------------------------------------------

- `Learnning swim, must in water`
- students have formed a wrong software development concept in universities, they must be push into permission environments to refactory a correct concept:
 
 - in enterprises, team work is indispensible
 - Python development itself is not a mystery. To successfully complete the development, the difficulties are to accurately understand the requirements and communicate in or out of the team
 - Good habits of code management / configuration practices . It's useless to build habits after a failure
 - All commitments must be open, so that the credibility can be guaranteed
 - Any time,  a participator should be considerate of others, then your code / documentation / communication can be effective!


- Based on these assumptions , an atmosphere infinitely close to the real development environment can be created:

 - master is able to provide everything, but can not take the initiative to offer, students must be aware that roar out of what is required to promptly
 - master generally does not give the specific answers, only points out a direction, the rest is relied on the students' own efforts
 - The project is a real dead line and the pressure for demon presentation ,so which team is better can be immediately notice by everyone


Basic recurrence
------------------------------------------------------------------------------

- Daily standup meetings have sound recordings
- Weekly standup meetings have sound recordings
- Weekly student activities score

 - Evaluation criteria are not publicly released
 - The quantitative evaluation according to the student initiatives
 - the evaluation is rated in the perspectives of cooperativeness/ responsibility / communication skills, and they are the important characteristics needed in a real project environment



More sophisticated recurrence
------------------------------------------------------------------------------

- Rapid formation of the authority of the master
- Rapid formation of opposition between master and students
- Only the team which gives up opposition timely and seeks cooperation is able to obtain the real requirements to complete the project
- If the team is always united for against master, them will not complete project neither



Other capabilities
------------------------------------------------------------------------------

- PythoniCamp is designed in this way is owing to:  

 - master are the company staff, they also have their own development tasks, can not be fully involved in the training projects like the trainees
 - master do not have teaching background, they can only solve the problems occurred in the pratices
 - In a real company environment, it is impossible that a kind-hearted memeber will help you complete the mission! 
 - In a real company project, there is no time for you to study the technologies, you can only squeeze time to learn.  

- If the students have any imaginations about program development, it's risky for individuals and enterprises
- Experiencing the real development environment earlier has the following benefits:

 - Enterprise can tell whether a student is fit for the IT industry
 - Students are able to adjust themselves and form an appropriate habit. 


- Considerable effects of PythoniCamp:

 - The first PythoniCamp started on 2008-09, 
 - 22 students  participated, 
 - only two quit the training. 
 - The 20 students formed 5 development teams 
 - finally finished 3 system. 
 - Among the 20 students, five students passed the assessment and three was hired by Kingsoft.


- in Beijing City University (http://www.bcu.edu.cn) PythoniCamp try 1v1 mode:

  - Students who prefer to set up Python classes 1v1
  - From a practical point of view, interest is the best teacher
  - Provides internship opportunities to Python
  - 1v1 classes the students have gradually become a company of professional Python Development Engineer

- 1v1 mode had running four semesters.

  - Curriculum, the main teaching Django for Website Development
  - A total of 80 hours per semester, four lessons per week



Conclusion
------------------------------------------------------------------------------

- Chinese students have solid foundations in normal school courses
- As long as the students have the Pascal / C / C + + / JAVA based students, it is easy to master the basic syntax of Python and complete the executable script
- Python itself is very easy to learn
- Python is also similar to Java as the lack of a complete training system
- The general guidance of the python camp teachers are active members of the communities, so that the final situation is:

 - Colleges need not to organize experienced IT company staffs to have classes, but a good employment rate will be achieved
 - Students do not have to spend the extra training fees, they can transfer the passive learning to the active learning in the shortest time, the employment rate can be improved
 - Enterprise do not have to pay additional fees, then they can recruit potential students from the community list and previously teach the technical skills to improve the employment rate
 - The communities can improve the influences without any extra efforts in the projects that have clear objectives and a variety of supports 


*that mean all win!*


.. 链接定义区
    建议在文章头部,统一定义各种链接/图片... 内容资源!

.. _Docutils-Users mailing list:
   http://lists.sourceforge.net/lists/listinfo/docutils-users
.. _Docutils project web site: http://docutils.sourceforge.net/

.. _Trac:
    http://trac.edgewall.org/
    
.. _金山训练营:
    http://www.kingsoft.com/zt/2008/kscollege/
.. _KingsoftCollege:
    http://www.kingsoft.com/zt/2008/kscollege/


.. |biohazard| image:: biohazard.png

.. 脚注定义区
    建议在文章底部,统一定义各种 编号/自动/标签/引用 脚注

.. macro:: -- ZoomQuiet [<<DateTime(2010-01-21T19:33:36+0800)>>]

PythonicCampEn (last edited 2010-04-06 15:10:44 by ZoomQuiet)