精华内容
下载资源
问答
  • 软件测试工程师经典面试题

    万次阅读 多人点赞 2018-10-27 23:55:52
      软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux...

      软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件测试框架性的问题,测试环境搭建问题、当然还有一些自动化测试和性能测试的问题。测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架模块(一到两年工作经验)
    。今天这篇帖子主要讲解之前面试自己面试过程中或者周围人面试过程中经常被问到且比较经典的面试题,一家之言,如有异议或者有想问的问题,可以在评论区留言,看到后将在第一时间内回复!


    1、软件测试的流程是什么?
      分析:每当HR问一个问题的时候我们都可以用1~2s的时间去想HR想要从这个问题中获取什么信息,这点搞清楚之后再去回答就很好回答了。如果有工作经验,直接按照公司流程回答即可,如果是刚转行或者刚实习,那按标准回答即可,文中回答仅供参考;
      回答: 项目经理或者PD把项目需求文档提前下发给相关的研发人员,研发人员抽出一定的时间记录文档内需求不明确或者遗漏的点为后面的评审做准备;在需求评审会议上,各研发人员提出自己的疑问并解决,需求评审最终通过之后会出一份最终的需求规格说明书;(需求评审阶段)
        需求规格说明书评审通过后,开发经理开始编写开发计划,测试经理开始编写测试计划,计划评审通过后开发人员开始进行程序的开发,测试人员开始测试用例的编写,等程序的第一个版本出来后,开发人员进行第二个版本的迭代,这时测试人员对程序进行测试并记录追踪管理缺陷,直到程序迭代完毕。(产品研发阶段)
        程序迭代完毕并修复大部分缺陷后,测试人员开始进行工作的总结,并最终输出一份测试报告书,记录此次的测试工作共,程序存在的相关问题。(产品发布阶段)

    2、测试用例主要有哪些元素?
      分析:每个公司因为使用的模板不一样,所以测试用例的内容也是不尽相同的,所以回答时只需要回答出基本的元素即可;
      回答: 测试用例主要元素有:ID、标题、模块、预置条件、操作步骤、预期结果、实际结果、是否通过、BugID等;

    3、软件测试有什么策略和阶段?
      分析:软件测试的策略就是测试将按照什么样的思路和方式进行如采用什么技术,什么步骤等。
      回答 :软件测试的策略主要有:动态测试和静态测试、白盒测试和黑盒测试。测试阶段按照研发顺序分别是:单元测试、集成测试、系统测试,有些公司还会有验收测试;(单元测试开发在调试代码时就完成,集成测试也是,但是有时测试人员也需要进行集成测试;测试人员平时主要的工作就是系统测试,验收测试是有客户参与进行的测试);

    4、黑盒测试和白盒测试是什么?二者有什么区别?
      分析:黑盒测试和白盒测试的概念百度百科上面都有,这里不再做太多介绍。黑盒测试和白盒测试的区别:https://www.cnblogs.com/i16i1007/p/6624072.html记得
      回答: 黑盒测试主要是在程序界面进行测试,通过设定某种场景检验程序在这种场景下是否给出了正确的反应,验证程序正确实现了需求规格说明书中的需求,而白盒测试主要是针对程序内部结构,对程序代码进行代码走查等,但是白盒测试的成本会比较大,当程序有多个路径时,可能会产生较多的遗漏;

    5、软件测试有什么类型?
      回答: 常见的软件测试类型有:功能测试、性能测试、兼容性测试、可靠性测试、安全性测试、压力测试、负载测试等;

    6、测试用例是什么?有什么作用?
      回答:测试用例就是设计一个特定场景,让软件在这种场景下运行,检验程序是否给出正确的反应,以此验证软件是否正确实现了客户需求。
      作用:1、避免盲目测试并提高测试效率;在软件版本更新之后只需修正少部分用例即可开展测试工作,降低工作强度,缩短测试周期;
             2、可以分清哪些是测试重点,测试用例是测试工作的见证,能知道测试了哪些功能,没测哪些模块;
             3、测试用例是量化测试工作的方法之一;

    7、你平时是怎么设计测试用例的?
      分析:这个问题的点主要考察是否掌握测试用例设计方法,在回答之后,HR可能会继续追问某种设计方法的概念或者实例,这时举例说明即可;如:等价类划分法就是把程序的输入域划分成等价类,从每个部分中选取少数代表性数据当做测试数据。
      回答:设计测试用例一般都会使用到等价类、边界值、场景/流程法、因果图还有错误推测法;

    8、软件缺陷的定义是什么?
      分析:什么样的问题才是一个缺陷,需要从客户需求出发;
      回答:1、软件未实现需求规格说明书中的要求;
            2、出现需求规格说明书中指明不应该出现的错误;
            3、软件未实现需求文档中虽未明确提及但应该实现的功能;(如:账密加密)
            4、软件出现难以理解、不易使用或者运行速度慢等问题都可以认为是软件缺陷;

    9、缺陷中应该包含什么元素?严重等级一般有哪些?
      分析:这个问题和上面测试用例一样,每个公司的要求可能都会不一样;
      回答:主要元素有:标题、BugID、复现步骤、实际结果、预期结果、截图、日志等;软件缺陷等级一般有四种,致命(程序奔溃)、严重(金额计算错误、数据出错)、一般(不影响使用但是会造成一定的麻烦)、优化(字体字号不统一)

    10、给你一个杯子,你会怎么测试?
      分析:给你一个杯子,给你一个电梯,这种问题在前期的面试中是经常遇到也是非常经典的一道面试题,这里给出一个链接,回答时从外观、功能、性能等各个角度说起,再结合自己的一些话就可以了。
      回答:经典测试用例,一个水杯的测试https://blog.csdn.net/ganhongxia/article/details/6025416

    11、测试报告里面包含什么内容?
      分析:测试报告,是测试工作结束后测试部门输出的一份测试结果,但每个公司的测试报告内容都会有些差别。有些公司的测试报告是有测试部门的负责人一人编写,或者是由每个测试工程师输出自己对应模块的测试报告再由测试组长整合成一份完整的测试报告;
      回答:测试报告内容一般有:编写目的、系统简介、测试环境、测试方法和工具、测试执行结果与记录、缺陷汇总、遗留缺陷跟踪、测试用例执行情况、测试结论与建议等;

    12、如果在测试过程中发现了BUG,可是开发不承认这是Bug,你会怎么办?
      分析:HR问这个问题主要还是想知道你平时是如何处理与同事之间的关系。开发和测试是两个即对立又统一的两个岗位,所以开发和测试之间关系的处理也是HR面试过程中需要考虑的一个点。当然,HR问这个问题也表名该公司有氛围不是很好的风险。
      回答:首先还是应该回归到客户需求上面,确认这个问题到底属不属于一个缺陷,如果确实是则要和开发同事解释清楚;如果开发还是坚持自己想法的话,则询问同事或者测试组长的意见,讨论这个问题到底属不属于缺陷问题,如果大家都觉得是则需要和开发解释清楚。

    13、你们公司的需求评审是怎么进行的?
      分析:需求评审,就是对客户需求,软件各个模块之间模糊的点进行审查,排除不理解或者没有考虑到的点。
      回答:需求评审,在一些分工比较明确的公司,都是由PD(产品设计师)负责,需求确认好后再下发到开发和测试部门;分工不怎么明确的公司可能就是开发测试产品等大家坐在一起共同探讨;评审形式一般分为线上和线下两种方式,负责人一般会提前把需求文档下发到大家手上供大家整理各自的疑惑点,为后续的评审会议做准备。

    14、MySQL的常用命令有哪些?
      分析:数据库知识,是测试工程师必备的一个基本技能,在面试过程中也是经常会遇到的一个考点。对于刚入行的测试,对数据库知识的要求不会太高,只要求能掌握基本的增删改查语句即可。关于数据库的知识,在后续的时间里,也会慢慢的整理出来,供大家学习、参考。
      回答:这里只给出几个标准的语法结构:
            增:insert into 表名(列名) values (数据);
        如:在stu表中插入id为001,姓名为张三的学生,(insert into Stu(stu_id,stu_name) values (001,‘张三’);)
            删:delete from 表名 where 指定数据;
        如:在stu表中删除id为001,姓名为张三的学生:(detele from Stu where stu_id=‘001’ and stu_name = ‘张三’;)
            改:update 表名 set 改变项 where 指定数据;
        如:在stu表中修改id为001的学生姓名为“张三”:(update Stu set stu_name = ‘张三’ where stu_id=‘001’ ;)
            查:select (查询项) from 表名 where 指定条件;
        如:在stu表中查询id为001,姓名为“张三”的学生信息:(select * from Stu where stu_name = ‘张三’ and stu_id=‘001’ ;)

    15、Linux下的一些常用命令是什么?
      分析:Linux系统,也是软件测试工程师必须要掌握的一项基本的技能,由于Linux具有运行稳定等很多优点,软件的服务器大多部署在Linux系统上,搭建测试环境也是测试工程师需要掌握的。关于Linux的知识,在后续的时间里,也会慢慢的整理出来,供大家学习、参考。由于Linux下很多命令都是常用的,所以这里不给出答案。

    16、你未来的职业规划是什么?
      分析:职业规划问题,是所有面试中最常问的问题,问的人可能是HR、部门主管、经理、甚至是董事长。同一个问题,问的人不同,想要获取的信息也肯定是不一样的。HR更多的想看你在公司的稳定性;技术主管可能更想知道你是否真的喜欢测试这个岗位,后期是否会主动学习型新的技能等;而经理更多的是看你的职业规划符不符合公司的发展方向;软件测试工程师的发展方向主要有:测试开发、产品经理、测试转开发、测试大牛、讲师等岗位;
      回答:HR:如果是HR问的话,多从稳定性的角度回答,如:家人、朋友都在公司附近,或者喜欢贵公司的文化氛围等;
            技术:回答之前可以先简单介绍一下自己为什么选择软件测试这个职业,以及自己对这个职业的看法,最后再回答自己的职业发展方向即可;
            经理or董事长:这个回答回答起来的话还是比较难把握的,因为在面试时,面试者往往对公司的发展方向不是非常了解,所以在回答时可以再带一句,“具体的发展方向,还需要公司的发展方向去调整”。这样回答就会保险一些。

    17、还有什么想要问我的吗?
      分析:这个问题在每个面试的尾声都会被问到,直接说没有,会让HR觉得你不关心这个岗位,问的多了又会显得面试之前没有做好充分的准备。所以问题一般控制在两到三个比较好。
      回答:1、公司的研发团队目前是什么规模?开发、测试分别有多少人?
            2、公司的业务方向是什么?
            3、如果我入职之后,我的工作职责是什么?

    18、为什么想要离职?
      分析:这个问题主要是想要了解你的近况,以及上一家公司是什么原因导致你离职,。在大部分情况下,HR都会理解你,但是在回答问题时千万不能太过于实诚,有些面试者一上来就在抱怨上一家公司如何压榨公司员工等,没有一家公司愿意接受这样的面试者,HR并不能完全感受你所遭遇到的,所以还是请控制好自己的负面情绪。

    展开全文
  • 我们的视频课程基于《系统集成项目管理工程师考试5天修炼》一书,基于我们软考团队核心老师在全国各地进行考前辅导的经验。 考生可以以此视频为纲,制定周期性的学习计划来完成视频中知识点的学习。此外,从应考的...
  • 2018网络工程师资源完整版 内含有网络工程师书籍PDF+视频教程+视频课件pdf+2004-2017真题+答案 最全面的资料合集,为准备学习网络工程更进一步
  • Linux运维工程师学习成长路线

    万次阅读 多人点赞 2019-12-14 20:52:46
    作为互联网的幕后英雄,Linux运维工程师长期隐匿在大众认知范围之外,关于运维的讨论仍旧是一片无人涉足的荒漠。在某知名行业研究调查结果中,非互联网从业者对于运维相关问题的回复有三个高频词汇是:不知道、没听...

    作为互联网的幕后英雄,Linux运维工程师长期隐匿在大众认知范围之外,关于运维的讨论仍旧是一片无人涉足的荒漠。在某知名行业研究调查结果中,非互联网从业者对于运维相关问题的回复有三个高频词汇是:不知道、没听过、网管。当调查人员告诉他们科幻电影中展示黑客高超技巧时的命令行界面,正是大多数运维工程师每日工作环境时,他们发出极其一致的惊叹。相对于普罗大众的一无所知,技术圈对运维的态度则更偏向于黑色幽默。相较于开发等工作岗位,7*24小时待命的运维工程师总是默默无闻作为守护者,当然同时还要接受“背锅侠”这一艰巨使命。

    其实,Linux运维工程师被称为“背锅侠”只是网友调侃,有不少同学对这个岗位工作还是有一定误解。在双十二来临之际我们介绍下这个幕后英雄的技术岗位-Linux运维工程师

    目前国内互联网、移动支付、O2O业务发展迅猛,需要为亿万用户提供线上服务。像腾讯、百度、阿里等一线互联网公司,需要数十万台服务器和成千上万IT从业人士,来提供技术服务。

    那么在很多企业IT技术工程师中,一般会分为:开发、测试、运维等几大分支,其中,开发和运维大类中,又可分为很多具体技术岗位。

    在众多互联网公司,IT技术岗位,整体分为三大类:

    1、开发岗位,也就是我们所说的码农,天天撸代码。

    2、测试岗位,找码农写的bug,然后让码农改,改好后上线。

    3、运维岗位,需要搭建好线上服务环境及架构,并保证代码无误上线,及线上业务正常能够被用户访问。

    开发-测试-运维分工

    在企业中,整个技术生产线是这样的流程:

    开发需要开发好代码---> 交给测试工程师测试----->测试完成后,提交给运维工程师进行上线

    运维工程师,的一个重要工作是需要把开发写好的代码,发布出去,给用户提供服务。当然,很多大公司已经实现可持续集成,开发自己就能发布。但这个环节,也少不了运维工程师的支持。可以看出,Linux运维工程师在整个环节中是离用户最近的,也是决定用户访问质量的重要环节。随着移动互联网、O2O、云计算、大数据的发展,服务器的可用性,成为各家公司技术的分水岭,对于一些大的互联网公司而言,对服务器的可用性要求极高,有些要求可达到99.99%(一年停机时间不超过1小时)

    所以,公司对服务可靠性的追求,也会转化为对运维工程师的技能和能力要求,这也是目前高端运维工程师十分稀缺的原因,有不少企业,薪资30-50W找高端运维,但是很难找到合适的。要想成为一个高端Linux运维工程师,都需要具备哪些能力呢?如下图所示:

    看完以上能力要求,相信不少同学应该不会再认为Linux运维工程师没有开发重要了吧。Linux运维工程师,在企业担负非常重要的环节,这也是Linux运维工程师这个岗位,薪资高原因,甚至到后期薪资会比开发高的多。有很多前期做网管,桌面运维或者技术支持的同学,到后期,基本都选择转Linux运维岗,随着云技术的推广,docker、K8s、DevOPS普及,低端的技术支持岗位,会慢慢被边缘化,取而代之的是会这些新技术的中高级运维工程师。我有很多朋友做运维,腾讯、百度、阿里这些厂商,对于优秀的运维工程师,给年薪50W的还是不难的。在一线城市,对于不少刚入门的新手,基本起薪也能达到7K-9K左右。下图招聘的薪资,也是不低的。

    Linux运维工程师,总体来说,是比开发要好掌握一些,开发是要求比较高的数学能力,因为到后期,算法会成为很多人的天花板,Linux运维工程师学起来比较容易一些,都是实操类的学科,把命令、安装、配置和服务练熟。技术支持岗位往往到后期,都会选择晋升到Linux运维工程师。而且对于刚毕业的大学生来说,学习起来是非常顺手的,因为在学校的课程中,就包含了不少运维所需要的基本技能:操作系统、网络、数据库、Linux等。对于转行的人来说,Linux运维工程师的趣味性比较强一些,上手也更容易些,Linux运维是首选,上手容易趣味性强,薪资高,将来工作还轻松。

    想成为合格运维工程师,需要掌握不少技能,Linux运维工程师讲究的是广度,下面是年薪50W的Linux云计算工程师的学习路线图:

    1、Linux 系统基础⼊门-Linux的基础知识内容,和命令使用,以及用户和权限等核⼼知识点

    2、Linux 系统管理和进阶-Linux从进程、资源、任务、⽂件、软件包、磁盘等管理⽅法

    3、Linux 企业常用服务-企业级常用服务如DNS、FTP、Http、mail

    4、Linux 企业级安全原理和防范技巧以及网络和安全-Linux安全架构、安全威胁模型、以及加密、解密等原理,常见攻击和防范⼿段

    5、Shell 编程⼊门及进阶-Shell脚本基本用法以及进阶,从基础到精通,需要学习一些企业级常见脚本用法

    6、MySQL 应用原理及管理⼊门-Mysql安装、管理、授权、增删改查

    7、http 服务代理缓存加速-http ⾼级协议应用、缓存、web服务nginx

    8、企业级负载集群-企业级4层负载均衡LVS、和7层负载均衡nginx以及haproxy的企业应用,静动分离等

    9、企业级⾼可用集群-⾼可用集群原理,实现以keepalived为核⼼的⾼可用集群,以及主从高可用、双主,分库分表

    10、运维监控zabbix-企业级监控体系以及zabbix流⾏开源监控系统的功用及架构,自动发现,插件开发

    11、云计算运维自动化-Ansible、Puppet等运维自动化解决方案,Ansible生产环境应用案例和实战操练、批量进行上百台服务器

    12、WEB 服务体系架构-WEB服务体系架构,JSP体系、tomcat、CDN、缓存原理、压测、评估、LNMP、LAMP等

    13、⼤型互联⽹集群架构和实战⽅案-LB集群:nginx、Haproxy、LVS HA集群、动静分离

    14、MySQL DBA 实战技能和优化-数据库参数优化、分库分表、备份方案、数据恢复策略、主从复制、读写分离、连接池及sharding技术、MHA等

    15、企业级云计算Openstack-Keystone、Glance、Nova核⼼组件、网络模块、块存储服务等

    16、企业级⼤数据Hadoop 运维实战-列式数据库HBase基础原理、安装配置及其应⽤、Zookeeper集群构建、hadoop实现Namenode⾼可⽤

    17、企业级虚拟化KVM 实战-KVM环境:KVM的安装、配置及应⽤

    18、NoSQL 企业级应用-Nosql 应用,Redis、Mongodb、memcached分布式缓存集群实战

    19、企业级日志收集系统ELK 实战-海量数据日志收集系统Elasticsearch+Logstash+kibana 应用

    20、可持续化集成-Jenkins+github企业级应用

    21、虚拟化容器Docker-Linux 轻量虚拟化Docker ,Docker 的原理和安装,配置以及应用,以及生产环境配置和故障恢复

    22、企业级K8S实战-组件功能、安装、配置、企业级应用场景和常见故障分析,kubernetes集群部署,Kubernetes 中的网络管理

    23、Linux 系统调优实战-从内存、CPU、进程调度、磁盘IO、⽹络参数等全面讲解Linux系统调优

    24、Python 自动化开发-python自动化工具开发、Python实现执行环境构建及代码测试示例

    25、个人综合能力提升-表达能力、团队协作能力、执行能力、胜任力等

    以上25条技能,每一条大概价值2K,你的工资多少,在这个行业,就取决于你会多少。要想挣钱,你要先值钱。

     

    展开全文
  • 课程目标: 帮助学员顺利通过软考网络工程师考试。 课程简介: 分章节分模块讲解重点技术,难点和考点,让学员学习知识的同时,快速学习考试技巧。课程图文并茂,重点突出。     2020年学员战绩,高分不断...
  • 《信息系统管理工程师教程》按照人事部、信息产业部全国计算机技术与软件专业资格(水平)考试的要求编写,内容紧扣《信息系统管理工程师考试大纲》。全书分为三个部分:信息系统的基础知识、信息系统的开发过程、...
  • 前段时间,有几个HR朋友问我: 算法工程师的日常工作...1、 软件工程师、算法工程师、大数据工程师区别 2、 一个算法工程师的日常 3、 算法工程师有哪些类别、涉及的技术、作用领域 4、 算法工程师的段位怎么分...

    前段时间,有几个HR朋友问我:

    算法工程师的日常工作到底是在干嘛?

    平常看起来似乎还挺闲的,工资还那么高。

    有时候算法工程师好像又和大数据工程师是一样的工作?

     

    这到底是怎么回事呢?

     

    大约整理出以下几个疑问:

    1、 软件工程师、算法工程师、大数据工程师区别

    2、 一个算法工程师的日常

    3、 算法工程师有哪些类别、涉及的技术、作用领域

    4、 算法工程师的段位怎么分

    5、 算法工程师常见的面试问题

     

    这次我们先来看看第一个问题。

    软件工程师、算法工程师、大数据工程师有什么区别?

    从事软件开发相关工作的人员的统称。

    其工作内容会比较宽泛,从编程到算法,软件整体架构到编码的实现,都是需要涉及。

    而事实上,我们常规所说的软件工程师,其狭义的定义实际上软件研发工程师、程序员等,他们是主要进行软件架构和编码实现,会使用我们常常听到的JAVA、PHP等开发语言。

    下附目前市场上常规的软件工程师的类别:

    来自知乎

    大数据工程师,其实上并不存在这样的岗位。

    它实际上是与大数据相关联的一类岗位的总称。

    跟大数据有关的职位主要分成2大类:一类是应用类、一类是系统类。

    应用类

    偏向于数据分析、数据应用,比如我们经常讲到的数据分析、数据挖掘,均属于这个类别。这类职位主要的功能是提取数据、挖掘数据中隐含的业务信息,支撑企业决策。

     

    这个类别中的大数据算法,其实我们基本上可以理解算法工程师。

    这是唯一跟算法工程师有交叉的部分

     

    系统类

    偏向于系统开发,比如我们经常听到的hadoop、云计算,就是属于这个类型。这里其实主要是hadoop(一个分布式系统,简单理解为另外一种和Windows或者是MacOS一样的东西)偏多,开发语言一般是Java。而另外数据管理员(DBA)和大数据运维工程师,其实,还是原来的DBA,没有变化。

    他们的职责会更纯粹,他们需要知道如何把现实问题转化为数学的模型,并且把模型调到极致,从而解决问题。

     

    算法工程师工作内容更单一(其实有时候,他们只是在思考问题,而不是真的闲),但是更专,需要更好的数学功底。

     

    不过,目前市面上大部分招聘算法工程师的岗位,特指机器学习、数据挖掘领域的非确定性算法或解决一些非确定性问题(见名词通俗解释)。

     

    因此,有时候所谓的算法工程师,真的和大数据相关的工程师在工作上存在大量的看起来『重叠』。因为,这个工种是想办法从数据中获得规律,通过规律优化目前业务、从而产生价值。

     

    算法工程师大致分成以下2类,其中建模类的算法工程师,实际上的工作会和大数据相关的岗位相似:

    上述简单从职位的定义上做拆解,其实这3个岗位,其工作职责分别处于不同的阶段和层次。

     

    更多时候,一个完整优秀的产品,可能需要上述几个岗位协同进行配合工作。他们的工作流大约是这样的。

    这张图大致描述了不同岗位之前是在什么时候介入工作相互配合的。

     

    其实算法工程师,也可能是数据挖掘工程师。

     

    其实生活中有非常多跟算法有关的现象,只是我们没有发现而已。

    对于我们不是做技术类工作的人而言,我们只是不知道其细节,但我们应该要定位到其位置,这样我们在进行人才招聘的时候,才更容易做到心中有底。

    举例

    我们打开高德导航,从广州东站自驾开车前往祈福新村

     

    一般会出现3条路线,1、广州大道路线;2、新光快速路线;3、华南快速路线。

    每一条路线,均会有一个预估时间。

    这个时间,大约就是多项式时间的意思。

    作为驾驶员,当出现3 条导航规划的路径时,我想选择一条时间上最快的路径规划,这时显示华南快速路线比其他2条路线节约10分钟(这是NP问题,是不是真的可以节约10分钟)。

     

    我到达祈福新村,这时我问走新光快速的邻居A,其到达祈福新村的时间。

    这时他告诉说,他跟我同时到达祈福新村。

    这时,我才验证:华南快速路径规划(答案)不是正确答案。

     

    可能P问题和NP问题,你们会觉得跟我们的生活关联度不大。

    在算法工程师眼中,则是完成不一样的。

     

    以导航的例子来说,若出现绝大部分人验证华南快速这条路都和新光快速这条路的通行时间是一样的,那么说明该路路径并不是最节约时间的路径。

     

    高德导航的路径算法工程师,可能需要重新调整其路径规划的算法公式。

    这样,才能够更好的为高德用户服务了。

     

    也许他在数据库中抽取的数据还应该添加上

    1、车型的不同会导致驾驶速度不同,造成对通行时间的影响

    2、不同品牌的汽车,其加速减速对通行时间造成的影响

    3、男女驾驶员的驾驶技术不同,对通行时间造成的影响

    其实,这个过程就是他们在修改算法公式的参数,所以有时候算法工程师,还有一个外号,叫调参狗。

     

    但即使是这样,其最终的通行预估时间,也不见得一定准确。

    算法工程师想要获取相关的数据,也不见是全网数据。毕竟并不是所有人都使用的导航是高德。

     

    算法工程师通过不断的优化算法公式,让这个时间尽可能与真实的通行时间一致,相似度越高,大家对高德地图的信赖度就越高,用户就越多,高德才能够进一步割用户价值的韭菜。

    跟HR相关的例子:

     

    2018Q4季度要完成10个人的招聘(问题),12就是这个n,Q4,则时间是m。

     

    1、现在公司只有你一个人负责招聘,你个人的招聘能力是平均每个月完成4个人的招聘。那么完成这10个人员的招聘,则是3个月。m(12)=3个月。

     

    2、如果现在公司除你之外,另外一名同事也负责招聘,他的招聘能力是2个人/月,那么第一个月完成招聘人数为6人,第二个月为6人,整体的m(12)=2个月,提前完成任务。

     

    那么,是不是对招聘人员数量的增加,就会提高整个招聘的进度呢?

    答案是不一定。

     

    假如你是这个算法工程师,你觉得最终完成招聘任务的时间,会跟哪些因素有关系?

    答案在下期的《谁说HR不能了解算法工程师的日常?》公布。

    展开全文
  • 自己学习数据库系统工程师所做的笔记,主要的考点都在里面,特别是重点部分,有标红。本人上午72分下午60分通过,有需要的可以下载参考
  • java高级开发工程师简历大全,都是筛选出来的非常不错的简历。
  • 软考数据库系统工程师复习资料(完全版)文档整理资料!
  • 自然语言处理工程师实战系列主要包括三大核心模块:1.自然语言处理核心算法原理解读及其案例实战、2.NLP必备实战模块-BERT模型、3.知识图谱实战系列。整体风格通俗易懂,全程实战解读NLP领域各大核心算法及其应用...
  • 2019年秋,校园招聘,华为硬件工程师笔试题目,自己做的,笔试通过,可参考。
  • Ai工程师-自然语言处理实战课程

    千人学习 2019-03-13 22:37:26
    购买课程后,添加小助手微信(微信号:csdn108)回复【唐宇迪】 进入学习群,获取唐宇迪老师答疑 AI工程师-自然语言处理实战课程旨在用最接地气的方式讲解复杂的算法原理,基于真实数据集,通过实际案例进行项目实战...
  • 信息安全工程师教程pdf扫描版,软考信息安全工程师指定必备教程
  • 一线工程师告诉你嵌入式真实现状与发展前景

    万次阅读 多人点赞 2018-10-02 18:49:59
    个人说明:本人并不是年薪百万的技术大牛,但总算是一名合格的嵌入式工程师,现在某企业担任嵌入式软件工程师开发一职,以下观点可能会带有片面或者分析不全,但却是一名一线企业嵌入式软件开发者真实感受和所得,...

    个人说明:本人并不是年薪百万的技术大牛,但总算是一名合格的嵌入式工程师,现在某企业担任嵌入式软件工程师开发一职,以下观点可能会带有片面或者分析不全,但却是一名一线企业嵌入式软件开发者真实感受和所得,希望能帮助那些有需要的人,我明白年轻人出来打拼都不容易。

    为何要写这片文章?小生也是过来人,踩过你们踩过的坑

    百度搜索“嵌入式”、“嵌入式开发”、“嵌入式发展前景”等字眼,出来的都是一大堆培训机构,出来的都是一大片他们所谓的对嵌入式行业的“见解”,不否定其内容有一定的专业性,但其中“水份”我想大家比我更清楚,“卖瓜赞瓜”的道理谁都懂;或者出来的是几年前的“嵌入式状况”,与当今嵌入式环境相比,企业无论是在开发、用人、内容、市场上都发生了很大的改变。因此,作为一名一线企业嵌入式软件工程师的我,想通过自己的实际经历理性地评论当今嵌入式行业的真实状况。本文章写于2018年10月1日,小生不才,自认为可以反映当今嵌入式行业的一个真实状况,以及它的科学性和前沿性可以是2018-2020年期间嵌入式的定义。

    一.嵌入式的定义和举例分析

    官方定义:

    根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监控或者辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

    目前国内一个普片被认同的定义是:以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

    说白了就是先设计硬件,然后根据需求编写能在该硬件上运行的软件,就成了所谓的“智能硬件”。

    或者说得还不够明白,那行,我们说一说具体的嵌入式产品有哪些,嵌入式是做什么的:

    传统嵌入式产品:空调主控模块、冰箱主控模块、家用遥控器、智能手机、教学投影仪、音响系统、雷达系统、路由器等等

    前沿嵌入式产品:无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等

    一起看一些前沿的嵌入式产品:

    下面是大疆无人机,可应用在高空拍摄、军事侦查、高空作业、自动巡逻、农业工作、矿业勘测、地形测绘等方面

    下面是天猫精灵智能音响,可进行语音识别、对话交互,应用与娱乐、生活、购物、智能家具控制等方面,属于新一代音箱

    下面是百度机器人,通过深度学习、神经网络等算法,实现“百度大脑”,具有自学习、自训练能力,如最强大脑的小度机器人

     下面是自动驾驶汽车,自动驾驶是一个前沿的科技,在我国还没本真正实施,不仅是技术方面,它还得得到政府支持和认同

    下面是海尔扫地机器人,能够自动巡逻,自动绘制室内地图,自动避障,自动清洁地面,还你一个干净的环境

    下面是小米手环3,可显示微信、来电等消息内容,振动闹钟,心率计算,步数统计,实时运动数据查询,睡眠质量监测等

    看完这些前沿科技产品后可发现,这些形形色色的“高端产品”都离不开嵌入式技术,离不开传感器技术,离不开软件程序。那么我现在可以告诉你,嵌入式开发的工作就是去开发以上等一系列产品 ,这就是嵌入式,相信此刻你对嵌入式行业已有“形而上学”的了解。

    二.嵌入式工程师在企业工作的真实内容

    嵌入式软件开发具体可以分三类:

    嵌入式驱动工程师:编写和移植各种芯片驱动(如音频芯片),优化硬件设备驱动(如温湿度传感器),得精通各种硬件接口协议(如I2C协议)、系统调度、信号量、锁机制等等,开发难度最大。该类开发者一般是软硬件综合型人才,一般的嵌入式驱动工程师指Linux上的驱动开发工程师,需要精通Linux驱动框架(platform框架、input子系统框架等),结合芯片本身去编写驱动,驱动的好坏很大程度上决定一个产品的好坏。业界对驱动人才的定义是三年才算入门,可见此门槛之高。

    嵌入式系统工程师:主要是编写固件,根据不同平台移植操作系统,根据应用场景来优化系统,需要熟悉整个操作系统组成与调度,对固件的稳定性高求很高,如果系统不稳定,驱动和应用也是白做的。

    嵌入式应用工程师:编写业务逻辑程序,调用驱动工程师提供的接口控制设备,软件开发过程所涉内容范围非常广,主要使用C语言开发,但经常会涉及C++、Java、python、JavaScript、PHP等各类语言以及各种脚本语言、数据库、前端后台、各种通讯协议、甚至一些从来没听过的协议或概念,需要很强的学习能力,该职位也是各大公司需量最大的,一般10人的开发小组,驱动开发与系统开发与应用开发的比例是1:2:7。

    根据我的经验,世界上可以分成两种嵌入式工程师,一种是大公司的嵌入式工程师,另一种是小公司的嵌入式工程师,我知道这样分类很不妥,但并非毫无道理,请听我一一下概述:

    大公司:大公司的特色是什么?答案:人多!

    人多导致的后果是什么?答案:项目分工非常细,都遵循“术业有专攻”这一哲学道理;

    例如职位是嵌入式驱动开发,那么大公司可能还会细分嵌入式显示屏驱动工程师、嵌入式音频驱动工程师、嵌入式电源驱动工程师等;这就是大公司一贯的作风,它希望去培养某一方面的人才;说白了就是如果你分配到的是一个显示屏驱动项目,那么有可能你这一年内都是在开发显示屏驱动,一年后你将是显示屏驱动方面的一个小专家;在大公司记住一点,你做的东西都是很“精”的;同时,大公司的薪资水平和福利也是相当可观的,有完善的晋升路线,离职率一般不高。

    小公司:小公司的特色是什么?答案:人少!

    人少导致的后果是什么?答案:项目分工不明确,什么都得干,它给你灌溉的思想是“小陈,我们培养的是综合性人才,在这里你就是全栈工程师”;

    估计很多人都没听明白,意思是说这里人少活多,你什么都得干。小公司才不会管你是嵌入式驱动工程师还是嵌入式应用工程师(有的公司还是区分的,的确不能以片盖全),反正是活你就得干,分分钟前端后台服务器你都得给我干,不要跟我说什么没学过,没学过就去学呗。小公司还有一个特色就是:“节奏快”,大公司里面可能开展一个项目会花上几个月的时间或者更长,在小公司是不存在的,领导都是指望着你几天或者两三周完成,那你也只能说呵呵了。的确,在小公司你可以得到飞速的进步,很强的综合性技能,前提是比人家花出更多的时间,把每一个项目理解清楚,而不是应付心态。坚持下来,两年后必能独当一面。小公司提供给应届生的薪资水平相对与到大公司来说要低,其福利不完善和晋升路线也一般比较模糊,所以小公司的离职率会比较高,经常出现两年三跳的情况。

    还有一个经验分享给年轻人:无论哪种语言,程序代码只是一个简单的工具,最后真正留下的只有原理、协议、框架、思维。

    三.嵌入式发展前景与当今状况

    目前的嵌入式开发更倾向于智能化,也就是我们所说的智能硬件(硬件+软件),从现在各种前沿的嵌入式产品来看的确如此,嵌入式产品的一个发展趋势是更倾向与自动化控制和人机交互,而不是强调“算法”这一块,要区分你仅仅是一名嵌入式工程师而不是算法工程师,什么一大堆“人工智能”、“阿尔法狗”、“深度学习”、“神经网络”都不需要深入理解,那是研究生、博士生做的,小生并不是说你的能力不足,而是“术业有专攻”,这并不是一名嵌入式工程师的工作量,你需要做的仅仅是与他们的“云端大脑”进行对接,调用他们API就完事了。

    由于人工智能、深度学习、神经网络、区块链、大数据等先进学科的崛起,很多人都产生质疑:“嵌入式还有发展前景吗”?这个问题我在这里可以很肯定地告诉你:“嵌入式有很好的发展前景,前沿嵌入式技术即将崛起,或者说已经崛起”。的确,人工智能、大数据这些学科会给嵌入式带来冲击,就目前来看,大学生更倾向与python编程语言、机器学习这一块,而嵌入式学者的确比往年有所下降,但学者少了并不代表他的需求就少了,并不代表他的薪资水平下降了,目前的一个嵌入式技术更倾向于与智能学科相结合的趋势,以百度机器人为例,机器人的核心是大脑,即是“数据和算法”,但机器人大脑想机器人身躯能够像人类一样活动,能说会道,行走自如,那么就必须得依靠嵌入式技术,这就是我所说的嵌入式+智能学科应用,从长久来看,嵌入式只会越来越火,智能学科的崛起必定带动新型的嵌入式技术发展。

    对于发展前景,有一项更重要的参数,那就是当今嵌入式软件工程师的薪资水平,我下面给出一些理性的数据,是从各大招聘平台调研而来:(数据只能作为参考,具体薪资还是得看个人修为,有的达不到该薪资水平,有的早已超过该薪资水平)

    非211、985院校应届毕业生平均月薪:8k

    是211、985院校应届毕业生平均月薪:12k

    一年工作经验者月薪:10k-15k

    二年工作经验者月薪:12k-18k

    三至五年工作经验者月薪:20k-30k

    上述数据只针对那些“真正努力”的嵌入式工程师,不适合应“应付式工作”的嵌入式工程师,同时声明不对该薪酬水平负任何责任。

    四.展望人工智能带动前沿嵌入式技术

    人工智能给嵌入式带来的冲击,是福也是祸,人工智能实现智能化无处不依赖嵌入式技术,人工智能学科在不知不觉中带动嵌入式技术革新,从一系列智能产品,包括无人机、智能音响、机器人控制、城市天眼系统、智能家具、自动驾驶汽车、扫地机器人、小米手环等等,有哪个不依靠嵌入式技术来实现,并没有,人工智能越是想向人类表达他的智能水平,越是要依靠嵌入式技术,所以前沿嵌入式技术更倾向于嵌入式+智能学科的发展,当智能学科真正崛起,嵌入式必定又是一次浪潮与技术革新。

    展开全文
  • 压缩包里面包括2017年下半年网络工程师【上午+下午】试题及参考答案及详解,想知道答案的速度过来对答案咯。
  • 通过本预科课程的学习,为学习网络工程师、思科CCNA、华为HCNA这些认证打下坚实的基础! 重要!思科认证2020年2月24日起,已启用新版认证和考试,包括题库都会更新,由于疫情原因,请关注官网和本地考点信息。题库...
  • 五十个java工程师面试的优秀简历,涉及到各个阶段的知识点,满足各个时期的求职者的需求
  • 希赛信息安全工程师全套教学视频以及题库,学习复习课程安排,视频分章节,有系统地学习。百度云链接,几十G文件视频
  • 实施工程师面试题(答案)

    万次阅读 多人点赞 2019-06-21 11:33:32
    1、两电脑都在同一个网络环境中,A 电脑访问不到 B 电脑的共享文件。此现象可能是哪些 方面所导致?怎样处理? answer:首先你要确定是不是在一个工作组内,只有在一个工作组内才可以共享文件,然后看一个看一看有...
  • 就我所了解的,在现在以及可预见的未来,这个行业对软件工程师的需求绝对是碾压硬件工程师的。也就是说,招软件工程师的职位比硬件工程师的职位要多的多,而且软件工程师找工作上来说会比硬件工程师更容易。 先从...
  • 大疆求职算法笔试题 大疆求职算法笔试题大疆求职算法笔试题大疆求职算法笔试题大疆求职算法笔试题大疆求职算法笔试题大疆求职算法笔试题
  • H3CS-WLAN 无线工程师认证

    千人学习 2018-09-28 00:21:10
    是H3C-WLAN的初级无线工程师培训课程,适合无线零基础学员初次学习,了解无线基本原理。作为后续学习无线的入门课程,成为无线工程师
  • 史上最全面的,软考网络工程师真题!!!所有真题含有答案和解析!包含了2009上半年 至 2016下半年 所有的上、下午试题!欢迎下载参考和查阅。
  • 2017年上半年(5月份)软考 网络工程师上午真题及答案解析,全网最清晰,答案最正确的真题资料。小任老师出品,必属精品。
  • 课程紧跟软考信息安全工程师考试大纲,通过作者多年的软考辅导经验及实际的信息安全工作实战经历,本视频课程对信安考试中的所有知识点进行了详细的讲解及总结;对于考试中重点考、反复考的知识点做了强化训练;对于...
  • 38张史上最全的IT工程师技能图谱. 来源于51CTO技术栈
  • 嵌入式软件工程师自学之路

    万次阅读 多人点赞 2018-11-20 17:13:14
    目标是成为嵌入式软件工程师。 当时误打误撞的选择了这个专业,在学校也没有充分认识到未来的方向,所以浪费了 大学宝贵的学习时间及其丰富的学习资源。毕业后接触到现实的社会,总感觉未来很茫然, 想着还是利用...
  • 对软考网络工程师教材进行了详细解析,通过对考查知识点的细致讲解,让考生掌握解题思路和方法,做到举一反三,事半功倍。小任老师帮你把握考试重点,用短的时间,让你学到应该掌握的软考网络工程师内容。
  • 本人找工作时网上找到的一些java简历,适合新手,高手勿喷!来自网络上的几十份Java开发工程师简历。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,226,346
精华内容 490,538
关键字:

工程师