学习参考
课程:
|
语言
|
认证类型
|
课程
|
练习题(在每单个课程或课程组合内,5题任选3题完成)
|
学习参考
|
|---|---|---|---|---|
| Linux Shell | GoodCoder |
01.Linux 介绍(简介、发行版本、Linux VS Window) 02.Linux 基础(安装、系统启动过程、系统目录结构、远程登录) 03.Linux 常用命令(cd、pwd、ls、who、cat、mkdir、rmdir、chmod、chown、chgrp、touch、cp、mv、rm、find、grep、more、less、head、tail、cut、at、crontab、sleep、mesg、wall、write、kill、pstree、expr、locate、split、login、logout、exit、man、info、alias、unalias、halt、shutdown、reboot、clear、sort、df、du、fdisk、free、top、vmstat、sar、iostat、netstat、ps) 04.Linux vi/vim 操作(编辑、退出、保存、删除、跳到指定行、行首、行尾等) 05.Shell 基础 (shell环境、如何运行、shell的变量、参数传递、I/O重定向等) 06.Shell 编程的基本元素(变量、函数、条件控制和流程控制、循环控制等) 07.Shell正则表达式(正则基础) 08.Shell基本文本处理(排序、去重、统计文本行数 字数 字符数、打印和格式化输出、字段处理、文本替换等) 09.Shell sed流编辑 10.Shell awk文本处理 11.进程(进程、线程、调度系统任务等) |
01-02: -Q1:请简述linux系统加载过程。 -Q2:什么是swap分区?安装linux操作系统的时候,如何设置swap分区大小。 -Q3:请问题下面目录主要存放什么数据。 /etc,/etc/initd/,/boot,/usr/bin,/bin,/usr/sbin,/sbin,/dev,/var/ log -Q4:在系统中创建2个用户,test01、test02,创建1个用户组group01,且test01、test02对于group01有读写权限,其他之外的任何用户对group01都不可读。请列出实现该需求的相关完整指令。 -Q5:找出/etc下面,文件容量大于50KB且文件所有者不是root的文件名,且将权限完整的列出。(ls -l)
03: -Q1:请使用一条指令,一次性创建多层目录,如:/home/map/test/a/b/c 。 -Q2:请查找odp_cater目录下所有.log文件中存在ERROR字段的log文件,输出具体log文件名称。 -Q3:请统计odp_cater模块中access log访问量最多的1个IP。 -Q4:按进程内存大小,从大到小排列。 -Q5:根据端口(如:8086)列出进程名称。
04: -Q1:请问vi/vim 有哪几种模式?不同模式之间如何切换。 -Q2:请问vi/vim移动光标的方法指令(如:上下移一页,第一行和最后一行)。 -Q3:请问vi/vim查找和替换的方法指令(如:向上向下查找字符串为"ERROR"的字符串,从第一行到最后一行查找ERROR的字符串且将其替换为error)。 -Q4:请问vi/vim删除、复制、粘贴的方法指令(如:删除一整行,复制光标所在一行,将已复制的内容粘贴到光标的上一行等)。
05-06: -Q1:创建一个函数,能接受两个参数: 1)第一个参数为URL,即可下载的文件;第二个参数为目录,即下载后保存的位置; -Q2:写一个脚本,实现判断10.8.99.0/24网络里,当前在线的IP有哪些,能ping通则认为在线。 -Q3:批量创建5个系统用户test01-test05并设置密码(密码为test后面跟3个随机字符),用户名和密码按行写入userinfo文件。 -Q4:在/home/map目录下通过随机小写5个字母加固定字符串test批量创建10个html文件,名称列如:abcdetest.html (使用for循环)。 -Q5:开发shell脚本分别实现以脚本传参以及read读入的方式比较2个整数大小。以屏幕输出的方式提醒用户比较结果。注意:一共是开发2个脚本。当用脚本传参以及read读入的方式需要对变量是否为数字、并且传参个数做判断。
07-11: -Q1:用shell处理以下内容 1、按单词出现频率降序排序! -Q2:用shell验证邮箱是否合法(输入邮箱地址xx,判断合法则打印输出You email is:xx;不合法,则输出 validation is wroing) -Q3:在每周日凌晨零点零分定期备份/home/map/odp_cater/log/php-error.log 到 /home/map/test 目录下。 -Q4:监控CPU使用,输出日期时间,CPU load,CPU idle。 -Q5:写一个shell脚本统计日志中的词表比例top5,即接口地址出现的次数。 |
|
| Python | GoodCoder |
01.Python简介(介绍、特点、环境、运行等) 02.Python基础(如:基础数据结构及其操作、逻辑判断、循环、函数、类、模块、语句和语法、变量赋值等) 03.Python对象(如:标准类型、内建类型、内部类型、标准类型操作、标准类型内建函数等) 04.数字(如:整型、操作符、内建函数与工厂函数等) 05.序列:字符串、列表、元组 06.映射和集合类型(如:字典、集合) 07.条件和循环(如:if、else、elif、while、for、break、continue、pass、迭代器等) 08.文件和输入输出(如:文件内建函数等) 09.错误和异常(如:检测和处理异常、上下文管理、异常和sys模块等) 10.函数和函数式编程(如:函数的创建和调用、传递等) 11.模块(如:模块、模块导入等) |
01: -Q1:请手动安装配置Python环境。 -Q2:请列出系统环境中Python执行程序的安装位置和标准库模块的安装位置。 -Q3:请使用print语句编写脚本,屏幕输出名字、爱好等。 -Q4:请简述运行Python的几种方法。 -Q5:执行 Python 程序时,自动生成的 .pyc 文件的作用是什么?
02-04: -Q1:Python的参数传递是值传递还是引用传递,请分别写出参数传递和引用传递的代码Demo? -Q2:请分别阐述 单引号,双引号,三引号的区别和应用场景? -Q3:Python如何进行类型转换?请编写代码Demo说明。 -Q4:内建函数 type() 做什么用?type()返回对象是什么?请编写代码Demo说明。 -Q5:字符串格式化:%和format的区别?请编写代码Demo说明。
05-07: -Q1:请实现字典反转,如:d={'a':5,b':6,'c':7} -Q2:请写出一段Python代码实现删除一个list里面的重复元素。 -Q3:数组和元组之间的区别是什么?请实现代码Demo,分别实现数组和元组之间的相互转换。 -Q4:请判断一个字符串是否为回文字符串?如:abcdcba -Q5:请去重字符串?如:abddaddfd
08: -Q1:有UTF-8编码的文件a.txt,文件存放在/opt目录,写一段程序逐行读入文本文件,且在屏幕(gbk编码)打印出来。 -Q2:如何使用Python新建、删除一个文件? -Q3:Python如何Copy文件?请用代码Demo说明。 -Q4:请使用Python实现linux tail -f 功能(ps:考虑文件的大小情况)。 -Q5:写一个函数,输入一个字符串,返回倒序排列的结果。
09 - 11: -Q1:请介绍Python的异常处理机制,且用代码Demo说明。 -Q2:_new_和_init_的区别是什么?请编写代码Demo说明。 -Q3:请使用Python函数实现单例模式。 -Q4:Python的模块和包是什么? -Q5:请说明os sys模块不同,并列举常用的模块方法? |
|
| CoderMaster |
12.面向对象编程 13.执行环境(可调用对象、执行其他python和非python程序等) 14.正则表达式 15.多线程编程 16.数据库编程 可选(网络编程、网络客户端编程、Web编程) |
-Q1:(ps:Python CoderMaster,仅完成此题即可。) 在调研过程中,经常需要对一些网站进行定向抓取。由于python包含各种强大的库,使用python做定向抓取比较简单。请使用python开发一个迷你定向抓取器mini_spider.py,实现对种子链接的抓取,并把URL长相符合特定pattern的网页保存到磁盘上。
程序运行:
配置文件spider.conf:
种子文件每行一条链接,例如:
要求和注意事项: 1. 需要支持命令行参数处理。具体包含: -h(帮助)、-v(版本)、-c(配置文件)
提示(下面的python库可能对你完成测试题有帮助): • |
||
| Php | GoodCoder |
01. PHP简介&基础语法(特点简介、交互式命令行、基础语法等) 02.PHP语法基础(如:方法、== 与 ===、if/else/foreach/switch等、const与static等) 03. 面向对象的PHP(类、接口、Trait、抽象类、抽象方法、构造析构、类的方法、访问权限public/private等) 04. 字符串操作(PHP强大、常用的字符串函数们、编解码等) 05. 数组操作(PHP强大、常用、万能的数组操作函数们) 06. 文件操作(文件打开/读取,创建/写入,上传等) 07. Web相关函数学习(Cookie操作、URL解析、请求参数编解码、Json等) 08. 异常处理、魔术方法、自动加载等 |
01-02: -Q1:请解释 == 与 ===的区别,且编写代码Demo说明。 -Q2:echo(),print(),print_r()的区别,且编写代码Demo说明。 -Q3:请写出如下程序的输出结果。 <?php -Q4:请写出如下程序的输出结果。 <?php -Q5:isset($val), empty($val),boolval($val), intval($val) $val == false , $val === false, $val == null 的区别,且编写代码Demo说明。
03-04: -Q1:请写一个函数,尽可能高效的,从一个标准 url里取出文件的扩展名。如:http://www.baidu.com/abc/de/fg.php?id=1,需要取出php或.php。 -Q2:请打印斐波那契数列10个, 1,1,2,3,5……(递归、循环)。 -Q3:假设订单号生成规则:10位时间戳+4位毫秒+2位随机数。已知函数isExist($orderId)可以判断订单号是否已经存在,重复可重新生成。写一个生成订单号的函数createOrderId()。 -Q4:PHP实现类继承:要求有基类普通订单,包含属性订单类型(orderType)、方法打印订单信息(打印类型-单号)、Q3所述方法,子类有外卖订单,商超订单,质享订单,并覆盖基类属性、方法。要求正确使用abstract、final。 -Q5:请自己写一个函数,实现字符串的反转。
05-06: -Q1:将下面的数组用一行拼装成一个字符串 i am qa ! day day up! <?php -Q2:请写出以下程序的输出结果。 <?php -Q3:请写一个函数遍历目录下的所有文件和文件夹。 -Q4:求数组中最大数的下标。 -Q5:请写一个函数,将一个长度超过10 的数组最后5项直接截取,不改变顺序变为前5项,如{1,2,3,4,5,6,7,8,9,10}变为{6,7,8,9,10,1,2,3,4,5}。
07-08: -Q1:请尽可能多的列举魔术方法,且编写代码说明其用法。 -Q2:PHP加载文件有哪几种方式?请分别列举,且编写代码Demo说明。 -Q3:请编写函数,分别模拟实现Http请求(POST请求,GET请求)。 -Q4:cookie于session的区别? -Q5:php自动加载有那几种方法, __autoload()自动加载的缺陷? |
PHP官网中文手册:http://php.net/manual/zh/ (better) 《PHP 之道》: http://laravel-china.github.io/php-the-right-way/
《深入PHP:面向对象、模式与实践》 https://book.douban.com/subject/6559267/
|
| CoderMaster |
11. PHP与基础组件(PHP 与Mysql、Redis、Nginx等) 12. PHP编码安全 13. PHP In Waimai学习(Wodp框架、NMQ、PHPlib常用函数等) 14. 包管理、PHP框架、第三方库学习(composer,框架Laraval/Yaf等, 库phpunit,monolog等) 15. SAPI、Zend虚拟机、内存模型等学习 16. PHP扩展开发
|
11-16:(以下2题任选1题完成) -Q1:PHP新人入职一周练习题 (ps:参考完成其中1-4题) -Q2:在我们的开发任务中,最常见的一项工作就是对用户请求的参数,进行各种合法性校验,请设计并实现一个通用的请求参数合法性校验的类库(一个或者几个class组成), 提供一个类似如下的接口: 1. Validator::validate($schema, $value, &$err_msg) • schema : 对数据校验规则的描述,具体格式请自行设计,需要能够清晰描述下面提到的 各种校验规则 • value : 需要校验合法性的数据 • err_msg: 如果检验不合法,需要返回详细信息,告诉用户为何不合法 • 返回值:如果检验合法,则返回true,如果不合法则返回false 具体需要支持的校验规则,包括但不限于如下: • 校验数据的类型是否合法,比如要求是bool, int, float, string, array, object类型中的某一个 • 校验数据的值的范围是否合法,比如某个值要求 > 0且<100 • 校验数据的值是否在某个列表内,比如某个数据只能取 ‘red’, ‘blue’, ‘green’这三个值之一 • 对于string类型的值,校验string的长度是否在某个区间,比如string长度必须大于0且小于20个字符 • 对于string类型的值,校验string是否符合某个正则表达式,比如必须匹配’\w+’这样的正则 • 对于array类型的值,可以递归地校验其中的每个元素,满足某个校验规则,比如array中的元素都必须是int且大于0 • 对于array类型的值,可以递归地校验其中的某个特定元素,满足某个校验规则,比如$arr[‘user_id’]必须是int且大于0 • 对于array中的元素,支持可选字段的校验,比如$arr[‘enable’]字段如果存在,则必须为bool类型,如果不存在则不需要校验。 • 支持用户自定义扩展校验规则,比如用户自己实现一个函数对某个字段进行校验 其它要求: • 代码严格遵守百度编码规范 • 代码的可读性和可维护性好,注释清晰 • 代码容错性好,无论输入什么值,都不会出现PHP Fatal/Warning/Notice报错 • 完成相应的单元测试,单元测试覆盖率高,能够有效运行而且通过,单元测试必须使用PHPUnit • 完成相应的使用demo, demo可运行,demo也要符合编码规范 |
进阶必读:PHP 之道 http://laravel-china.github.io/php-the-right-way/
进阶选读:《Modern PHP》https://book.douban.com/subject/26635862/
|
|
| Java | GoodCoder |
01.Java类与对象的基本概念,字段、方法、参数、返回值的理解 02.Java常用操作符使用(算术、关系、逻辑、按位、移位、三元操作符),优先级的判断 03.常用控制流程语句,if-else、switch-case、for、while、break、continue等的使用 04.对象的初始化与清理流程,构造函数的含义,成员初始化与构造器初始化的顺序,finalize的用途 05.Java访问权限控制,包括import的使用与public、private、protected的区分 06.Java接口与实现、抽象类与抽象方法的使用和区别 07.多态与继承的深入理解,组合与继承的区别 08.final类、final方法、final数据的作用与使用场景 09.Java内部类、匿名内部类与this的理解 10.Java异常处理流程,try-catch与finally的含义与使用,常见的Exception类型 11.字符串的使用,String、StringBuffer、StringBuilder的区别 12.Java容器与集合类的理解与使用,List、Set、Map、Stack、Queue等,迭代器的使用 13.常见数据结构的原理学习(可深入源码),HashMap、ArrayList、LinkedList、HashSet等 14.枚举enum的定义与使用,以及与final常量的场景区别 15.Java I/O系统,包括File类的创建与各类操作,输入/输出,InputStream/OutputStream,及相关子类 16.常用设计模式的实现,包括单例模式、工厂模式、观察者模式、builder模式等 |
01-03 -Q1:下面的代码执行后,i和j分别是多少?int i = 0;int j = i++;int k = --i。 -Q2:Java中&与&&的区别是什么? -Q3:Java中break和continue的用法及区别? -Q4:JDK和JRE的区别是什么? -Q5:Java支持的数据类型有哪些?什么是自动拆装箱?并请编写代码Demo说明。
04-05 -Q1:静态内部类与非静态内部类的区别是什么? -Q2:创建啮齿动物(Rodent):老鼠(Mouse)、鼹鼠(Gerbil)、大颊鼠(Hamster)这样一个继承结构,在基类中提供通用的方法,并在子类中根据特定的Rodent类型覆盖这些方法,以便执行不同的行为,创建一个Rodent数组并填充不同的Rodent类型,执行基类的方法,观察结果。 -Q3:编写一个程序,验证(静态变量、静态初始化块、变量、初始化块、构造器)的初始化顺序。 -Q4:请写出作用域public、private、protected及其区别?并请编写代码Demo说明。 -Q5:请写出以下程序的输出结果?(ps:结合Java对象初始化执行优先级) public class InitializeDemo {
06-08 -Q1:请问Java中接口与抽象类的区别是什么?应该如何从二者中做选择?请编写代码Demo说明。 -Q2:继承与组合的优势分别是?应该如何选择? -Q3:请问 final类、final方法与普通类、普通方法的区别是什么? -Q4:请问 overload和override的区别?overload的方法是否可以改变返回值的类型? -Q5:请问 final, finally, finalize的区别?请编写代码Demo说明。
09-10 -Q1:请写一个程序模拟几种常见的Exception,如果catch与try块中有return语句,finally块还会执行吗? -Q2:请解释this和super关键字的使用场景和作用?请编写代码Demo说明。 -Q3:JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? -Q4:请写出以下程序的输出结果?(ps:结合Java内部类) public class OuterClass{ public static void main(String[] args){ -Q5:请问Java匿名内部类怎样创建?有什么作用和优点?请编写代码Demo说明。
11-12 -Q1:String类的==与equals区别是什么?StringBuffer与StringBuilder的区别是什么?如何选用? -Q2:请用Java实现斐波那契数列(递归+非递归方式)。 -Q3:输入一个字符串,打印出该字符串中字符的所有排列。如:输入字符串abc,则打印出字符a、b、c所能排列出的所有字符串abc、acb、bac、bca、cab和cba。 -Q4:请解释Java中List、Set和Map的区别和应用场景? -Q5:请尽可能多的写出遍历map元素的方法。请编写代码Demo说明。
13-15 -Q1:Java中字符流与字节流有什么区别?分别采用哪些类来读取/写入? -Q2:请解释HashMap的工作原理是什么?HashMap与HashTable的区别是什么? -Q3:给定一个文件和一个字符串,请判断文件是否包含该字符串。如包含,请打印出包含该字符串的行号及该行的全部内容。 -Q4:请解释enum(枚举)的用法,且请编写代码Demo说明。 -Q5:请编写一段代码,实现合并两个排序的链表。
16 -Q1:请解释单例模式及其应用场景,且编写代码Demo说明。 -Q2:请解释工厂模式及其应用场景,且编写代码Demo说明。 -Q3:抽象工厂模式和原型模式之间的区别? -Q4:请解释建造者模式及其应用场景,且编写代码Demo说明。 -Q5:请解释门面模式及其应用场景,且编写代码Demo说明。
|
推荐书籍: 《Java编程思想》:https://item.jd.com/10058164.html
《Java核心技术》:https://item.jd.com/12037418.html
相关博客: ImportNew:http://www.importnew.com/ 技术小黑屋:http://droidyue.com/ InfoQ:http://www.infoq.com/cn/
|
| CoderMaster |
17.Java虚拟机垃圾回收原理与过程。 18.Java泛型的使用与编译器类型擦除,泛型接口与泛型方法。 19.反射的机制与使用,包括方法、属性的动态调用等。 20.Java进程与线程的理解,线程的创建与线程间通信方式,线程池的作用与原理。 21.学习Thread、Executor的使用,并了解几类Executor的实现与应用场景。 22.原子类的理解与使用,临界区与线程同步的几种方式,死锁的产生与解除。 23.synchronized同步代码块或方法。 |
-Q1:请说出垃圾回收的流程与常见的回收机制,哪些写法会导致内存泄露(无法回收)? -Q2:Class类的含义和作用是什么?编写一个程序,通过反射实现动态构造类对象、检测类属性和方法、灵活调用对象的方法 -Q3:Java多线程间如何实现同步?Java线程池如何实现?编写一个程序,模拟多个线程的下载任务,并控制最大同时下载任务数量(不使用线程池) -Q4:synchronized在同步一个类、类方法、类静态方法、代码块时,作用的对象分别是? -Q5:请问死锁产生的原因?请写出一个死锁的代码Demo。 -Q6:在我们的开发任务中,最常见的一项工作就是解析并读取各种词表文件,请设计并实现一个通用的词表解析读取工具类(一个或者几个class组成), 解析并读取如下形式的词表: <col1>\t<col2>\t...\t<coln> 每一行都是一条记录,每一列可能的类型包括: * int 每一列的数据中均不包含\t字符,每一行以\n结尾。 要求: 1. 对于非用户自定义类型,封装解析行为;用户自定义类型,调用用户给出的parse函数(从String翻译成用户class)完成
|
进阶书籍: 《Effective Java》:https://item.jd.com/10058902.html
《深入理解Java虚拟机》:https://item.jd.com/11252778.html
《Java并发编程实战》:https://item.jd.com/10922250.html
《算法》:https://item.jd.com/11098789.html 《Head First 设计模式》:https://item.jd.com/10100236.html
相关博客: ImportNew:http://www.importnew.com/ 技术小黑屋:http://droidyue.com/ InfoQ:http://www.infoq.com/cn/ |
|
| Object C | GoodCoder | |||
| CoderMaster | ||||

浙公网安备 33010602011771号