导航:首页 > 程序命令 > se100程序员第一课

se100程序员第一课

发布时间:2025-01-29 15:07:43

1. 音泰思(成都)福利、待遇、发展如何

  1. 业务范围:音泰思成立于2003年,从事对日外包起家。
    到目前为止,业务除对日外包以外,还有日企订单和国内客户软件订制。

  2. 组织机构:
    现在的音泰思分为四个部门,业务1部~3部从事日本业务。业务4部即以前的
    金融事业部和国内部以及日企部组成,主要从事的是深圳证券业务、国内一些
    客户的软件需要(市场部接单)以及日本在华企业(主要是丰田的几家国内合资企业)
    具体来说
    1-3部:日本NRI的业务,还有新日铁NSSOL,最近好像接了个JSSOL的项目叫ATOM。
    范围主要是基本设计以后各阶段的工作。
    4部:广汽丰田、四川丰田、长春丰田的业务,深国投、还有上海或者深圳分公司
    接的零星订单。

  3. 经营层:
    董事长: 谭玉峰 空中飞人,难见其面。
    总经理: 钱胜 ,以前四凯的。
    总经理助理:肖昱,为人耿直,有点吊。
    品质总监:彭立微,口香糖随时嚼着,号称“代码量”超大,没有亲见。
    人力资源:阳宇,也四凯的,以前做项目经理和部长,据说搞COBOL技术不错。
    市场部:牛振宇,丰田业务商务主要是他的。
    系统工程部:孟广云,管网络安全,硬件这些。
    品质管理部:彭国民,ppqa,管质量。
    技术总监:李红兵,技术挺牛x的,但存在本身就是一个悲剧,
    因为公司项目从不重视技术含量。

  4. 业务部长及PM层(仅听说或者接触到的):
    张昂:此人技术平平。假打至极,相当会装,日语将就。
    李红超:以前金融事业部的,公司呆了多年。
    杜娟:日语不错,技术一般。
    朱微:同上。
    方国栋:小伙子年纪轻轻,做事倒还认真,但不会做人处事,
    其所带项目还没有任何人未与其吵架,最不和谐的PM。
    余秀兰:无技术,擅长催着你做事,逼着你不断向前赶进度。
    糜良平:日本部的,为人刚愎自用。据说此人超级重视跟他的关系,
    据说你跟他关系好,一至两年你可以跳到高级SE,且出差去日本挣钱。
    颜沛与柏兴媛:还不错,俩口子。还算比较会做人处事,据说项目带得还是挺好的。
    何加力:管总务的,总体来说,工作大家还是比较认可的。
    胡舫:人事部美女部长,但阳宇管人事后,就退居了,貌似只执行未决策了?
    雷常春:技术达人,以前中迅的,要学技术的,就跟他了,日语也还好。
    貌似还有其他的,不过庸碌之辈,不值一提。

  5. 工资待遇:
    2009年以前,公司是实行的还算是固定工资制,进公司时会核定给你一个工资标准,
    然后加些补助,加些加班费,再减除你的个税和五险一金,每个月不会怎么变化。每年
    有晋升机会,按部门人数多少和表现给一定比例,比如一个部门两到三个,人少就只有一个。
    一年两次晋升。2008年以前除晋升外,每年每个人都会得到几百块的加薪,300~500不等。
    表现稳定,比如你进公司是3000的话,进来三四千,五六千还是可以保证的。
    但请记住这些制度的年份——2009年以前。
    2009年开始,每年的晋升压缩得相当厉害,不是每个人都能得到工资上的增长了。
    2010年春节过后,阳宇上台实行了新的工资体制。当然,事先还了个末位淘汰制。将一批
    表现不积极被人评价不坐佳的人,发给“遣散费”从几千到几万不等,让其主动离职。结果
    现在工资体制,总的来说,工资=基本工资 + 绩效工资。其中绩效占20%左右,是浮动的。
    也即,你如果4000元的话,你的绩效约是800元,也即你可能拿的工资是3200~4000.
    基本工资是固定的,是入职时公司给你定级别,有大级和小级,小级共9级:
    PG(D级):即程序员级,分为三个大级,3 x 9个小级。 如果你是应届生,你的级别是D1.1的话,
    即最低的话,应该是两千左右,以后每个小级涨个两百。当涨到D1.9时,就变为D2.1级,
    然后就每年等待继续晋升的机会。当你走完了程序员的级别,跳到他们的SE的级别,
    也就四五千吧,但有3 x 9=27次小的晋升才行,当然你可以努力工作,天天加班,
    创造一年升个大级的奇迹,呵呵。
    SE(E级):即软件工程师级,也一样,有E1.1~E3.9的大小级别,够你向上攀爬了。
    一般来说E1.1也就是4000起,加上绩效也近五千,
    一般社招进来的大概是这个级别。
    应届生除非相当强,一般会从上面的PG层做起,然后等待升级
    M级:PM层的,初级的也就六七千吧,高级的要好些。
    奖金:以前是1.5个月的样子,年终发;现在新的制度实施后,还不知多少。半年核算一次,年终发。
    当然辞职走的话,满了半年的,还是会一起算给你的啦。
    但未满半年,想都别想了。
    个税:按国家规定,你应得减去保险之类的金额套国家的个税缴纳标准即是。
    五险一金:这个是争议最突出的。
    公司没有按你实际的工资来缴纳保险和公积金,
    而是学四凯,钻法律的空子,他们把1700称为固定工资,
    统一按1700这个标准给员工交保险和住房公积金。
    所以你想按这个标准养老,估计等退休后只能喝西北风了哈。。。
    据说这个标准今年上调了1次,因为1700已经低于成都市的平均工资标准了。
    想想这个公司每年对外宣称是纳税大户,
    真是个鲜明的对比和讽刺!!!
    其他:过日语二级有补助,二级500,一级1000,但你若是做国内项目就没这个了,因为他们认为你“工作不需要日语”。
    加班:根据级别不同有级差。
    你若是PG程序员,单价10元/时;初级SE是14.5元/起。
    因为加班的低廉特性以及成都程序员开发人员的低价,所以这个公司养成了加班的传统。
    而且会根据你加班多少加班态度与否评判你工作能力和工作态度喔,
    所以加班,请不要有情绪,
    否则你就别想升级了,哪怕是1个小级,甚至是会降你级的喔,新制度有此规定的~
    出差:国内部还算有,日本部除了极少人可能有去日本的机会,根本不大可能有你出差的份儿。
    成都公干的没有出差的说法,只有几十块钱的补助,其中包括你的吃饭钱。
    一类地区,程序员也只有几十元,SE也不会超过100,所幸的是,你吃饭还算够的,因为住的话还是可以报销的。
    日本出差,分两话种,三个月以内称为派遣,三个月以上称为长驻。长驻的话PG 18万日语/月,SE 的话20多万/月吧。
    你去了之后,这边公司不会再给你买保险了,你得自己回来交。
    派遣的话,工资加补助。

  6. 总之一句话,PG(程序员)2000+起至4000多吧。应届生若不是硕士之类的,应该是2000元多最底层起。社招的也不会太高,毕竟这个公司不重视程序员的,即使你技术再好,最多也就三四千吧。。。当然偶尔也有几个高级程序员,属于那种埋头苦干+任劳任怨+起早贪黑型,如果你是,五六千也是可能的,但这种人我晓得就1个。 SE(这个公司的SE级别),技术可以不好,但日语不能不行。如果你日语平平,会认为你不能把握业务,
    也就四五千罢。
    另外最近听说音泰思在遂宁搞了个啥子代码工厂,招一些中专大专生专门生产代码,看来真是要把这个绩效整到底了,还真被有些领导人屡试不爽,奉之为圭臬。可惜人员溜走了大半,好的人才都去了IBM、华为、金蝶、中软、海辉之类的。。。
    最后再说一点,就是进这个公司,若没有日语基础或者日语本身不太好的同学,你需要参加公司的培训,专门整了一个“英才学校”来培养你,从软件开发的模式到日语,学校是公司办的,老师是公司里边的员工了。说这个的目的,请注意一个重要的东西,就是要在培训完了之后你入职的时候签个啥子合同。内容嘛最重要的一条,大家记清楚,就是你得为公司服务满三年,也就三年了,若不满三年提出辞职,你得交¥10000元的违约金,你没看错,是一万元。
    也即,你干了1年,10000/3 *2=6667的违约金。
    还有记得提醒你,新的工资实施以后,奖金分半年奖和年终奖两次计算,但只有年终才会1次性发。同时只有服务满半年才有的。若是干完1-5月份,6月份辞职,不计算这半年的奖金的。辞职的兄弟姐妹一定谨记。

