范文一:软件开发工程师
http://www.nit-pro.org/index-2.asp 初级软件开发工程师(Java)考试大纲
初级软件开发工程师(Java)考试大纲
初级软件开发工程师(Java)考试内容覆盖了Java程序员、专业软件公司Java软件工程师、网络公司Java程序员等职位所要求的知识与技能,突出强调并着重考查考生的阅读需求能力、编码能力、排错能力和协作能力。
一、考试对象
已完成NIT-Pro课程“初级软件开发工程师(Java)”学习,透彻掌握Java开发技术的学习者、或有一定Java基础的学生。
二、考试内容
三、考试说明
鉴于NIT-Pro为面向企业应用的角度进行人员测评,考试中分值的70%为案例考试分值,所有考试命题工作由教育部考试中心组织相关的企业界的专家共同参与,以确保考试内容反映出行业的技术应用现状。
初级工程师考试首先进行的是6小时的案例考试部分。考生独立完成一个小型的真实开发项目。随后,每个考生将完成标准化试题的考试,标准化考试由基础知识考试和逻辑思维能力考试2部分组成。在案例考试部分,将主要考查考生的实际动手能力;标准化试题的考试,则主要考评考生的基础知识和逻辑思维能力。考生的成绩由三部分组成,分别是基础知识考试成绩、逻辑思维考试成绩、案例考试成绩。
初级软件工程师考试内容、时间、分值
四、考试样题 (一)案例考试样题 样题下载
(二)基础知识客观题样题
基础知识客观题主要考查考生的基本知识、知识结构、运用技术的能力以及创造力。
初级工程师部分客观题只包含标准化试题。标准化试题侧重考察考生的基本知识与知识结构。客观题占总分的30%,其中15%的 1、单选题部分
1)、能构成多分支选择性结构的语句是: for 语句 while 语句 switch 语句 do - while 语句
2)、下面说法正确的是: final 可修饰类、属性、方法。 abstract可修饰类、属性、方法。
定义抽象方法需有方法的返回类型、名称、参数列表和方法体。 用final修饰的变量,在程序中可对这个变量的值进行更改。 3)、编译运行下述代码会出现何种结果? public class Test{
public static void main(String[] args) { /*System.out.println("1"); /*System.out.println("2");*/ System.out.println(3);
} }
编译出错。
编译通过,运行出错。 编译运行正常,输出1和3。 编译运行正常,输出3。
4)、下述Java应用程序运行结果为: public class Test{
public static void main(String[] args) { String s1 = "abcdefg"; s1 = s1.substring(2,4); System.out.println(s1); } } "bcd" "bc" "cde" "cd"
5)、如果在当前路径下并不存在文件“a.txt”,编译和运行下述Java应用程序会得到何种结果: import java.io.*; public class Test{
public static void main(String[] args) throws IOException{ File f = new File("a.txt"); FileWriter fw = new FileWriter(f); PrintWriter pw = new PrintWriter(fw); pw.println("hello"); pw.close(); } }
编译出错。
编译通过,运行出错。
编译、运行正常,系统会自动创建文件"a.txt"。 编译、运行正常,运行后文件"a.txt"仍不存在。 2、逻辑思维考试题样题
1)、 根据规律,在?处应该填入什么数字?
A. 16 B. 18 C. 20 D. 22
2)、 根据规律,在?处应该填入什么数字?
A. 12 B. 9 C. 8 D. 6
3)、 84.78、59.5、121.61、12.43以及66.5的总和是____ A. 343.73 B. 343.83 C. 344.73 D. 344.82
4)、(1/2+1/3+1/5+1/7+1/11+1/13)*385的整数部分是( ) A. 385 B. 400 C. 517 D. 510
5)、 1999的1998次方(即1999^1998)的末位数是多少? A. 1 B. 2 C. 5 D. 9
软件开发工程师(JAVA)考试大纲
软件开发工程师(Java) 考试大纲
软件开发工程师(JAVA)考试内容覆盖了JAVA程序员、专业软件公司JAVA软件工程师、高级软件工程师、网络公司JAVA程序员等职位所要求的知识与技能,突出强调并着重考查考生的需求分析能力、项目设计能力、编码能力、排错能力和协作能力。
一、考试对象
已完成NIT-Pro职业技能类课程“软件开发工程师(JAVA)”学习,透彻掌握JAVA开发技术的学习者。
二、考试内容
高级电脑美术设计师考试大纲
高级电脑美术设计师的考试内容覆盖了网站设计师、出版公司及广告公司平面设计师、软件公司界面设计师等职位所要求的知识与技能,突出强调并着重考查考生的美术创意、网页、平面等专业方向的先进技术和沟通能力。
一、考试对象
已完成NIT-Pro职业技能类课程“高级电脑美术设计师”的学习,深入透彻掌握行业先进技术和行业规范的学习者。
二、考试内容
初级网络及网站工程师考试大纲
初级网络及网站工程师考试大纲
网络及网站工程师考试内容覆盖面广、涉及网络/网站领域基本要求,符合各类企业对网络管理和构架、网站管理和维护、网络安全和性能调优人员知识全面的需求,突出强调并着重考查考生的实际技能、排错能力、协作精神和沟通能力。
一、考试对象
已完成NIT-Pro职业技能类课程“网络及网站工程师”学习,切实掌握企业网络部署和维护、以及保护企业信息安全等方面技术内容的学习者。
二、考试内容
网络及网站工程师考试大纲
网络及网站工程师考试大纲
网络及网站工程师考试内容覆盖面广、涉及网络/网站领域基本要求,符合各类企业对网络管理和构架、网站管理和维护、网络安全和性能调优人员知识全面的需求,突出强调并着重考查考生的实际技能、排错能力、协作精神和沟通能力。
一、考试对象
已完成NIT-Pro职业技能类课程“网络及网站工程师”学习,切实掌握企业网络部署和维护、保护企业信息安全等方面技术内容的学习者。
二、考试内容
范文二:软件开发工程师
软件开发工程师
岗位职责:
协助软件开发工程师,或独立应用PHP、FLEX或VC进行互联网应用、学习软件客户端、内部CRM系统的开发;
任职要求:
1、 计算机软件、软件工程、电子信息等计算机相关专业的应届毕业生;
2、 熟练掌握PHP或FLEX或VC语言进行编程;对软件开发具有浓厚的兴趣,学习能力强;
3、 善于思考,思维逻辑能力强,在校期间参与过项目实践者优先;
4、 具有良好的沟通能力和团队合作精神,有责任感;
管理培训生(远程直销方向)---将有为期半年的定向培养
岗位职责:
1、愿意从基层扎扎实实做起,了解基层业务并实践;
2、善于在实践中学习业务和管理知识,并善于在工作过程中发现和解决问题;
3、乐于接受在实践中磨炼和提高,为将来可以胜任管理工作打下坚实基础; 任职要求:
1、 统招一本以上学历,国家211、985重点院校2012届本科或硕士应届毕业生;
2、 具备良好的沟通能力和亲和力,销售服务、管理意识强;
3、 工作踏实、执着,积极主动,善于学习。
4. 希望在销售市场领域有所作为的年轻人。
北京市场专员
职位描述:
1.负责北京范围内所管区域的市场推广、宣传及部分销售工作;
2.拓展所管区域市场,同时维护所管区域合作关系;
3. 针对所管区域,调整市场策略,深入挖掘新的宣传模式。
任职资格:
1. 国家统招正规大学,专科以上学历;
2. 具备良好的沟通能力、语言表达能力;
3. 富有开拓进取精神及顽强的工作意志,具备强烈的责任感及工作激情,为人豁达、勤奋、执着。
4. 具有相关工作经验者优先考虑。
语文课程编辑
岗位职责 :
1、调研客户需求,设计课程方案
2、督促老师按计划完成教案准备,审核加工教案。
3、按流程完成课程拍摄、制作与发布,对课程质量负责。
任职要求 :
1、本科学历,中文相关专业毕业;
2、有教师工作经验者、或有相关工作经验者优先;
3、熟练使用office等办公软件,学习能力较强;
4、工作认真、踏实、细致、负责,有较好的沟通能力和协调能力;
5、高中教育阶段为文科生优先。
物理课程编辑
岗位职责 :
1、调研客户需求,设计课程方案
2、督促老师按计划完成教案准备,审核加工教案。
3、按流程完成课程拍摄、制作与发布,对课程质量负责。
任职要求 :
1、本科学历,物理相关专业毕业;且生物成绩较好。
2、有教师工作经验者、或有相关工作经验者优先;
3、熟练使用office等办公软件,学习能力较强;
4、工作认真、踏实、细致、负责,有较好的沟通能力和协调能力;
5、高中教育阶段为理科生优先。
化学课程编辑
岗位职责 :
1、调研客户需求,设计课程方案
2、督促老师按计划完成教案准备,审核加工教案。
3、按流程完成课程拍摄、制作与发布,对课程质量负责。
任职要求 :
1、本科学历,化学相关专业毕业;
2、有教师工作经验者、或有相关工作经验者优先;
3、熟练使用office等办公软件,学习能力较强;
4、工作认真、踏实、细致、负责,有较好的沟通能力和协调能力;
5、高中教育阶段为理科生优先。
高级课程顾问
工作职责:
1、 通过电话及时有效与客户沟通,介绍产品传递理念。
2、 为学生选择合适课程,高效发挥产品作用,并完成公司制定的销售目标。
3、 通过优质、专业的服务,提升客户口碑。
岗位要求:
1、 大专以上学历。
2、 具备良好的沟通能力和亲和力,善于与人交流,销售意识强,能承受工作压力。
3、具有优良的品德,热爱教育事业;有良好的学习能力,自我约束和时间管理能力。 4 、具有敬业精神,工作责任心强;诚信、开朗、积极、热情,有良好的团队合作精神。
咨询客服
岗位职责:
1、 负责接听客户呼入电话,处理呼入定单;
2、 解答客户产品使用中的问题;
3、 处理客户投诉建议。
任职要求:
1、 国家统招大专以上学历;
2、 沟通能力强,心态平稳;
3、 责任心强,耐心、细致,办事麻利;
4、可接受倒班制工作。(下晚班公司提供班车)
联系方式: 公司网址:www.jiandan100.cn
公司地址:海淀区上地东路1号盈创动力大厦E座702B 乘车路线:乘轻轨13号线在西二旗站下
乘公交:392,运通114,333,362,963,531到城铁西二旗站下,往北走400米 乘公交:运通205,365,982,447,509,运通112,到软件园广场下往东400米 联系电话:58858883-8083 ,(穆老师,武老师) 如有意向请投简历至: hr@jiandan100.cn
范文三:软件开发工程师
软件开发工程师(VC++)模拟试题(一)
来源:日照智睿培训认证管理中心 发布时间:2009-08-21 查看次数:28
国际信息化人才资格认证
软件开发工程师(VC++)模拟试题(一)
第一部分 模拟试题
第一题 单项选择题
1、下面字符串中可以用做C++标识符的是( )。
A、_521 B、computer~1 C、case D、3var
2、面向对象程序设计思想的主要特征中不包括( )。
A、封装性 B、多态性 C、继承性 D、功能分解,逐步求精
3、下列十六进制数整型常量的写法中,错误的是( )。
A、0xaf B、2f0x C、0X1b D、0Xae
4、若int a=1,b=2;,则a︰b的值是( )。
A、0 B、1 C、2 D、3
5、选择出合法的if语句(没有int x,a,b,c;)( )。
A、if(a= =b)x++; B、if(a= b)x++; D、if(a= >b)x++;
6、若i为整型变量,则下面循环执行次数为( )。
For(int i=2;i==0;)
Cout
A、无限次 B、0次 C、1次 D、2次
7、在int a=4,* p\&a;中,*p的值是( )。
A、变量A的地址值 B、变量P的地址值 C、4 D、无意义
8、下面说明:
Int*pl,*p2,m=1,n;
则以下均是正确赋值语句的选项是( )。
A、p1=&m;p2=&p1; B、p1=&m;p2=&ms;*p1=*p2;
C、p1=&m;p2=p1; D、p1=&m;*p2=*p1;
9、考虑下面的函数原型:void testDefaulParam(int a,int b=7,char z〝*〞);( )
A、testDefaulParam(5); B、teseDefaulParam(5,8);
C、testDefaulParam(5,〝#〞) D、testDefaulParam(0,0,〝*〞)
10、下面说法正确的是( )。
A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C、类的内联函数必须在类体内定义
D、类的内联函数必须在类体外通过关键字inline定义
11、指向类X中类型为type的数据成员的指针的说明形式为( )。
A、typeX::* pointer B、X::type * pointer
C、typeX*:: pointer D、X::*type pointer
12、C++有( )种联编。
A、1 B、2 C、3 D、4
13、下列程序段中具有相同值的是( )。
class Base{int b;};
chass Base1:virtual public Base{int b1;};
chass Base2:virtual public Base{int b2;};
chass Derived:public Base1,public Base2{int b3;};
Derived d;
A、d.b与d.Base1::b B、d.Base1::b与d.Base1::b1
C、d.b与d.b3 D、d.Base2::b与d.Base2::b2
14、如果表达式—x/y中的“--”和“/”都是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为( )。
A、operator/(x.operator—(),y) B、operator/(operator—(x),y)
C、x.operator—().operator/( y) D、y.operator/(operator—(x))
15、在进行了任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入操作的函数的函数名是( )。
A、fail B、bad C、eof D、good
16、C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( )。
A、增加了一些新的运算符 B、允许函数重载,并允许设置缺省参数
C、规定函数说明符必须用原形 D、引进了类和对象的概念
17、下列哪个是C++语言的有效标识符?( )。
A、_No1 B、No.1 C、12345 D、int
18、设有定义int x;float y;,则10+x+y值的数据类型是( )。
A、int B、double C、float D、不确定
19、下面关于数组的初始化正确的是( )。
A、char str〔〕=﹛〝a〞,〝b〞,〝c〞﹜
B、char str〔2〕=﹛〝a〞,〝b〞,〝c〞﹜
C、char str〔2〕〔3〕=﹛﹛〝a〞,〝b〞﹜, ﹛〝c〞,〝d〞﹜,﹛〝e〞,〝f〞﹜﹜
D、char str()=﹛〝a〞,〝b〞,〝c〞﹜
20、决定C++语言中函数的返回值类型的是( )。
A、return 语句中的表达式类型 B、调用该函数时系统随机产生的类型
C、调用该函数时的主调用函数类型 D、在定义该函数时所指定的数据类型
21、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( )。
A、公有类型 B、私有类型 C、保护类型 D、析构函数
22、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。
A、友元函数 B、虚函数 C、构造函数 D、析构函数
23、类的析构函数的作用是( )。
A、一般成员函数的初始化 B、类的初始化
C、对象的初始化 D、删除类创建的对象
24、下列说法正确的是( )。
A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C、类的内联函数必须在类体内定义
D、类的内联函数必须在类体外通过加关键字inline定义
25、下面对静态数据成员的描述中,正确的是( )。
A、静态数据成员可以在类体内进行初始化
B、静态数据成员不可以被类的对象调用
C、静态数据面员不能受private控制符的作用
D、静态数据成员可以直接用类名调用
26、下面对于友元函数描述正确的是( )。
A、友元函数的实现必须在类的内部定义 B、友元函数是类的成员函数
C、友元函数破坏了类的封装性和隐藏性 D、友元函数不能访问类的私有成员
27、在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( )。
A、派生类的对象可以赋给基类的对象 B、派生类的对象可以初始化基类的引用
C、派生类的对象可以直接访问基类中的成员 D、派生类的对象的地址可以赋给指向基类的指针
28、下列关于多态性的描述,错误的是( )。
A、C++语言的多态性分为编译时的多态性和运行时的多态性
B、编译时的多态性可通过函数重载实现
C、运行时的多态性可通过模板和虚函数实现
D、实现运行时多态性的机制抵消为动态绑定
29、当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为
( )。
A、ios::in B、ios::out 联 C、ios::in︱ios::out D、以上都不对
30、下面程序的输出结果是( )。
#include
class example
﹛
Int a;
public:
example(int b)﹛a=b++:﹜
void print()﹛a=a+1;cout
void print()const﹛cout
﹜;
Void main()
﹛
example x(3);
const example y(2);
x.print();
y.print();
﹜
A、22 B、43 C、42 D、32
第二题 填空题
1、在C++语言的结构化程序设计中, 是程序的基本组成单元;在C++语言的面向对象设计框架中, 是程序的基本组成单元。
2、假设int a=1,b=2;,则表达式(++a/b)*b—的值为 。
3、C++语言提供的基本控制结构可以分为3种类型:顺序结构、 和循环结构。
4、C++语句const char*const p=〝hello〞;,所定义的指针P和它所指的内容都不能被 。
5、C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 方式。
6、对于下面定义的类My Class,请在函数f()中添加对象成员把n的值修改为50。 class My Class
﹛
public:
My Class(int x)﹛n=x;﹜
void SetNum(int nl)﹛n=nl;﹜
private:
int n;
﹜;
Void f()
﹛
My Class * ptr=new My Class(45);
﹜
7、继承的方式有公有继承、私有继承和 3种。
8、表达式operator+(x,y)还可以表示为 。
9、类模板的使用实际上是将类模板实例化成一个具体的 。
10、一般说来,要在C++中重载运算符@,只需定义一个名为 的一个函数就可以了。 第三题 改错题
使用Visual C++6.0打开考生文件夹下的工程test1_1,此工程包含一个源程序文件test1_
1.cpp,但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果如下: Constructor called.
Default constructor called.
Area is 6
Area is 0
Area is 6
源程序文件test_1.cpp清单如下:
#include
class RectAngle
﹛
private:
double ledge,sedge;
public:
RectAngle()
﹛
Cout
﹜
RectAngle(double 1,double s)
﹛
ledge=1;sedge=s;
cout
﹜
Void Set(double1,double s)
﹛
Ledge=1;sedge=s;
﹜
Void Area()
﹛
cout
﹜
﹜;
Void main()
﹛
/* * * * * * * * * * * * * * * * * found * * * * * * * * * * * * * * * * */
RectAngle Rect1(2,3);
RectAngle Rect2(1);
/* * * * * * * * * * * * * * * * * found * * * * * * * * * * * * * * * * */
Rect2.ledge=0;Rect2.sedge=0;
Rect2.Area();
Rect3.Area();
﹜
第四题 综合应用题
使用Visual C++6.0打开考生文件夹下的工程test1_3。此工程包含一个test_3.cpp,其中定义了类
circle和column,其中column类由circle类protected派生,但两个类的定义并不完整。请按要求完成
下列操作,将程序补充完整。
(1) 定义类circle的保护数据成员r和area,它们都是double型的数据。请在注释〝//* * 1* * 〞之后添加适当的语句。
(2) 添加类circle的无参数的构造函数,使circle对象的r默认值为0,请在注释〝//* * 2* * 〞之后添加适当的语句。
(3) 添加派生类column构造函数的定义,传入的参数为double型的height和radius,并将其分别赋值给数据成员h和基类的r,请在注释〝//* * 3* * 〞之后添加适当的语句。
(4) 完成派生类column的成员函数print的定义,使其以格式〝r=_area=_〞先输出半径r和底面积area,再以格式〝h=_vol=_〞输出高h和体积vol的值,请在注释〝//* * 4* * 〞
之后添加适当的语句。
输出结果如下:
r=1 area=3.1416
h=2 vol=6.2832
注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。 源程序文件test1_3.cpp清单如下:
#include
const double pi=3.1416;
class circle
﹛
protected:
// * * 1 * *
public:﹜
// * * 1 * *
circle(double radius)﹛r=radius;﹜
void print()
﹛
area=r*r*pi;
cout
﹜
﹜;
class colunm:protected circle
﹛
Protected:
Double h;
Public:
// * * 3 * * Void print() ﹛
// * * 4 * * ﹜
﹜;
void main() ﹛
column Col(1.0,2.0); Col.print(); ﹜
第二部分 参考答案
第一题 单项选择题
1—5 ADBDA 6—10 BCCCB 11—15 ABABC
16—20 DACAD 21—25 DCDBD 26—30 CCCDC
第二题 填空题
1、函数 类 2、2 3、选择结构 4、改变 5、传地址
6、ptr->SetNum(50); 7、保护继承 8、x+y 9、类 10、operator@ 第三题 改错题
(1) 错误:Rect2(1)
正确:Rect2
(2) 错误:Rect3
正确:Rect3(Rect1)
(3) 错误:Rect2.ledge=0;Rect2.sedge=0;
正确:Rect2.Set(0,0);
第四题 综合应用题
(1)double r;
double area;
(2)circle()﹛r=0;﹜
(3)column(double radius,double height):circle(radius)﹛h=height;﹜
(4)circle::print();
cout
范文四:软件开发工程师
软件开发专业
行业前景分析:
随着计算机技术广泛应用到社会生活的各个领域,使得软件开发需求持续攀升。据相关数据显示,全国IT 行业软件人才总需求量达数十万之多。软件人才主要在各大软件公司、企事业单位、高等院校、各大研究所、国防等重要部门从事软件设计开发、应用与研究工作。软件工程师的薪资待遇一路高涨,具有基本项目经验的毕业生实习起薪已经达到2000—3000元人民币,毕业一年后,在发达城市(如北京、上海等)待遇达到4000—9000元人民币左右,内陆省会城市一般在2000—6000元人民币左右。目前,此专业最具代表性的公司有美国微软公司、Adobe 公司等。其中微软公司创始于1975年,是全球最大的电脑软件提供商,年营业额达数百亿美元。
课程设置:
核心课程设置:
范文五:认证考试中国式程序员软件开发工程师的爱称——IT农民工
中国式程序员软件开发工程师的爱称——IT农民工
实际上IT行业在中国绝对是一个朝阳的行业,而程序员的工资也比普通的白领要高,但为什么中国的程序员总自嘲为IT农民工或者说是苦逼的程序员呢,
对于“IT农民工”这个称呼,有些人喜爱有加,有些人不以为然。区别在于对待“农”这个字的感觉。农当然是指农民,这个词寓义很丰富,既可以说它伟大,也可以说它渺小。说它伟大,是因为我们的生存离不开农民,而且中国一直是个农业为本的国家,曾经说是百分之八十的人是农民,这意味着往前翻?两代,你我众人皆是农民出身。以此观之,农可谓大哉。说它渺小,则是因为大家的观念里,农民意味着有很多缺点,冠冕堂皇的说法是劣根性,比如目光短浅、思维陈旧、自私小气等等,总之是为我们受过教育的人群所看不惯的种种毛病——这些毛病虽然我们自己也有,但是我们看不见——于是乎“农民”成为了骂人时常用的字眼。
其实,把自己的编程生涯与田间地头的锄禾日当午对应起来,确是有那么些相似之处的。你能想象得到,田间整齐栽种的秧苗,与屏幕上显示的错落有致的代码行有几分神似。各种庄稼的种植是有讲究的,正如你要注意编程风格。施肥灌溉,犹如你对代码进行的编译链接。除草除虫,自然是在做着debug 。你挑水来我浇园,大概是在小菜园中进行的结对编程。因为靠天吃饭,农民们也要学点云计算,去五道口职业技术学校进修的人也多起来了。收割的季节,活多人少,也常常是要搞外包的,因为deadline 很重要。不过坦率地说,“IT农民工”这个叫法让人体会更多的是滑稽、搞怪、无厘头。毕竟一个是简单的体力劳动,一个是高智商的脑力劳动,不可同日而语。而程序员却偏爱这样的时空错乱的感觉,自嘲
(我就是个农民~)的同时却又自命不凡(我是IT农民工我怕谁,~),特立独行极了。
IT农民工的草帽底下,是一颗充满创造力的自由不羁的头脑。他们遵从最佳实践而痛恨陈规教条,他们欣赏天才而不迷信权威,他们喜欢思考而不轻易苟同。他们是技术人,却追求人文理想;他们敢于呐喊,说出自己的观点和主张,也更善于脚踏实地,用自己的点滴工作去改变现状。IT农民工们是勤奋的,加班加点的工作是常有的事情,城市夜间的灯火,有多少是在IT农民工们的办公室和居所点燃,周末四处举办的技术交流和讲座,又活跃着多少IT农民工的身影,线下读书,线上讨论,冥思苦想,动手实践,新技术驱动着IT农民工们的脚步,IT农民工们在改变着我们的生活。生存离不开农民,生活离不开IT农民工。
首先, 问题的题目”为什么中国的程序员总被称为IT农民工,“是有一定的可辩论性的,因为我所了解的事实是,大多时候是“中国的程序员自称为IT农民工”,很少有不同行的人称呼程序员为“IT农民工”。同样的词在熟人说来是亲切、是自嘲、甚至可以是自讽,但在外人说来,那不仅是不尊重,还有可能是侮辱。
其次,身处互联网行业,程序员工作辛苦,加班再正常不过,项目进度、突发情况、公司文化都可能成为加班的理由,虽然收入不一定差,但够苦逼。另外一方面, 程序员鱼龙混杂,水平参差不齐,而互联网向来是一个强调能力的开放行业,有多少能力就拿多少工资,这样注定有相当大一部分因为水平不够,导致收入问题成为“IT农民工”的心病。
而“ 工作辛苦”、“收入低”和农民有类似,所以无论自嘲或者是被别人冠以“IT农民工”的称谓,辛苦、收入低这两个标志包含其一的可能性非常大。如果两者兼有,那就是纯种?IT农民工?一枚,够苦逼。
吐槽点一:
国内目前的软件行业和制造业非常相似,以来料加工式的低水平重复劳动为主。就好像农民仰赖着老天提供种子、土壤、阳光和水,中国程序员仰赖着洋人提供设备、技术和理念,从微处理器、操作系统、编程语言、编译器、IDE、编程框架到应用程序,除了做晶圆的沙子是本地产的,几乎没有什么属于自己,每天的工作内容主要就是把别人已有的东西按照自己的——甚至不是自己的——需求装配一下,没有什么创造性,也很少有业界的技术积累和传承出现,即便有也流传不开,毕竟程序员文化水平普遍不高——「有知识,没文化」,就是说这样的状况。记得劣质盗版VCD满天飞的时代,有个程序员做出一款丑陋但是解码容错能力很好的播放器,贴合国情,一炮成名,结果好容易写本书,没有几个句子能写通顺的。这种技术书籍的拙劣状况一直保持到现在,而且拙劣的方式更加多样化了。没有技术传承,没有文化圈,不乏有人上大学之前对编程一窍不通,选择计算机培训只是因为计算机「热门」而已。如同包办的婚姻,没有一丝爱情,最后以编程为业,只是因为也不会做别的什么了。
吐槽点二:
国内程序员不论薪水如何,的确很苦。许多人长期被迫加班,最后甚至会成为一种自愿的习惯。可生产率和产品质量并未因此而提高,就像千百年来用惯锄头和镰刀的农夫,很少有人会想要去学习、改进自己使用的工具和习惯,甚至对于新兴的思潮和方法抱有非理性的抵触情绪。生活如此悲惨,却又如此不思进取,和农民的问题很相似。再加上,就好像城里人眼中的乡下人一样,程序员们木讷、邋遢、缺乏情调、土。可偏偏又自负而且互相看不起。
code monkey是指以计算机程序员或者那些以编码为生的人。这个术语可能包含轻微的贬义,这意味着开发者可能编写代码,但不能执行复杂点的任务,比如:构建软件结构、分析和设计,一般指初级程序员。
其实code monkey这个术语在层次划分上还是有点困难的,因为像那些真正熟练的开发人员或程序员他们仍然在做编码工作。或许像这样划分会好一点:
1. software architect:软件架构师
2. coder:编码员
3. software analyst:软件分析师
4. software engineer:软件工程师
5. programmer:程序员
或许还可以在前面加“初级”、“中级”、“高级”这几个前缀。这些都反映了一定的等级、技能水平和薪资。
请注意:它只能在小范围确定的某种层次结构,例如在一个公司、甚至一个部门。一个在A公司工作的“程序员”可能比B公司的中级架构师所要求的技能更多.
总而言之,在中国做一个程序员,很少有什么事情能让人觉得自己从事的工作很体面。那么,在整个社会以自嘲为风尚、许多行业都喜欢好勇斗狠地自轻自贱的状况中,使劲贬低自己的职业,自嘲和群吵时,就不会有什么心理包袱。也算是程序员自我调整的一种模式和态度,想要成为所谓的?IT农民工“吗,快快加入上海电脑培训,工友们在等待你的加入~