Monday, October 27, 2008

[转]腾讯员工写给毕业生的文字

校园到职场——写给2008毕业生
亲爱的各位同学,腾讯未来的伙伴们, 当我写下这个标题的时候,内心充满的激动与欣喜,因为不论是在面试过程中还是在QQ群中,我感受到了大家对即将走上职场、走进腾讯的充满憧憬、期待而又带着惶恐的心情,这样的感受令我想起了9年前,我刚从南京大学毕业的时候,相信我当时的心情与大家此时相同。  九年多时间,我的岗位发生过很多次改变,从一名软件研发工程师,到测试工程师,到资深系统工程师,到项目经理,到小组长,到总监,这个过程中我有太多的感受,这次终于逼着自己上周给大家做个承诺来与大家分享。 可以谈的方面很多,大家来报到后(欢迎提前来实习哈)我们相处的时间很多,因此我这次先就大家比较关心的方面以及我认为很重要的方面谈谈我的想法。算是抛一个砖,来公司后,我们身边会有很多优秀的同事会给到大家很多有价值的帮助,尤其是我们的领导Michael Jiang,是一位非常优秀的经理人,我们可以从他身上学到从业务到做人多个方面的经验。
http://blog.yinsha.com/index.php/20/viewspace_77886.html

Sunday, October 26, 2008

Terry Qu's CV

Chengliang Qu
State Key Lab of Software Engineering, Wuhan University
Wuhan, 430072, PRC
Phone: 86+15871403192
Email:
terry-qu@hotmail.com
Personal Page: http://terryqu.blogspot.com

EDUCATION
2006.10 – Present State Key Lab of Software Engineering(SKLSE), Wuhan University, Wuhan, P.R.China
Exempted from the M.S.Candidate Entrance Examination
Master in Software Architecture, Aspect-oriented Software Development, Semantic Web
Expected Graduation Date: July 2009 Mentor: Prof. Ying Shi, Deputy Director
2003.9 – 2006.10 International School of Software (ISS), Wuhan University, Wuhan, P.R.China
B.S. in Software Engineering
Major GPA: 3.83/4.0 Class Ranking: 2/33

COMPUTER Operating Systems: Linux (Redhat, Fedora), Win XP/2000, Mainframe Z/OS
SKILLS Programming Languages:
l Eclipse Platform: Java, J2EE, JSP/Servlet, XML, UML, Web Services, WSDL, AspectJ, JavaScript, SQL Conversance
l C/C++,Delphi, Visual Basic 6/VB.Net, JCL, HTML/DHTML, CSS Familiarity
Databases: SQL, MySQL, MS SQL Server, PostgreSQL, JDBC, MS Access
Frameworks&Plug-ins: Jarkata Struts, GEF,EMF,SWT/JFace for Eclipse RCP
Web Application Servers: Resin, Apache Tomcat
Other Tools: MyEclipse6.0; VC++6.0; CVSNT; WinCVS; AptanaStudio; RationalRose; Protege; Edraw; Visio; Project2000; Notpad++; XMLSpy; Dreamweaver; FlashFTP; UltraEdit; Delphi7; InstallAnywhere;