2. 应该怎样学习java顺序是什么

不知道Java 学习顺序的话,我提供你一条学习线路图!

按照视频学习的过程中,学习方法也是很重要的!一定要记得勤记笔记,整理程思维导图,方便后续复习方便。

第一部分:JavaSE:Java语言最基本的一套库

学习JavaEE或JavaME之前,JavaSE是必学的。

* Java开发环境搭建

* Java基础语法

* 面向对象

* 数组

* 异常

* 集合

* 线程

* IO流

* 反射机制

* 注解Annotation

* 网络编程

第二部分:数据库 【MySQL + JDBC】

* 只要学习编程,数据库是一定要学习的,是一门公共的学科。

* java、C、python、C#等程序员都需要学习数据库。

* 数据库产品很多: MySQL、Oracle、SqlServer、DB2......

* 我们动力节点数据库课程包括:MySQL + Oracle

* Oracle:银行、政府使用oracle的较多。

* MySQL:互联网公司、一般企业使用MySQL较多。

* Oracle我们是提供视频的。课堂上不讲。

* 我们课堂上讲MySQL。

* Java语言链接数据库:JDBC

第三部分:WEB前端

* 系统结构:B/S【Browser/Server】 C/S【Client/Server】

* WEB是网站的意思。WEB前端是:网站当中的页面。

* WEB前端程序是运行在浏览器当中的。

* HTML5 + CSS3 + JavaScript(JS)

* WEB前端也有很多框架:

- jQuery

- Bootstrap

- Vue

- NodeJS

- AugularJS

- RectJS

- LayUI

- EasyUI

.....

第四部分:JavaWEB

* Servlet

* JSP

* AJAX(是JavaScript的一部分语法,专门做页面局部刷新)

第五部分:JavaWEB项目

* 做一个B/S结构的项目,将WEB前端和JavaWEB内容做一个整合练习。

* 其实到这里为止,所有的系统都可以做了。但是用的技术很Low。没有用框架。

3. 做一个java高级程序员甚至架构师 应该掌握哪些技术

1、语法:

Java程序员必须比较熟悉语法,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。

2、命令

必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:

appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver,

如果这些命令你没有全部使用过,那么你对java 实际上还很不了解。

3、工具:

必须至少熟练使用一种IDE的开发工具,

例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,

包括进行工程管理、常用选项的设置、插件的安装配置以及进行调试。

4、API:

Java的核心API是非常庞大的,但是有一些内容笔者认为是Java程序员必须熟悉的,否则不可能熟练的运用Java,

包括:

java.lang包下的80%以上的类的功能的灵活运用。

java.util包下的80%以上的类的灵活运用,特别是集合类体系、规则表达式、zip、以及时间、随机数、属性、资源和Timer.

java.io包下的60%以上的类的使用,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。

java.math包下的100%的内容。

java.net包下的60%以上的内容,对各个类的功能比较熟悉。

java.text包下的60%以上的内容,特别是各种格式化类。

熟练运用JDBC. 8)、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java.

AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。

Swing的基本内容,和AWT的要求类似。

XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。

5、测试:

必须熟悉使用junit编写测试用例完成代码的自动测试。

6、管理:

Java程序员必须熟悉使用ant完成工程管理的常用任务,

例如工程编译、生成javadoc、生成jar、版本控制、自动测试。

7、排错:

应该可以根据异常信息比较快速的定位问题的原因和大致位置。

8、思想:

必须掌握OOP的主要要求,这样使用Java开发的系统才能是真正的Java系统。

9、规范:

编写的代码必须符合流行的编码规范,

例如类名首字母大写,成员和方法名首字母小写,方法名的第一个单词一般是动词,包名全部小写等,这样程序的可读性才比较好。

10、博学:

Java程序员除了精通Java意外,还要掌握J2EE 、Oracle 、WebLogic、Jboss、Spring、Struts、Hibernate
等流行技术,掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等。

想要学好Java技术,成为一名优秀的程序员,郑州的童鞋,可以选择尚学堂


4. JAVA程序员需要掌握什么知识

给你个参考吧。
作为一个合格的Java软件工程师必须具备的条件?

这个问题是我一直想知道的。但是它又分为很多个方面...
比如,是掌握具体的技术,
还是,拥有很强的自学能力?

现在的软件方面跟新和升级特别快,
无论是什么知识,当你真正掌握它的时候,也许就已经被淘汰了。
所以这就要求我们不停的去学习...
所以自学能力很重要.
但是我觉得自控能力更重要...(悲哀...今天看了一天动画...)
我自认为是没有什么自控能力的人...

好了,再来说说技术方面。
到底现在该掌握些什么具体的知识呢?
这里,我真羡慕.net程序员...
从头到尾就一个.net framework(.net框架),
这样就可以很集中精力去深入学习它,而且不用担心会被淘汰...
而Java这边,洽洽相反框架满天飞,而且各有所长...
这就难免让人需要经历选择性的痛苦...(虽然原理都差不多)
而且还要根据公司的不同而使用不同的组合...
这就产生了n种集成方案...(崩溃啊...)
所以要全部学会几乎不可能啊...
虽然是这样,但是有点挑战性才有意思嘛...呵呵...

那么一个合格的java软件工程师究竟需要掌握哪些具体的知识呢?
下面就我个人的角度来总结一下,如有不足,也请高手指出。
(ps:本人只列出普遍常用的知识)

首先当然是Java语言本身了。Java语言的创始人曾说过"Java=C++--"。
什么意思?就是Java语言是在C++的基础上减去一些不必要的东西,使其更为实用,更具有生产力。
Java语言的语法很简单并不像C++那样复杂.(本人曾经接触过C++...伤心的经历...)
很多较为复杂的数据结构Java都能简单实现,而C++较为麻烦。
其中很大的原因是因为Java是单根结构.
而且Java的垃圾回收机制也有很大的功劳.(.net的垃圾回收机制也是Java的灵感)
但是如果想深入底层了解Java还是需要费很大的功夫的...
比如,你要学会javap命令去反编译java文件然后再去看懂那些反编译后的结果...
这样你才能了解Java语言的原理。
很多情况下不同的代码,但是最后产生的字节码是相同的。
也有些情况,虽然代码只相差一点但是效率是天壤之别。
(例如JDK5新添加的StringBuilder和StringBuffer的区别)
这些在都可以反映在字节码里。
关于Java语言的问题不是本文的重点,我就不多说了。
总之学好Java这门语言是基础中的基础。

其次,说到Java语言就不能不说面向对象(OO)。
Java语言的产生也有很大的一部分是为了生成一个具有生产力的OO语言。
为什么这样说?
在早些年代OO的思想虽然被提出,但是那些纯粹的OO语言却没有丝毫的生产力。
(如出名的:smalltalk它是100%的OO)
而Java在保持高度的OO的前提下更注重生产力。
(ps:Java是98%的OO,其中8种基本数据类型,static关键字,运算符等,这些都不OO)
所以随着软件工程的庞大OO的思想很重要。

