软件测试工程师的开设课程
搭建 Windows测试环境主要讲解搭建 Windows 测试环境所要具备的软、硬件及网络知识。包括计算机中各种硬件和接口。软件的分类、分发和授权等方式;操作系统的初步知识;注册表、病毒、安全等知识; TCP/IP 协议和 DNS 、活动目录等知识。从而让学员可以在实际工作环境当中搭建一个基于 Windows活动目录的局域网环境。使用 C 语言开发简单应用设置本课程的目的主要是使学员掌握软件开发的技术,掌握编程的方法、思想,了解软件开发过程当中常犯的错误,为后面的测试课程以及编写测试脚本打下语言基础。课程中主要包括 C 语言的语法、程序基本结构、函数、指针、数组、数据结构、算法等程序设计所涉及到的知识。课程注重实用性、重在培养学员对代码分析的能力,掌握编码规范,掌握调试知识和分析程序错误的能力。同时学习内存检查工具和软件配置管理等知识。该课程中贯穿了一个开发“软件测试工程师管理系统”的项目,增加学员开发项目的经验。测试计划与软件缺陷本课程是软件测试重点课程。本课程主要介绍软件测试的基本概念和基础知识、如何编写测试计划、识别软件缺陷、编写缺陷报告等。通过学习,学员可以掌握软件测试的流程、软件测试的策略和分类,掌握缺陷的分类和优先级等,从而对测试有一个整体的认识。本课程中介绍了 Bugzilla 缺陷跟踪管理系统(测试工具)。总体来说,本课程将使学员掌握大部分软件测试相关的基础知识。高效设计测试用例本课程是软件测试重点课程。本课程主要通过引入的大量案例讲解如何编写测试用例。讲解设计测试用例的技术包括等价类划分、边界值分析、因果图方法、状态图方法、测试大纲等的方法以及正交排列表、测试矩阵等。测试特性包括:功能、性能、兼容性、易用性等。测试对象包括软件功能、 GUI 界面、文档测试、安装和卸载测试等。通过本课程,主要是培养学员设计测试用例的视角,在最短的时间内针对功能写出恰当的测试用例。本课程和《测试计划与软件缺陷》课程中贯穿了对“软件测试工程师管理系统”编写测试计划、测试设计和开发,实施测试及测试评估的项目,增加学员软件测试相关经验。白盒测试本课程主要讲解白盒测试技术。主要内容包括逻辑驱动覆盖和基本路径覆盖两个方面,在逻辑驱动覆盖中主要介绍了语句覆盖、判定覆盖、条件覆盖、判定 / 条件覆盖、条件组合覆盖、路径覆盖和循环语句覆盖;在基本路径覆盖中介绍了绘制控制流图及程序复杂性相关概念,最后重点介绍了单元测试技术。通过学习,学员可以了解白盒测试的理论,组织方式,已经如何评估一个白盒测试的效果。本课程中介绍了Logiscope和 C++ Test 两个白盒测试工具。Linux 与网络应用环境本课程主要讲解搭建 Linux测试环境所应具备的知识。通过学习 Linux 的安装和配置、 Linux 常用命令、 Linux 下软件安装、卸载和使用、常见的 Linux 的服务(Apache 、 Mysql 、 Squid 、 Iptables 等)、 Linux软件开发环境等,让学员能够使用 Linux 实现一个提供常见服务的网络环境。本课程中在前期通过在 Linux 当中搭建 Bugzilla 缺陷跟踪管理系统来讲解 Linux 的使用和配置。WEB 技术与数据库本课程通过对数据库、 HTML 、 XML 、 HTTP 、 J2EE 、 .NET 等基础知识的讲解,让学员掌握这些技术,以便于建立分布式软件的测试环境。数据库是以 SQL Server 作为重点讲解,同时也介绍了 Oracle 和 MySQL 数据库。高效使用自动测试工具本课程主要介绍了国际测试工具占有率最高的 MI 的三大测试工具:功能测试工具 QuickTest Professional 、性能测试工具 LoadRunner 、测试管理工具TestDirector。学员掌握这些流行的测试工具,从而进一步提高测试的效率。软件测试实训本课程是最后一门课程,该课程主要是通过运用前面所学习的课程,指导学员完成一个项目的测试过程,从而巩固所学知识。在该课程中将完成分组分工、编写测试计划、写工作日志和开例会、设计测试用例、执行测试、填写和处理缺陷报告的过程。使用的项目通过三个版本来进行回归测试,通过分工与合作来完成测试工作,通过讲师和学员分别模拟测试组成员角色,锻炼学员实践的能力。该项目是一个百万行代码级别的类 Office 系统。职业导向训练职业导向训练,简称COT课程,即Career oriented Training,是对学员进行职业引导,包括就业指导和职前引导。通过就业指导以及就业专员、就业明星与学员的座谈会等日常辅助训练明确就业方向,进一步了解就业形式。详细介绍如何写简历,通过强化面试训练,以及模拟面试等方式,提升学员应对面试的能力,从而加强学员就业竞争力。华为软件测试工程师学习大纲一、软件测试的原理v 软件工程:软件的含义、软件开发过程的特性 、软件生命周期模型、软件管理过程软件质量和质量保证:软件质量就是客户的满意度 、质量的概念、软件质量的内涵、质量管理体系、SQA、SCM、SEPGv软件测试概念:软件危机、软件测试产生的背景,软件缺陷是什么、软件测试职业发展,软件测试人员应具备的素质和技能、软件测试基本概念、软件测试的目的、软件测试的重要性、软件测试的原则、软件开发与软件测试v软件测试依据和规范:软件质量标准、软件测试规范、界面规范、编码规范、CMM和ISO9001思想结构体系、CMM VS ISO二、软件测试的技术v软件测试技术概述:软件测试的基该方法,黑盒测试、白盒测试、静态测试、动态测试、测试策略v软件测试流程:软件测试流程、通用测试文档模板 、软件测试的分类、软件包的质量特性v 单元测试和集成测试:什么是单元测试、单元测试的目标和任务、单元测试方法、调试与评估、什么是集成测试、集成测试目标和任务、集成测试的模式与方法v 系统测试和验收测试:什么是系统测试,系统测试的目标和任务,系统测试方法,系统测试中工具的应用、什么是验收测试、验收测试的目标、验收测试的过程和主要内容、产品规格说明书的验证v 特定类型的软件测试:面向对象软件的测试、面向对象软件的特点、面向对象测试的层次与数据流、面向对象的单元测试、面向对象的集成测试 、基于应用服务器的测试、应用服务器的分类和特征、基于Web服务器应用的测试、基于数据库应用服务器的测试、基于J2EE平台的测试、软件本地化测试:什么是软件本地化、软件本地化的翻译问题、软件本地化测试的技术问题、本地化测试的重点三、软件测试的实践v测试环境的部署:测试环境的重要性、测试环境的各要素、建立测试实验室、测试环境的维护和管理v软件测试用例的设计:测试用例来源、测试需求提取、测试用例设计、白盒测试用例设计方法、逻辑覆盖法/基本路径测试法 、黑盒测试用例设计方法、等价类划分法/边界值分析法/因果图法/错误推测法 /功能图法、测试用例的组织和跟踪、使用实际项目实践v 报告所发现的软件缺陷:软件缺陷的描述 、软件缺陷相关的信息、软件缺陷的处理和跟踪v软件测试和质量分析报告:软件产品的质量度量 、评估系统测试的覆盖程度 、软件缺陷分析方法 、基于缺陷分析的产品质量评估 、软件质量的可靠性评估、软件可靠性模型、可靠性评估过程v软件测试自动化:测试自动化的内涵、测试工具的分类和选择、测试工具的主流产品介绍、IBM-Rational产品的整体解决方案、Mercury Interactive产品的整体解决方案,测试管理工具TD实操演示及指导、功能测试工具Robot实操演示及指导、脚本语言perl实操演示及指导、性能测试工具LRv 网络基础知识:协议概念、常见的网络协议及层次、TCP/IP协议、Arp协议等报文分析、常见的网元设备及工作原理、常用的网络操作相关命令、客户机服务器模型、抓包工具使用v 数据库简介及SQL语句:数据库系统概念、数据管理的发展阶段、数据库系统的特点、SQL概述、SQL数据定义功能、SQL数据查询功能、SQL数据修改功能、嵌入式SQLv Linux操作系统简介及常用命令:Linux系统介绍、Linux系统历史及发展、Linux系统特点、Linux系统安装与配置、Linux系统命令的使用方式、文件及目录操作命令、文件压缩命令、联机帮助命令、进程管理的命令四、软件测试管理v 组织和管理测试团队:基于ISO的测试管理体系构成、测试团队的地位和责任、测试团队的构成 、测试团队的管理和发展v软件测试项目管理:软件测试项目管理的概述、软件测试项目的组织 、软件测试项目的过程管理 、软件测试项目的资源管理 、测试项目的进度管理 、测试项目的风险管理 、测试项目的质量和配置管理、软件测试文档的管理v 理解CMM:KPA简介 、CMM的五个等级及关键过程域、CMM实例简介 、CMM的发展、CMMI2级详细讲解五、软件测试人员面临的机会和挑战v软件测试职位在IT行业的现状v软件测试职位到底是干什么?v软件测试行业的背景v软件测试人员需要具备的基本素质v软件测试工程师需掌握的技术技能大纲v软件测试人员后期的发展机会和挑战附录(基础技能版,本内容为华为公司指定培训内容):一、基础技能方面:Unix/Linux操作系统:⒈熟悉UNⅨ环境⒉掌握UNⅨ常用命令⒊了解并掌握Vi的一些常用命令⒋了解基本的shellInformix:⒈熟悉并掌握informix常用命令⒉掌握SQL相关的一些知识Oracle:⒈掌握Oracle的基本操作⒉掌握在unix/Linux系统下安装Oracle数据库二、网络基础知识⒈熟悉TCP/IP、HTTP、UDP协议⒉掌握常用的网络命令⒊抓包工具的熟悉与学习三、测试理论⒈软件及其开发过程⒉软件测试的基本概念与方法⒊质量保证与策略⒋测试依据与规范⒌单元测试⒍集成测试与系统测试⒎验收测试⒏基于应用服务器的测试⒐测试计划的制定、用例的设计与执行、缺陷的跟踪四、模拟项目练习⒈理解需求,设计测试用例、测试用例评审⒉测试执行⒊提单规范有关模拟项目的需求、用例模板、测试版本。