PROJECT EXPERIENCE
2008.3-present Main Researcher and Developer, RDF4S Platform
l Conducted in-depth study of resource description framework and semantic web
l Design and develop a RDF4S Platform based on resource description framework for
Semantics (RDF4S) specification proposed by SKLSE for national program 863- design and implementation of a semantics-oriented programming language
l Established the overall development environment
l Conceptualized and implemented the text editor plug-in and graphical editor plug-in of web service description language for semantics (WSDL4S) using EMF and Eclipse plug-in development skills
2007.3-2007.5 Project Leader, Epoch platform, SKLSE, Wuhan University, China
l Designed and developed a CASE platform- for the design of aspect-oriented software architecture based on the aspect-oriented software architecture design language-Epoch by using GEF and Eclipse RCP development skills.
l Accumulated and researched a mountain of the GEF knowledge by reading enormous GEF specification and technical documents about Eclipse plug-in and RCP development as well as detailed analysis of the open source project on Sourceforge using GEF
l Grasped the kernel thinking of GEF and API specification, built the development environment and accomplished the whole architectural design of platform.
2006.10-2007.12 Project Leader, Interactive English Platform
l Designed and developed the large-scale commercial Web system-Interactive English Platform for Yingwei tech company of Wuhan based on Struts framework
l Researched and developed objectives, goals, and budget plan
l Drafted team proposal and investigation reports and coordinated team of ten
l Conceptualized and achieved feasibility and requirement analysis , development schedule, allocation of workload, database/architecture/business logic design, code specification, testing, document maintenance, establishment of environment , core sub-module development and code optimization,. http://www.wd-english.com/
2006.3—2006.5 Project leader Wuhan University Blog Community Web system based on MVC
Designed the core business process and database, implemented the critical functional requirements - template design, tags and testing case, document creation, project architecture establishment, and demonstrated the final product in response to experts’ inquiries.
2006.6 Designed and developed C/S system in Java on Linux seperately using CORBA/RMI/Socket
2006.1 Designed and developed Bug Management System based on MVC using Jsp/Servlet
2005.12—2006.1 Designed and developed CMM compiler in C
2005.10—2005.12 Designed and developed enterprise information management system based on RBAC in Delphi as a main developer responsible for designing database and implementing audit functional module and other sub modules.

TRAINING
Passed Sun Certified Java Programming (SCJP) Examination SCORE:80% 2006.11
CERTIFICATE Participated in IBM Mainframe Training 2007.3-6
Lessons: Introduction to z/OS; z/OS Fundamental System Skills; JCL; Storage Management
Fundamentals; VSAM; RACF;

SELECTED HONORS AND AWARDS
l The 1st Fellowship of State Key Lab of Software Engineering 2007, 2008
l The Excellent Party member of International School of Software, Wuhan University 2007
l The Third Consecutive Annual People’s Scholarship of Wuhan University 2004, 2005, 2006
l The 1st Prize of 2006 Software Design Competition Hosted by ISS and Sponsored by KingSoft corporation
l The 13th place in the Final of “Goes the West wherever the motherland needs us most” Chinese speech contest
l The Excellent Student Award of Wuhan University in Morality, Intellectuality and Physical Force 2003-2004
l The Excellent Leader Award of Wuhan University 2003-2004
l The 2nd Prize of National Chemistry Olympics Contest of Senior High School Students 2001

ACTIVITIES
l 2006-present Being the party branch secretary of graduate party branch in grade 2007 of SKLSE , put stress on the construction of a contingent of party branch ,and instantly conveyed the gist of superior branch’s documents and supervised and cultivated non-party students’ potential for entry into party ,led members to visit ZhongShan Armada and 8.7 Meeting Location
l 2005 As the host of the evening party for welcoming freshman of ISS, successfully challenged the opportunity, and won the accolades
l 2004 As the external liaison minister of Students’ Union , strongly convinced KingSoft corporation , one of the most leading companies in IT field , to offer the sponsor for Software Design Competition hosted by ISS, and prepared and conducted the plan for the final success of the competition
l 2004 Established an actively cooperative relationship between ISS and Wuhan Evening Newspaper ,the most popular newspaper office and initiated an original activity jointly held by ISS and Wuhan Evening Newspaper by selling newspaper to collect money as donations for Hope Project
l 2003 As the monitor, successfully managed the class affairs, coordinated and executed class social, athletic and recreational activities such as debate, speech, table tennis, football contest, dance party, spring outing and so forth.
l 2003 Being elected as volunteer of the grand 110th anniversary ceremony of Wuhan University, accompanied the VIP abroad to visit Wuhan University as a guide (top 0.1%)

HOBBIES Making Friends, Playing Football/Table-Tennis/Basketball/Badminton, Making Speech

SELF-EVALUATION
◆ Five years of specialized study in computer science has laid a solid theoretical foundation
◆ A strong capability to conduct logical reasoning and the ability to solve encountered problems independently
◆ I've developed my own efficient learning strategies and absorbed full experience in designing and developing large- scale systems
◆ A hard-working person with strong sense of integrity, responsibility ,innovation, self-motivated, enthusiasm.
◆ Good Cooperative and Conscientious Attitude

Tuesday, October 21, 2008

