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 Python
in 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)>>]