求解嵌入式学习的基本流程 谁要是有培训班的课程表也可以
学习周期为20周。 就业方向消费类电子、制造工业、军工企事业、电信/网路/通讯、航空航天、仪器、仪表、汽车电子、医疗设备、船舶、航空、航天、军事装备等各相关行业。课程进度时间课程内容第一周Linux简介、VMware的安装与使用、Linux的安装Linux的启动过程、Linux目录结构的简介Linux基本命令的使用、VMare Tools的安装 VIM的使用Linux常用服务介绍GCC的使用、 GDB的使用第二周 C语言指针、内存和地址、值和类型、指针变量的内容、间接访问操作符、未初始化和非法指针、NULL指针、指针、间接访问和左值、指针、间接访问和变量、指针常量、指针的表达式、指针运算、位操作、一维数组的数组名、下标引用、指针和下标、指针的效率、数组和指针、作为函数参数的数组名、申明数组参数、数组初始化、不完整的初始化、自动计算数组长度、字符数组的初始化、多维数组的存储顺序、多维数组的数组名、多维数组的下标、指向数组的指针、作为函数参数的多维数组、不受限制的字符串函数、长度受限制的字符串函数、字符串查找基础、高级字符串查找第三周结构体声明、结构体成员、结构体成员的直接访问、结构体成员的间接访问、结构体的自引用、不完整的结构体声明、结构体的初始化、结构体、指针和成员、访问指针、访问结构体、访问结构体成员、访问嵌套结构、结构体的存储分配、作为函数参数的结构体、位段、联合、链表的创建、链表的插入,删除,遍历操作、类、对象、作用域和可见性、对象的生成周期、数据和函数、静态变量、共享数据的保护、友元、编译的预处理、类的继承与派生、类成员的访问控制、单继承与多继承、派生类的构造、析构函数、类成员的标识和访问、多态性、运算符重载、虚函数、纯虚函数、抽象类文件I/O操作、文件上锁文件流操作进程简介、Linux进程控制编程第四周exec函数族、system系统调用进程退出、进程检测僵尸进程、守护进程无名管道、有名管道信号通信、信号的来源信号的生命周期、信号检测与处理流程发送信号的函数、进程对信号的响应方式、信号处理的主要方法共享内存实现步骤、共享内存创建共享内存映射、共享内存映射消息队列、消息队列信号,管道与消息队列比较消息队列的使用流程消息队列编程第五周进程回顾、进程与线程的比较线程的创建、线程的等待、线程的终止多线程的同步机制,互斥量、信号量、条件量socket简介、socket常用函数TCP网络通信模型.UDP网络通信模型网络编程注意事项第六周服务器的分类、TCP循环服务器、TCP并发服务器多进程并发服务器、多线程服务器I/O多路复用服务器Makeifle工程管理器嵌入式LINUX GUI介绍及QT/MINIGUI之间比较QT介绍及其信号插槽机制QT图形界面编程技术嵌入式数据库的概念嵌入式数据库的编程第七周ARM微处理器概述、ARM微处理器的寄存器结构ARM微处理器的异常处理、ARM基本寻址方式ARM指令集、S3C2440微处理器、S3C2440处理器内存映射裸机开发环境、ADS1.2开发环境介绍GUI开发环境相关操作介绍、CodeWarrior 集成环境介绍AXD调试工具、S3C2440原理图分析GPIO编程讲解第八周ARM的异常中断类型、异常中断响应过程和返回过程S3C2440异常中断的响应、S3C2440中断控制器按键驱动实现过程分析、看门狗原理与执行过程S3C2440的看门狗介绍、看门狗相关寄存器介绍看门狗复位实现过程、看门狗中断实现过程DMA的工作原理、DMA请求源、DMA的工作模式DMA的工作流程、DMA的寄存器、DMA编程介绍串口分类、串口通信原理、串口的机械特性串口控制器、串口寄存器、串口编程第九周触摸屏的工作原理 、触摸屏的分类 、S3C2440触摸屏介绍触摸屏相关寄存器介绍 、触摸屏编程分析LCD简介、LCD分类、LCD工作原理、LCD主要参数LCD控制器介绍、LCD寄存器、LCD时序分析LCD编程分析NAND FLASH简介NAND FLASH 和NorFlash的区别NAND FLASH的引脚介绍、NAND FLASH的操作原理NAND FLASH的寄存器介绍、NAND FLASH的操作流程分析PWM简介S3C2440定时器PWM工作原理、PWM寄存器介绍PWM操作流程第十周嵌入式系统介绍、主流的嵌入式系统介绍Uboot的烧写、Uboot相关命令介绍内核的烧写、文件系统的烧写NFS服务器搭建交叉编译环境搭建Boot Loader简介、Uboot介绍S3c2440时钟、S3c2440内存映射Uboot的启动过程分析Uboot源码分析第十一周Uboot源码分析Uboot移植综合讲解第十二周Linux内核配置及编译、主流的Linux发行版Linux内核源码版本命名、Linux的内核构成Linux内核的目录结构Linux内核编译步骤Linux内核移植步骤构建相关目录、dev的实现、系统命令的实现构造lib、构造etccramfs文件系统jiffs2文件系统yaffs2文件系统ramdisk文件系统网络文件系统第十三周添加驱动的两种方法内核模块简介、内核模块的创建、内核模块的Makfefile编写内核模块的安装与卸载内核模块的参数传递内核模块的外部引用内核模块的源码移植内存的概念、物理内存、虚拟内存、MMU物理地址、逻辑地址、虚拟地址、段式管理、页式管理Linux内存管理传统链表的缺点、Linux内核链表内核链表的常用操作、内核链表的使用时钟中断、jiffies、delay的实现内核定时器介绍、内核定时器的结构体内核定时器相关操作、内核定时器的使用第十四周AP如何使用Kernel资源、什么是系统调用系统调用 VS 普通函数调用、Linux库函数由来系统调用原理、编写一个系统调用的流程应用程序异常分析、内核异常分析Linux设备驱动的分类、Linux体系结构设备号、字符设备驱动的重要数据结构介绍字符设备的注册流程、字符设备相关操作创建设备文件、IOCTL的实现方法GPIO驱动的实现方法第十五周并发与竞态、原子操作、信号量、自旋锁同步操作方法比较睡眠的介绍、阻塞和非阻塞操作等待队列介绍、简单休眠、高级睡眠阻塞型字符驱动实现流程轮询的概念与作用应用程序中的轮询编程、设备驱动中的轮询编程轮询型设备驱动实例动态创建设备文件Linux中断的实现过程中断注册、中断服务程序、释放中断、共享中断Linux驱动的中断实例、Linux中断的高级知识第十六周寄存器,内存,I/O之间的关系、I/O端口和I/O内存I/O端口的操作流程、I/O内存的操作流程应用程序内存映射的使用、内存映射的系统调用内存映射的高级应用、虚拟内存区域介绍驱动内存映射的操作、内存映射的实例输入子系统简介、输入子系统的构成输入子系统框架、输入子系统的实现流程触摸屏驱动分析第十七周内核对象介绍、设备驱动模型、平台驱动程序块设备的重要数据结构、块设备的注册块设备相关操作、块设备的请求处理命令预准备、被标识的命令队列块设备驱动程序实现流程网络协议栈、TCP/IP协议Linux网络体系结构、Linux网络子系统Linux网卡驱动开发基础、DM9000驱动开发流程LCD驱动分析第十八周PCI简介、PCI特点、PCI体系结构、PCI寻址PCI配置空间、PCI配置空间的读写Linux对PCI支持、PCI相关数据结构PCI驱动的基本架构、PCI驱动编写流程USB简介USB系统体系结构、USB描述符、USB数据传输USB设备枚举、Linux内核对USB的支持USB主控制器初始化、USB主控制器层次结构USB HUB初始化、USB HUB对端口监控USB设备探测、USB总线地址分配USB设备的初始USB驱动实例第十九周项目实战 MP4制作 第二十周项目实战 视频监控系统
厦门尚享电子科技有限公司有培训嵌入式 课程安排如下: 嵌入式ARM培训/Linux培训课程安排 学员经过培训后具有系统掌握嵌入式Linux开发技术,可以从事嵌入式 Linux操作系统移植开发、驱动开发、应用开发的高级技术人才。*教学模式*为了保证培训效果,增加互动环节,我们坚持小班授课,多余人员安排到下一期进行。嵌入式ARM/Linux培训班*课程简介*课程主要采用实践为主,授课为辅. 采用友善之臂mini2440开发板进行讲课.课程共分为如下部份:一. bootloader详解及移植1.嵌入式Bootloader简介2.Bootloader的操作模式3.Bootloader的配置及编译4.Bootloader的用法5.修改源码,进行实验二. 建立开发环境1.开发环境简介2.安装交叉编译工具3.设置环境参数4.烧写bootloader,kernel,根文件系统,下载应用程序(串口,usb口,网络)5.建立nfs根文件系统三.定制内核移植1. linux内核简介2. linux内核基本配置3. 内核的定制及裁剪4. 两种加入驱动程序方式5. 启动参数的修改6. 实践四. 嵌入式Linux文件系统1. 嵌入式Linux文件系统简介2. ext2文件系统的制作3. yaffs2文件系统的制作4. 最小根文件系统5. 启动程序方式6. 定制工具busybox7. 实践五. miniGUI1. 嵌入式GUI简介2.miniGUI的配置,编译3. 建立主机开发环境4. 建立开发板运行环境5. GUI基础6. 实践一个简单例程六. 嵌入式linux驱动程序开发1. 设备驱动程序的基本知识2. 字符设备驱动程序3. 块设备驱动程序4. 调试方法5. 实践一个简单例子七. 课程设计---做一个IP电话1.项目总体需求2.软件需求分析3.软件总体设计含算法/数据结构/GUI4.软件代码编写5.上机调试课时安排:80学时,三个月让你彻底玩转嵌入式Linux。收费标准:5600元/人开课时间:晚上或周未,有特殊要求可随到随学适合对象:1.想从事嵌入式linux的人员。2.现在在从事PC软件开发或单片机软件开发研发人员,想转而从事嵌入式 linux软件开发的工程师3.从事硬件开发想转而从事软件开发的工程师;4.对电子技术比较向往,想从事嵌入式软件开发的人 5.应往届缺少实践的毕业生,电子爱好者。
我们这里有学习时间为四个月和一个月的嵌入式培训课程表,你需要哪个?四个月的是嵌入式Linux实战就业班(包含7个大项目),一个月的是特训班(包含2个小项目)。