java中堆栈(stack)和堆(heap)【转摘】
一、堆栈(stack)和堆(heap)?
(1)内存分配的策略
  按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.
 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.
 栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分配相反,在栈式存储方案中,程序对数据区的需求在编译时是完全未知的,只有到运行的时候才能够知道,但是规定在运行中进入一个程序模块时,必须知道该程序模块所需的数据区大小才能够为其分配内存.和我们在数据结构所熟知的栈一样,栈式存储分配按照先进后出的原则进行分配。
 静态存储分配要求在编译时能知道所有变量的存储要求,栈式存储分配要求在过程的入口处必须知道所有的存储要求,而堆式存储分配则专门负责在编译时或运行时模块入口处都无法确定存储要求的数据结构的内存分配,比如可变长度串和对象实例.堆由大片的可利用块或空闲块组成,堆中的内存可以按照任意顺序分配和释放.
(2)堆和栈的比较
  上面的定义从编译原理的教材中总结而来,除静态存储分配之外,都显得很呆板和难以理解,下面撇开静态存储分配,集中比较堆和栈:
 从堆和栈的功能和作用来通俗的比较, 堆主要用来存放对象的,栈主要是用来执行程序的 .而这种不同又主要是由于堆和栈的特点决定的:
在编程中,例如C/C++中,所有的方法调用都是通过栈来进行的,所有的局部变量,形式参数都是从栈中分配内存空间的。实际上也不是什么分配,只是从栈顶向上用就行,就好像工厂中的传送带(conveyor belt)一样,Stack Pointer会自动指引你到放东西的位置,你所要做的只是把东西放下来就行.退出函数的时候,修改栈指针就可以把栈中的内容销毁.这样的模式速度最快,当然要用来运行程序了.需要注意的是,在分配的时候,比如为一个即将要调用的程序模块分配数据区时,应事先知道这个数据区的大小,也就说是虽然分配是在程序运行时进行的,但是分配的大小多少是确定的,不变的,而这个"大小多少"是在编译时确定的,不是在运行时.
堆是应用程序在运行的时候请求操作系统分配给自己内存,由于从操作系统管理的内存分配,所以在分配和销毁时都要占用时间,因此用堆的效率非常低.但是堆的优点在于,编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间,因此,用堆保存数据时会得到更大的灵活性。事实上,面向对象的多态性,堆内存分配是必不可少的,因为多态变量所需的存储空间只有在运行时创建了对象之后才能确定.在C++中,要求创建一个对象时,只需用new命令编制相关的代码即可。执行这些代码时,会在堆里自动进行数据的保存.当然,为达到这种灵活性,必然会付出一定的代价:在堆里分配存储空间时会花掉更长的时间!这也正是导致我们刚才所说的效率低的原因,看来列宁同志说的好,人的优点往往也是人的缺点,人的缺点往往也是人的优点(晕~).
(3)JVM中的堆和栈
  JVM是基于堆栈的虚拟机.JVM为每个新创建的线程都分配一个堆栈.也就是说,对于一个Java程序来说,它的运行就是通过对堆栈的操作来完成的。堆栈以帧为单位保存线程的状态。JVM对堆栈只进行两种操作:以帧为单位的压栈和出栈操作。
我们知道,某个线程正在执行的方法称为此线程的当前方法.我们可能不知道,当前方法使用的帧称为当前帧。当线程激活一个Java方法,JVM就会在线程的Java堆栈里新压入一个帧。这个帧自然成为了当前帧.在此方法执行期间,这个帧将用来保存参数,局部变量,中间计算过程和其他数据.这个帧在这里和编译原理中的活动纪录的概念是差不多的.
从Java的这种分配机制来看,堆栈又可以这样理解:堆栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)为这个线程建立的存储区域,该区域具有先进后出的特性。
每一个Java应用都唯一对应一个JVM实例,每一个实例唯一对应一个堆。应用程序在运行中所创建的所有类实例或数组都放在这个堆中,并由应用所有的线程共享.跟C/C++不同,Java中分配堆内存是自动初始化的。Java中所有对象的存储空间都是在堆中分配的,但是这个对象的引用却是在堆栈中分配,也就是说在建立一个对象时从两个地方都分配内存,在堆中分配的内存实际建立这个对象,而在堆栈中分配的内存只是一个指向这个堆对象的指针(引用)而已。