好了,到这里如果以上你有所了解,并掌握的一般。那么就可以继续往下学习:
如果你想掌握Java语言中更精髓的东西,那么我建议你可以做一些小的桌面应用程序。
其中,你会学习到另一些知识:
并发,IO,GUI,AWT,Event,Listener,Socket,Reflect等java更深层的东西。
(当然,有些只需了解,因为有些东西将来在做B/S结构的系统上是用不到的...
如果将来你想从事嵌入式开发,这些你就要多一点了解了。
很可惜,我还没有想过去做那个...
还记得当我第一次了解AWT里的Event和Listener的实现方式后,
我觉得JDK的设计人员真是厉害,设计的是那么的巧妙,第一次感觉代码是那么优美,
里面用到了各种设计模式,真是让人惊讶。
遭了,又在自我陶醉了...)

回到正题,关于Java语言的基础,我就先讲到这。
当我们掌握了Java之后呢?
真正的Java开发现在才是开始:
这时我们必须要接触另外一样东西,
没错,那就是数据库!
数据库的重要性就不用我在这里强调了吧?
无论你学习什么技术,数据库都是必备品。
作为Java程序员,我们不是DBA,我们没有必要掌握太多的数据库的管理知识。
我们只要知道如何连接数据库进行访问和CRUD操作,并对一些地方提高效率就可以了。
如创建索引和适当的使用存储过程即可。

首先,学习什么样的数据库呢?
没办法,多了解一点吧...毕竟每个公司用的都不一样...
目前的4大主流数据库是必须要学习的:
DB2(IBM号称世界上用的最广泛的数据库,不过近些年已被MySQL慢慢侵蚀掉了.但是很多的大公司在用,毕竟是IBM啊。)
SQLServer(当年凭借SQLServer2000获得很大成功,由于和Microsoft的产品兼容很好,所以很受欢迎。)
MySQL(真正的轻量级啊...而且是低端的主流开源数据库,使用量已经超越DB2。)
Oracle("甲骨文","神谕","圣贤","哲人"...光是对Oracle这个单词的翻译就可以看出它多么拥有实力。不过大的有点夸张...)

好了,如果你已经会简单的使用上面的数据库了,那么就继续往下吧:
既然要访问数据库,那就离不开JDBC!
JDBC相信大家都知道,它只是一组接口,然后由不同的数据库厂家去实现,
这样用JDBC访问数据库的时候方法其实都是一样的,这里我就不多说了。
另外JDBC是将来ORM的底层实现,学习好了它,对ORM框架的实现就更为清楚原理。
下面重点要说说SQL语句。
SQL有2套标准(82和99),我不太确定...记得不太清楚了...
现在的数据库基本这2种都支持。
但是问题来了,不同的数据库,又对其改变了一点...
这是最令人头痛的...
也就是说,4种数据库,你就要记住4种SQL的区别是什么,虽然大体差不多,但是还是要区分开来的。
而且不同的数据库,对SQL语句又有不同的优化。
也就是同样的SQL语句在不同的数据库上执行的效率不同。
所以SQL语句也是一门必修之路啊...
而且不要看似简单,其实要想写出一条高效率的SQL语句很难啊...
尤其是在复杂的多表联合查询中,这种效率问题一定要考虑。
另外,最烦人的莫过于数据库程序设计。
每种数据库有自己的语法。如SQLServer里的T-SQL,Oracle里的PLSQL等...
使用这些语言编写触发器,存储过程等...自我感觉是最头疼的...而且用的不多...
了解一下就好...

好了,当学习完数据库.我们就可学习web开发了.
所谓的web开发,就是基于浏览器/服务器(B/S)的开发。
那么既然是在浏览器上跑的程序那么就离不开HTML、CSS、JavaScript、DOM等网页技术。
所以下一步就是学习HTML,HTML应该是最简单的标记语言.很容易就能学会。
根据web2.0的标准,XHTML将是规范。
所谓的XHTML其实和HTML4.0的规范差不多,就是标签的要求更加严厉了。
学习HTML的同时还要一起学习CSS,这个东西说简单,也简单,说难也难。就看你个人了。
但是毕竟我们不是美工,只要了解就好了。(有时我就在界面上消耗了很多时间...郁闷...)
JavaScript我个人建议还是要稍微花点功夫研究一下的...
毕竟后面涉及到Ajax和用户体验等方面需要用到它...
它是一门客户端脚本语言,即:浏览器解释执行。
是一种弱类型语言,但是研究起来还是很深奥的...
至于DOM本人还没有花时间研究过,不敢轻易下结论.

当完基本的网页技术后,就可以进入正题,Java在internet上的应用就从这里开始:
前面学习了网页技术后,我们就可以做出简单的静态网站。(即:没有与数据库交互.)
静态网站由后缀名为.html或.htm结尾。
但是静态网站是毫无用处的,所以我们要开发动态网站。
最古老的技术就是CGI(通用网关接口).
它根据浏览器端的http请求激活响应进程,每一个请求对应一个进程。(注意不是线程,是进程!)
当同时有很多请求时,程序挤占系统资源,造成效率低下。
目前流行的动态网页技术有:ASP、JSP、php、ASP.NET等...
这里我就不一一介绍他们了。关于他们的对比,网上比比皆是.
而今天的主角就是JSP!

JSP是什么?说白了就是在HTML里嵌入服务器端可执行的Java代码。
这里的Java代码和前面所说的Java代码是一样的。
这里要注意的是jsp最终会转换成servlet。
所以学好Jsp就要先学习servlet。
与applet对应,servlet顾名思义就是服务器端脚本。
这里是学习的重点。
其他的也没什么好讲的。

这里要掌握几个概念:servlet容器,IDE,taglib,DAO,MVC等...
servlet容器,就是解释执行servlet代码的地方。
IDE,前面我都没有提过,也就是因为前面的学习都很简单,并不需要IDE的支持。
而接下来的开发会比较复杂,文件数量的增多和管理会很麻烦,而且很多的API不可能都背下来。
所以这里就是使用IDE的时候了...至于用什么IDE本人觉得无所谓...
(我用的是最普遍的Eclipse,当然你也可以用NetBeans6.0以上版本.我觉得也很不错。)
taglib,这里用的比较少,以后学习框架用的比较多.
DAO,很重要。它的实现方式多种多样,值得研究。
MVC,很重要。但是重在理解,理解为什么要用MVC。
最后关于Http协议,Servlet容器里的线程池的实现等...
这些如果你有能力和时间就去看看...没有什么坏处...

学到这里,可能中间你会用到另一门技术XML!
作为java程序员来说,我觉的只要了解XML原理就可以了。
不可能还让你去写scherma或DTD的...
所以我们只要学习读写XML就可以了...(JDOM或DOM4J)

下面在来简单的说说ajax...
当你程序要求你在不刷新页面的情况下读取数据并显示,这是就是ajax的勇武之地.
如果你之前的javascript没有学的特别的牢固,也没什么关系,用框架吧。
所谓的ajax框架就是一个javascript的库。它简化并对javascript封装。
常见的ajax库有很多,这可以根据情况自己选择学习。
(dojo、prototype、jquery、dwr、ext等...)

等学习到了这里,你已经可以独立的开发一个简单的网站了。
但是,这里有很多的问题:
1.代码量大
2.开发时间长
3.系统扩展性差
4.虽然用MVC分层,但是JSP+Servlet+JDBC这种开发方式难以维护。(尤其是JSP里有大量代码,像ASP那样)
5.理论上不OO
6.效率低
7.安全性低
等等...
短短一时间我就能想到这么多的不足,证明这离企业级开发还有很大的差距.

