Differences between revisions 1 and 8 (spanning 7 versions)
Revision 1 as of 2010-01-25 15:20:07
Size: 7967
Editor: ZoomQuiet
Comment:
Revision 8 as of 2010-01-31 13:38:52
Size: 9609
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
:status: 草稿; ZoomQuiet ;完成度 80%; :status: 草稿; ZoomQuiet ;完成度 94%;
Line 20: Line 20:
.. _Trac:
    http://trac.edgewall.org/
    
.. _金山训练营:
    http://www.kingsoft.com/zt/2008/kscollege/
.. _KingsoftCollege:
    http://www.kingsoft.com/zt/2008/kscollege/
Line 27: Line 34:
概述 outline
Line 30: Line 37:
    蠎营~快速培训Python 人才的尝试     PythoniCamp ~ try to train fast for Python programmer
Line 32: Line 39:
    预计时长 30min     30min
Line 34: Line 41:
    难度 初级     beginner
Line 36: Line 43:
    Python 在教育     Python in Education
Line 38: Line 45:
    既然Python 不是中国主流技术,当然也不可能进入高等学校的教案中,但是实际开发,越来越多的情景中非常需要Python 的敏捷;
    这一企業强烈的Python人才需求和社会缺乏有力的Python 培训环境之间的矛盾怎么解决?
    笔者在金山,无意间发现一种快速培养Python 开发人员的方式:
    
    - 通过实例情景实战开发
    - 配合频率的提醒
    - 强行让自然形成的团队发挥最大学习能力,在最短的时间内体验到Pythonic



蠎营~快速培训Python 人才的尝试
         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
Line 51: Line 60:

中国背景 Background on China
------------------------------------------------------------------------------

- 程序员很多不是相关专业出身的
- 高校的计算机专业教育方式很原始和数学教育一个模式
- 主流开发技术完全看哪个公司在中国投入市场力量大,学生一般就选择:

  - 相关技术图书多的
  - 相关技术认证多的

- 所以,Python 非常不主流


需要解决的问题 Problems to solve
------------------------------------------------------------------------------

- 但是,互联网公司越来越需要Python 开发:

 - 在游戏开发中需要用Python 快速粘合C/C++/Lua/Perl/PHP 等等完成的功能
 - 在网站开发中需要用Pytohn 快速完成网站,或是实现一些 web 服务
 - 在桌面开发中需要用Python 快速完成自动化测试/集成的跨平台调度
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.
- 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
Line 75: Line 85:
- 怎么办?

 - 等待学校筹备并开办出靠谱的专业?
 - 给出高薪吸引自学成才的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 的基本语法并能够完成可执行的脚本没有任何问题
- 一般这种蟒营的指导老师都是相关社区的活跃成员,这样最终局面是:

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

- 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.



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
- 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!*
Line 187: Line 208:
.. [#] 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 ;完成度 94%;

.. contents::
  :depth: 3


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

.. |biohazard| image:: biohazard.png

.. _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/

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


outline
==============================================================================
:Title:
    PythoniCamp ~ try to train fast for Python programmer
:Duration:
    30min
:Level:
    beginner
:Categories:
    Python in Education
: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.
- 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 of ...
------------------------------------------------------------------------------

- 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.



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
- 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!*



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

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

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