one-1hot encodingg和dummy encoding分别适应哪些情况

&img src=&/v2-4ad299a77_b.jpg& data-rawwidth=&550& data-rawheight=&341& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&/v2-4ad299a77_r.jpg&&文
张亚菡&br&&p&过年期间除了走亲访友,接受七大姑八大姨的洗礼,与各路好友相聚之外,很多“胖”友的春节小长假还要把平时没空撸的剧通通撸一遍。随着国民的文化生活越来越丰富,各种题材的电视剧让人应接不暇。&/p&&p&假期同样在“熬夜看春晚追韩剧,和亲朋好友通宵唱K、聚会狂嗨”的春节经典项目洗礼后的胖菡,却真诚地在众多韩剧题材中发现了“黑客”题材的大热,这些又有颜值又有技能的黑客偶巴们特别招妹纸们喜欢,招汉子们羡慕,让我们一起来看看这群黑客“精”们如何游刃有余地走在爱情和黑科技之间的吧。&/p&&img src=&/v2-4ad299a77_b.jpg& data-rawwidth=&550& data-rawheight=&341& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&/v2-4ad299a77_r.jpg&&&p&&b&《蓝色大海的传说》 &/b&&/p&&p&&b&代表人物:许俊宰(李敏镐饰)、泰吴(申原昊饰) &/b&&/p&&p&技能指数:★★★★&/p&&p&撩妹指数:★★★★★
&/p&&p&《蓝色大海的传说》由陈赫执导、朴智恩编剧,全智贤、李敏镐主演的魔幻爱情剧。该剧讲述了地球上处于灭绝危机的美人鱼遇到了都市的天才骗子后,在适应陆地生活的过程中发生的一系列故事。该片于日在韩国SBS电视台播出。 &/p&&p&作为2016年年末必追的三大韩剧之一,《蓝色大海的传说》题材和人设的确新颖有趣,再加上李敏镐和全智贤的高颜值组合让该剧赚足了眼球。在剧中饰演“天才骗子,门萨出身”的男主角李敏镐以及“天才黑客”泰吴这一兄弟组合,在众多场合下利用自身黑客的优势在首尔赚得盆满钵盈,随便黑一黑人行道的指示灯、写字楼电梯开关、行车记录仪的剧情片段着实让技术小白们看得满心欢喜。&/p&&img src=&/v2-bce1e45b6_b.jpg& data-rawwidth=&1270& data-rawheight=&469& class=&origin_image zh-lightbox-thumb& width=&1270& data-original=&/v2-bce1e45b6_r.jpg&&&p&当然,天才黑客少年最终还是要改邪归正,走向“白客”之路:&/p&&img src=&/v2-ed80e477e3_b.jpg& data-rawwidth=&533& data-rawheight=&2131& class=&origin_image zh-lightbox-thumb& width=&533& data-original=&/v2-ed80e477e3_r.jpg&&&p&&b&Tips&/b&&b&:&/b&大家所掌握的黑客技术在各种关键时刻非常有用,黑客大大们一般都有异于常人的观察力和逻辑思考能力,在帮助警察破案、缉拿要犯、搜查犯罪证据方面有着不容小觑的重要作用。可尝试利用自身所长来向心仪的女孩子来场浪漫的求婚也是不错的选择,比如黑掉人行道的信号灯,让它显示出“心”形图案;再比如黑掉写字楼的电梯,让她在害怕时刻钻进你的怀抱and so on… &/p&&img src=&/v2-b334c06de5f556e61a612c_b.jpg& data-rawwidth=&473& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&473& data-original=&/v2-b334c06de5f556e61a612c_r.jpg&&&p&若再加上高颜值的加持,一不留神妹纸就要与你私定终身啦。
&/p&&p&&b&&img src=&/v2-ef74ffb351bea571ec9e_b.jpg& data-rawwidth=&700& data-rawheight=&394& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&/v2-ef74ffb351bea571ec9e_r.jpg&&《Healer》&/b&&/p&&p&&b&代表人物:徐政厚(池昌旭饰)&/b&&/p&&p&技能指数:★★★★★&/p&&p&撩妹指数:★★★★★★
&/p&&p&《Healer》是由李政燮、金镇宇导演,宋智娜编剧,池昌旭、朴敏英、刘智泰等主演的月火迷你剧。主要讲述了新人记者成长为真正有担当的记者的过程,是一部包含了浪漫、喜剧、悬疑等要素的复合型电视剧。&/p&&p&用最尖端装备武装的22世纪未来型职业跑腿人——代号为Healer的徐政厚(池昌旭饰)、网络记者的蔡英信(朴敏英饰)与拥有很大秘密的明星记者的金文浩(刘智泰饰)互相纠结,逐渐查清过去与现在真相的故事。&/p&&img src=&/v2-71ac70fec_b.jpg& data-rawwidth=&1020& data-rawheight=&681& class=&origin_image zh-lightbox-thumb& width=&1020& data-original=&/v2-71ac70fec_r.jpg&&&p&《Healer》剧情紧凑,节奏较快,高科技产品和技术贯穿始终。剧中徐正厚的“标配”即其佩戴的可以&b&随时在透明和墨镜之间转换的眼镜&/b&与黑客“大妈”的电脑系统相连,只要徐正厚需要资料,“大妈”就会将资料传输到眼镜镜面上。不仅如此,这副眼镜可以自动定位需要寻找的目标、识别信息。&/p&&p&“大妈”的黑客技术也相当了得。不仅能入侵到警察局的内部网络,还能远程操控摄像头和地铁。也就是说,只要联网、有电的地方,没有“大妈”进不去的。&/p&&img src=&/v2-fcf57dfdad0e0b29bd33_b.jpg& data-rawwidth=&960& data-rawheight=&1280& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/v2-fcf57dfdad0e0b29bd33_r.jpg&&&p&而《Healer》中男主的人设本就是一个跑腿者黑客,集两种身份为一身的男主角再加上颜值的加持,自然撩妹技能也是爆表。 &/p&&img src=&/v2-8d8ea873fefb9c2f76be7526dbe329ca_b.jpg& data-rawwidth=&520& data-rawheight=&520& class=&origin_image zh-lightbox-thumb& width=&520& data-original=&/v2-8d8ea873fefb9c2f76be7526dbe329ca_r.jpg&&&p&&b&Tips&/b&&b&:&/b&黑客大大们除了技术高超之外,不要忘记锻炼身体,毕竟拥有一个强健的体魄对妹纸们的吸引力会大大增加。&/p&&p&&b&&img src=&/v2-ebf58c029bc7adb76c80f_b.jpg& data-rawwidth=&550& data-rawheight=&732& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&/v2-ebf58c029bc7adb76c80f_r.jpg&&《幽灵》&/b&&/p&&p&&b&代表人物:金宇炫(苏志燮饰)、朴奇永(崔丹尼尔饰)&/b&&/p&&p&技能指数:★★★★★★&/p&&p&撩妹指数:★★★★&/p&&img src=&/v2-e4d9e2c3c43cde7026b8_b.jpg& data-rawwidth=&500& data-rawheight=&345& class=&origin_image zh-lightbox-thumb& width=&500& data-original=&/v2-e4d9e2c3c43cde7026b8_r.jpg&&&p&作为一部各种酷炫技术已被各种解析的电视剧,《幽灵》讲述的是虚拟搜查队在揭开一个不为人知的网络世界即隐藏在尖端技术中的秘密时,搜查队员们所经历的各种骇人听闻事件和际遇。全剧充满悬疑和阴谋。剧中苏志燮饰演的金宇炫作为警察高层干部的独生子、以第一名的优异成绩进入警察学校并毕业成为警察。凭借天生的洞察力和责任感,成为参与整顿警察厅虚拟搜查队组织体系的核心人物。&/p&&p&后来发生事故,真正的金宇炫死了,而黑客哈迪斯朴奇永(即金宇炫当年警察大学的同窗)变脸成为了金宇炫,以黑客的方法和原则,对事件的真相展开了调查。&/p&&img src=&/v2-035ea232bc3cb93ba8b459c00d4ffc7e_b.jpg& data-rawwidth=&358& data-rawheight=&600& class=&content_image& width=&358&&&p&由于本就是主打高科技犯罪的韩剧,且黑客哈迪斯之后整容成男主金宇炫的样子之后开始做的都是有助于高科技犯罪调查的工作,该剧对“黑客”这一形象有了新的解读与认可。再加上导演对于该剧中的黑客技术有着很深的了解,所以该剧所涉及到众多技术干货。&/p&&p&如果把该剧所涉及的技术进行分类,大概可以分为以下几个类别:&/p&&br&&h2&&b&入侵类:&/b&&/h2&&p&&b&1.Metasploit&/b&&/p&&p&Metasploit
是一款漏洞扫描和攻击研究工具,可用于极大地加强企业网络安全。通过使用 Metasploit,组织可以找到以前没有发现的安全弱点并开始解决它们。&/p&&p&官网:&a href=&/?target=http%3A//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Penetration Testing Software, Pen Testing Security | Metasploit&i class=&icon-external&&&/i&&/a&&/p&&p&metasploit这款神器出现在第一集,哈迪斯黑阔在楼道里入侵演员申孝静电脑的时候有用到。&/p&&img src=&/v2-2d2fce7ad9117_b.jpg& data-rawwidth=&1024& data-rawheight=&1024& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&/v2-2d2fce7ad9117_r.jpg&&&p&&b&2.Nmap&/b&&/p&&p&Nmap是一个网络连接端扫描软件,用来扫描主机开放的端口,确定主机运行了哪些服务,并且推断哪个操作系统在计算机上运行。&/p&&p&官网:&a href=&/?target=http%3A//www.nmap.org& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Nmap: the Network Mapper&i class=&icon-external&&&/i&&/a&&/p&&img src=&/v2-a04e973ddfb50680e05ccde165d9ae4f_b.jpg& data-rawwidth=&1024& data-rawheight=&1024& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&/v2-a04e973ddfb50680e05ccde165d9ae4f_r.jpg&&&p&&b&3.HDSI&/b&&/p&&p&电视剧第四集中出现的注入工具为修改后的HDSI,本软件系国内黑客大大的作品,是一款自动化的SQL注入工具,支持ASP和PHP脚本。&/p&&p&这款注入神器出现在金宇炫为了复制电话卡而入侵韩国电话系统的时候。&/p&&img src=&/v2-9e12eef324eef9aa0e77a_b.jpg& data-rawwidth=&512& data-rawheight=&2048& class=&origin_image zh-lightbox-thumb& width=&512& data-original=&/v2-9e12eef324eef9aa0e77a_r.jpg&&&p&&b&电子取证类:&/b&&/p&&p&&b&1.Encase&/b&&/p&&p&EnCase是目前使用最为广泛的计算机取证工具,至少超过2000家的法律执行部门在使用它。它提供良好的基于Windows的界面,左边是case文件的目录结构,右边是用户访问目录的证据文件的列表。&/p&&p&官网:&a href=&/?target=http%3A///encase-enterprise.htm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Error&i class=&icon-external&&&/i&&/a&&/p&&img src=&/v2-eecc71adb88ec0d0fee20af_b.jpg& data-rawwidth=&1024& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&/v2-eecc71adb88ec0d0fee20af_r.jpg&&&p&&b&2.RoadMASSter&/b&&/p&&p&RoadMASSter是一套用于司法部门的取证和数据分析专业系统,特别适于移动取证和高速数据捕获的需要。支持各种数据存储介质,包括 Ultra DMAIDE..硬盘/Ultra.SCSI硬盘/SATA硬盘/软盘/CDR/DVD/CF-1/CF
2/MD/SD/MMC/SM/MS闪存卡和其他移动存储设备/该系统具有各种常用接口,包括千兆网络接口/Firewire/1394A/B/和USB 接口。当连接了疑犯硬盘和证据硬盘后,可直接在Windows环境下,利用第三方数据分析软件进行分析。&/p&&p&官网:&a href=&/?target=http%3A//www./The-RoadMASSter-Forensics-Data-Acquisition-p/f.gr-d.htm& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/The-RoadMASS&/span&&span class=&invisible&&ter-Forensics-Data-Acquisition-p/f.gr-d.htm&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&/p&&img src=&/v2-7c92ffa33aa3fbbf69c48d8df9aff8a0_b.jpg& data-rawwidth=&1024& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1024& data-original=&/v2-7c92ffa33aa3fbbf69c48d8df9aff8a0_r.jpg&&&p&&b&加密类:&/b&&/p&&p&&b&1.OpenStego&/b&&/p&&p&OpenStego是一个可以把任何文件隐藏在图像中的工具,压缩时采用GZIP,加密时采用PBE With MD5 And DES,使用时只要选取要隐藏的文件Message File和用作表面掩饰的图像Cover File,即可生成PNG格式的图像文件。安装前本机需配置JAVA环境。&/p&&p&&b&网络类:&/b&&/p&&p&&b&1.Wireshark&/b&&/p&&p&Wireshark(前称Ethereal)是一个网络封包分析软件,网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。&/p&&p&官网:&a href=&/?target=http%3A//www.wireshark.org& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Wireshark · Go Deep.&i class=&icon-external&&&/i&&/a&&/p&&p&&b&调试解密类:&/b&&/p&&p&&b&1.OllyDbg&/b&&/p&&p&OllyDbg是一种具有可视化界面的32位汇编分析调试器,是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring3级调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了,同时还支持插件扩展功能,是目前最强大的调试工具。&/p&&p&官网:&a href=&/?target=http%3A//www.ollydbg.de& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&OllyDbg v1.10&i class=&icon-external&&&/i&&/a&&/p&&p&这款神器出现在金宇炫的同事分析老大组织所传播的病毒那一集。&/p&&img src=&/v2-c9d67f29a713c9c7afeb_b.jpg& data-rawwidth=&800& data-rawheight=&385& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&/v2-c9d67f29a713c9c7afeb_r.jpg&&&p&&b&进程查看类:&/b&&/p&&p&&b&1.Process Explorer&/b&&/p&&p&由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。Process Explorer不仅结合了Filemon(文件监视器)和 Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进,强大的过滤选项,修正的进程树对话框(增加了进程存活时间图表),可根据点击位置变换的右击菜单过滤条目,集成带源代码存储的堆栈跟踪对话框,更快的堆栈跟踪,可在 64位 Windows 上加载 32位日志文件的能力,监视映像(DLL和内核模式驱动程序)加载,系统引导时记录所有操作等。&/p&&p&官网:&a href=&/?target=http%3A///en-us/sysinternals/bb896653.aspx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Process Explorer&i class=&icon-external&&&/i&&/a&&/p&&p&这款应该是在美女柳江美分析韩国电力员工电脑的时候有用到。是一款手动病毒分析处理的神器,主要查看进程是否有异常,是否有异常加载的DLL文件。&/p&&img src=&/v2-c948bb11b53e_b.jpg& data-rawwidth=&543& data-rawheight=&324& class=&origin_image zh-lightbox-thumb& width=&543& data-original=&/v2-c948bb11b53e_r.jpg&&&p&&b&Tips&/b&&b&:&/b&看来撩妹靠技术还是很靠谱的,又是警察又是黑客的苏志燮大叔就靠着自己的黑客技能外加侦查技能妥妥在《幽灵》的结尾撩到了警花女主。&/p&
文 / 张亚菡 过年期间除了走亲访友,接受七大姑八大姨的洗礼,与各路好友相聚之外,很多“胖”友的春节小长假还要把平时没空撸的剧通通撸一遍。随着国民的文化生活越来越丰富,各种题材的电视剧让人应接不暇。假期同样在“熬夜看春晚追韩剧,和亲朋好友通宵…
&img src=&/v2-5e2ec2c5a7d97cf5ff826b_b.jpg& data-rawwidth=&532& data-rawheight=&316& class=&origin_image zh-lightbox-thumb& width=&532& data-original=&/v2-5e2ec2c5a7d97cf5ff826b_r.jpg&&&blockquote&翻译:&a href=&/?target=http%3A///choose-programming-language& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&How to Choose a Programming Language&i class=&icon-external&&&/i&&/a&&/blockquote&&p&微信公众号后台以及知乎私信经常受到这样的提问:甲哥,我十分想学习编程,但是编程的语言众多,我该如何进行选择呢?许多人对代码很好奇。不幸的是,选择一种编程语言可能是一个主要的障碍,因为人们缺乏必要的信息做出一个好的决定。&/p&&p&在这一切开始前,我希望你考虑好你想用代码去干什么,当然是目标越明确越好,我希望这个目标不是说为了得到一个好的工作。就算你得到了一份不错的工作,薪资也不错,但是你能确保你不讨厌吗?代码无处不在,这意味着你将会有很多的选择。你想做APP吗?你对Arduino和Raspberry Pi感兴趣吗?你是一个研究员,想要尽量掌控自己的数据?你可以用代码完成很多事情,并且机会会越来越多。&/p&&p&当你开始考虑你想研究什么,做什么并且贡献点什么的时候,你就可以开始考虑要学习哪门语言了。可能有很多种语言让你选择,你仍然会混乱、困惑,别担心,所有的编程语言都有优缺点,某些语言在特定领域被更频繁地使用。通过选择项目或目标,您已大幅缩小了选项。&/p&&p&简单来说,你不会在去西藏之前花几个月的时间刷普通话。当然,在西藏部分地区可能有几个人会说普通话,但是学习藏语会更好。如果你提前知道目的地,你将从一开始就正确的工作。&/p&&p&&strong&但这不是那么容易&/strong&&/p&&p&以上我说的听起来好像很简单,但是你还是很难决定你想做什么。一旦你得到一个一般的普遍的想法,它会变得十分混乱。假设您想要构建Web应用程序。太好了,现在你谷歌用来做Web应用程序的语言,然后......你......
你找到一个论坛上发帖说... OK ... PHP似乎流行...但是Ruby也......嗯,这个人与Twitter追随者TON说...... AHHHHH ......算了吧!&/p&&p&有人会告诉你先学习JavaScript,然后有人会告诉你Python的语法更简单,所以你应该从Python开始。然后你会听到Java和所有可用的工作...&/p&&p&所以你会怎么做?你可以继续精炼你的目标。也许有一个特定的公司,你想为之工作。他们在那里使用什么?你可能会得到一个总体思路stackshare,这是一个网站,显示许多公司的技术堆栈(不同的技术杰作,走到一起,形成使用服务)。&/p&&p&其他一些有益的网站论坛,包括StackOverflow和知乎等。不幸的是,这些论坛可能导致前面提到的一些混乱,这些论坛的所谓大V仍然不能给你一个好的建议,让你十分的苦恼。&/p&&p&我建议你去和自己信任的人面对面的交谈 ,询问在这个领域工作的人,让他们为你推荐合适的语言。&/p&&p&我还建议你投入技术社区。这些社区的技术氛围很浓,对于初学者来说是十分有益的,如果你能在社区中认识一些志同道合的前辈,那一定是一个不错的机会。&/p&&p&说了这么多,我想下面说一下我所了解的主流语言的用武之地。&/p&&p&&u&&i&HTML / CSS&/i&&/u&&/p&&p&人们通常从学习HTML和CSS开始,为什么?这两种语言对于创建静态网页是必不可少的。你在网站上看到的所有文本,链接,和其他内容都是HTML(超文本标记语言)结构;CSS是使网页看起来漂亮的样式。&/p&&p&为什么不从HTML和CSS开始?您可能不感兴趣为Web创建内容。正如我前面所说,你可以做很多代码,Web只是它的一部分。但是,如果你有兴趣制作网站,肯定从HTML和CSS开始。&/p&&p&&i&&u&JavaScript&/u&&/i&&/p&&p&JavaScript是许多人的第一个完整的编程语言。为什么?这是学习HTML和CSS后的逻辑下一步。JavaScript提供的行为一网站的部分。例如,当您看到表单字段指示错误时,这可能是JavaScript在工作。&/p&&p&JavaScript已经变得越来越受欢迎,它不仅仅出现在网络浏览器中。学习JavaScript将使你处在一个更好的地位,因为它是一个更通用、流行的语言,JavaScript现在似乎无处不在。&/p&&p&&i&&u&Java&/u&&/i&&/p&&p&Java与JavaScript没有任何有意义的相关。Java可用于从Web应用程序到桌面和移动应用程序的任何东西。Java在大型企业应用程序中有很强的存在 - 例如银行,医院和大学软件。它还支持Android应用程序,因此它是那些倾向于移动开发的人的不错选择。&/p&&p&&i&&u&Swift&/u&&/i&&/p&&p&苹果于2014年6月发布Swift作为开发Mac,iPad,iPhone,Apple Watch和Apple TV应用程序的现代语言。如果你想进入iOS的世界,Swift是你的不二之选。&/p&&p&&i&&u&PHP&/u&&/i&&/p&&p&PHP是最流行的网络语言之一。它支撑了大量的网站,如Facebook和Etsy等。WordPress和Drupal都是用PHP编写的,这两个平台今天在网上上线了大量的网站。因为它的流行,学习PHP将很好地为你服务,如果你打算编写Web。&/p&&p&&i&&u&Python&/u&&/i&&/p&&p&Python是一种通用语言,用于从服务器自动化到数据科学。Python对初学者来说是一门伟大的语言,因为它很容易阅读和理解。你也可以用Python做这么多事情,很容易坚持使用语言相当一段时间,在需要别的东西。当然Python也可以创建Web应用程序,如Instagram和帮助研究人员了解他们的数据。&/p&&p&&strong&不要担心&/strong&&/p&&p&选择一种编程语言可能仍然看起来不堪重负。不用担心,你不会出错的,只要你选择一种经常在技术上使用的语言,你就赢了。当你开始时,目标是在基础中变得坚实,几乎所有现代编程语言的基础是相似的。&/p&&p&无论您选择哪种语言,变量,循环,数组或函数的概念都是相同的。如果您决定参与前端Web开发,您可以选择JavaScript。你可能,一段时间后,无聊。你然后认为构建手机应用程序听起来很有趣。现在你需要学习Objective-C,Swift或Java。你所学习的JavaScript对这些没有一点帮助吗?一点也不。你学到的JavaScript的大部分内容适用于你处理的下一种语言。&/p&&p&学习代码的一部分是学习语言的语法(其语法或结构规则)。学习代码的更大部分,需要更长时间并给让你更头痛的部分是学习解决像程序员这样的问题。你可以很快地学习英语的语法结构; 然而,你不会真正理解语言,直到你把这种语法结构用于在对话中。在编程中也是如此。你想学习核心概念,以解决问题。在一种语言中这样做与在另一种语言中做的类似。&/p&&p&因为核心概念从语言到语言是类似的,我建议坚持使用您选择的任何语言,直到您对核心概念的理解是坚实的。&/p&&p&&strong&贵在坚持&/strong&&/p&&p&无论你选择什么,首先将是具有挑战性的,坚持!这可能意味着需要一段时间来处理所有的新信息,但不要放弃。不管如何,一定要选择一个感兴趣的项目。如果你对一开始的项目不感兴趣了,没关系重新选择一个感兴趣的。你现在还没开始工作,你的生活和时间都不受控制,所以尽情地选择享受它吧。&/p&&p&&strong&&i&Good luck in your coding journey!&/i&&/strong&&/p&&p&&b&&i&...更多文章,关注:&a href=&/passer& class=&internal&&知乎专栏 - 学习编程&/a&&/i&&/b&&/p&
翻译:微信公众号后台以及知乎私信经常受到这样的提问:甲哥,我十分想学习编程,但是编程的语言众多,我该如何进行选择呢?许多人对代码很好奇。不幸的是,选择一种编程语言可能是一个主要的障碍,因为人们缺乏必要的…
&img src=&/v2-b21ded6e90d5fea7bf112_b.jpg& data-rawwidth=&1343& data-rawheight=&980& class=&origin_image zh-lightbox-thumb& width=&1343& data-original=&/v2-b21ded6e90d5fea7bf112_r.jpg&&&blockquote&&p&&em&Facebook 一直致力于让用户能够轻松搜索社交网络上的图片和视频内容,而无需依靠手动打上的标签。昨天,该公司的应用机器学习团队负责人 Joaquin Qui?onero Candela 宣布这一梦想终于得以实现,新的计算机视觉平台将从两个方面改善社交网络上的用户体验:基于图片本身(而不是图片标签和拍照时间)的搜索;升级的自动图片描述系统(可向视觉障碍者描述图片内容)。&/em&&br&&/p&&/blockquote&&p&回想一下你在社交网络中发的上条信息,内容很可能是一张照片或一个视频。但是,直到最近,在线搜索还一直是文本驱动的技术,即便你搜索的是图片。一张图片是否能够被找到还得依赖描述充分的标签或恰当的图注。&/p&&br&&p&技术正在改变,我们已经将计算机视觉推向了下一个阶段,理解像素级别的图像内容。这有助于我们的系统做一些类似于识别图像内容、场景,里面是否包含著名地标的事情。这反过来也会帮助我们为视力受损的人更好地描述图片,以及为图像和视频搜索提供更好的结果。&/p&&br&&p&&strong&建立「AI 工厂」&/strong&&/p&&br&&p&为了将人工智能纳入到 Facebook 工程中来,我们首先需要一个能让我们的工程师大规模利用的通用目的平台。这个平台叫 FBLearner Flow,设计这个系统是为了让打造机器学习流程的工程师不需要再担心硬件限制或因为实时流量而造成的服务质量问题。目前我们每个月要在 FBLearner Flow 上做 120 万次人工智能实验,次数要比一年之前多 6 倍。&/p&&br&&p&这个平台应用的越来越广,我们正在其之上不断探索。从工具到机器学习的自动化过程,再到专用的内容理解引擎,我们已经建立了一个活跃的生态系统,让工程师编写能多机并行的训练工作流,因此任何一家公司的任何一位工程师都能使用它。&/p&&br&&p&&strong&计算机视觉平台&/strong&&/p&&br&&p&FBLearner Flow 平台启动后作为 Facebook AI Research 的一个小研究项目,当它达到能投入生产的规模时,该平台和团队转移到了 Applied Machine Learning 团队。它现在是 Facebook 计算机视觉团队的引擎。&/p&&br&&p&建立在 FBLearner Flow 之上的 Lumos,是我们为图像和视频理解打造的平台。Facebook 的工程师们无需为使用 Lumos 训练或布置一个新模型而去参加深度学习或计算机视觉的训练。通过我们给它的新的标签数据,以及从我们团队自己建立的应用中来的经过注释的数据,Lumos 平台一直在改善。&/p&&br&&p&深度学习的进展已经让我们在图像分类上做出了巨大的提升——像「图像中是什么」和「物体在哪里?」这样的问题,系统的回答已经比以前精确很多了。我们设计出了能检测并分割给定图像中对象的技术,推进了这个方向上的研究。&/p&&br&&p&当这些技术被应用到 Facebook 中时,照片就可以通过一个能分割图像并识别其中物体和场景的深度学习引擎,并给这张照片附上更多的意义。这就为我们提供了一个丰富的数据集,Facebook 的任何产品或服务都可以使用。数十个团队已经在 Lumos 上训练和部署了 200 多个视觉模型,他们的目的包括检测敏感内容,过滤垃圾邮件以及自动图像描述。它的应用的范围广泛,从我们的 Connectivity Labs 到搜索团队到 Accessibility 团队都在使用。&/p&&br&&p&&strong&用语言描述一切&/strong&&/p&&br&&p&我们目前正在将这个图像理解成果应用到为照片提升自动转换文本(automatic alt text,AAT),一种能为视觉受损的人描述照片内容的技术。直到最近,这些描述还智描述照片中的物体。今天我们宣布,我们添加了一组 12 个动作,所以图像描述将会包括「人在行走」、「人在跳舞」、「人在骑马」、「人在玩乐器」等这样的描述。&/p&&br&&p&AAT 的这次更新包括两个部分,使用 Lumos 能够实现快速、可升级的迭代。Facebook 上有相当比例的共享照片都包含了人物,因此,我们专注于提供涉及人物的自动描述。该人工智能团队收集了一个 130,000 张分享在 Facebook 上涉及人物的公开照片样本集。人类注释者被要求写一个照片的单行描述,假定为一个视力受损的朋友描述照片。然后,我们利用这些注释建立一个机器学习模型,可以无缝地推断照片中人的行动。该模型被用于 AAT 的下游技术。&/p&&img src=&/v2-ed8269f15bfbc72e142e16_b.jpg& data-rawwidth=&736& data-rawheight=&621& class=&origin_image zh-lightbox-thumb& width=&736& data-original=&/v2-ed8269f15bfbc72e142e16_r.jpg&&&br&&p&&em&Facebook 对于「骑马」概念各图像的评分&/em&&/p&&br&&p&Lumos 通过使用一个界面利用之前另一个任务中经过训练的模型中带有标签的样例,允许在该任务上快速迭代。例如:如果我们正在训练一个「人骑在一匹马上」的分类器,并想要添加包含马(没人骑的马)的图像的样例,我们就能从一个模型中使用一部分有标签的例子来判断一张图片是包含一匹马并对其分类。&/p&&img src=&/v2-d21309c8ebdd24c961b3_b.jpg& data-rawwidth=&736& data-rawheight=&531& class=&origin_image zh-lightbox-thumb& width=&736& data-original=&/v2-d21309c8ebdd24c961b3_r.jpg&&&br&&p&&em&相似模型对同一张图的分数对比&/em&&/p&&br&&p&Lumos 允许通过检索和聚类的组合来生成训练数据。给定一组标签或搜索项,该平台可以检索匹配这些标签的字幕的公共图像的分数。这些图像随后被语义聚类,以便快速进行标记。Lumos 用户可以选择注释集群作为其用例的正选或反选例子,在集群级别或单独为集群中的每个图像进行手动标记。这有助于开始一项分类任务,随后通过迭代训练以获得更高精度/回忆的分类器。&/p&&br&&p&AAT 应用非常重要,因为它可以为 Facebook 的视障用户带来更棒的访问体验,其他应用也能为用户提供一些方便之处,如发现一个新的搜索参数。&/p&&br&&p&&strong&更具描述性的照片搜索&/strong&&/p&&br&&p&通过 Lumos,我们可以为整个社交网络提供视觉搜索功能。假如你在回想自己的美好记忆,你很难指出具体的事件,更不用说拍摄的人了。而通过 Lumos,我们构建了一个全新的搜索系统,它可以利用图理解序大量信息,让你可以轻松地搜索到自己想要的东西。换句话说,如果你搜索「穿黑色衬衫的照片」,系统可以「看到」哪些照片中出现了黑色衬衫,并将相关搜索结果呈现在你的眼前,即使这些图片并没有贴上相应的标签。&/p&&br&&p&Facebook 的自动图像分类器,就像 AAT 的例子中那样——通过图片的内容而不是标签来搜索你自己和朋友圈内的所有照片。&/p&&p&&a class=&video-box& href=&/?target=https%3A///x/page/tf.html& target=&_blank& data-video-id=&& data-video-playable=&& data-name=&Building scalable systems - 腾讯视频& data-poster=&///qqvideo_ori/0/tf_228_128/0& data-lens-id=&&&
&img class=&thumbnail& src=&///qqvideo_ori/0/tf_228_128/0&&&span class=&content&&
&span class=&title&&Building scalable systems - 腾讯视频&span class=&z-ico-extern-gray&&&/span&&span class=&z-ico-extern-blue&&&/span&&/span&
&span class=&url&&&span class=&z-ico-video&&&/span&/x/page/tf.html&/span&
&/a&&/p&&p&为了确保搜索结果与查询的内容有关,系统必须对照片的内容有很好的理解。因此,开发团队使用了最新的深度学习技术,在数十亿照片中学习特征以理解图片的内容。图片搜索团队主要使用了以下表示方法来让图片能有更好的排序结果:&/p&&br&&p&&strong&对象识别:&/strong&底层图像识别模型是一个深度神经网络,具有数百万可学习的参数。它构建在最先进的深度残差网络之上,使用了数千万张带有标记的图片进行了识别训练。它可以自动识别大量概念,包括场景(如花园)、物体(如汽车)、动物(如企鹅)、地区和经典(如金门大桥),也包括衣物(如围巾)。&/p&&br&&p&&strong&图嵌入:&/strong&系统同时生成高级语义特征,这是深度神经网络最后几层输出的量化版本。这些信息对于提升搜索结果准确性非常有用。&/p&&img src=&/v2-37fdcbdf77_b.jpg& data-rawwidth=&736& data-rawheight=&246& class=&origin_image zh-lightbox-thumb& width=&736& data-original=&/v2-37fdcbdf77_r.jpg&&&br&&p&原始语义特征是高维浮动向量,它使用了大量的存储空间用于索引——尤其是当我们要索引大量照片时。通过利用量化技术,特征被进一步压缩成数个字节,同时仍保留绝大多数语义。被压缩的表征被用作照片的紧凑嵌入,并且可以直接用于排序,检索和删除重复内容等任务。&/p&&br&&p&构建这种方式的办法是从图像中提取预测的概念和类别,然后解析搜索查询以链接实体并提取概念,最后使用两组概念之间的相似性函数来确定相关性。&/p&&br&&p&这是一个好的开始,但开发团队并没有停止使用预测的图像类别:我们更进一步,使用联合嵌入对图像进行查询,显著提高了搜索和回忆精度。&/p&&br&&img src=&/v2-a545cbc9c63bf7f99119c44_b.jpg& data-rawwidth=&736& data-rawheight=&238& class=&origin_image zh-lightbox-thumb& width=&736& data-original=&/v2-a545cbc9c63bf7f99119c44_r.jpg&&&br&&p&我们把它作为一个多模态学习的排序问题。此外,我们还使用图像之间的相似性度量来确保图像搜索结果是多样化的。&/p&&br&&p&&strong&展望下一步&/strong&&/p&&br&&p&Lumos 图像分类器的应用还需要大量团队通力协作。虽然目前的发展值得肯定,但我们仅仅触及了自动计算机视觉的表面,后面还有更长的路要走。随着计算机视觉模型越来越精细,Facebook 正在不断研究如何处理视频及其他能让人身临其境的表现形式,Lumos 将帮助我们以稳定、快速、可扩展的方式揭开所有这些可能性,它会为将来更为丰富的产品体验铺平道路。&/p&&p&选自&a href=&/?target=https%3A///posts/5766/building-scalable-systems-to-understand-content/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&code.Facebook&i class=&icon-external&&&/i&&/a&&b&机器之心编译&/b&&/p&
Facebook 一直致力于让用户能够轻松搜索社交网络上的图片和视频内容,而无需依靠手动打上的标签。昨天,该公司的应用机器学习团队负责人 Joaquin Qui?onero Candela 宣布这一梦想终于得以实现,新的计算机视觉平台将从两个方面改善社交网络上的用户体验…
为了整理不可描述,买了四本书:&br&&a href=&///?target=https%3A///%25E6%%25E6%258D%25AE%25E5%25BA%%258E%259F%25E7%-%25E5%E7%25BD%%B/dp/B& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《数据库原理(第5版)(附CD-ROM光盘1张)》 克罗克(David M.Kroenke), 奥厄尔(David J.Auer), 赵艳铎, 葛萌萌【摘要 书评 试读】图书&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=https%3A///dp/B00QT2TQCG/ref%3Dsr_1_1%3Fs%3Dbooks%26ie%3DUTF8%26qid%3D%26sr%3D1-1%26keywords%3Dflask%2Bweb& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Flask Web开发:基于Python的Web应用开发实战》 格林布戈 (Miguel Grinberg), 安道【摘要 书评 试读】图书&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=https%3A///dp/B01DU8CXJ4/ref%3Dsr_1_1%3Fs%3Dbooks%26ie%3DUTF8%26qid%3D%26sr%3D1-1%26keywords%3Dpython%25E7%25BD%%25BB%259C%25E6%%25E6%258D%25AE%25E9%E9%259B%2586& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Python网络数据采集》 米切尔 (Ryan Mitchell), 陶俊杰, 陈小莉【摘要 书评 试读】图书&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=https%3A///dp/B01D10NS04/ref%3Dsr_1_3%3Fs%3Dbooks%26ie%3DUTF8%26qid%3D%26sr%3D1-3%26keywords%3Dweb%25E5%E7%25AB%25AF%25E5%25BC%%258F%2591%2Bhtml%2Bcss& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Web前端开发精品课:HTML与CSS基础教程》 莫振杰【摘要 书评 试读】图书&i class=&icon-external&&&/i&&/a&&br&&br&然后用了一周时间,实现以下功能:&br&&ul&&li&自动从网上抓取相关信息与封面图片&/li&&li&整理并存入数据库&/li&&li&使用flask展示结果&/li&&/ul&期间还学习了视频编码方式及信息提取方法、&br&最终结果如图:
&br&&img src=&/v2-84d4ee5acdd4d_b.png& class=&content_image&&
为了整理不可描述,买了四本书:
&img src=&/v2-34b226b377a32d144caa_b.png& data-rawwidth=&1062& data-rawheight=&590& class=&origin_image zh-lightbox-thumb& width=&1062& data-original=&/v2-34b226b377a32d144caa_r.png&&&p&以前,我们一直想寻找安全靠谱的邮箱服务,Gmail 是首选,原因主要有几个:&/p&&ol&&li&&p&Google 这个大品牌的背书&/p&&/li&&li&&p&安全确实做得很好,关于这点我们尤其在意前端安全是否做得足够,比如对抗
XSS/CSRF 的策略,这在邮箱攻击里是常用的手法。另外在很多安全细节上很具备前瞻性,如:全域 HTTPS 策略、Cookie
策略、内容分离策略、账号风控策略、图片安全策略、恶意内容对抗策略、等等&/p&&/li&&li&&p&漏洞奖金计划很良心,基本是这种风气的鼻祖&/p&&/li&&/ol&&p&这次,我们推荐的 ProtonMail 邮箱,虽然我们不能保证上面几点达到 Gmail 的层级,但是整体来说,我们还是觉得挺靠谱的,尤其有下面这几个特点。&/p&&ol&&li&&p&开源,这点就已经让人多少放心些&/p&&/li&&li&&p&点对点加密策略,这种对称加密算法几乎可以完美对抗中间人劫持(MITM),包括对 PGP 的支持,在我们看来也是一种很漂亮的方案&/p&&/li&&li&&p&注册再也不需要你的个人任何隐私,比如手机号,这意味着,几乎完全一个匿名邮件是可以的&/p&&/li&&li&&p&服务器坐落在瑞士,一个重视隐私且中立的国家,法律这方面很有保障,服务器的安全建设等级据说也很高&/p&&/li&&li&&p&你可以选择是否开启更强的登陆日志记录,默认不会记录 IP&/p&&/li&&li&&p&也有不错的漏洞奖金计划&/p&&/li&&li&&p&在安全性上,对比我们上面提到 Gmail 的做法,ProtonMail 的做法更加让我们感到惊讶,&b&这种做法能感受到 ProtonMail 在安全及隐私这方面的极致态度&/b&。我们这先不展开,因为我们计划去夺一轮漏洞奖金再说&/p&&/li&&li&&p&支持 TOR 网络下的邮件服务,这下真可以做到完全匿名了。不要和我们提黑天鹅事件,我们懂&/p&&/li&&li&&p&有对应移动端的 App&/p&&/li&&li&&p&用户体验也是 ProtonMail 的极致追求&/p&&/li&&li&&p&免费,但是你可以付费得到更好的服务,比如可以自定义域名,如果你想支持 ProtonMail 发展得更好,可以付费升级,也可以捐助&/p&&/li&&li&&p&斯诺登也有在用这个服务...&/p&&/li&&li&&p&创始团队出自大名鼎鼎的 CERN(欧洲核子研究组织),科学家,怪不得命名了 ProtonMail(质子邮箱),TED 及 Wikipedia 上可以看到他们的介绍,包括演讲&br&&/p&&/li&&/ol&&p&之前,我们确实有犹豫是否推荐这个邮箱服务,你们知道,有些东西并不是越多人知道越好,尤其是我朝特殊的情况。但我们相信,进化的步伐是永远不会停止的,我们不需要作恶,但是我们至少需要知道如何对抗很多藏在阴暗处的作恶。&/p&&p&我们这篇推荐不是在给 ProtonMail 做背书,是否使用,看你。&br&&/p&&p&希望 ProtonMail 越来越好,也希望这个互联网越来越好。&br&&/p&&blockquote&&p&ProtonMail 官网:&br&&a href=&/?target=https%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Secure email: ProtonMail is free encrypted email.&i class=&icon-external&&&/i&&/a&&br&最底下,左下角,可以看到 TOR 地址。&/p&&/blockquote&&p&By LanT34m&br&&/p&&p&-----------------&br&&/p&&p&第一次以 Team 名义和大家“见面”,大家好。&br&&/p&&p&另外,昨天的小调查结果是:懒人的读者们真是有品味,谢谢各位的支持。我们的分享,怎么可能让你们失望?:-)&br&&/p&&p&-----------------&br&微信公众号「&strong&Lazy-Thought&/strong&」&br&几个黑客在维护,都很懒,都想改变点什么&/p&
以前,我们一直想寻找安全靠谱的邮箱服务,Gmail 是首选,原因主要有几个:Google 这个大品牌的背书安全确实做得很好,关于这点我们尤其在意前端安全是否做得足够,比如对抗
XSS/CSRF 的策略,这在邮箱攻击里是常用的手法。另外在很多安全细节上很具备前瞻…
&img src=&/v2-8bbb95b3e4f13bf0a95c109b5d23fb5e_b.jpg& data-rawwidth=&1440& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1440& data-original=&/v2-8bbb95b3e4f13bf0a95c109b5d23fb5e_r.jpg&&&blockquote&&p&&em&导读:本文作者Payson Wu,硕士研究方向二维PDE数值解析算法,五年前端开发经验,现就职于Microsoft。&/em&&/p&&/blockquote&&p&现在的工作市场越来越讲究综合人才,软件开发行业也一样。以前的设计、开发、测试、上线分别由单独的团队负责,现在越来越多的公司需要combined engineer,就是上面这些都需要软件工程师全权负责。软件工程师需要掌握很多知识和技巧,才可以在如今竞争激烈的市场中永葆青春。&/p&&p&一个好的软件工程师,应该注重三方面的能力培养:&strong&设计、开发、个人素养&/strong&。设计包括理解UI、重视UX、Architecture、掌握良好算法数据结构等;开发包括优秀的编程实践、测试的设计、按时交付代码等等;个人素养也十分重要,包括写文档、写邮件、演讲等能力。&/p&&p&&strong&今天推荐的书单主要针对前两个能力:设计和开发&/strong&&strong&。&/strong&因为软件开发过程中,语言的选择并不是最重要的,所以本文推荐的书单尽量避免针对某种语言。如果有需要某种特定开发语言的书籍推荐,例如Java,C++,C,C#,Python,JavaScript等等,欢迎留言询问。&/p&&br&&h2&&strong&关于设计&/strong&&/h2&&p&软件的设计跟建设大楼的设计一样重要,有了图纸大楼才能开土动工,软件有了设计才可以真正开始进入开发环节。&/p&&p&&img src=&/v2-ff76eb5f29cd_b.png& data-rawwidth=&718& data-rawheight=&908& class=&origin_image zh-lightbox-thumb& width=&718& data-original=&/v2-ff76eb5f29cd_r.png&&&b&《写给大家看的设计书》:&/b&这本书出自一个著名设计师之手,他抽茧剥丝地把复杂的设计理论归为简单的四个基本原理:亲密性、对齐、重复和对比。书里面有色彩鲜艳的插图,生动鲜活的例子,利用正反两种例子解释什么样的设计好,什么样的不好,让人一目了然。非常适合作为快速入门的读物。&/p&&p&&img src=&/v2-e881ebc4d18769fcca31cba_b.png& data-rawwidth=&704& data-rawheight=&818& class=&origin_image zh-lightbox-thumb& width=&704& data-original=&/v2-e881ebc4d18769fcca31cba_r.png&&&b&《Head First Design Pattern》:&/b&Head First这系列书风趣幽默,无论是图片还是漫画都十分吸引人,让枯燥无聊的技术变得活灵活现。很多年前我刚毕业时候拿到Thoughtworks的offer,Thoughtworks推荐了一些列报到前读的书,有一本就是这本Head First Design Pattern.这本书非常适合初学者理解设计模式。不过并没有太多的实际例子。大家应该都听过四人帮(the gang of four)的Design Pattern那本书吧。那本书更为深入,建议初学者在读完Head First之后可以拿来四人帮那本书深入理解。Head First 这系列还有很多别的书,各方面都包含,都很适合初学者。&/p&&p&&b&&img src=&/v2-a9b4e8cc5be6e9b5487c_b.png& data-rawwidth=&684& data-rawheight=&856& class=&origin_image zh-lightbox-thumb& width=&684& data-original=&/v2-a9b4e8cc5be6e9b5487c_r.png&&《Effective Java》:&/b&Effective系列我一共只读过三本,分别是:Effective Java, Effective C#, Effective JavaScript。这系列还有一些针对别的语言的,比如Effective C++。学习任何一门编程语言,只看书是不够的,一定要结合实际,通过做一个小项目来学习一门语言最为合适。不但能学会语法和语言中常用的包,还能学会调适、测试等。Effective 这系列的书是我最喜欢的编程书籍系列之一,不但包含大量的编程实例,还列出了很多常见错误和陷阱。对一些常犯的错误给出了有用的建议,对一些小陷阱指出了有效的解决方式。&/p&&p&&b&&img src=&/v2-7ddf6ec32496ccb3dbebad_b.png& data-rawwidth=&790& data-rawheight=&980& class=&origin_image zh-lightbox-thumb& width=&790& data-original=&/v2-7ddf6ec32496ccb3dbebad_r.png&&《C和指针》&/b&:开头声明了本书单尽量不涉及某一特定语言,但实在是避不开这个最经典的C语言了。我接触编程比较晚,第一次亲密接触就是大一的时候上C语言编程基础,用的教科书是那本很差的绿皮谭浩强的书。当时被指针绕的七荤八素的,什么是指针,什么是指向指针的指针,谭浩强的绿皮书解释的模棱两可,老师讲的也是稀里糊涂。直到我都工作好几年了,一直都特别“幸运”地避开了一切指针。有一次偶然的机会听说了这本书,拜读了一下,果然是C语言初学者的福音。不但详细解释了C语言的种种基础和标准库,还特别感人的清晰地讲解了曾经迷茫了整整一代人的数组和指针。&/p&&p&&b&&img src=&/v2-c48f3ffd9d31b2f4a5e3b82_b.png& data-rawwidth=&852& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&852& data-original=&/v2-c48f3ffd9d31b2f4a5e3b82_r.png&&《Introduction to Algorithms》:&/b&这本算法书包含了很多现代的算法,从算法到数据结构,甚至包括多项式算法、数论、图论等。不得不说如果想要完全读懂所有的算法,还是需要一些数学背景知识的。这本书是很多美国大学的算法教科书。如果做到融会贯通,那面试美国大公司就是分分钟的事儿。不过说实话,这本书并不适合作为面试算法练习,因为实在是太厚重了,无论是书本身的厚度,还是书中包含的内容,都十分厚重。&/p&&h2&&strong&关于开发&/strong&&/h2&&p&软件开发过程是软件的筋骨,我们所说的程序员主要就是做开发过程。开发过程不是跟建房子不一样,不是按照图纸一块块的搬砖,更重要的在于能够编写可以测试、可以维护、可以向后兼容的代码。&/p&&p&&img src=&/v2-bb3e4c9a5db16bf5cbbd311_b.png& data-rawwidth=&672& data-rawheight=&858& class=&origin_image zh-lightbox-thumb& width=&672& data-original=&/v2-bb3e4c9a5db16bf5cbbd311_r.png&&&b&《Refactoring》:&/b&Martin Flower是一个很优秀的大师。他在1999年写的这本书至今仍十分畅销。这本书中他用一个实例一步步的解释如何重构代码。世界上任何一种产品都是逐渐更新换代变得越来越优秀的,写代码也是一样,优秀高效的代码需要在不断修改中演化而来。重构这本书帮助我们理解重构的意义:如何在保持功能性不变的基础上,提高代码的质量和效率。&/p&&p&&img src=&/v2-178eed5dea4_b.png& data-rawwidth=&768& data-rawheight=&992& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&/v2-178eed5dea4_r.png&&&b&《How to Break Software》:&/b&这本书又有趣又实用,实属业界良心。刚开始变成Combined Engineer的时候很不适应,最不喜欢写测试。一旦写测试,就发现很多软件的错误,大量的bug向我袭来的感觉实在是苦不堪言。但其实正是因为这些测试才能保证软件的质量。这本书特别适合程序员,因为完全是从程序员的心理出发,一步步引导你思考bug可能产生的路径,然后疯狂的对这些bug可能产生的路径进行大量测试。作者的想法刁钻古怪,毫不留情地揭露了程序员得过且过的心理。只有抱着这种心态才能保证软件的质量。如果你读完觉得这种方式实在是太残忍,大可把这些测试方式用在你同事的身上,互相伤害,这样才能互相帮助。&/p&&p&&b&&img src=&/v2-3f68068615_b.png& data-rawwidth=&760& data-rawheight=&992& class=&origin_image zh-lightbox-thumb& width=&760& data-original=&/v2-3f68068615_r.png&&《Code Complete 2》:&/b&让大部分人来推荐软件工程师书单,这本Code Complete 2都会高居榜首。中文版的翻译书名叫做《代码大全》。既然是大全那就一定是覆盖各种概念各种设计结构。很多人说这本书适合作为程序员的入门阅读起点。我倒是觉得这本书更适合作为一本参考阅读手册。任何经验背景的人都会从中受益。&/p&&img src=&/v2-bbc2c990f01_b.png& data-rawwidth=&646& data-rawheight=&994& class=&origin_image zh-lightbox-thumb& width=&646& data-original=&/v2-bbc2c990f01_r.png&&&p&&b&《Team Geek》:&/b&电影里面的极客都是单刀赴会一个人挑大梁,从焊电路板一直到拥有好几亿用户。这种角色往往给大家一种错觉,就是好的程序员都是独来独往不需要跟别人合作的。这是一种理想主义状态。优秀的软件靠的是团队合作。如果想在自己的职业生涯走的更远,我总结的就靠三点:技术的提高、机会的把握要、团队的和谐。这本书围绕着团队合作三大原则:谦逊、尊重、信任,系统地介绍了如何打造优秀团队。 &/p&&br&&h2&&b&个人修养&/b&&/h2&&p&如果不注重自己的演讲和写作能力,即使是再优秀的工程师,最后也很难突破自我更上一层楼。个人素养的提高是一个缓慢的过程。在这里推荐一本书。&/p&&p&&b&&img src=&/v2-dd76e57ced2de_b.png& data-rawwidth=&610& data-rawheight=&868& class=&origin_image zh-lightbox-thumb& width=&610& data-original=&/v2-dd76e57ced2de_r.png&&《程序员职业素养》:&/b&程序员的工作不只是日复一日的写代码,更重要的是知道自己在做什么,什么时候做,什么时候不做,什么时候该把活儿推出去,如何管理时间,如何管理deadline,如何正确估计项目所需的时间和精力,面对压力时候如何沉着冷静。这一切的一切都需要有好的心理素质。这本书给出了上述所有问题的分析解答,是程序员前进的指明灯。题外话:除了心理素质,更重要的是身体健康。&/p&&h2&&strong&总结&/strong&&/h2&&p&列这个书单,既是为了帮助刚入职场或者尚未入职场的软件工程师们理解软件设计和开发,也是为了自勉,时刻提醒自己:&strong&只有终身学习才能不被淘汰。&/strong&&/p&&p&有哪些书是作为程序员/数据分析师的你喜欢的呢?欢迎留言告诉我们。&/p&&br&&h2&&strong&课程推荐&/strong&&/h2&&p&Payson现在也是BitTiger王牌课程【全栈工程师直通车】的特约教师之一,如果你也想成为全栈工程师,欢迎&a href=&/?target=https%3A//www.bittiger.io/livecourses/eqmcu7koE3NxajSQx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击这里&i class=&icon-external&&&/i&&/a&(或者直接扫码咨询)。&/p&&p&&a href=&/?target=http%3A///r/1J3t9TzE8GGPrXiW98jG& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/r/1J3t9Tz&/span&&span class=&invisible&&E8GGPrXiW98jG&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& (二维码自动识别)&/p&BitTiger,来自硅谷的终身学习平台。欢迎关注公众号:&b&太阁&/b& 或搜索 &b&bit_tiger&/b&。&img src=&/v2-2f9eebf19c64847bef8dc9ac_b.jpg& data-rawwidth=&1080& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&/v2-2f9eebf19c64847bef8dc9ac_r.jpg&&
导读:本文作者Payson Wu,硕士研究方向二维PDE数值解析算法,五年前端开发经验,现就职于Microsoft。现在的工作市场越来越讲究综合人才,软件开发行业也一样。以前的设计、开发、测试、上线分别由单独的团队负责,现在越来越多的公司需要combined engineer…
&p&我们从高一到高三都强制采用图形计算器,可以画函数图像的那种。我们用的是德州仪器系列,Ti-Nspire,贵的要死要死的。&/p&&p&然而我却买错了计算器的制式,便宜货,相比其他同学的系统少了很多重要的功能。&/p&&p&作为一个很穷很喜欢计算机很爱折腾的少年,我先是把计算器系统刷成了正规版本,然后再将其越狱,安装上了GBA模拟器和电子书以及仙剑奇侠传。&/p&&p&你没看错,这真的是在计算器上玩的。&/p&&p&教程网上都有,所以我都是按网上教程做的(我那时可不懂什么嵌入式内核开发,现在也不懂...)&/p&&p&给个图吧,网上复制的,但当时效果一模一样。&/p&&img src=&/5c80a7ac52a0ab662fee84a_b.jpg& data-rawwidth=&370& data-rawheight=&398& class=&content_image& width=&370&&&br&&p&右边那就是我们的图形计算器(但我的计算器左右两边框框都是白色的,因为机型不一样嘛)。&/p&&p&后来到高三了,学业也重了,都在应付高考,不敢折腾我的计算器,生怕变砖。正好计算器有个原生编程语言叫Ti-Basic(和Basic类似),所以就把心思花在这个语言上。
有天做数学作业,学的是概率,有那种需要计算最小样本数量的题目,得反复算概率才能推出结果。
然后黑客流附身,想到可以用暴力枚举的方法强行算答案。
于是在计算器上编了个小程序,分分钟搞定数学作业(就和基友去玩提莫辅助了)&/p&&p&永远忘不了第二天数学课,老师带着同学们在课上讲作业,要么是手动穷举要么是用表格大法,没有三五分钟干不掉一道题。而我的程序只需要三秒写个参数就可以了……
这些题目都有两分,一分是过程一分是答案,而我的程序只有答案显然是不行的,于是我加上了计算输出过程的代码。
后来又陆陆续续写了其他一些有用的程序,但最后传给学弟学妹们的也就两个程序,刚才那个是其中之一。
也写过一些游戏,本来是想做地牢RPG系列的,花了一节半数学课的时间撸出了一个战斗系统,因为不确定Ti-Basic里有没有类似数组一类的数据结构,所以卡在了地牢地图生成的开发上。&/p&&p&******&/p&&p&高三期间,两次被老师请去给全年级高三学生教学计算器进阶用法。&/p&&p&澳洲维州数学高考,计算器题目占一半分数比重。&/p&&p&上述程序目前全州就我们学校的学生有。&/p&&p&连续两年数学高考,我的程序在考试中发挥了作用。节省了全体学生几分钟的时间,并保证了送分。&/p&&p&去年大一,被数学老师请回母校,对新一届的高三学生指导计算器的这些进阶用法。&/p&&p&一小时的讲座让他们脑洞大开。&/p&&p&一眨眼两年过去,我现在也大二了,希望在计算器上编程的这点小技巧能在我的母校里继续做下去 :)&/p&
我们从高一到高三都强制采用图形计算器,可以画函数图像的那种。我们用的是德州仪器系列,Ti-Nspire,贵的要死要死的。然而我却买错了计算器的制式,便宜货,相比其他同学的系统少了很多重要的功能。作为一个很穷很喜欢计算机很爱折腾的少年,我先是把计算…
&img src=&/v2-08dafe81b0a3b6cb38fe948_b.jpg& data-rawwidth=&641& data-rawheight=&454& class=&origin_image zh-lightbox-thumb& width=&641& data-original=&/v2-08dafe81b0a3b6cb38fe948_r.jpg&&&p& 本文来自于&strong&腾讯Bugly&/strong&公众号(&strong&weixinBugly&/strong&),未经作者同意,请勿转载,原文地址:&a href=&/?target=http%3A//mp./s/Ry-G0Nikh6m-h3ZVC2cLyQ& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&新年开篇 | 总结一个技术总监的教训和经验&i class=&icon-external&&&/i&&/a&&/p&&h2&导语&/h2&&p& 2017年来了,新年开篇,就不跟大家聊技术啦,给大家分享一篇鹅厂技术总监在多年工作中总结出的教训和经验。&/p&&p& 这篇文章自从在腾讯内部论坛发表后,精神哥每年都会拿出来重新研读一番,每次都有新的感悟和收获,所以强烈推荐给大家。&/p&&h2&正文&/h2&&p& 资深程序员是团队中最强大的生产力,但往往被不合理的工作安排浪费掉。因此作为一个团队的技术的“头”,必须要有明确清晰的认识,把主要的事务性工作剥离出来,并且放弃大量的管理“权力”,以提高团队开发质量和效率为最主要的目标去安排自己的工作。&/p&&p&&strong&一般来说技术总监其实会被要求做事实上是2个职位的工作:主程、项目经理(技术化)&/strong&&/p&&p& 因此必须明确此两个职位的工作任务分割,然后把项目经理的工作,安排给另外一个人做。当然其职称可能同样也得叫“技术总监”或“主程”,总之听起来越牛X越好。而真正的主程(技术总监)则应该投身于尽量多的技术工作中,其中最重要的工作则是开发———生产代码和文档。&/p&&h2&主程的工作:&/h2&&h4&一、开发&/h4&&p&&strong&从来没有一个资深的外科医生会放下手术刀,而转到手术室外面指手画脚。一个资深的程序员也不应该离开代码和文档的编写,而只是做做架构图。&/strong&作为对一个复杂系统的负责人,必须亲手领导和参与建造,才能有足够的能力去负担起这个责任。因此需要至少使用60%的时间来参与开发的工作,并且建议从一开始上班就开始,虽然早上的效率很低,但是跟任何艰巨工作都一样:万事开头难。&/p&&p& 在你好不容易等待电脑慢吞吞的打开了所有的IDE、需求文档、参考资料、工作计划这堆要命的东西之后,你就迈出了最重要的一步,你会发现你不在需要在网上看微博和聊QQ来提振开始工作的激情,而会被某一个优化代码的灵感而激励,或者被一个复杂而有趣的问题所吸引,从而更快的能投入到开发中。&strong&坚持打开电脑做的第一件事是打开IDE软件,是这一切最重要的一步。&/strong&&/p&&img src=&/v2-de3b7a24d3d76edf795aae_b.jpg& data-rawwidth=&702& data-rawheight=&336& class=&origin_image zh-lightbox-thumb& width=&702& data-original=&/v2-de3b7a24d3d76edf795aae_r.jpg&&&p&&strong&开发的工作内容包括:&/strong&&/p&
1. 提出非功能性需求
&p& 一般来说功能需求总是让开发人员焦头烂额的主要原因。但实际上,很多项目死在发布之后,却是因为性能、产品质量、扩展性、二次开发效率等&strong&非功能性需求没认真去解决&/strong&而导致的。&/p&&p& 主程作为经验最丰富的成员,必须要利用自己曾经的经验和教训(在这里教训往往比经验重要),提出那些自己折腾自己的“非功能性需求”,来保障整个项目在发布后不会轰然倒塌。&/p&&p& 这是个吃力不讨好的工作,因为老板和客户往往只会抱怨技术人员在玩弄把戏,骗取更多的资源或者杞人忧天。如何说服这些家伙也许不是主程的工作,但是主程必须要以高度的责任心把问题放到台面上来。沟通的工作也许让项目经理去做会更好,他们有一整套如何威逼利诱老板和客户的戏法。&/p&&p&&strong&非功能性需求中,其中有三类:&/strong&&/p&&ul&&li&性能需求&/li&&li&运维需求&/li&&li&开发效率&/li&&/ul&性能需求
&p& 最好的性能需求实际上所有没有需求,因为性能优化往往错的。特别是有一定经验的开发人员,更容易产生“执念”。经验不是特别丰富,而又热爱学习的开发者,往往对很多网上的所谓文章、经验没有太多的识别能力,又缺乏动手实际测试的机会,所以道听途说先入为主的观念也是非常多的。这些观念里面最多的就是关于性能的,先不论所谓优化性能的各种说法,就是推荐各种高性能框架、库的文章也很多。这个时候,拨开纷繁的信息迷雾的人,就只能靠主程了。&/p&
&p& 运维需求的目标是尽量自动化,这里除了最基本的批量启动、停止、重载静态数据(配置)外,还应该包括自动读取本地IP地址,以及自动下载配置文件来启动;等待所有用户退出后才停止的“安全退出”;自动检查进程停止后重启等等功能。&/p&&p& 但是运维的工具也要避免过度设计。很多人往往一想到搞运维工具,就想搞一个功能非常大而全,具备漂亮的WEB界面的大平台。实际上真正救命的往往是一些自动化的小型工具,只有这些小工具和小功能都齐备了,耐心额漂亮界面的平台系统真正有意义。所以这主要依赖于经验,但也需要有想象力。&/p&
&p& 开发效率的需求一般都在代码结构上,而这是最容易产生争吵的地方。实际上所谓的代码结构,是对业务领域抽象的一种表现形式,所以对业务领域的理解能力和经验是第一位的。如何抽象好业务领域的模型,不能照搬别人的经验,但也不能完全靠自己想象。需要自己对业务领域做深入思考,同时也多学习了解其他项目的模型。&/p&&img src=&/v2-679f26bdff14b21e3cc56_b.jpg& data-rawwidth=&600& data-rawheight=&314& class=&origin_image zh-lightbox-thumb& width=&600& data-original=&/v2-679f26bdff14b21e3cc56_r.jpg&&&p& 一般来说,比较底层的技术模型,作为开发人员,都是非常熟悉的。比如UNIX系统把所有东西都抽象成文件。而大量的开源项目,作为通用的技术产品,对于比较技术层面的抽象,也都非常优秀。但是,作为业务逻辑开发人员,是绝对不应该被这些模型所困住的,因为我们要解决的问题,并不是去写一个操作系统,或者某个开源框架,而是具体的某一个领域的问题。只有真正深入的去了解业务领域,才能很好的抽象业务领域的模型。&/p&&p& 也就是说,如果你是开发游戏的,就要深入的理解游戏产品的概念;如果你是开发电商产品的,就要对商业贸易有深入理解,否则是不配作这些产品的开发领导人的。我们有一些技术人员,并不愿意去深入业务领域做理解,而是希望把所有的业务问题,都抽象成他自己最拿手的某一种技术模型,这样反而是会严重影响开发效率的。&/p&&p& 比如说有的人,喜欢把所有的业务逻辑,都看成是一种“输入数据结构”和“输出数据结构”的处理管道,不管写什么程序,都是同样一套类似的代码结构,就是“读输入-解包-处理-写输出”。尽管这样一定可以完成所有的需求,但是其代码结构并不能应对真正的需求变化,开发效率也一定是低的。真正的主程,就是应该在这个时候,挺身而出提出自己的抽象模型,从而带动整个团队,提高开发效率,同时也做好应对需求变化的准备。&/p&
2. 设计和修正软件架构
&p& 软件架构设计至关重要,而且工作繁重。不画图纸就敢开工的技术人员要么是天才要么是笨蛋。对于团队来说,架构在分工合作、避免风险、提高质量等多个方面有无可替代的作用。&/p&&p& 架构要避免成为空洞的文档,最重要的一步是有人来掌控和实施。而主程主持设计和修正的架构,并且亲手实施,让团队中的腹诽之徒完全无法避开,否则代码将无法运行!所谓设计和修正架构,并不意味所有的文档应该一个人写,而是指这个架构的每个环节,都是经过主程决策同意的。当然最好这些文档能尽量由他撰写,对于“菜鸟”团队来说,输出这种文档本身就意味着“权势”,有助于主程建立个人威信——这种看起来有点肮脏的“政治”东西,在避免团队内无止境的扯皮,以及稳定那些随时准备跳槽的成员来说,都是相当实用的。&/p&&img src=&/v2-d4b271c8_b.jpg& data-rawwidth=&670& data-rawheight=&233& class=&origin_image zh-lightbox-thumb& width=&670& data-original=&/v2-d4b271c8_r.jpg&&&p&&strong&很多软件架构只有运行时架构,没有代码架构&/strong&,这是非常可惜的。诚然,我们要关注系统的运行效率,运行时架构(进程结构图)是必不可少的。然而,代码架构是更加稳定的设计方案,因为在必定会发生的需求变更下,进程结构往往也会因此变化。代码的结构是对需求的抽象和描述,这种描述是对业务需求的理解,业务需求小的变化非常多,而大的方向却往往不会变化很频繁,因此如果能基于这些大的方向来组织代码,划分模块,那些繁复的小需求,仅仅是对系统局部的修改,而不会影响过多的其他部分;反之,如果我们没有整体的视野去组织代码和模块,仅仅从一开始的细节需求去组织进程代码,一定会因为需求变化而把整个系统改的乱七八糟。&/p&&p& 所以,作为主程或技术总监,把控代码结构,往往比把控进程结构更为重要。同样的代码可以组织到不同的进程内来启动,如果进程结构不适应性能需求,还是可以优化的。但反过来就行不通了,一个混乱的代码结构,不管你怎么去用进程结构调整,还是会问题百出。&/p&
3. 难点代码(关键需求)的开发
&p& 主程必须写代码,写那些大家都认为风险大的代码。&/p&&p& 有的系统对于性能要求很高,他就必须去完成容易出性能问题的部分。比如IO操作或者设计数据库索引。有些系统的需求非常飘忽,他就要去想办法完成框架代码或者脚本引擎,以便众多小弟可以跟着产品人员疲于奔命。这种工作内容会让主程不必完全的读过所有代码,而能牢牢的“掌握”代码,以免团队成员甩耙子的时候能充当备胎。因为融入团队的代码开发,也是一个让架构设计从日常工作中真正控制系统的工作。而且主程代码通常会被别人接触,能直接教育其他团队成员,同时也能建立——威信。&/p&&p& 在大公司中,由于团队成员普遍素质比较高,所以都这部分的需求会比较少。但是还是有一些部分的代码,应该亲自操刀。如果不能对最核心的实现模块下手,起码也应该对客户使用界面有一定的编码经验。&/p&&p& 比如游戏开发中,某个比较复杂的业务逻辑脚本;在发行的产品或库中,编写针对用户演示用的DEMO等等……。究其原因,是因为客户是最重要的,而领导者起码应该直接参与面对客户的部分。店长不迎宾,厂长不进车间,事情是绝对做不好的。&/p&&p& 而中小型公司里面,如果编码工作还是放给别人做,到头来还是给自己找麻烦。因为小型公司人力本来就紧张,而质量低下的代码,造成的故障和BUG,会更加消耗不多的时间成本。自己做的越多,项目成功的几率就会越大。&/p&&img src=&/v2-d1023acfcbee8b162248cd_b.jpg& data-rawwidth=&528& data-rawheight=&249& class=&origin_image zh-lightbox-thumb& width=&528& data-original=&/v2-d1023acfcbee8b162248cd_r.jpg&&
4. 救火和杀虫
&p& 这个工作其实和代码开发是一致的,如果没有平日的开发,通常紧急问题的解决也是比较难处理的。但是这个也有一个调试技巧的要求,比如要求会使用各种诊断工具。这些工具一般的开发人员可能会比较少使用。找问题的过程本身也可以提高团队其他人的技术水平。&/p&&h4&二、培训&/h4&&p& 培训的工作应该占用30%左右的工作时间。培训是稳定团队人员最重要的手段。也是提高团队开发效率最有效的手段。工具、过程、制度、奖惩,这些都代替不了程序员一行行的去写代码,最直接的方法是让他们做的更快更好,这些需要经验和知识的积累。&/p&
1. 代码审查
&p& 关于代码审查,有太多的论述。但是代码审查还是一种“强迫”推行某种风格或者技巧的手段,这是最真实的“控制”系统的手段。也是推广知识和经验最直接的手段。一个人写的代码通常应对的问题不会特别“广泛”,因此只要审查其中一部分代码,就能给大部分别的代码带来好处。&/p&&p& 代码审查的实施,应该有一定的基础。需要代码作者进行问题描述、代码结构的讲解。而且也需要作者自己来挑选重点代码段。主程序员应该指出自己关心的重点代码应该符合什么特征。&/p&
2. 技术方案评审
&p& 什么事情应该写一个技术方案,然后进行评审,这是一个关键的问题。一般认为开发时间在2周以上的单项工作应该先做个方案。往往技术方案是系统架构的完善和补充,或者是挑战。所以主程的参与是非常必要的。但是要注意不需要去做的太琐碎,而是要提炼出“关键”的需求和“关键”的解决方案进行评审,而这些“关键”往往不是功能,而是质量上的需求,如这个系统的扩展性,是否能方便后续开发等等。也有可能在这些会议上会发生争吵,但是决策人是主程的地位是不容动摇的。君子和而不同,每个程序员都可以拥有自己的看法,但是代码必须能按方案运行起来,主程必须经常申明这点。&/p&&p& 技术方案在差距较大的团队中评审,一般来说可以视为一种培训;而在水平相当的团队中评审,可能会变成各自想法的争执。不同的项目经历,绝对会造成意见的大分歧。其实这就是所谓“非功能需求”没有被明确出来造成的。这个时候主程就应该履行自己的义务,去提炼争论中的“非功能需求”,然后做出决断。&/p&&img src=&/v2-08c2a6d6bbf2b878d68de_b.png& data-rawwidth=&660& data-rawheight=&371& class=&origin_image zh-lightbox-thumb& width=&660& data-original=&/v2-08c2a6d6bbf2b878d68de_r.png&&
3. 学习与讲座
&p& 如果团队碰到问题,没有新的方法和技术去解决,是不会提高开发效率的。就好像你用牛来耕地,不管用什么管理方法,都不会赶上机械化的速度。而主程承担着不断突破自己的技术上限,介绍和推动团队使用更新的技术来解决问题的责任。抱残守缺,思想僵化,最后会被团队成员所抛弃,而且也会让团队的效能落后于业界,最后直接影响产品的生死。每年学一门新语言,这个说法可能有点激进,但是这也是作为程序员应该有的激情。&/p&&h4&三、管理&/h4&&p& 管理等于权势?管理等于沟通?管理等于文山会海?多年专业训练出来的技术人员如何去做管理?&/p&&p& 管理的目标是提高绩效,如果和这个目标无关,而只是和“管理者”这个头衔有关的事情,最好丢给别人去做,包括那个头衔。管理主要手段是创新:想出新的方法去解决问题,而不是繁杂的事务性工作!——一个专业秘书能比主程做的好一百倍。技术工作的创新,最主要还是在技术工作里面,而不是跳出来说:做这个,做那个。&/p&&p& 管理的事情如果超过10%的工作时间,等于说你更像一个项目经理而非主程。&/p&
1. 绩效评定
&p& 以专业的意见来衡量别人的工作,这个负担是无人能够承担的。这个工作往往是利益分配的一种手段。类似奖惩手段。这种管理方法已经不是新事物了。但是实际上技术人员对于绩效往往持一定保留和暧昧的态度,因为这种事情难以很清晰的界定出来。需要判断而非量度,才是绩效的真正手段。如果一定要打分,一共两项足够了:进度、质量,5分制即可。更重要的事情是,告诉每个人主程的看法,告诉别人,怎样做才是更好。或者告诉团队,怎样做才更有利于我们成功(发财、上市、赢得老板和客户……)——把目标清晰告诉团队,发挥他们的主动性,是绩效评定最重要的目标。&/p&&img src=&/v2-c5ea53eee56c9d743b92a_b.jpg& data-rawwidth=&849& data-rawheight=&566& class=&origin_image zh-lightbox-thumb& width=&849& data-original=&/v2-c5ea53eee56c9d743b92a_r.jpg&&&p& KPI是一个争论非常多的话题,技术人员的KPI的争议更多。&/p&&p& 关于KPI,有几个观点是必须明确的:&/p&&ul&&li&难以量化的东西,就不要强行量化;&/li&&li&KPI应该以任务是否有去做完为标志,而不是做到的效果为标志;&/li&&li&分解和设计KPI是一个非常需要承担风险的工作,基本上等于提出实际的工作方案。&/li&&/ul&&p& 以上三点,是互为结合的。技术工作的质量很难量化,或者指导性不强,还不如以工作的数量为标准,指导性反而更强。&/p&&blockquote&&p&那么要怎么设置这些工作任务的数量呢?&/p&&/blockquote&&p& 应该去设计一些能“保证质量”的工作任务,作为必须要完成的工作数量。那么,问题就更进一步了,要设置些什么样的工作,才能作为指标?这就需要技术总监根据自己的经验和智慧,提出切实可行的方案去要求下属完成,而不是把需求简单的分切后丢给下属去自行了断。&/p&&p& 举个例子,有一个部门的业务逻辑开发任务很重,由于需求多变化快,代码质量难以监督,所以各种性能和逻辑故障都层出不穷。如果你只是设置了BUG的数量和需求完成数量作为指标,靠这种KPI是难以推动真正的改进的。反过来,如果你对需求实现模块,设置了必须要完成的单元测试任务指标,设置了运行质量监控系统的开发指标。如果部门完成了这些事情,项目的质量和进度自然就会有提高。——但是这些措施是否真的能奏效,这就是作为技术总监必须自己承担的决策风险。&/p&
2. 需求评定
&p& 最让技术人员头疼的可能就是和客户谈判。这个事情实际上不应该让技术人员来伤心,有项目经理就可以了。而需求评定更多的是可行性的讨论。主程如果参加每个需求评定,他要三头六臂也搞不定,正确的做法应该是具体开发的团队人员参加,而主程在开会前给与自己的意见,或者会后听取参与者的总结。——这是了解别人做什么事的一个重要手段,但无需陷入太深,因为还有代码评审和项目经理的帮忙。&/p&
3. 跨部门沟通
&p& 实在没必要参加,能躲就躲,这是扯皮的天堂。让项目经理去吧,他们的专业技巧能让这些事情更加有效。只要回来后让项目经理告诉你发生了什么事情就可以了。&/p&
4. 进度审核和任务分派
&p& 又是一个很有“权势”的工作,实际上团队成员的情况大家都知道,决定谁应该做什么事情并非需要很多时间去想的事情。所以大可以把方向性的意见告诉项目经理,让他去做。很多优秀的开发者玩EXCELPROJECT之类的水平还不如只有一年工作经验的秘书,别折腾自己了。&/p&
&p& 如果真想帮忙,准备一份有区分度的笔试题目吧。不靠谱的人太多,老板可不是花钱请你和他们聊天的。让项目经理去聊,不用担心他们技术不强,再不够,也会比大多数面试者要牛X。他们搞不定的人,就是应该雇佣的家伙。毕业生招聘怎么办?只要看看他们课外活动是不是有搞些专业的事情就可以了,上进心比别的东西都重要,HR会比主程看的更准,相信我。&/p&
6. 各种会议
&p& 饭无好饭,会无好会,超过6个人的会议应该坚决抵制。如果你有一个程序等着你去写,你一定无比痛恨这些会议,顺应你的内心吧!上帝保佑你。&/p&&h2&最后说说项目经理的工作:&/h2&&p& 项目经理就像下水道的清洁工,所有那些主程不愿意去做的事情,他们都弯下腰去认真的把玩,实在是太伟大了。既然如此,为何不让他们拥有更好一点的头衔呢?如果没有他们去处理这些工作,任何一个主程都会被逼疯掉,或者他们自己变成了项目经理,让团队损失了最强力的一台代码发动机。&/p&&p& 在一些公司,有专门的项目经理的岗位,这无疑是幸福的,但也是不幸的。因为项目经理本身是一种既需要专业性,也需要通用技能的岗位。项目经理由于专业定义不清晰,导致了大量的误解,这就是不幸的原因。有的团队会说我们不需要项目经理,又有的团队会认为项目经理无比重要,这两种观点的争论一直没有平息过。因此比较实际的做法是,不要轻易的去评价“是否需要项目经理”,而是努力把工作细分,专业化,然后再看应该安排谁去做。不同的项目和不同的团队,也许项目经理的工作都是不同的。&/p&&img src=&/v2-bb3eb0b326c89_b.jpg& data-rawwidth=&737& data-rawheight=&400& class=&origin_image zh-lightbox-thumb& width=&737& data-original=&/v2-bb3eb0b326c89_r.jpg&&&p& 根据经验,项目经理大概的工作内容方向包含以下这些:&/p&&h4&一、进度&/h4&&ol&&li&指定工作计划&/li&&li&进度检查和进度延迟的预警&/li&&li&工作总结和统计&/li&&/ol&&h4&二、资源&/h4&&ol&&li&整合提供各种资源,如找DBA,IT,运维人员,硬件,SVN权限,测试环境,福利,周末的活动……&/li&&li&面试:人员是最重要的资源,不是吗?&/li&&li&资源谈判:往往是和老板谈判,让别人明白现在的真实情况。又一个吃力不讨好的差事,但是总需要人做。&/li&&/ol&&h4&三、沟通&/h4&&ol&&li&需求评审:和需求方讨价还价,项目经理真是命苦啊……&/li&&li&组织会议或者用其他方式通知信息给所有人:小喇叭、大喇叭、全服广播、世界频道……&/li&&/ol&&h2&总结&/h2&&p& 对于一个小型公司,职权,头衔,收益,往往会更加敏感。但是这些都不是让项目失败的理由。一颗叫程序员的种子说:长大了我就是叫管理者的树。这个错误的观念只会让这个种子永远无法发芽。软件开发是类似外科医生的行业,而不是血汗工厂,所以不需要手持皮鞭的经理,而需要仁心仁术的神医。&/p&&p& 更多精彩内容欢迎关注&a href=&/?target=https%3A///v2/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯 Bugly&i class=&icon-external&&&/i&&/a&的微信公众账号: &/p&&img src=&/3f2c1b1ff77fcedf3fb54616_b.jpg& class=&content_image&&&p&&a href=&/?target=https%3A///v2/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&腾讯 Bugly&i class=&icon-external&&&/i&&/a&是一款专为移动开发者打造的质量监控工具,帮助开发者快速,便捷的定位线上应用崩溃的情况以及解决方案。智能合并功能帮助开发同学把每天上报的数千条 &a href=&/?target=https%3A///v2/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Crash&i class=&icon-external&&&/i&&/a& 根据根因合并分类,每日日报会列出影响用户数最多的崩溃,精准定位功能帮助开发同学定位到出问题的代码行,实时上报可以在发布后快速的了解应用的质量情况,适配最新的 iOS, Android 官方操作系统,鹅厂的工程师都在使用,快来加入我们吧!&/p&&br&
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:导语 2017年来了,新年开篇,就不跟大家聊技术啦,给大家分享一篇鹅厂技术总监在多年工作中总结出的教训和经验。 这篇文章自从在腾…
&img src=&/v2-10cbf6df2d287e45a99128_b.png& data-rawwidth=&900& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&/v2-10cbf6df2d287e45a99128_r.png&&&p&上个月准备发《预测 2017 中国互联网重大安全威胁》,写得差不多了,但是感觉还不够,想想还是不发了。刚刚,本来准备发《聊聊 Web 安全的深入技巧》,写了一半,就不写了,保存成草稿。&/p&&p&原因主要是:我不想成为啰嗦的人。真正的原因是:懒。&/p&&p&那么,年都过完了,那就分享其中一个技巧吧...&/p&&p&比如我去年这篇文章 &a href=&/?target=http%3A//mp./s%3F__biz%3DMzA3NTEzMTUwNA%3D%3D%26mid%3D%26idx%3D1%26sn%3Db2301efeb14a82073f8dfd%26scene%3D21%23wechat_redirect& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&不怕得罪人地推荐这9本黑客书籍&i class=&icon-external&&&/i&&/a& 推荐的一本书:&/p&&blockquote&&p&&strong&《黑客攻防技术宝典:Web实战篇(第2版)》&/strong&,625页&/p&&/blockquote&&p&这本书的第一版,当年我在入门阶段是完全细细看过的,当时的感觉是:Web 安全的知识实在太庞大了!&br&&/p&&p&这本书内容涵盖:认证授权、前端漏洞(如 XSS/CSRF)、后端漏洞(如 SQL 注入、其他各种注入)、逻辑漏洞、溢出、源码审计、相关工具、渗透、等等。&/p&&p&是不是很多?其实还有更多(毕竟这本书都是几年前的书了)...那如何下手呢?&/p&&p&我的建议是这本书可以完全细细看一遍。但是不可能都记得住,没关系,保持一个印象就好,尤其是在真实实战环境下,概率很低的一些漏洞,比如:XPath
注入、LDAP 注入 等,这些漏洞在看书过程中可以和其他漏洞进行异同对比,保持个印象,如果以后真遇到,查书、查官方手册、查 Google
就好。&/p&&p&知识不怕多,怕的是不理解本质。对于那些很流行的漏洞,比如 SQL 注入、命令执行、XSS、CSRF、SSRF 等,还有一些比较凶猛另类的漏洞,如反序列化、XXE 注入、跨域等,这些都应该理解其本质,理解其异同,应该实战起来。&br&&/p&&p&精而悟道正是这个道理。&/p&&p&-----------------&br&微信公众号「&strong&Lazy-Thought&/strong&」&br&几个黑客在维护,都很懒,都想改变点什么&/p&
上个月准备发《预测 2017 中国互联网重大安全威胁》,写得差不多了,但是感觉还不够,想想还是不发了。刚刚,本来准备发《聊聊 Web 安全的深入技巧》,写了一半,就不写了,保存成草稿。原因主要是:我不想成为啰嗦的人。真正的原因是:懒。那么,年都过完…
在伯克利上暑校期间认识了一个MIT小哥,他现在大一,物理专业。&br&&br&我很好奇一个MIT的学生为何要到Berkeley来上暑校,于是问他到这里念暑校的原因。&br&&br&他给我说了两个事:&br&&ol&&li&他现在是NASA的实习生,周末需要到硅谷mountain view附近的NASA研究中心实习,MIT在Boston距离加州太远,为了方便实习,暑期来到加州。&/li&&li&他力争两年修够学分本科毕业(正常四年,180-186个学分,&a href=&///?target=http%3A//t.cn/RcPb8iz& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/RcPb8iz&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&),这样可以尽早投入NASA的正式工作,而Berkeley暑期课程的学分是可以在MIT转换的,所以他修了很多门伯克利的暑期课程,这样可以一边实习一边利用假期修尽可能多的学分。&/li&&/ol&我刚才提到了『很多门』和『尽可能多』,那么他暑校修了几门课程呢?&br&&br&&br&&b&五门。&/b&&br&&br&五门什么概念?&br&&br&过来上Session C(2个月)暑校的学生,基本都只选了两门课,Session B(6个周)的还有选一门课的情况,我是C的,选了cs61a和cs188两门课,然后我的课表就是下面这样子:&br&&img src=&/ddf2d417cfbd72bd76fb_b.png& data-rawwidth=&863& data-rawheight=&575& class=&origin_image zh-lightbox-thumb& width=&863& data-original=&/ddf2d417cfbd72bd76fb_r.png&&周一到周四满课,lecture + lab + discussion轮番轰炸,基本是满满当当的,周五周六周日其实也闲不下来,因为cs188这门课每个周都有proj,每个proj都有大概8个左右的coding problem,把知识吃透然后写出程序调通,基本上两天也就过去了(当然也有快的,我属于比较慢热型的人,囧),而且有的时候还要补一些weekday没完成的homework和quiz,所以这两门课基本上吃掉了我两个月所有的时间。&br&&br&&b&而他选了五门,他和我一样都是Session C的学生。&/b&&br&&br&我看过他的课表,几乎所有格子都是双色重合的,甚至还有三色重合的,课程囊括数学、计算机、物理、经济学(不知道他为啥选这个)四个门类,这意味着他必须很高效的管理他的时间,我每次通宵的时候都可以看到他。他精力充沛到令人绝望,每天晚上都是在lounge点个外卖,然后一边吃一边做作业,凌晨五六点回寝室,睡两三个钟头起来去听上午的课,这种状态持续两个月,而且从未显疲态,我熬到凌晨三四点的时候经常会出现精神恍惚的感觉,但他可以在房间里面好几个小时大声浩气地与人争论问题,每天看起来活力四射的样子。&br&&br&当然,他有的时候也会吐槽自己把时间安排的太紧了,展示一条他的短信。&br&&img src=&/354cd9bf65e058a4b5eedac_b.png& data-rawwidth=&386& data-rawheight=&650& class=&content_image& width=&386&&&br&&br&另外,就像上面所有答案里面提到的那样,这五门课他都是A/A+,他也修cs61a,大考小考分数都在我之上,proj打比赛,优化结果能超过我好几个百分点,泪奔,这让我一个学了四年cs的人,恨不得羞愤自尽。&br&&br&最后,这小哥1.9身高,很健美的身材,来自埃及,我没有照片,刚才google了一下阿拉伯帅哥,找到一张差不多的(胡型一模一样),大概长这个样子。&br&&img src=&/a816c354f7e6dd_b.png& data-rawwidth=&509& data-rawheight=&343& class=&origin_image zh-lightbox-thumb& width=&509& data-original=&/a816c354f7e6dd_r.png&&&br&&br&&br&&br&&br&&br&&br&&img src=&/f887d54c73ad3ec79fb493_b.png& data-rawwidth=&421& data-rawheight=&240& class=&origin_image zh-lightbox-thumb& width=&421& data-original=&/f887d54c73ad3ec79fb493_r.png&&
在伯克利上暑校期间认识了一个MIT小哥,他现在大一,物理专业。 我很好奇一个MIT的学生为何要到Berkeley来上暑校,于是问他到这里念暑校的原因。 他给我说了两个事: 他现在是NASA的实习生,周末需要到硅谷mountain view附近的NASA研究中心实习,MIT在Bosto…
已有帐号?
无法登录?
社交帐号登录
1361 人关注
4112 人关注
923 条内容
330 人关注
182 条内容
4349 人关注
2718 条内容}

我要回帖

更多关于 one hot dummy 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信