那么正真的企业级应用是什么呢?
JavaEE的本质就是为了企业级开发...
可惜,至今还未能领悟JavaEE的核心思想...
但从技术角度,JavaEE拥有哪些技术呢?
貌似太多太多...EJB是JavaEE的核心思想...感觉有点类似.Net框架...即:一个框架包含所有功能.
可惜一直没时间学习过EJB...
所以我下面要讲的是如何针对上面的不足加以改进?
1.代码量大就造成"开发周期的延长"。而且自己写的代码有时会有漏洞,或效率上的问题。(如果你不是专家的话)
所以要解决这个问题就要引入"框架".
如果引入了框架,那么有些问题就可以迎刃而解。
1.代码量的减少。
2.开发周期的缩短。
3.效率提高一点。
4.安全性提搞了一点。
毕竟人家是顶尖的专业人士,写出来的代码肯定比自己写的健壮又高效。对吗?而且又可以减少代码量。

框架分很多种,就像上面的ajax框架一样,它也是一种框架。
下面就列出一些流行的框架:
MVC框架:Struts1.x,Struts2.x,JSF,webwork等...其中最令我期待的是struts2.
ORM框架:Hibernate3,Ibatis,jpa等...其中最令我期待的是JPA.
AOP框架:Spring2.5 貌似现在只流行这个...AspectJ都没人提...
至于EJB里的,我不太了解...
但是至少上面的是主流.如果遇到非主流...也就算我倒霉...再学呗...
至于系统扩展性和维护性差是系统架构的设计问题.
这个问题不是我在这里一句两句就能表达清楚的。
(前些日子搞了个泛型DAO模式,都研究了很久)
UML和design pattern是需要经验的...

在学习这些框架的过程中会有很多意想不到的事情发生...
再深入学习就是webservice和分布式了...
感觉我还没有触及到那个层次...
还差的远呢...不过慢慢来吧...

今天说了那么多就是想知道做为一个java软件工程师.到底需要哪些技术?
我很需要自我反思...
可能我今天说的都只是皮毛,也有很多欠考虑的地方...希望朋友指出...
也可以给我意见...
也许我看问题不全面,或是有偏见,也欢迎指出。

5. 激励代码是什么

请问激励值是什么意思
AQL(可接受质量水平)是调整型抽样体系的基础,是供货方与需求方共同协定的可以接收的连续

提交的检验批的过程平均的上限值。过程平均是一系列连续提交的检验批的平均质量,以“批次

不合格品率”或者“每百单位缺陷率”表示。AQL与采样大小(所谓采样大小,是否可以理解为

“样本大小”即sample size?)的关系,在于一个检验水平(I、II、III三个一般检查水平,以

及S-1、S-2、S-3、S-4四个特殊检查水平)和宽严程度(severities)之转换。

举个例子,一个产品批量N=4000,协定的AQL=1.5%,选择检查水平为II,则调整型一次抽检方

案确定的步骤为:

1)根据GB2828-81表,查得样陵察本含量代码为L;

2)确定“正常抽检方案”:L与AQL=1.5%所对应的合格判定数为7,不合格判定数为8,样本含

量为n=200。其含义为:4000个产品中抽取200个样品送检,这200个中如果不合格数小于等于尺键茄7,

则整批产品合格;大于等于8,则整批不合格;

3)同样的方法,确定“加严”、“放宽”、“特宽”的抽检方案;

4)将四个抽检方案合并一处,运用动态转换规则(sap系统中有,术语dynamic modification

rule),就构成了“调整型一次抽检方案”;

5)以上的例子遵循GB2828标准,对应于ISO2859(计数);计量的就不是很清楚了,好像是国标

GB8054对应ISO3951。SAP系统4.5B版本中有ISO版本的Sample scheme.

6) 您可以看看SAP标准系统4.5B中的一个dynamic modification rule"s01",我认为它就比较明

确。
有没有verilog大神帮我写一下激励测试代码 5分
代码如果是你自己写的,按照你这个描述写stimulus,你自己肯定写得出来。

另外你描述不太清楚。建议问问同学去。
股票期权每一品种代码和名称是怎样设置的
合约交易代码包含合约标的、合约类型、到期月份、行权价格等要素。例如“510050C1503M02300”,“510050”代表合约标的的证券代码,“C”代表认购期权,“1503”代表合约的到期时间为2015年3月,“M”代表合约未发生过除权除息的调整,“02300”代表合约的行权价格为2.30元,即这一交易代码代表的是上证50ETF在2015年3月到期、行权价格为2.30元的认购期权合约。

合约简称与合约交易代码相对应,是对期权合约要素的简要说明。例如“50ETF购3月2300”,“50ETF”代表合约标的的证券简称,“购”代表认购期权,“3月”代表合约的到期时间为2015年3月份,“2300”代表合约的行权价格为2.30元,即这一合约简称代表的是上证50ETF在2015年3月到期、行权价格为2.30元的认购期权合约。
什么是“程序员鼓励师”,他们的职责是什么?
程序员鼓励师,顾名思义,就是专门为程序员鼓励加油的职位。2015年愚人节,网络上开始出现这个名词时,被疑为愚人节的玩笑,其实,据媒体报道,在广州,程序员鼓励师确实是存在的,这个职位更像是程序员身边的和事佬和勤杂工,但也确实具备传说中的高颜值。

一、“程序员鼓励师”职责

1、和事佬

程序员鼓励师程序员、技术男都比较直,他们不善于部门之间的沟通。一个办公室里有70多位程序员,有时组与组之间会出现问题,有时两个程序员会为了同一个程序如何编写产生不同的意见。

这时程序员鼓励师就得立即赶过去打圆场,做好沟通平复大家的心情,让他们不至于因矛盾影响正常工作。鼓励师这个中间人更像是一个“和事佬”。

2、勤杂工

程序员鼓励师的另一项任务就是每天帮程序员订午餐、晚餐。亮燃当不需要跟进项目闲下来时,也会跑到程序员的办公室,陪程序员聊天,帮程序员切水果准备下午茶,甚至会自己在家烤蛋糕带回来请他们吃。

二、“程序员鼓励师”特点

1、程序员鼓励师职位诱惑:逗狮子、哄码农、溜马畜。

2、职位描述:鼓励程序员、攻城狮长期干活(例如春节前50天无休)的时候,鼓励其像狮子一样勇猛、狼性不减、高质量得完成版本开发。

3、岗位要求:要求长相甜美仿佛章泽天,微笑常挂酷似高圆圆。

4、特别要求:善于倾听(听不听的懂没关系)。如果真是这样,那程序员们内心肯定会疯狂得呼唤bug((漏洞))的,但事实是,真有搞不定的bug的时候程序猿哥哥可是对身边的人男女不分的。

5、工资标准:各公司要求不同,工资标准也就不同,月工资从6千到3万不等。

参考:ke.haosou/doc/8392353-8711160
ModelSim仿真激励文件怎么写? 15分
很简单啊,也是verilog文件,但是可以是不可综合的(类似C程序),你需要在什么时间点给你的设计输入什么信号,就怎么编写,例如0时刻开始给a端口高电平,然后100ns之后,给该端口电平拉低,就是

initial

begin

a = 1;

# 100 a = 0;

end

这只是一个简单的例子,你可以参考参考!!!具体例子网上很多!
程序员鼓励师到底是什么职位
二、程序员鼓励师职位要求是什么?要颜值高!

字面理解程序员鼓励师这个职位,难道是运用心理学知识的神秘职位?“程序员鼓励师”看到下面的职位说明,我真的是醉了,还真是开眼界了!

职位诱惑:逗狮子、哄码农、溜马畜

职位描述:

鼓励程序员、攻城狮长期干活(例如春节前50天无休)的时候,鼓励其像狮子一样勇猛、狼性不减、高质量得完成版本开发。当然岗位要求也是很高的。

职位要求:

是长相甜美放佛章泽天,微笑常挂酷似高圆圆。

在程序猿遇到BUG内心焦躁的时候,坐在旁边给他加油鼓励的妹子。要善于倾听,还要受得住工程师们死宅无法交流的性格。

善于倾听(听不听的懂没关系)

根据上述职位要求,我想象了该职位的员工画面:

但是!如果真是这样,那程序员们内心肯定会疯狂得呼唤bug的,但是据我深入了解到,真有搞不定的bug的时候程序猿哥哥可是对身边的人男女不分的。

