之所以对这个问题感兴趣是由于在知乎关注的一位北大核车间大鳄转码后来去了菊厂以后,一直说自己在刷,但是立马要考试了,那时就十分恼火,工作了需要考试?
近期看了一篇文章
才晓得了三星可信专业级认证是哪些。
三星在推进技术人员的可信认证,算是一项安全合规的工作。
专业级有什么考试呢?共有五门:
课目一:上级编程,对比力扣2道中等、1道困难;
课目二:编程知识与应用,调研基础的编程语言知识等;
课目三:安全编程、质量、隐私,也有开发者检测等;
课目四:建构知识,包括设计方式、代码构建等。
课目一是两道偏难的中等和一道困难,这个难度还是相当大的,基本上不认真刷一个月题是做不进去的。
科二、科三、科四到幸好,主要是了解一下在代码之上的一些东西。
这儿还有一篇将通过可信考试之观后感悟的文章:
曾几何时,可信成了三星硬件安装工程师口口相传的热词,它出现在罗马大厦心里话社区上,出现在我们的技术规范要求中,出现在我们的编码里,同样出现在让人头痛的考试里……
回望过去五年的可信历程,从被迫接受,到半信半疑,到潜移默化,可信渐渐地融入到开发的步骤、代码和意识中。明天,我来聊聊,我与可信之间的故事……
您好,可信
“今天早上大会的主题是:可信。”明亮的大会室灯光下,经理敲着黑板说的话。
“最重要的是,你们先背下可信的六大特征:安全(),安全(),硬度(),隐私性(),靠谱性(),可用性()……”
“总之,我们的产品就是要做到让顾客倍感富有安全感,让对手倍感绝望,让防御者无路可走,在经受层层惩处下,也有自我恢复的能力。”这是经理的小结发言。
这是我印象中第一次接触可信这个概念,谈不上印象深刻,就是晓得我们要干一件更牛的事,我们的产品早已不满足于功能的实现了,需要像“超人”的钢铁之躯一样强悍,顺带的,要背下六大特征。
当初英语b级考试题,某国某晚报忽然公布了一篇文章英语b级考试题,宣称使用先进的二补码工具,对三星各产品线公布的诸多二补码程序包进行了反向扫描剖析(就好似领到市面上一瓶新品可乐,通过尝尝、化验、观察反推其配方比列,还猜想其使用的某些原料或许有问题),最终结论是三星产品安全性远高于友商。
对于这些指责文章,我们要从技术上,逐一进行剖析。然后,以可信学者牵头,产品各领域投入了残兵强将,对文章中列出的各项数据进行了缜密剖析,我还有幸加入了“战斗”。
在封闭作战室,经过一周的反复代码剖析、统计、检查、阅读,我的态度逐渐地发生了变化。例如,一些老版本的显存操作函数插口参数上没有约束,菜鸟在疏忽的状况下是可键入错误的参数,从而导致潜在的安全风险(尽管检测后发觉实际并没有这么的错误使用),这是存在改进空间的。令人惊讶的是,我们新版本的函数从插口上约束使用者难以键入错误参数,并统一使用公司的安全函数库,防止了各部委重复“造轮子”。
另外导致我探讨的是,第三方机构在没有我司源代码的状况下,都可以通过反向技术,挖掘出我们多个或许潜在的安全突破口,我们真做到“可信”了吗?
他山之石,可以攻玉。晚报丑闻导致我们对“可信”的反省,比内部100个发文愈发震惊,并让我们深刻意识到:在这个技术迅猛发展的明天,领到二补码执行程序,就相当于领到源代码。我们应当抱着开源的态度,建立我们代码的可信性。
刷新“可信”认知
安全试验室有一批学者的工作就是对产品源代码以超出业界标准的严格要求,进行“挖地三尺”的挑战,提出让人倍感“吹毛求疵”的整改任务,以这么一种特殊形式不断提高产品质量。有每天我收到一个印象很深刻的任务。
“这是我们内部通讯的消息处理函数,这儿有一堆数值校准还不够么,需要进行全面的安全校准吗?是不是有点过了?这个东西对外没有数学通道插口,非标准的合同,对方是怎样晓得我们的通讯格式?”拿到哪个任务的时侯,我一开始是挺不以为然的,这些觉得好像是在一个层层保护、守备肃穆的堡垒中的两个人之间使用一种内部语言谈话前,需要先检测下对方是否“安全”了
最后,安全学者劝说了我,他列出了两个事实:第一,安全试验室已否认在这些极端条件下可通过上层挂接设备攻占入侵上级设备的子系统,第二,在这个时代,领到二补码程序就相当于领到源代码。因此,从理论上,破坏者是可以入侵使得构造让系统异常的内部通讯消息信令的。
这再一次刷新了我对“安全可信”的认知,其实,我们当初觉得的安全,并不是真正持久的安全。针对此事,我们除了把这一批问题全部整改,还举一反三,把代码中类似的场景都进行了整改。后续,经这次的启发,产品还集中学者,针对上层设备和下层设备之间的通讯,专门做了系统级的安全加固。看着经过层层加固的代码,你们都舒了一口气,起码目前我们的产品,即使被攻陷一个子系统,也不会影响到整个系统。我们开始步入多防线安全时代。
这让我想到了可信的一个特点:硬度()。我们的产品正在向那样一种型态转变,它好像水密隔舱技术,哪怕部份系统受到破坏,整艘小船仍然可以继续航行,起码这是我们努力的方向。
“恼人”的可信考试
作为硬件安装工程师,可信考试一段时间以来始终是绕不过的一个话题。每看到课目一、科目二、科目三、科目四的时侯,犹如回到考驾考岁月,某些意义上,这确实是持证上岗。
在三星内部,对于可信考试的觉得堪称是“爱恨交加”,并且对我自己来说,考完了所有课目再回望,猛然发觉别有洞天:
穿越课目一数据结构和算法的海洋,再次对BFS/DFS(广度优先搜索/深度优先搜索)等算法有了更深刻的理解;
在课目二里翻阅最新的编程规范和安全规范,发觉在简略朴素的语言中,早已包含了重要的“CleanCode”(整洁代码)指导,包括命名规则、函数和文件厚度、圈复杂度等;
在课目三惊讶地发觉,大名鼎鼎的开源竟然有这么多商业限制,代码会受传染,在享受便利的时侯也要付出;在平常没关注到的编译过程里,竟然存在这么多的安全编译选项,可以在更底层上推进可执行程序的安全性;
在课目中学重读设计方式又有新的感受,CSEC的白银法则言简意赅,确实是有效的安全指引,错综复杂的密码算法都是出于历史的不断需求迭代。
除了是我自己,随着身边朋友们一个个通过考试领到证书,越来越少看到对可信考试的调侃,相反可以显著发觉到你们的编码能力、可信意识有了质的飞跃。虽然,惟有努力和泪水从不骗子!
“戴着镣铐唱歌”
如火如荼的项目开发工作是硬件安装工程师的日常,有三天我忽然听到一个让我眼前一亮的OKR(andKey,目标与关键成果,一种绩效管理办法)个人目标:“达成可信交付目标,编码过程遵循可信规范,交付高品质的代码”,这是组内成员小杨在一个样机开发项目中提出的一个目标。我吃惊地发觉,你们早已从被动到主动,潜移默化地把可信编码要求带入到日常工作之中,我的心里有点欣喜。
上面组内搜集能力提高轮训需求时,小杨提出希望能组织轮训下最新的编程规范实操经验。“你不是刚通过可信认证全部考试,领到证书了吗,课目二不是刚考过么?”我笑着问他。“最近规范又有点变动了,立马要做一个新的研发项目了,想找几个资深的研制来分享下它们项目中规范编码最佳实践,我认为这个挺重要的。”他说道。
对于项目而言,时间永远是“不够”的,每位研制的潜意识里总是恐惧着能够更快的递交代码。因此有两天,小杨找我说,希望给他正在做的研发项目代码库房加上全套门禁系统,即将在研版本代码递交是应当经过一套复杂门禁系统检测的,而通常研发或则样机项目,格外重视效率和成果。“你这是准备戴着镣铐唱歌啊。”我对他说道。“这样愈发安全靠谱,代码品质更好,才能直接拦截不合法合入,人都是容易轻敌的,有个工具来约束下很好,顶多我多加点班。”他笑道。
而可信的意识,也给小杨带给了收益——最近他荣获了我们部委的“质量之星”荣誉,在其关键品质表现描述上,第一条就是:“在xx项目中累计递交xxK+高品质代码,无遗留问题;xx项目版本,在xx研究院试验室、xx&xx现网等检测过程中,特征稳定,顾客满意”。
源于心,总算行,千里之行,源于足下。
行动决定了结果,而思想决定了行动。回望这一路,“可信”之路并不轻松,你们悲哀地前行,并且一路都能收获到努力的果实。我感觉,把可信的思想融入广大硬件安装工程师的心灵,再用意识之水播撒产品的可信之花,我们毕竟会迎来“可信”的明日!
领悟
但是今天你们似乎都不太喜欢考试,就像考试都是应试教育那一套,并且就我自己的学习经验而言,只有你把你学的内容当作考试时,才可以学的浅显,了解各类变化,了解各式细节,这不就是基础吗?显然对于编程来说,不仅要基础好,需要多写代码,虽然这只是一个技艺活,熟能生巧。
打好基础加多练,基本上可以解决大部份问题。