嵌入式开发如何入门
嵌入式开发主要有两种,像STM32、飞思卡尔等系列5261单片机属于无操作系统的,直接对寄存器或者利用库函数操作的,这种学习来难度相对小一些,就业前景也不错。还有一些像ARM9,或者CortexA8、A9系列的可以运行Linux或者安卓操作系统的嵌入式软件系统开发,由于需要学习的内容较多,学习时间较长,那么学习起来就有一定的难度,工资也相对高一些。课程内容主要包括:①C,Java核心编程:c语言核心编程,Java核心编程;②Linux核心操作与算法:Linux系统使用,Linux-c编程核心技术,精品数据结构,Linux-c编程精髓;③核心操作与算法:Linux系统编程,Linux网络编程核心技术,UI编程,Java核心编程,安卓核心技术;④ARM+Linux底层开发:数字电路,ARM编程核心,Linux系统开发,嵌入式Linux驱动开发;⑤大型项目实践:每期安排各类型真实的项目,详细可以找我要资料。互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。祝你学有所成,望采纳。
闲话不多说,给LZ个大概的参考框架: 如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,我认为大概分3个阶段:1、嵌入式linux上层应用,包括QT的GUI开发2、嵌入式linux系统开发3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。所以你可以尝试以下路线:(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。(3) Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。推荐书籍:《UNIX环境高级编程》(第2版)(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。(6) 驱动开发linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功! 推荐你到华清远见网站上了解更多嵌入式的相关资料。各大书店及图书馆也有华清远见出版的畅销嵌入式专业图书,了解一下相信对你有帮助!
我一个朋友曾去了一个叫东方赛富的参加嵌入式开发学习,听说在北京口碑是最好的,下面是他曾给我一下嵌入式入门的资料:嵌入式系统学习步骤: 1、Linux 基础安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程详解 熟悉Linux服务能够独立安装Linux操作系统 能够熟练使用Linux系统的基本命令 认识Linux系统的常用服务安装Linux操作系统 Linux基本命令实践 设置Linux环境变量 定制Linux的服务 Shell 编程基础使用vi编辑文件 使用Emacs编辑文件 使用其他编辑器2、Shell 编程基础Shell简介 认识后台程序Bash编程熟悉Linux系统下的编辑环境 熟悉Linux下的各种Shell 熟练进行shell编程熟悉vi基本操作 熟悉Emacs的基本操作 比较不同shell的区别 编写一个测试服务器是否连通的shell脚本程序 编写一个查看进程是否存在的shell脚本程序 编写一个带有循环语句的shell脚本程序3、Linux 下的 C 编程基础linux C语言环境概述 Gcc使用方法 Gdb调试技术 Autoconf Automake Makefile 代码优化 熟悉Linux系统下的开发环境 熟悉Gcc编译器 熟悉Makefile规则编写Hello,World程序 使用 make命令编译程序 编写带有一个循环的程序 调试一个有问题的程序4、嵌入式系统开发基础嵌入式系统概述 交叉编译 配置TFTP服务 配置NFS服务 下载Bootloader和内核 嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程 建立嵌入式系统开发环境制作cross_gcc工具链 编译并下载U-boot 编译并下载Linux内核 编译并下载Linux应用程序4、嵌入式系统移植Linux内核代码 平台相关代码分析 ARM平台介绍 平台移植的关键技术 移植Linux内核到 ARM平台 了解移植的概念 能够移植Linux内核移植Linux2.6内核到 ARM9开发板5、嵌入式 Linux 下串口通信串行I/O的基本概念 嵌入式Linux应用软件开发流程 Linux系统的文件和设备 与文件相关的系统调用 配置超级终端和MiniCOM 能够熟悉进行串口通信 熟悉文件I/O 编写串口通信程序 编写多串口通信程序6、嵌入式系统中多进程程序设计Linux系统进程概述 嵌入式系统的进程特点 进程操作 守护进程 相关的系统调用了解Linux系统中进程的概念 能够编写多进程程序编写多进程程序 编写一个守护进程程序 sleep系统调用任务管理、同步与通信 Linux任务概述任务调度 管道 信号 共享内存 任务管理 API 了解Linux系统任务管理机制 熟悉进程间通信的几种方式 熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输 编写一个使用共享内存的程序7、嵌入式系统中多线程程序设计线程的基础知识 多线程编程方法 线程应用中的同步问题了解线程的概念 能够编写简单的多线程程序编写一个多线程程序8、嵌入式 Linux 网络编程网络基础知识 嵌入式Linux中TCP/IP网络结构 socket 编程 常用 API函数 分析Ping命令的实现 基本UDP套接口编程 许可证管理 PPP协议 GPRS 了解嵌入式Linux网络体系结构 能够进行嵌入式Linux环境下的socket 编程 熟悉UDP协议、PPP协议 熟悉GPRS 使用socket 编写代理服务器 使用socket 编写路由器 编写许可证服务器 指出TCP和UDP的优缺点 编写一个web服务器 编写一个运行在 ARM平台的网络播放器9、GUI 程序开发GUI基础 嵌入式系统GUI类型 编译QT 进行QT开发熟悉嵌入式系统常用的GUI 能够进行QT编程使用QT编写“Hello,World”程序 调试一个加入信号/槽的实例 通过重载QWidget 类方法处理事件10、Linux 字符设备驱动程序设备驱动程序基础知识 Linux系统的模块 字符设备驱动分析 fs_operation结构 加载驱动程序了解设备驱动程序的概念 了解Linux字符设备驱动程序结构 能够编写字符设备驱动程序编写Skull驱动 编写键盘驱动 编写I/O驱动 分析一个看门狗驱动程序 对比Linux2.6内核与2.4内核中字符设备驱动的不同Linux 块设备驱动程序块设备驱动程序工作原理 典型的块设备驱动程序分析 块设备的读写请求队列了解Linux块设备驱动程序结构 能够编写简单的块设备驱动程序比较字符设备与块设备的异同 编写MMC卡驱动程序 分析一个文件系统 对比Linux2.6内核与2.4内核中块设备驱动的不同11、文件系统 虚拟文件系统 文件系统的建立 ramfs内存文件系统 proc文件系统 devfs 文件系统 MTD技术简介 MTD块设备初始化 MTD块设备的读写操作了解Linux系统的文件系统 了解嵌入式Linux的文件系统 了解MTD技术 能够编写简单的文件系统为 ARM9开发板添加 MTD支持 移植JFFS2文件系统 通过proc文件系统修改操作系统参数 分析romfs 文件系统源代码 创建一个cramfs 文件系统 .更详细的信息,建议你到东方赛富网站去问问
嵌入式开发,最近几年越来越火,虽然入门门槛比较高,但是学好了薪资水平不错哦。例如Linux嵌入式的高级工程师。而且如果你能啃下嵌入式这个"硬柿子", 学了很多方面的知识, 那么其他一些编程领域, 也许就能比较轻松地掌握了。就好比你如果熟练掌握了C语言和C++, 那么其他一些编程语言一般都可以轻松驾驭了。 怎么入门和提高呢?以下是几条建议。1、嵌入式软件的话不一定需要学很多硬件知识的(有的话当然是多多益善)。会用一些烧写工具,编译,调试工具(比如JTAG)就可以了,到时候要用了现学。开发工具也没什么固定的,一般也不一定要IDE,用文本编辑器就可以写代码(比如Vim,Emacs, nano, Sublime)了。编译一般用GCC的变种。2、嵌入式一般要学C语言3、C++不一定会用到, 但也可以学一下。4、Linux是要学习的。因为交叉编译经常要用到Linux系统,即使在Windows下也要用到Cygwin这类的。5、最好花点时间学一下汇编,对理解计算机的原理,特别是内存,指针,二进制,十六进制都有很好帮助,不需要学很深。6、嵌入式目前主流的处理器架构是ARM(以前是ARM7,ARM9,ARM11,现在都Cortex系列了)。手机,平板,大部分开发板都是ARM的天下。所以需要学一下ARM架构,有个了解。一开始对ARM不需要太深入,视以后情况而定。ARM的集成开发环境有ADS(ARM Developer Suite), 是ARM处理器下主要的开发工具。 7、可以去买一块便宜的开发板来开始学习。
同意楼上的。。。 ----------------- 我一个朋友曾去了一个叫东方赛富的参加嵌入式开发学习,听说在北京口碑是最好的,下面是他曾给我一下嵌入式入门的资料:嵌入式系统学习步骤:

传输层协议(TCP, UDP)
传输层定义了主机应用程序之间端到端的连通性。传输层中最为常见的两个协议分别是传输控制协议TCP(Transmission Control Protocol)和用户数据报协议UDP(User Datagram Protocol)。为了简化问题说明,本课程以Telnet为例描述相关技术。设备支持通过Telnet协议和Stelnet协议登录。使用Telnet,Stelnet v1协议存在安全风险,建议你使用STelnet v2登录设备。为了简化问题说明,本课程以FTP为例来描述相关技术。设备支持通过FTP协议,TFTP以及SFTP传输文件。使用FTP,TFTP,SFTP v1协议存在风险,建议使用SFTP v2方式进行文件操作。TCP是一种面向连接的传输层协议,提供可靠的传输服务。TCP是一种面向连接的端到端协议。TCP作为传输控制协议,可以为主机提供可靠的数据传输。TCP需要依赖网络协议为主机提供可用的传输路径。TCP允许一个主机同事运行多个应用进程。每台主机可以拥有多个应用端口,没对端口号,源和目标IP地址的组合唯一地标识了一个会话。端口分为知名端口和动态端口。有些网络服务会使用固定的端口,这类端口称为知名端口,端口号范围为 0~1023 。比如:FTP,HTTP,Telnet,SNMP服务均使用知名端口。动态端口范围 1024~65535 ,这些端口号一般不会固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。TCP通常使用IP作为网络层协议,这是TCP数据被封装在IP数据包内。TCP数据段由TCP Header(头部)和TCP Data(数据)组成。TCP最多可以有60个字节的头部,如果没有Options字段,正常的长度是20字节。TCP Header是由如上图标识一些字段组成,这里列出几个常用字段。注意:1)主机A(通常也叫客户端)发送一个标识了SYN数据段,标识期望与服务器A建立连接,此数据段的序列号(seq)为a;2)服务器A回复标识了SYN+ACK的数据段,此数据段的序列号(seq)为b,确认序列号为主机A的序列号加1(a+1),以此作为对主机A的SYN报文的确认。3)主机A发送一个标识了ACK的数据段,此数据段的序列号(seq)为a+1,确认序列号为服务器A的序列号加1(b+1),以此作为对服务器A的SYN报文段的确认。TCP是一种可靠的,面向连接的全双工传输层协议。TCP连接的简历是一个三次握手的过程。TCP的可靠传输还提现在TCP使用了确认技术来确保目的设备收到了从源设备发来的数据,并且是准确无误的。确认技术的工作原理如下:目的设备接收到源设备发送的数据段时,会向源端发送确认报文,源设备收到确认报文后,继续发送数据段,如此重复。如图所示,主机A向服务器A发送TCP数据段,为描述方便假设每个数据段的长度都是500个字节。当服务器A成功收到序列号是M+1499的字节以及之前的所有字节时,会以序列号M+1400+1=M+1500进行确认。另外,由于数据段N+3传输失败,所以服务器A未能收到序列号为M+1500的字节,因此服务器A还会再次以序列号M+1500进行确认。注意:上面说到,数据段 N+3 传输失败,那么第二次确认号M+1500,主机A会将N+3,N+4,N+5全部发送一次。TCP滑动窗口技术通过动态改变窗口大小来实现对端到端设备之间的数据传输进行流量控制。如图所示,主机A和服务器A之间通过滑动窗口来实现流量控制。为了方便理解,此例中只考虑主机A发送数据给服务器A时,服务器A通过滑动窗口进行流量控制。例子中:主机A向服务器发送4个长度为1024字节的数据段,其中主机的窗口大小为4096个字节。服务器A收到第3个字节之后,缓存区满,第4个数据段被丢弃。服务器以ACK3073(1024*3=3072)响应,窗口大小调整为3072,表明服务器的缓冲区只能处理3072个字节的数据段。于是主机A改变其发送速率,发送窗口大小为3072的数据段。主机在关闭连接之前,要确认收到来自对方的ACK。TCP支持全双工模式传输数据,这意味着统一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,一次在传输完毕后,两个方向的连接必须都关闭。TCP连接的建立是一个三次握手过程,而TCP连接的终止则要经过四次挥别。如图:1.主机A想终止连接,于是发送一个标识了FIN,ACK的数据段,序列号为a,确认序列号为b。2.服务器A回应一个标识了ACK的数据段,序列号为b,确认序号为a+1,作为对主机A的FIN报文的确认。3.服务器A想终止连接,于是向主机A发送一个标识了FIN,ACK的数据段,序列号为b,确认好为a+1。4.主机A回应一个标识了ACK的数据段,序列号为a+1,确认序号为b+1,作为对服务器A的FIN报文的确认。以上四次交互完成了两个方向连接的关闭。TCP断开连接的步骤,这个比较详细:https://blog.csdn.net/ctrl_qun/article/details/52518479UDP是一种面向无连接的传输层协议,传输可靠性没有保证。当应用程序对传输的可靠性要求不高时,但是对传输速度和延迟要求较高时,可以用UDP协议来替代TCP协议在传输层控制数据的转发。UDP将数据从源端发送到目的端时,无需事先建立连接。UDP采用了简单,容易操作的机制在应用程序间传输数据,没有使用TCP中的确认技术或滑动窗口机制,因此UDP不能保证数据传输的可靠性,也无法避免接受到重复数据的情况。UDP头部仅占8个字节,传输数据时没有确认机制(注意,但是有校验和)。UDP报文分为UDP报文头和UDP数据区域两个部分。报头由源端口,目的端口,报文长度以及校验和组成。UDP适合于实时数据传输,比如语音和视频通信。相比TCP,UDP的传输效率更高,开销更小,但是无法保证数据传输可靠性。UDP头部的标识如下:1)16位源端口号:源主机的应用程序使用的端口号。2)16位目的端口号:目的主机的应用程序使用的端口号。3)16位UDP长度:是指UDP头部和UDP数据的字节长度。因为UDP头部长度是8字节,所以字段的最小值为8。4)16位UDP校验和:该字段提供了与TCP校验字段同样的功能;该字段是可选的。使用UDP传输数据时,由应用程序根据需要提供报文到达确认,排序,流量控制等功能。主机A发送数据包时,这些数据包是以有序的方式发送到网络中的,每个数据包独立地在网络中被发送,所以不同的数据包可能会通过不同的网路径叨叨主机B。这样的情况下,先发送的数据包不一定先到达主机B。因为UDP数据包没有序号,主机B将无法通过UDP协议将数据包按照原来的顺序重新组合,所以此时需要应用程序提供报文的到达确认,排序和流量控制等功能(也就是说UDP报文的到达确认,排序和流量控制是应用程序来确定的)。通常情况下,UDP采用实时传输机制和时间戳来传输语音和视频数据。UDP适合传输对延迟敏感的流量,如语音和视频。在使用TCP协议传输数据时,如果一个数据段丢失或者接受端对某个数据段没有确认,发送端会重新发送该数据段。TCP重新发送数据会带来传输延迟和重复数据,降低了用户的体验。对于延迟敏感的应用,少量的数据丢失一般可以被忽略,这是使用UDP传输能够提升用户的体验。总结:1.TCP头部中的确认标识位有什么作用呢?TCP报文头中的ACK标识位用于目的端对已接受到数据的确认。目的端成功收到序列号为x的字节后,会以序列号x+1进行确认。2.TCP头部中有哪些标识位参与TCP三次握手?在TCP三次握手过程中,要使用SYN和ACK标识位来请求建立连接和确认建立连接。