最后提示以上几家公司的程序猿哥哥们别高兴太早,注意别上了愚人节的当!

三、程序员鼓励师到底做什么?阿里“中枪”致歉

随着这一高冷的职位迅速蔓延,4月29日,阿里巴巴官方招聘网站上线了一个全新职位——程序员鼓励师,这项工作最重要的要求就是:颜值对程序员有足够震撼力!

请看下面的职位介绍:

图为阿里巴巴来往事业部程序员鼓励师招聘信息

怎样的颜值才能有震撼力?别急,阿里巴巴招聘启事的职位要求中有详细介绍:

你可以是如苍老师般德艺双馨,胸怀天下,进可欺身压海棠,退可提臂迎蛟龙;

你可以是如宋慧乔般大家闺秀,天生丽质,沉鱼落雁闭月羞花,素颜传说更让无数程序员追捧不已;

你也可以是个有着外星人颜值,作风天马行空,言语中自成一派威严,激励团队有如驾驭独孤九剑般的老头。

而这名程序员鼓励师的工作就是:有效鼓励程序员团队,拉近程序员间心灵距离,激发团队又猛又持久地工作。

这条招募信息一经发出,就在在网络上引起了众多网友关注,颇具争议的招聘文案带来诸多争议。因涉嫌性别歧视,阿里巴巴及时删除了这条招聘启事,不过仍有眼尖的读者抓住截图。因为招聘信息中提及“德艺双馨的苍老师”,被网友质疑该招聘存在借势炒作嫌疑。
程序员鼓励师是什么样的职业
今年的互联网界比较逗,各招聘网站相继出现程序员鼓励师, *** 贡献师等等让你脑洞大开的职位。这些职位最初发现是在一家专门垂直于互联网职位招聘的约聘网个性职位一栏发现的,如下图:这些职位是不是有很多看着你呢菊花一紧埃约聘网这样的个性
编程看不懂代码,迷茫。
其实看不懂才是正常的,看懂才是不正常的。即使已经学习编程多年,即使做软件开发多年。

总结一下你问题的核心——源代码。

很多人在说多练习、多学习基本上都与源代码有关。

但是,这对你软件开发能力没有太实质性的提高。

首先我们要清楚,编程或者编程语言的作用时什么?它不是为了编程而编程。我们为了实现某种软件功能,需要通过编程来实现。而软件是为了解决实际人无法解决或花费很大成本的工作,由软件可以很容易解决或成本比较低。

而编程和编程语言只是实现这个软件的一种工具、方法。

为什么说“看不懂才是正常的”?

现在随便一款具有实际功能的软件,就需要几百、几千甚至几万个源代码文件,而每个源代码又有几百、几千甚至几万行源代码。计算机源代码不是小说,从头看到尾就行了,源代码内部会形成复杂的关系,函数之间互相调用、函数使用公共变量、类之间的继承等等。在这么复杂的系统里,能把源代码看懂是非常困难的。

同时通过阅读源代码来理解这个软件的完整功能,这种方法效率低、收效低。

源代码是通过某种编程语言书写,而源代码中必然包含与这种编程语言相关的语言特征,而这些特征往往与这款软件的功能没有实际上的关系。也就说,源代码中包含了大量对我们理解软件功能没有用,甚至反作用的信息。就好像我们要在一万本书里找一本我们需要的书中的一页。想想效率多么低。

软件设计资源也是分层次,它是在不同的工作阶段产生,例如前期有软件需求信息,之后有软件设计信息,而源代码几乎是最某端的产品。

而有时很多人要了解的是软件设计信息,但是我们却要通过阅读源代码来了解软件设计信息,而在这个过程中阅读者必须将源代码中很多多余的信息给去掉,则能总结成软件设计信息。想了解软件需求信息也是同理。

总之很多时候我们在一个层次上去了解另外一个层次上的信息,这难度是非常难的。看源代码只应该解决与这个源代码相关的细节问题。

宏观问题由宏观方面解决,微观问题由微观方面解决。而源代码是微观内容,而软件设计信息、设计意图等属于宏观内容。

至于你看不懂源代码没有关系。

并且写源代码也不是问题,写源代码不是为了写而写。只要清楚你写什么,写本身就不是难度。而软件开发中需要写什么呢?就软件开发前期阶段的分析和设计。而分析和设计的结果就是软件的解决方案,而这种解决方案就是写源代码的依据。

《UML2.0实战教程(Trufun)》

《面向对象分析与设计(UML.2.0版)》

《UML与软件建模》

不知道你有没有看过UML语言(统一建模语言),它是现在面向对象设计理论方法最常见的语言。虽然它叫语言,但是它不是编程语言,它与软件分析和设计有关的语言,是用于描述软件解决方案的语言。

《UML2.0实战教程(Trufun)》中就简单的介绍了使耽UML进行面向对象设计的方法。而它所形成的软件解决方案,就可以通过某种方法转换成编程语言。《UML与软件建模》第十二章中有介绍。
modelsim se 10.1a 怎么编写激励
编写激励实际上可以说是编写你所测试模块的输入部分,用来观测模块输出。下面是我写过的一个乘法器模块的激励,initial-end内编写的是复位信号和时钟信号,always内编写就是乘数与被乘数的输入,整个模式类似于我们编写verilog程序。你在写自己的激励时也是根据测试模块的功能来的,具体得看你的模块,如果有需要留个邮箱我给你发个激励编写的历程。希望对你有帮助。

