时间轴软件工程师

你的柔光只照亮我心一处
  • 回答数

    2

  • 浏览数

    17387

首页> 工程师报名> 时间轴软件工程师

2个回答默认排序
  • 默认排序
  • 按时间排序

雨让我心灰意冷

已采纳

软件测试工程师的一天是怎么度过的呢? 其实可以按照时间轴进行分为三个阶段:去上班的阶段 工作中的阶段 下班后的阶段 清楚了一天时间的阶段划分,那么就可以知道一天的时间如何分配,以及自己的工作内容是什么了。一、去上班的阶段        作为软件测试的工程师,每天的开始往往是伴随着激烈的闹钟开始,潜意识中和烦躁的闹钟做着激烈的斗争,在睡意惺忪中极不情愿的起床。总觉得早上的时间很紧张,此时距离大多数企业规定的9点上班时间可能不足2小时。如果住的距离公司近,那么对于住在车程2小时外的小伙伴来说充满了羡慕嫉妒恨。         早餐往往在路边或者公司附近就近解决,有时候也迫于时间的关系,早餐也就省了。能够按时进入公司打卡是多么幸运的一件事。(当然如果是领导,那就不用体会这一段了)二、工作中的阶段     一般忙碌的一天往往是从早会开始(9:10左右),大多数互联网企业开启了敏捷开发模式,测试工程师作为软件质量的保障者,需要每天参与早上scrum小组的站会,解答三个问题。1)昨天完成了什么?2)今天即将要做什么?3)有没有需要协调的问题?      大约在15分钟后,站会结束。根据初步计划开始今天的任务,往往计划都是很美好的,但是...,但是事实却是从如下可能场景开始:场景一:理想型理想型企业团队的测试工程师,那么更多的是从开始计划的任务开始,按部就班实现自己的当日任务。 - 需求分析评审会议(其他相关会议) - 制定计划方案,做好测试准备,搭建环境等 - 根据已确定需求用例编写、用例评审、用例执行 - 进行缺陷的跟踪处理(提bug、跟进bug) - 问题的沟通交流,有效处理 - ......      如果是上述这种场景,那么恭喜您,所在的企业应该是流程资源等非常好的企业,能够专一有效的完成自己的每日任务(用例、缺陷),而不需要太多的杂念处理其他事物,适合性格内容向型的工程师。场景二:一般型一般型企业的测试工程师,工作是从开始计划的任务开始,但是否按部就班的执行下去,得看实际情况。 - 验证bug,并且回归测试相关模块,此时又发现新问题,找来开发、产品开启了补唾沫横飞的沟通场面... - 准备开始设计测试用例,发现需求不完整,没有细节,找产品临时给备注一堆说明,原来的设计推到再来... - 执行用例的环境没有准备好,申请的账号还没有通过,不可预知的风险悄悄的接近... - ......      如果是上述场景,那么同样恭喜您,所在企业迫切需要您梳理流程规范,细化好测试计划过程,需要和小组成员一起攻克难关,需要跨部门的合作和沟通技能,影响团队的进步。场景三:凌乱型凌乱型企业的测试工程师,工作没有计划,可以随心所欲的开始每天的任务,也可以不假思索的戛然而止。 - 测试工程师是一个“全能型”的人员,上级领导指哪儿,就往哪儿打,而且要求打的准 - 测试过程中的任务按照用户迫切的要求来,先把功能完成,至于能否满足质量要求,那是后面事 - 穿梭于不同任务及工作中,要么成为英雄,要么成为“枭雄” - ......      如果是上述场景,那么同样恭喜您,所在企业迫切需要您独当一面,从制度到流程到技术到业务,不求精通,但求能解决实际问题,挑战与机遇并存,要么最后是企业的英雄,要么是企业历史潮流中的一段插曲。         转眼间,时钟已经走向了中午12:00,一般企业会有1~2小时的午休时间,该段时间除了吃饭午休外,仅有的时间可以和同事们侃侃大山,聊聊生活,有时会讨论一些技术问题......,下午又开始接着上午的任务继续...... 随着下班的时间到了, 需要将一天的工作任务做个汇总和总结,按照要求发日报、周报。 上班工作期间内容总结 1)开会讨论会占用10%~20%左右时间,各种形式的会议,为做下一步任务达成一致2)设计执行测试过程中设计执行时间会占用70%以上的时间,这也是测试的重点和核心3)沟通确认对于有疑问的地方和不同人员进行沟通确认会占用约10%左右时间三、下班后的阶段经历了忙碌而充实的一天,按照正常的工作时间结束测试工程师的一天。 如果碰到项目上线或者加班情况,那就只能按照实际要求来。      如果是非正常的下班,那么回家后的时间可能只有休息了,在睡梦中等待第二天的闹钟响起。      但如果是正常的下班,那么回家的时候基本是自己支配,当然为了后续能够更好的发展,别忘了用仅有剩余时间给自己充充电,这个时间是非常重要的,能够自由支配的时间不多,抓住仅有的时间查阅资料自己挖掘新知识,因为大神都是这么过来的。         总之,作为软件测试工程师,主要时间是在公司阶段任务,需要做好日常的管理,追求技能的提升,才能在有效的时间管理中强大自己,为企业带来价值,赢得未来的发展。 这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。 加油吧,测试员!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。 未来的你肯定会感谢现在拼命的自己!