计算机科学与技术专业的大一学生自己应该做些什么,如看哪些书?
最开始的第一门课应该是“C 语言程序设计”,这基本上属于你日后一切学习的开始, 简单说这门课程的主要目的和内容就是介绍一种计算机语言的语法内容,至于怎么学好它,之前的文章都谈过了,这里就不罗嗦了。之后的课程会分为三条线,第一条线的第一门课程是“数据结构与算法”。这很简单,一些有了语言基础之后,为了更好的使用语言去解决问题,就必须学习结构知识和算法。至于怎么学好它,之前的文章也谈过了——请注意,如何学都不是本文的重点。本文的重点在于告诉你你将来都会学些什么以及该学些什么。“数据结构与算法”的后续课程是什么?答案应该是《编译原理》。很奇怪吧?课程就是这样设计的,其实这个路线也不是我发明的,国外大学的CS Course 的体系也是这么设计的。编译原理说白了就是介绍编译器如何工作的,是让计算机理解计算机语言的一种方法和理论。这个工作过程之中蕴含了大量的算法,而且是非常复杂的算法,很多人甚至认为编译原理是计算机专业本科阶段最难的一门课程。主要就是因为这里面的算法太复杂,当然也会用到很多结构,树可能是用得最多的。当然,这就是相当于是数据结构与算法课程的一个后续性课程,类似一道附加题。最近听一个学生说有些学校本科已经取消这门课了,我想应该是较少一部分学校的做法吧。不过,中国的学习并不太重视这门课倒是真的。一般课程设置就是一个学期左右的课时。但是一般的国外学校这门课都要学上1 年,甚至两年之久。这条线路到编译这里就应该是终点了。下面我们来谈谈大学计算机课程学习的第二条路线。在你具有了一定C 语言基础之后,除了前面讲的第一条路线以外,你已经可以开始下面这条路线的学习了。为了更好地探究计算机系统的研究机制,在学习了C 语言之后,下面一门需要学习的课程是“汇编语言和微机接口技术”,这门课程包含两部分的内容,一部分就是汇编语言,汇编是一种更底层的语言(相对于C 而言),说白了它就是一种“用助记符描述的机器语言”。很多人刚学汇编的时候都觉得很复杂,因为它跟硬件紧密相关,就是那些个寄存器也够初学者糊涂一阵子的。这门课程的另外一部分内容是微机接口技术,目前国内高校这部分内容都是基于80X86 系列芯片的。已经可以看到这门课其实涉及到了很多硬件的知识,其实还不止,关于I/O 控制,寄存器,中断,这门课里都有体现的。接下来要学习的内容就是《计算机组成原理与体系结构》。其实我特别奇怪,我在写学习路线1(也就是前一篇文章)的时候,有读者认为在学习C 语言之前,或者在学习其他专业课程之前,最先要学的就是这个东西。我不知道大家是不是觉得大学第一门专业课就是这个,我觉得这么想的人是不且实际,信口开河的。这门课程还是比较深的一门课程,在汇编和接口之后安排这门课程是比较的。不过国外的一些先进的计算机教育体系确实也有在较开始的时候开设一门概论课来作为导引,有时候叫Computer System Introduction,有时候叫Computer Culture,其实内容差不多,但作为计算机专业课程的导引课程,这些课程的设置里面已经设计到组原和OS 的初步内容了。但这和Computer Structrue & Architecture 还是有区别的。接下来的一门课程是《计算机操作系统》,如果外行听起来可能觉得这个课应该是学如何使用操作系统的吧,就像“WindowsXP 速成”?非也!这门课程是讲OS 是如何设计的,或者说是如何实现一个O S(当然做要比说起来难多了)。之所以这门课程被安排在组原之后,那是因为这反映了一种自底向上的学习路线。操作系统当然是在计算机系统之上来搭建的。向调度啊、虚拟内存啊这些问题都是由操作系统来控制的。我最近所写的《代码揭秘》基本上是属于这条路线上的内容的,不同的是我采用了一种更贴合读者理解方式的描述,因为在讲述这些原理之前,我都是采用C 语言实例来作为引子的。有空也推荐大家看看,应该学校里的图书馆是可以借到的。前一阵子一位四川大学的计算机青年教师给我写信谈起我这本书时,我才知道高校的图书馆里原理已经可以借到了。以上就是大学计算机课程学习的第2条路线,下面我们来讲最后一条路线。最后一条路线属于应用型的,也就是说当你学完了基本的原理之后,一方面为了日后更好的工作,另一方面如果从事研究工作也可择其一而继续深入探究,那么最好总之要上升到一定应用层面的东西。在你有了一定的C 基础之后,学校可能会开一些面向对象程序设计方面的课程,可能是C++或者Java,因为面向对象的语言在实际开发中正广泛的被使用。无论是C++还是Java,跟C 来说本质上都是语言,只不过他们多了一些OOP 方面的特性。如何学好它们,我前面的文章中已经谈过,这里就不多言了。接下来的一门课程应该是“数据库系统”,这门课不是教你怎么使用SQL SERVER 或者DB2 的,学校里的课程远没这么前沿。数据库系统这门课依然偏重更多理论,尽管数据库相比于组原和OS 来说已经是上层建筑了。这门课讲的多是些数据库系统设计方面的原则,例如如何解决关系问题或者SQL 语言等等。再之后可能会学的课程是“计算机网络”,这门课里会更加系统的向你介绍网络方面的知识,TCP、UDP,HTTP 这些名词会粉末登场。注意这门课一般不是教授你如何布网的,例如如何配置路由器这种东西一般是CCNA 里面的内容了。这门课里讲的更多的是上层原理与协议。以上就是一般的大学计算机课程学习的几条路线。他们彼此联系,共同作用。注意我这里讲的内容不是给你推荐学习方向,而是告诉你大学里会学什么,之间联系如何。从之前的文章评论里不难看出,有的同学好像根本没理解文章的意思,说自己好像更适合哪条路线的样子,其实适不适合哪条线的问题根本不存在,这些东西你都得学,既然学就要学好。本身就是一个体系的,怎么能做瞎子摸象的事情呢?现在CSDN 学生大本营搞得不错,资源很多,访问量很大,但也能客观的看出浏览的人真的是分好多等的,有的是谦逊而好学的,有的则是蜻蜓点水的过客。浮躁之气甚嚣尘上,胸中无物自然谈吐轻浮,看什么都不求甚解,浅尝辄止,多少有些自以为是、妄自尊大了。这也是我在此开博四个月余来的感受吧。希望大家都能保持一颗平常心,戒骄戒躁,平和的埋头学习吧。 这是我看过的文章,希望对你有帮助!
目前学计算机 还是挺不错的好就业,计算机分很多专业如平面设计,UI设计,互联网营销,电竞,动漫,都是非常好就业的专业哦,选择自己喜欢的专业
拆机再装机!多找些电脑,笔记本什么的拆装,笔记本记得看教程拆。熟悉每个部件。有关系的话,多去电脑公司维修部实习实习。书籍的话,基础方面的多看看。基础牢靠了,基本上一通百通。高级点的上手也会很快。
可以先“轻松”一年,但不要颓废,玩游戏适度就好; 关于专业,可以找一些书籍看看,去图书馆熟悉下书籍分类,校园里多逛逛;上专业课的,起码要跟进,如果业余时间舍得拿出来,当然还是看看书,看看教学视频,或者看些有内涵的电影,都是不错的; 如果你是想学习的人,好好珍惜大一,要过的充实,大二根本没有闲下来的时间(如果想学),过的跟狗一样(稍夸张)。
应该在大学期间做好以下准备,为自己增加就业资本:诚心诚意拿个高一点的GPA毕业,好好学习是做学生的本分,否则你连大厂的简历关都过不去学计算机技术,理论知识是你的优势,实操能力也必不可少,多找点实习或者项目做做大学期间有时间,可以不断尝试各种技术,多参与项目开发,知道自己最终会心仪什么技术深入了解一块新技术,跟进开发趋势,提升自己对前沿技术的敏锐度,比如轻量化webGL与传统领域相结合的技术应用,属于未来二十年产业互联网的重头戏。ThingJS是一个物联网3D可视化PAAS平台,适合开发者学习,在线演示属于自己的3D可视化项目,一定能够为简历加分,3D demo看看~物联网3D可视化PAAS平台 ThingJS 官网注册

本文由 在线网速测试 整理编辑,转载请注明出处。