`timescale 1 ps/ 1 ps

mole pipeline_booth_multiplier_t();

reg [7:0] A;

reg [7:0] B;

reg CLK;

reg RSTn;

wire [15:0] Proct;

initial

begin

RSTn = 1'b0; #10 RSTn = 1'b1;

CLK = 1'b1; forever # 10 CLK = ~CLK;

end

pipeline_booth_multiplier i1 (

.A(A),

.B(B),

.CLK(CLK),

.Proct(Proct),

.RSTn(RSTn)

);

reg [3:0]i;

always @ ( posedge CLK or negedge RSTn )

if( !RSTn )

begin

i <= 4'd0;

A <= 8'd0;

B <= 8'd0;

end

else

case( i )

0:

begin A <= 8'd127; B <= 8'd127; i <= i + 1'b1; end

1:

begin A <= -8'd127; B <= 8'd127; i <= i + 1'b1; end

2:

begin A <= 8'd20; B <= 8'd12; i <= i + 1'b1; end

3:

begin A <= -8'd5; B <= 8'd42; i <= i + 1'b1; end

4:

begin A <= 8'd54; B <= 8'd36; i <= i + 1'b1; end

5:

begin A <= -8'd31; B <= -8'd12; i <= i + 1'b1; end

6:

begin A <= -8'd127; B <= -8'd127; i <= i + 1'b1; end

7:

begin A <= 8'd0; B <= 8'd0; i <= 4'd7; end

endcase

......>>
文本挖掘如何向人展示成果?直接给人代码?
先看看这个吧!

如何挖掘人的潜力,最大限度的发挥其积极性与主观能动性,这是每个管理者苦苦思索与追求的。在实行这一目标时,人们谈的最多的话题,就是激励手段。在实施激励的过程中,人们采取较为普遍的方式与手段是根据绩效,给员工以相应的奖金、高工资、晋升、培训深造、福利等,以此来唤起人们的工作热情和创新精神。的确,高工资、高奖金、晋升机会、培训、优厚的福利,对于有足够经济实力、并且能有效操作这一机制的机构与企业来说,是一副有效激发员工奋发向上的兴奋剂。但如果在企业发展的初期、或一些不具备经济实力的单位,又如何进行激励呢?还有在执行高工资、高奖金、晋升、培训、福利机制过程中,因操作不当,导致分配不均、相互攀比,所引起的消极怠工等副作用时,又如何评价这些手段和处理这些关系呢?高工资、高奖金、晋升机会、培训、优厚的福利是激励的唯一手段吗?是否还有别的激励途径与手段更完美呢?有,那就是包容与信任!其实,最简单、最持久、最“廉价”、最深刻的激励就来自于包容与信任。

激励的目的是追求利润的最大化和建立一个具有凝聚力的团队吸引并留下优秀的人才。但作为包容与信任这么一个并不深刻的激励手段,为什么往往被人们所忽视呢?这种现象很大程度上是人们对人性的曲解,美其名曰人是贪婪的、自私的。因此,更多的人往往不愿往更深处去开采、去挖掘。只有靠物质与利益的诱惑来获取彼此利益的平衡与共享。其实,高工资、高奖金、晋升机会、培训、优厚的福利等手法只是满足人性最初期,最原始的本性。能唤起人最光辉、最有价值、最宝贵的忠诚与创新还是包容与信任,这是不能被冷落更不能放弃的最好的绿色激励。

人的激励机制粗浅的可分为三个层次:物资激励、荣誉激励、个人价值激励。

物资激励,也就是较为直观的工资、奖金、福利,它讲究的是价值的对等。低级动物都是如此,马戏团的老虎成功表演一个节目,就当场能得到指挥者一块鲜肉作美食,其他动物只能看着咽口水。马戏演员靠这种小施舍来取得动物的配合,也就是激励。还有小鸟(或小鸡)择字。当小鸟把“算命先生”根据择字人的外貌判断,选择好的相应字版反扣在一叠牌中准确的啄出来时,同样有一粒米的奖赏,不然,这些动物就不干或干的不痛快。这个道理非常简单。(姑且不讲,人这个复杂的东西,并没有一般动物那么容易赐候,而因此激励不担会所带来的副作用)。

荣誉的激励包括授予称号、发证书、奖状等。这当然是激发人鼓舞人的重要组成部分。但这毕竟是一种被动的你先付出,然后才能承认,而且比例受到限制,太多太滥不行,乱点鸳鸯谱更不行。客观的讲,榜样的力量并非是“无穷”的。至于有多少人的付出是因为冲着称号、发证书、奖状的诱惑而进行的,暂不加评论。因此,荣誉的激励最理想的是用在宏观舆论的导向与宣传上,最见效的还是孩提时代的诸如戴上一朵大红花、发一张奖状较为管用,而在小团体组织或企业就大打折扣了。

个人价值的激励则是人的最高追求,也是最成熟的境界。这种激励就是信任。信任,通俗的讲,就是是否把人当人看。包容即是体谅、理解和唤醒人内心良知的工具及过程。宋代民族英雄岳飞对多次与己为敌并设法杀害自己的王佐的包容,最后唤起王佐的良知,以致王佐砍断臂膀、施苦肉计、深入虎穴这个流传千古的美谈,就是最好的例证。

人,最重要的不是他是什么,而是你把他当作什么。你给他信任多少,他就会给你回报多少。关键是你对他的导向。你的沟通、你的行为、你的认识、你的习惯而形成你固有的用人文化。一个对他人总不放心的人,最终是孤独、孤立而失望的。...>>

6. 软件工程师职称评定的级别及标准是什么

一、见习程序员(AP:assistantprogrammer)

  1. 计算机相关专业毕业;英语通过国家四级。

  2. 具有较强的学习能力,可以编写代码,达到公司的工作要求。

二、程序员(P:programmer)

基本要求:

  1. 本科学历,半年以上工作经验;英语通过国家四级。

  2. 达到工作承担要求;具有一定的沟通能力和工作责任心。

技术能力要求:

  1. 负责编写代码,掌握一种主流语言/开发工具,一种主流操作系统,一种主流数据库。

  2. 了解和掌握开发作业(PD设计、编码和测试等)的规范和技巧。

  3. 所编写的代码质量较好。

  4. 能够按照要求编写文档,文档结构条理清晰,内容详实准确。

  5. 具有独立理解所担当模块的业务理解能力和问题阐述能力。

  6. 能阅读**文技术文档。

三、高级程序员(SP:seniorprogrammer)

基本要求:

  1. 获得程序员资格1年以上;或满足程序员级别标准,2年以上相关行业工作经验。

  2. 完成年度工作量指标;具有较强的沟通能力和责任心。

  3. 所承担的项目满意度达到满意以上。

技术能力要求:

  1. 精通一种主流语言及对应的开发工具;精通数据结构。

  2. 具有较好的业务理解能力和技术调查能力。

  3. 编写高质量代码并具有代码审查能力。

  4. 具有详细设计能力。

  5. 熟悉系统测试工具,对系统问题具有改善的能力。

  6. 能够带领2个以上员工开展工作,成功领导过3个以上不少于5人月的项目/模块的团队项目。

  7. **语达到*级水平或者具有同等水平,能够阅读*文资料,按照要求编写*语技术文档。

  8. 了解质量管理体系和项目管理知识。

四、软件工程师(SE:softwareengineer)

基本要求:

  1. 获得高级程序员资格2年以上;或满足高级程序员级别标准,4年以上相关行业工作经验。

  2. 完成年度工作量指标;具有较强的客户沟通能力。

  3. 担当过一个20人月以上的项目或累计超过60人月项目的技术负责工作。

  4. 所负责的项目客户满意度达到满意以上。

技术能力要求:

  1. 精通并熟练运用2种以上的开发工具,至少一种数据库知识,至少一种操作系统知识。

  2. 能够很快完成新项目的技术调查工作,能够完成复杂算法的设计,能够设计可重用的和柔韧的软件结构。

  3. 具有系统设计能力及系统提案能力。

  4. 对系统或项目的技术框架有深入的认识和较丰富的经验。

  5. 具有某一领域的行业知识。

  6. 具有项目领导能力。

  7. *语达到*级水平或者具有同等水平,能够阅读、编写*语技术文档,具有简单的口语沟通能力。

  8. 掌握质量管理体系和项目管理知识。

五、资深软件工程师(SSE:seniorsoftwareengineer)

基本要求:

  1. 获得软件工程师资格2年以上;或满足软件工程师级别标准,6年以上相关行业工作经验。

  2. 完成年度工作量指标;具有较强的客户沟通能力。

  3. 担当过一个50人月以上的项目或累计超过100人月项目的技术负责工作。

  4. 带领的项目客户满意度满意以上。

  5. 完成年度培训工作。

技术能力要求:

  1. 精通并熟练运用2种以上的开发工具,至少一种数据库知识,至少一种操作系统知识。

  2. 具有整体系统设计能力及系统提案能力。

  3. 具有较强的技术筹划能力、技术指导能力和处理疑难问题的能力。

  4. 深入了解某一领域的行业知识。

  5. 具有大型项目领导能力。

  6. *语达到*级并相当于*级水平,熟练会话和编写*语技术文档。

  7. 熟练掌握质量管理体系和项目管理知识,并能够推进软件开发过程改进。

六、主任软件工程师(CSE:chiefsoftwareengineer)

基本要求:

  1. 获得资深软件工程师资格2年以上;或满足资深软件工程师级别标准,8年以上相关行业工作经验。

  2. 5年项目负责人以上经验,累计超过120人月的技术负责人工作。

  3. 带领的项目客户满意度满意以上。

  4. 完成年度培训工作。

  5. 具有很强的沟通能力,问题判断与解决能力,创新能力。

技术能力要求:

  1. 精通至少一种主流编程语言。掌握至少一种数据库或至少一种中间件。熟练掌握至少一种操作系统。

  2. 熟练掌握软件需求分析/大型项目的策划。

  3. 熟练掌握软件的系统设计。

  4. 熟悉软件的高级项目管理和质量控制,具有分析和规避重大质量问题的能力。

  5. 精通至少一种部门项目相关的业务知识。

  6. *语达到*级水平或相当于*级的水平,熟练会话和编写*语技术文档。

职称管理工作和相关标准将随着公司的发展而不断调整完善。

7. 要成为一名专业的程序员,从零开始需要怎么一步步来比较好,要把最底层的先学精通吗(个人认为)求学长

前言
你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发)
建议:
不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。
回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。
一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节。
一定要学会思考,思考为什么要这样,而不是那样。还要举一反三地思考。
注:你也许会很奇怪为什么下面的东西很偏Unix/linux,这是因为我觉得Windows下的编程可能会在未来很没有前途,原因如下:
现在的用户界面几乎被两个东西主宰了,1)Web,2)移动设备iOS或Android。Windows的图形界面不吃香了。
越来越多的企业在用成本低性能高的Linux和各种开源技术来构架其系统,Windows的成本太高了。
微软的东西变得太快了,很不持久,他们完全是在玩弄程序员。详情参见《Windows编程革命史》
所以,我个人认为以后的趋势是前端是Web+移动,后端是Linux+开源。开发这边基本上没Windows什么事。
启蒙入门
1、 学习一门脚本语言,例如Python/Ruby
可以让你摆脱对底层语言的恐惧感,脚本语言可以让你很快开发出能用得上的小程序。实践项目:
处理文本文件,或者csv (关键词 python csv, python open, python sys) 读一个本地文件,逐行处理(例如 word count,或者处理log)
遍历本地文件系统 (sys, os, path),例如写一个程序统计一个目录下所有文件大小并按各种条件排序并保存结果
跟数据库打交道 (python sqlite),写一个小脚本统计数据库里条目数量
学会用各种print之类简单粗暴的方式进行调试
学会用Google (phrase, domain, use reader to follow tech blogs)
为什么要学脚本语言,因为他们实在是太方便了,很多时候我们需要写点小工具或是脚本来帮我们解决问题,你就会发现正规的编程语言太难用了。
2、 用熟一种程序员的编辑器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,学会如何配置代码补全,外观,外部命令等。
Source Insight (或 ctag)
使用这些东西不是为了Cool,而是这些编辑器在查看、修改代码/配置文章/日志会更快更有效率。
3、 熟悉Unix/Linux Shell和常见的命令行
如果你用windows,至少学会用虚拟机里的linux, vmware player是免费的,装个Ubuntu吧
一定要少用少用图形界面。
学会使用man来查看帮助
文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
学会使用一些文本操作命令 sed/awk/grep/tail/less/more …
学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息
了解正则表达式,使用正则表达式来查找文件。
对于程序员来说Unix/Linux比Windows简单多了。(参看我四年前CSDN的博文《其实Unix很简单》)学会使用Unix/Linux你会发现图形界面在某些时候实在是太难用了,相当地相当地降低工作效率。
4、 学习Web基础(HTML/CSS/JS) + 服务器端技术 (LAMP)
未来必然是Web的世界,学习WEB基础的最佳网站是W3School。
学习HTML基本语法
学习CSS如何选中HTML元素并应用一些基本样式(关键词:box model)
学会用 Firefox + Firebug 或 chrome 查看你觉得很炫的网页结构,并动态修改。
学习使用Javascript操纵HTML元件。理解DOM和动态网页(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 网上有免费的章节,足够用了。或参看 DOM 。
学会用 Firefox + Firebug 或 chrome 调试Javascript代码(设置断点,查看变量,性能,控制台等)
在一台机器上配置Apache 或 Nginx
学习PHP,让后台PHP和前台HTML进行数据交互,对服务器相应浏览器请求形成初步认识。实现一个表单提交和反显的功能。
把PHP连接本地或者远程数据库 MySQL(MySQL 和 SQL现学现用够了)
跟完一个名校的网络编程课程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php ) 不要觉得需要多于一学期时间,大学生是全职一学期选3-5门课,你业余时间一定可以跟上
学习一个javascript库(例如jQuery 或 ExtJS)+ Ajax (异步读入一个服务器端图片或者数据库内容)+JSON数据格式。
HTTP: The Definitive Guide 读完前4章你就明白你每天上网用浏览器的时候发生的事情了(proxy, gateway, browsers)
做个小网站(例如:一个小的留言板,支持用户登录,Cookie/Session,增、删、改、查,上传图片附件,分页显示)
买个域名,租个空间,做个自己的网站。
进阶加深
1、 C语言和操作系统调用
重新学C语言,理解指针和内存模型,用C语言实现一下各种经典的算法和数据结构。推荐《计算机程序设计艺术》、《算法导论》和《编程珠玑》。
学习(麻省理工免费课程)计算机科学和编程导论
学习(麻省理工免费课程)C语言内存管理
学习Unix/Linux系统调用(Unix高级环境编程),,了解系统层面的东西。
用这些系统知识操作一下文件系统,用户(实现一个可以拷贝目录树的小程序)
用fork/wait/waitpid写一个多进程的程序,用pthread写一个多线程带同步或互斥的程序。多进程多进程购票的程序。
用signal/kill/raise/alarm/pause/sigprocmask实现一个多进程间的信号量通信的程序。
学会使用gcc和gdb来编程和调试程序(参看我的《用gdb调试程序》)
学会使用makefile来编译程序。(参看我的《跟我一起写makefile》)
IPC和Socket的东西可以放到高级中来实践。
学习Windows SDK编程(Windows 程序设计 ,MFC程序设计)
写一个窗口,了解WinMain/WinProcere,以及Windows的消息机制。
写一些程序来操作Windows SDK中的资源文件或是各种图形控件,以及作图的编程。
学习如何使用MSDN查看相关的SDK函数,各种WM_消息以及一些例程。
这本书中有很多例程,在实践中请不要照抄,试着自己写一个自己的例程。
不用太多于精通这些东西,因为GUI正在被Web取代,主要是了解一下Windows 图形界面的编程。@virushuo 说:“ 我觉得GUI确实不那么热门了,但充分理解GUI工作原理是很重要的。包括移动设备开发,如果没有基础知识仍然很吃力。或者说移动设备开发必须理解GUI工作,或者在win那边学,或者在mac/iOS上学”。
2、学习Java
Java 的学习主要是看经典的Core Java 《Java 核心技术编程》和《Java编程思想》(有两卷,我仅链了第一卷,足够了,因为Java的图形界面了解就可以了)
学习JDK,学会查阅Java API Doc Java Platform SE 6
了解一下Java这种虚拟机语言和C和Python语言在编译和执行上的差别。从C、Java、Python思考一下“跨平台”这种技术。
学会使用IDE Eclipse,使用Eclipse 编译,调试和开发Java程序。
建一个Tomcat的网站,尝试一下JSP/Servlet/JDBC/MySQL的Web开发。把前面所说的那个PHP的小项目试着用JSP和Servlet实现一下。
3、Web的安全与架构

学习HTML5,网上有很多很多教程,以前酷壳也介绍过很多,我在这里就不罗列了。
学习Web开发的安全问题(参考新浪微博被攻击的这个事,以及Ruby的这篇文章)
学习HTTP Server的rewrite机制,Nginx的反向代理机制,fast-cgi(如:PHP-FPM)
学习Web的静态页面缓存技术。
学习Web的异步工作流处理,数据Cache,数据分区,负载均衡,水平扩展的构架。
实践任务:
使用HTML5的canvas 制作一些Web动画。
尝试在前面开发过的那个Web应用中进行SQL注入,JS注入,以及XSS攻击。
把前面开发过的那个Web应用改成构造在Nginx + PHP-FPM + 静态页面缓存的网站
4、学习关系型数据库
你可以安装MSSQLServer或MySQL来学习数据库。
学习教科书里数据库设计的那几个范式,1NF,2NF,3NF,……
学习数据库的存过,触发器,视图,建索引,游标等。
学习SQL语句,明白表连接的各种概念(参看《SQL Join的图示》)
学习如何优化数据库查询(参看《MySQL的优化》)
实践任务:设计一个论坛的数据库,至少满足3NF,使用SQL语句查询本周,本月的最新文章,评论最多的文章,最活跃用户。
5、一些开发工具
学会使用SVN或Git来管理程序版本。
学会使用JUnit来对Java进行单元测试。
学习C语言和Java语言的coding standard 或 coding guideline。(我N年前写过一篇关C语言非常简单的文章——《编程修养》,这样的东西你可以上网查一下,一大堆)。
推荐阅读《代码大全》《重构》《代码整洁之道》
高级深入
1、C++ / Java 和面向对象
我个人以为学好C++,Java也就是举手之劳。但是C++的学习曲线相当的陡。不过,我觉得C++是最需要学好的语言了。参看两篇趣文“C++学习信心图” 和“21天学好C++”
学习(麻省理工免费课程)C++面向对象编程
读我的 “如何学好C++”中所推荐的那些书至少两遍以上(如果你对C++的理解能够深入到像我所写的《C++虚函数表解析》或是《C++对象内存存局(上)(下)》,或是《C/C++返回内部静态成员的陷阱》那就非常不错了)
然后反思为什么C++要干成这样,Java则不是?你一定要学会对比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,异常,虚函数,等等。
实践任务:
用C++实现一个BigInt,支持128位的整形的加减乘除的操作。
用C++封装一个数据结构的容量,比如hash table。
用C++封装并实现一个智能指针(一定要使用模板)。
《设计模式》必需一读,两遍以上,思考一下,这23个模式的应用场景。主要是两点:1)钟爱组合而不是继承,2)钟爱接口而不是实现。(也推荐《深入浅出设计模式》)
实践任务:
使用工厂模式实现一个内存池。
使用策略模式制做一个类其可以把文本文件进行左对齐,右对齐和中对齐。
使用命令模式实现一个命令行计算器,并支持undo和redo。
使用修饰模式实现一个酒店的房间价格订价策略——旺季,服务,VIP、旅行团、等影响价格的因素。
学习STL的用法和其设计概念 - 容器,算法,迭代器,函数子。如果可能,请读一下其源码
实践任务:尝试使用面向对象、STL,设计模式、和WindowsSDK图形编程的各种技能
做一个贪吃蛇或是俄罗斯方块的游戏。支持不同的级别和难度。
做一个文件浏览器,可以浏览目录下的文件,并可以对不同的文件有不同的操作,文本文件可以打开编辑,执行文件则执行之,mp3或avi文件可以播放,图片文件可以展示图片。
学习C++的一些类库的设计,如: MFC(看看候捷老师的《深入浅出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能会太难了,但是如果你能了解其中的设计模式和设计那就太好了,如果你能深入到我写的《STL string类的写时拷贝技术》那就非常不错了,ACE需要很强在的系统知识,参见后面的“加强对系统的了解”)
Java是真正的面向对象的语言,Java的设计模式多得不能再多,也是用来学习面向对象的设计模式的最佳语言了(参看Java中的设计模式)。
推荐阅读《Effective Java》 and 《Java解惑》
学习Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是学习Java的设计,如IoC等。
Java的技术也是烂多,重点学习J2EE架构以及JMS, RMI, 等消息传递和远程调用的技术。
学习使用Java做Web Service (官方教程在这里)
实践任务: 尝试在Spring或Hibernate框架下构建一个有网络的Web Service的远程调用程序,并可以在两个Service中通过JMS传递消息。
C++和Java都不是能在短时间内能学好的,C++玩是的深,Java玩的是广,我建议两者选一个。我个人的学习经历是:
深究C++(我深究C/C++了十来年了)
学习Java的各种设计模式。
2、加强系统了解
重要阅读下面的几本书:
《Unix编程艺术》了解Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。你一定会有一种醍醐灌顶的感觉。
《Unix网络编程卷1,套接字》这是一本看完你就明白网络编程的书。重要注意TCP、UDP,以及多路复用的系统调用select/poll/epoll的差别。
《TCP/IP详解 卷1:协议》- 这是一本看完后你就可以当网络黑客的书。了解以太网的的运作原理,了解TCP/IP的协议,运作原理以及如何TCP的调优。
实践任务:
理解什么是阻塞(同步IO),非阻塞(异步IO),多路复用(select, poll, epoll)的IO技术。
写一个网络聊天程序,有聊天服务器和多个聊天客户端(服务端用UDP对部分或所有的的聊天客户端进Multicast或Broadcast)。
写一个简易的HTTP服务器。
《Unix网络编程卷2,进程间通信》信号量,管道,共享内存,消息等各种IPC…… 这些技术好像有点老掉牙了,不过还是值得了解。
实践任务:
主要实践各种IPC进程序通信的方法。
尝试写一个管道程序,父子进程通过管道交换数据。
尝试写一个共享内存的程序,两个进程通过共享内存交换一个C的结构体数组。
学习《Windows核心编程》一书。把CreateProcess,Windows线程、线程调度、线程同步(Event, 信号量,互斥量)、异步I/O,内存管理,DLL,这几大块搞精通。
实践任务:使用CreateProcess启动一个记事本或IE,并监控该程序的运行。把前面写过的那个简易的HTTP服务用线程池实现一下。写一个DLL的钩子程序监控指定窗口的关闭事件,或是记录某个窗口的按键。
有了多线程、多进程通信,TCP/IP,套接字,C++和设计模式的基本,你可以研究一下ACE了。使用ACE重写上述的聊天程序和HTTP服务器(带线程池)
实践任务:通过以上的所有知识,尝试
写一个服务端给客户端传大文件,要求把100M的带宽用到80%以上。(注意,磁盘I/O和网络I/O可能会很有问题,想一想怎么解决,另外,请注意网络传输最大单元MTU)
了解BT下载的工作原理,用多进程的方式模拟BT下载的原理。
3、系统架构
负载均衡。HASH式的,纯动态式的。(可以到Google学术里搜一些关于负载均衡的文章读读)
多层分布式系统 – 客户端服务结点层、计算结点层、数据cache层,数据层。J2EE是经典的多层结构。
CDN系统 – 就近访问,内容边缘化。
P2P式系统,研究一下BT和电驴的算法。比如:DHT算法。
服务器备份,双机备份系统(Live-Standby和Live-Live系统),两台机器如何通过心跳监测对方?集群主结点备份。
虚拟化技术,使用这个技术,可以把操作系统当应用程序一下切换或重新配置和部署。
学习Thrift,二进制的高性能的通讯中间件,支持数据(对象)序列化和多种类型的RPC服务。
学习Hadoop。Hadoop框架中最核心的设计就是:MapRece和HDFS。MapRece的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapRece就是“任务的分解与结果的汇总”。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。
了解NoSQL数据库(有人说可能是一个过渡炒作的技术),不过因为超大规模以及高并发的纯动态型网站日渐成为主流,而SNS类网站在数据存取过程中有着实时性等刚性需求,这使得目前NoSQL数据库慢慢成了人们所关注的焦点,并大有成为取代关系型数据库而成为未来主流数据存储模式的趋势。当前NoSQL数据库很多,大部分都是开源的,其中比较知名的有:MemcacheDB、Redis、Tokyo Cabinet(升级版为Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。

阅读全文

与se100程序员第一课相关的资料

热点内容
基于51单片机的热水器 浏览:698
图片压缩成一张图怎么解压 浏览:777
还原文件夹英文 浏览:367
按摩手掌解压视频国外 浏览:608
空气能压缩机价格 浏览:532
php不能上传大文件 浏览:240
消毒水清洁解压 浏览:1000
cpdf阅读 浏览:467
android方案公司 浏览:182
linux编写makefile 浏览:488
考研程序员有什么好处 浏览:225
毕向东android 浏览:259
27安全算法 浏览:352
丰田空调压缩机型号 浏览:835
程序员那么可爱25集文字预告 浏览:556
linux读写文件命令 浏览:695
完美的伤害算法 浏览:574
usch算法 浏览:606
如何给excel某列表格加密 浏览:161
s7编译 浏览:556