160评论

心跳的距离

1.自己介绍项目,看对项目的提炼总结能力(也是抽象能力);2.自己印象最深的bug,可以知道大概技术深度;3.设计模式提问,看有没有学习方法;4.语法基础问题,多线,分布,安全等问题,看知识面广度;5.智力问题,看反应能力,分析问题思路等上述五步基本可知是否是一个好程序猿

计科专业从事软件开发十几年了,主要在浏览器内核领域研究的比较多,最近在研究服务器后台方向,辨别程序员水平高低主要看做出了什么产品,如同现在的程序员主要是项目经验,简历上写的一堆项目经验都是面试的时候主要提及的问题。经常在面试中会问两个关键点:一个是做过什么项目;一个是在项目组中承担什么职务,毕竟参与过和做的多少程度是不一样的,这些都是可以通过一些具体的细节检测出来,问题越具体越是容易看出水准,具体的东西不是能够编造出来的。

有很多技术公司直接不通过笔试,仅仅通过简单的面试就确定工资水准了,最简单的测试程序员水平的直接用笔试的方式,笔试可以把一些细节量化,尽量的细节化也是能测试出程序员基本功的,但这种基本用来测试初级程序员的,很多高级的程序员看到有笔试直接就抬腿走人了,因为有些程序员在一个方向做的时间太长了,很多基本功都忘得差不多了,所以笔试可能不过关,现实中很多程序员笔试不过关,面试还可以,也一样可以做项目说的就是这类人,起码这算是非常优秀的程序员。

有很多公司采用谷歌的方式,直接采用上机写代码的方式检验程序员水平,这种方式比较直接,但在现实中可能消耗的时间以及面试官的精力,目前只有极少数的公司用这种方式,国外的公司用这种方式比较多,这种看基本功非常有效。通过代码可以看到编码习惯以及算法的设计上,都能直接看的出来。

普通的程序员直接看项目的经验,高级的直接看做过的产品,特别是产品主要设计人员,这就是程序员内心的自豪感,毕竟作为一个程序员起码要有自己设计开发的产品,也算是不白做一个程序员,在程序员的职业经历中如果能经历过一个产品从开始设计的初稿到最后推向市场,如果是完整的经历,将是一种巨大的财富,只要经历过一次都会对产品设计有一个比较层次的认识,这种能力需要靠直接的面试语言表达来展示出来,谈下对产品的认识以及产品稳定性性能等方面的总结,能到这个层面起码是高级软件工程师的级别。

当然有些程序员内在的东西不是靠语言或者写代码看出来的,因为一个优秀的程序员不仅仅是代码能力以及框架能力,还有几个非常重要的能力

程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。

希望能够帮到你。

自认为不是一个好的面试官,因为我认为在这么短的时间内,准确地衡量出来程序员水平的高低是有比较大的难度的,并且我有多次看走眼的时候,面试的时候觉得能力还不错,但是入职工作了一段时间之后,编程能力不忍直视。

工作之后接触一段时间,我会从这么几个方面观察他们,以判断技术能力的高低和发展潜力。

能不能把开发任务按时按质量地完成,当然是最主要的衡量标准了:

在开发过程中,难免会遇到没有见过的问题,有些程序员遇到问题无从下手,而优秀的程序员,自有一套解决问题的方法。

有人会认为,程序员的主要工作就是敲代码,上班大部分时候都是在敲代码,其实并不是这样:

好的程序员,相同的问题不会犯第二次,差的程序员,总会在一个问题上栽跟头:

不请自来,一介码农路过,留下些看法。

程序员主要是有四种综合能力,也就是debug 能力、 performance分析、 保护性编程和 投入产出比。

在这里不能说一棒子打死,至少对于很多人来说,能独立完成是没什么问题的,有的是因为对业务熟悉,有的是真的基础扎实。但怎么说呢,程序员和浏览器打交道是最多的,现在这个互联网时代,遇到的大部分问题百度都是可以解决的,也就是普通程序员 + 百度 = 超级程序员。 但很多人也没明白具体的原理,甚至都是这个项目抄抄那个项目抄抄的,久而久之虽然解决了平时的业务,但进步的空间却很少,甚至止步不前,写出来的代码也可能存在很多坑,所以,仅仅能独立完成任务的话,离高手还有比较远的一段距离。

也就是结合我们一开始列举的那四个能力进行判断。不同级别的程序员,在那综合能力面前,强弱也是不同的。例如在奔溃的或者其他性能调优问题上,即使是面对大量复杂的代码,在信息不全的时候也会一步步的分析,抽丝剥茧缩小范围,最终定位根本原因

,并且最终给出一个好的方案。

当然还有看他摘了帽子是否秃顶这样的笑话,就再不赘述了。

第一阶段(黄金):会用编程语言实现需求,比如现在的业务系统,都会找一些会搬代码的人来拼工作量,也就是能自己独立基于搭好的框架实现crud常规操作。

第二阶段(铂金):除了crud,还会有一些自己踩过坑的经验,知道如何处理一些常见问题,或者可以基于搜索引擎快速解决一些异常情况。

第三阶段(钻石):能解决一些疑难杂症和会通过debug部分源码类库查看到这些疑难杂症是如何引发的,并通过编码解决这些问题,还能进行一些局部的性能优化,类似某个系统接口缓慢可以单独去优化。

第四阶段(星耀):会基于整个系统进行设计和规划,根据业务特性选择合适的框架,从源头控制开发遇到问题的频率,可以自主的搭建框架并完善机制,了解各个组件工作原理。

第五阶段(王者):小说里面总是说练武功的永远比不过创造武功的,同样的道理,用框架的也往往不如写框架的,所以写框架的这类人单独分层。

第六阶段(荣耀):其实这个阶段不应该列入进来,因为这类人往往不编码的,只是给出思想;像Hadoop这种框架就是基于人家发表的一些论文(bigdata)进行编码实现的,这类人注重的是思想和算法,区块链,大数据,云计算等等概念的创造和理论的支撑是这类人提出来的,这些人才是真正影响行业走向的人。

程序员的水平高低,不是靠语言或外在表现就能看出来的,不是看他会多少技术、参加过多少项目、写了多少博客,而是看他在实际业务场景中解决问题的能力,尤其是面对一些特别复杂的问题,或在高强度、高压工作状态下解决问题的能力与态度。

技术可以通过学习掌握,但是解决问题、定位问题的能力却不是一蹴而就。大家可能会说,“解决问题的能力”这个太宽泛了吧,可以更具象化吗,有具体的测量方法吗?简单整理了以下几点供参考。

会写出满足需求的代码,早就不是评判程序员水平的标准了。代码编写既要满足业务需求,同时还要考虑后续的软件维护,说得通俗些,既要自己爽,也要别人爽。一个优秀的程序员,会致力于写出更简单、更效率、可读性强、扩展性强的程序代码。

程序员在日常工作中,需要理解各式各样的业务需求,所以这就需要程序员具备一定的逻辑思维能力。可以说,逻辑思维是程序员的灵魂,因为每一行代码都是程序员逻辑的体现。

项目着急上线,发布时出现问题?

业务高峰时段,系统宕机了?

业务催、运营催、用户催、老板催!

各种形态的bug,各种着急的心情,背后无数支眼睛盯得内心慌慌......

这些都是一位合格程序员所需要面对的日常。不同的程序员,在解决问题的方法、效率、质量等方面,都各有千秋。一个经验丰富的程序员,能够扛住各方压力,在复杂条件下找到核心问题,通过抽丝剥茧的分析来找到产生问题的原因,并快速进行应对处理,事后及时复盘总结,减少同类问题出现的概率。

随之互联网的发展,越来越多的人涌入程序员这个赛道,竞争日益激烈,加之新技术层出不穷,更新迭代快,程序员所使用的语言、框架、模式都会发生天翻地覆的变化。如果不主动学习,你很快就会被落伍淘汰。

这种其实在面试过程中能体现出来,沟通主要是技术沟通,以及和客户之间的沟通,所有技术都不是闭门造车就能搞定的,沟通能让事情推进起来更加顺畅,包括和产品经理之间的流畅的沟通也显得非常重要。程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。

线上出bug了,第一时间响应、处理;

团队项目进度紧张、人手紧缺,主动补位;

又或者,在项目推进过程中如果只是关心自己模块内容,对于整个项目置之不理,只守着自己的一亩三分地。

随着时间轴的拉长,你会发现,有此f技术能力不是最好的,甚至不如你的小伙伴,最后做到了技术主管或经理、甚至更高职位,这里面除了技术实力,还有一个叫“责任心”的东西。

结束语

判断一个程序员的水平高低,核心是其解决问题的能力,而解决问题的能力养成,需要扎实的底层基础来支撑,要综合其代码质量、项目经验、框架能力、逻辑思维等等多方面,不能单看某一方面。

而对于1-6岁的程序员来说,想要成为一个高级程序员,变得越来越优秀,唯有持之以恒去学习、积累、实践、修炼。

----end----

一:50岁的时候,头发还是黑色的浓密的。

二:赚到的钱能保证家人快乐的生活。

三:当公司不要你的时候能成功转型。

其他的例如编程经验、写代码厉害啊什么的根本不值一提。

这就是程序员的面试嘛 :-)

(1)是否能熟练使用所用编程语言的主要功能;

(2)是否知道用合适的数据结构解决问题;

(3)是否知道基本的算法,并且用这些算法解决问题;

(4)只看少量代码的话,从变量命名和程序结构一般能够判断是否是新手;

(5)给出具体问题,能够用程序解决,能考虑到所有的边界条件;

(6)考虑程序的可扩展性,可维护性;

再往高一点走,就需要

(7)面对模糊的问题能够分析并且找到细节和具体的需求;

(8)知道利用已有的库,架构和工具等来解决新的问题,而不是什么都自己实现;

(9)能发现并改进已有程序中的瓶颈;

(10)对整个大项目的程序架构有很清晰的了解,知道相互之间的依赖,以及知道为什么采用这样就架构;

(11)给一个大的项目,能够对整个项目的程序架构和组件进行合理的设计,考虑并行性,低延迟,大数据量等各种需求和应对方式。

带领团队已多年,项目数十个,对判别程序员水平的高低,我有自己的看法,欢迎大家一起交流。

1.代码质量。

优质的代码,首先是经得起考验。静态分析工具过一遍,无错误,无警告。当然警告部分需要人工重审,因为静态分析工具不一定完全正确。过了这一关,重要的还须过测试关,少Bug或无Bug的代码,才是好代码。优质的代码带有技术气质和艺术气质。阅读起来,有一种赏心悦目的快感,即工整美观,干净利落,又蕴含着理论常识,运用技巧,精准到位。

2.表达能力。

3.文档能力。

文档形式包括但不限于PPT,文字,图表,音视频。文档内容包括但不限于API说明,工具手册,项目事项,技术论述,陷阱总结,方案展示,指导手册。文档要求必须是满足公司或部门的规范和格式,否则五花八门的,不利于交流和传承。

以上3点,是我量化判断程序员水平的标准,仅供参考。相比水平,其实我更看重程序员的态度,执行力,时间观念,自学力等等,也是很重要的团队作战能力,也可以说是程序员水平的考量吧。

谢谢大家。

65评论

相关问答

    向你推荐

      热门问题