asp淘汰了吗,如何学习单片机?
森山,10多年的硬件开发经验,做过的板卡数不清有多少块,做过量产的产品也涉及到各个行业,也做过不少失败的项目。他用自己的经验告诉大家,如何系统的学习单片机。
01.需要一块开发板——让单片机动起来
买一块开发板,按照配套的demo程序,自己改改,让外设动起来,比如OLED显示内容,电机启停、调速,温湿度采集等等。这一步是为了让你体会到,单片机如何通过编程实现对硬件的操作。
这样的开发板太多了,建议从STM32入手,原因有二:一是资料最全,开发环境比较友好,而且今后在产品中使用也比较多;二是开发板都不贵,而且最好选外设多的,带显示,带通信接口的开发板。
即使一开始不懂,开发板配套的学习包,足够你学一阵子了,STM32官方也有现成的Cubemx工具来帮你生成基础代码。
02.自己设计一个小demo——掌握基本外设
我建议有硬件设计能力的,可以自己设计制作一款开发板,尽量多的加入不同类型的外设,因为以后你研发产品,就是基于这些外设的应用逻辑组合。然后一个个移植外设驱动,当然更建议自己写驱动,驱动写得好能最大程度发挥硬件的性能。
受限于单片机的性能都比较一般,基础的外设的连接方式大致有这些:IO、I2C、SPI、AD\DA、UART、CAN、RGB888……等这些低速接口,有的也带USB。
等你玩转了这些,以后升级到更强的平台,那么高速接口学习起来也只是工作量的问题,大同小异。
在移植和写驱动的过程中,要学会看datasheet,spec。虽然一个简单的芯片规格书就是几十上百页,但并不是你都要去看懂的,只要知道提取自己有用的信息,比如I2C设备,它的总线最高频率,你在做时序控制时不能超过它的上限。
在调试过程中,你一定会遇到非常细节的问题,这时候,借助一定的工具和手段,可以让你变得更加高效,比如学会用示波器去看数据波形,学会看时序,分析通信协议,用万用表去检测基本的故障。
下面视频是用STM32通过对步进电机和电磁铁的控制,来实现纺织机机头的功能。尽管我也做了多年开发,在遇到新的外设时,调试还是花了不少精力。参数是调出来的,有时候就差几十us的延时,性能就相差很多,所以在研发的过程中一定要耐心:
03.学着做一个完整的小产品——产品思维
前2步的基础,新手的你已经大致有信心了。接来下可以做一些设备的联动,实现一个产品的基础功能,一个简单的单机设备。举个例子,通过温湿度监测,来控制继电器,继电器外加电热丝或加热装置,并且实时显示该温度值,这就是一个温度控制的产品了。
这些设计不难的,难的是在这一步里你要有一定的产品思维了。要列出你这个产品的需求,解决了什么痛点,根据明确的需求去选择相应的单片机方案,你要知道实现这样的功能,需要选择什么样的技术方案,综合还要考虑成本。
这里面的信息量和变数其实非常大,比如你要设计一款带有线网络的产品,那么你是选择自带RMII接口的单片机,还是通过增加一个串口转网络的模组来实现?这可能涉及到你需要通信的网络速度,也要考虑综合成本,以及开发的难易程度。
有时候,这需要权衡产品本身的硬件成本,和你的开发周期,并不是一味追求硬件成本最优,如果出货量不大的产品或项目,应该更倾向于选择自己熟悉的单片机平台,这样开发周期最短,人力消耗最低,避免捡了芝麻,丢了西瓜的情况发生,因为很多项目,时间要求是很紧迫的。
做产品,实现功能很简单,但整体的可靠性、稳定性、兼容性是很难的,这个问题主要讨论单片机,所以产品其他延伸的话题就不展开了。
04.让你的单片机连接到全世界——尝试通信
现在很多产品都物联网化了,进一步的,你可以去研究基于单片机的有线、无线通信方式,最简单的通过串口连接WIFI、GPRS模组,学习MQTT等物联网通信协议实现单片机与互联网的连接。
MQTT协议基于json,即使完全不懂的人,学半天也就会了,上手比较容易,PC端有很多客户端可以直接用,适合信息量不大、实时性要求不高的数据采集、远程控制。
通信模组和方式就很多了,WIFI、Zigbee、BT、Lora、GPRS、Lora、NB、4G/5G、433等各种小无线,以后可以专门写一篇来介绍这些通信方式的不同应用场景。
之所以把通信这块单独拎出来,因为通信让万物互联,有了更多可玩性和可能性,让冰冷的单片机成为有想象力的产品。
最后的总结:做了越多的产品就越觉得,没有一个产品是简单的,容易的,希望大家耐心一点,打好基础,后面的路子就会很宽。
除了以上4点,后面遇到更复杂的项目,可以上RTOS、MBED等轻量化,适合单片机的操作系统。大家不要一味想着去搞linux,单片机一直在迭代,现在性能强的单片机还是很多的,而实际工业上有很多需求,单片机绰绰有余,性价比极高,开发周期短,稳定,这些都是很好的。
关于如何系列的学习,还推荐阅读:
硬件工程师技能树
电子专业新生指南
嵌入式学习路线+资料放送
学长,我们电子专业的毕业后究竟是做啥的?
嵌入式 Arm Linux 入门必读书籍推荐硬件学习选择开发板指南
本文转载来自森山的知乎文章,达尔闻经作者同意发布。
成为一名正式工作的程序员需要多长时间?
对于任何一个人,你要清晰的认识到:任何人给你的建议或者方向,只是他站在自己体验的角度给你的经验性的建议,而最后你的选择,除了深思熟虑还有孤注一掷。《中国统计年鉴》数据显示中国有200万程序员,占人口0.13%,结论是其实程序员并不多,相当少。另外,印度270万程序员(最多的),也只占人口0.2%的样子。
那么转行学IT选哪个语言呢?在非功利的层面来看,编程语言是一通百通的,一种学精之后其他语言都不是问题了。如果你将来想从事互联网,你最好看看Python、PHP、Javascript;如果你想从事商业应用,你最好去看Java、Web前端;如果你想从事移动开发,你可能需要去看大数据、C;如果你想做嵌入式,可能需要学习JavaEE。
任何的选择,其实都有一个固定的决策路径。学什么语言决定了就业去什么公司,去什么公司也就意味着什么样的待遇,什么样的待遇也就意味着什么样可能的未来。趋势这个事情,有时候像穿衣打扮流行方向,更多的机会属于尝鲜者,但是要考虑快速立足和商业结果,成熟的或许更靠谱。语言本身,不是一种方向。编程语言是程序员摆弄计算机的工具。
最真诚的建议是,如果你要为了就业而学习,那么从招聘网站上统计5000个招聘广告,得出需求最高的三种语言,选一门去学。IT培训机构课程设置考虑的是学生就业、企业的需求和教学成本。他们在技术更新及和企业衔接上都有非常成熟的经验,对于零基础或者想找到高薪工作的人是比较好的选择。一般培训周期在半年左右,从零基础小白到面试就业。
想学it可以吗?
电脑操作并没有你想象中那么难,别说你27岁,80岁照样可以学,只要你是真心想学的话如果你只是想学习简单的office,也就是常见的Word、Excel、PPT等操作,那么你去买几本书自学就可以了,跟着书本操作就可以了,如果你想学其他IT技术,建议你报一个简单的基础班。
1.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。
2.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。
3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,总觉得不够直观。
4.不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。
5.不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸出很多知识点;不会举一反三你就永远学不会。
6.知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。
7.学脚本并不难,ASP、PHP等等也不过如此--难的是长期坚持实践和不遗余力的博览群书;
8.看再多的书是学不全脚本的,要多实践
9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;
10.学习脚本最好的方法之一就是多练习;
11.在任何时刻都不要认为自己手中的书已经足够了;
12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
LinkedIn领英上超过600万条用户登录信息泄露怎么回事?
11月16日,中国电信股份有限公司北京研究院与北京神州绿盟信息安全科技股份有限公司(以下简称绿盟科技)等单位共同发布了调研产出的《2016 年上半年中国网站安全报告》,其中给出了一组数据:
相比 2015 年上半年, 2016 年上半年高危漏洞占比有所增加。 2015 年上半年监测发现每个网站平均漏洞数达 658 个,其中,高危漏洞数为 7 个。 2016 年上半年监测的网站数据显示,平均每个网站漏洞数达 773个,其中,高危漏洞数高达 22 个。
七八线地区的童鞋们更要注意的是,对,你们更危险,请看——
从行业分布情况来看,地方企业占比最高,运营商、政府教育及医疗行业也存在较多问题。漏洞的行政属性较为明显,区县及以下单位问题最多,合计有 252969 个高危漏洞,其次是各省市级单位,共曝出 108722 个高危漏洞,可以明确看到区县及以下级别单位的漏洞数量要明显高于部委、集团、省市级单位。
看上去读者你是不是没什么触动的意思?没关系,看一下以下焦点安全事件盘点,你可能会发出:“唉呀妈呀,你们说的就是这个事!”或者可能你就是其中一个受害者。
1.LinkedIn 用户账户信息泄露
盆友,坦白跟你说,社交平台现在是黑客的“关注点”哦!越来越多的问题被发现,例如数据泄露、诈骗或者其他攻击。
如果你曾经换过工作,那么这类社交求职平台可能会毫不留情地把你的信息泄露。如下对话可能会发生:
A:李先生你好,听说你要跳槽
B:(十分惊喜状,以为猎头来了),对对对,是的,你有什么好职位?
A:那个,就想问问您,一般跳槽可能会换租房是吧,我是租房中介。
……
这一次,受伤害的是领英( LinkedIn)。它是全球最大职业社交网站,会员遍布 200 多个国家和地区,总数超过4 亿人,致力于向全球职场人士提供沟通平台,并协助他们在职场事半功倍,发挥所长。加入后,可浏览会员资料、在招职位、行业消息、人脉圈动态和对您职业技能有帮助的相关信息。
2012 年,一名自称“和平”的俄罗斯黑客攻击了领英网站,获取了超过 600 万条用户登录信息,并泄露在网上。
比 2012 年更为严重的是 2016 年,仍是一位自称“和平”的俄罗斯黑客获取了 1.17 亿领英电子邮件 ID 以及用户的登录密码,并在暗网市场上以 5 个比特币(约 $2200 或¥15000)的价格进行出售。
暗网出售截图
2.百万邮件账户信息被盗
用过雅虎、hotmail、和Gmail 邮箱的朋友肯定还记得这次灾难——
2016 年 5 月 7 日,根据路透社报道,黑客正在黑市上交易高达 272300000 条被盗的邮件账户用户名和密码,其中, 57000000 条俄罗斯 Mail.ru 邮件账户、 40000000 条雅虎邮件账户、 33000000 条 hotmail 邮件账户以及 2400000 条 Gmail 邮件账户。
另外,还包含成千上万的德国和中国的电子邮件户,以及数以千计的涉及美国银行业、制造业和零售业公司员工的用户名和密码组合如图:
3.国内部分网站存在 Ramnit 恶意代码攻击
2016年4月,CNCERT 监测发现,一个名为“ Ramnit ”的网页恶意代码被挂载在境内近600个党政机关、企事业单位网站上,一旦用户访问网站有可能受到挂马攻击,对网站访问用户的 PC 主机构成安全威胁。
专门针对天朝党政机关、企事业单位网站,胆子不小!
Ramnit 恶意代码是一个典型的 VBScript 蠕虫病毒,可通过网页挂马的方式进行传播,当用户浏览含有 Ramnit 恶意代码的 HTML 页面时,点击加载 ActiveX 控件,用户主机就很有可能受到恶意代码的感染。如下图所示为 Ramnit 代码在页面中驻留的代码片断。
Ramnit代码在页面中驻留的代码片断
Ramnit 主要在用户% TEMP %文件夹中植入了一个名为“svchost.exe”的二进制文件并执行关联的 ActiveX 控件,受感染的用户主机会试图连接到与 Ramnit 相关的一个木马控制服务器——fget-career.com。
根据 CNCERT 监测情况分析,Chrome 和 Firefox 浏览器用户不会受到恶意代码的影响,而较高版本的 IE 浏览器也会对此类 ActiveX 控件进行告警提示而不是自动执行。所以,受影响的主要是较低版本的 IE 浏览器。建议IE浏览器用户在访问互联网站时做好 IE 安全设置(建议设置为中-高安全级别),禁止执行不明来源的ActiveX控件。
2015年11月至2016年3月间的巡检结果显示境内共计有约 1250 台境内WEB服务器被挂载过 Ramnit 恶意代码,被入侵的服务器主要类型为 Microsoft IIS(占比69.3%),其次是 Apache 系列服务器(占比19.2%)。
4.全网服务器安全恐遭“菜刀-Cknife”威胁
2016年7月20日,据国外媒体 softpedia 报道,中国 MS509Team 的两大安全研究人员 Chora 和 MelodyZX 开发了新型Webshell管理工具“Cknife”,在 GitHub 开放源代码供所有人使用,当然黑客也不例外。
2015年12月,跨平台版中国菜刀—Cknife发布,它是由Java语言编写的,包括服务器端组件,可以管理链接至 Java、PHP、ASP 和 ASP.NET 服务器。
工具运行原理
创业公司 Recorded Future 的一份调查研究指出,Chopper 是 2013 年发布的一款非常有效但却过时(代码级别)的 Webshell 管理工具,深受中国各种颜色帽、犯罪组织以及高级持续性威胁者追捧。Cknife 是 Chopper 的“升级版”。
Cknife 与 Chopper 有一些共同之处,像图标以及处理HTTP请求中的一些怪异模式。但这两种工具却也截然不同,Cknife 用 Java 编写,而 Chopper 则用 C++ 编写而成。
此外,Cknife 通过 HTTP 打开 Webshell GUI 与被感染服务器之间的连接,而 Chopper 使用 HTTPS。Recorded Future 表示,Cknife 开发人员许诺在今后几个月会支持 HTTPS.
Cknife 是网络服务器的 RAT 。Cknife 允许用户一次连接多个服务器,同时连接网络服务器与数据库并运行命令行访问的远程shell。
Recorded Future 警告称,“Cknife 是中国攻击者过去半年以来一直在讨论(可能在使用)的可置信威胁。考虑到围绕网络服务器的大范围攻击面、Chopper 和 Cknife 各自的应用程序与架构以及 Chopper的成功先例,不久的将来,Cknife 应该应认真解决的合法威胁。”
5.只针对中国用户的勒索软件CuteRansomware
上次雷锋网邀请 360 的专家给大家科普过勒索软件——在黑客的众多牟利手段当中,勒索软件可能是最普遍的一种。这种恶意软件通常会通过受感染的邮件附件、被篡改的网站或网页广告散布。勒索软件会对用户电脑上的文件进行加密,除非受害者交付特定数额的赎金,否则受影响的文件将会一直处于不可用的状态。
那么,在实际案例中,有没有真的只针对中国用户的的勒索软件呢?历史告诉大家,真的有!
2016年7月15日,有安全研究人员发现了一个名为 cuteRansomware 的新恶意勒索软件。该恶意软件代码的注释及勒索内容全部使用的中文,这就意味着,该勒索软件目前只将中国用户作为攻击目标。再仔细查看代码并比对 AVG 研究人员发现的版本之后,研究人员还发现该版本还采用谷歌文档表格作为其 C&C服务器。
cuteRansomware 会感染计算机,生成 RSA 加密密钥,然后通过 HTTPS 将密钥传送到谷歌文档表格中。
6.WinRT PDF 存在网页挂马攻击漏洞
WinRT PDF 作为 Windows 10 系统的默认 PDF 阅读器,能够像过去几年爆发的 Flash、Java、Acrobat漏洞相似允许黑客通过 Edge 浏览器发起一系列攻击。Windows Runtime(WinRT)PDF 渲染库或者简称 WinRT PDF,是内嵌至 Windows 10 系统中的重要组件,允许开发者在应用中轻松整合PDF阅读功能。该渲染库被已经在 Windows Store 上架的应用广泛使用,包括 Windows 8/8.1 的默认阅读应用和微软最新的Edge浏览器。
2016年3月3日,来自 IBM X-Force Advanced 研究团队的安全专家 Mark Vincent Yason 近期发现 WinRT PDF 存在和过去几年曾用于 Flash 和 Java 上相似的网页挂马攻击(drive-by attacks)漏洞。在WinRT PDF 作为 Edge 浏览器的默认 PDF 阅读器之后,任何嵌入至网页的 PDF 文档都能够在这个库中打开。聪明的攻击者能够通过 PDF 文件来利用这个 WinRT PDF 漏洞,使用包含 CSS 的 iframe 定位来秘密打开包含恶意程序的 PDF 文件并执行恶意程序。
攻略:为何你中招,如何不再中招?
如果你曾经不小心遇到上述问题,可能不是你运气差。绿盟科技告诉雷锋网(公众号:雷锋网),通过对 200 余个单位的网站安全管理情况进行了调研分析,他们发现了这些问题:
•在基础管理方面,虽然目前有 95% 的单位有专人负责安全运维工作,但是超过 5 人的安全团队不足 20%,同时有将近一半的单位缺失安全制度及应急响应流程。意思是,大事不好了,然而网站运维也蒙圈了。
•在资产管理方面,有将近 50% 的单位没有进行网站资产的定期梳理,导致很多新建站点数据库等端口在公网暴露,往往这些单位也不清楚下辖单位的网站资产全集。同时,有 70% 以上网站都是外包建站, 40% 以上是外包运营,如果对于外包过程掌控不足,很容易留下大量安全隐患。意思是,我把内衣、底裤都挂到摄像头下了,还特别喜欢找别人帮我晾衣服,被拿走了都不知道。
•在建站开发方面,使用第三方软件框架种类繁多,有各类开源服务器(如 apache、Lighttpd 等 )、开源数据库 ( 如 mysql、 PostgreSQL 等 )、开源论坛框架(如 phpwind、phpcms 等)等,这些开源产品如果不能很好地管理,会导致大量配置相关的风险隐患。
•在漏洞管理方面,有将近 40% 的单位认为高危漏洞处于个位数,但事实比这糟糕得多,有 61% 的单位低估了漏洞的数量以及危害,另外 96% 的单位在彻底修复漏洞前没有做任何漏洞防御措施。意思是,狼来了,但是以为羊来了。
•在威胁管理方面,仅有 6% 的单位能对扫描行为和模拟的攻击行为进行拦截。在事件管理方面,仅有 20% 的单位明确进行了网站各类事故的监测,其余各单位有将近一半反馈没有做网站事故灾害监测,而另一半则不确认本单位是否做了安全事故灾害监测。
为此,除了建立健全安全管理组织形式,明确清晰安全管理工作职责,构建落实安全管理体系框架,绿盟科技着重建议建立完善安全管理运营流程。
以监测、发现、与处理一项网站漏洞为例,以下为高能实操攻略:
1.如何发现漏洞这个小妖精?
办法一,日常漏洞监测与扫描。这其中包含Web 漏洞和系统漏洞的监测与发现,由于网站安全漏洞会不断被发现和公开,所以使用扫描设备对网站漏洞进行监测是个持续的过程,并且需要纳入到日常管理工作范畴。办法二,紧急漏洞通告的舆情监测。紧急漏洞通告一般是指业内将漏洞及漏洞验证代码同时公开的漏洞,这些漏洞往往有高风险、波及范围广、对应的攻击代码传播快的特点。通常在紧急漏洞公开之前或公开的同一天会出现利用该漏洞的攻击工具。所以,对一些第三方的漏洞通报平台、各安全厂商发布紧急漏洞信息的平台、各类黑客论坛进行情报监测。
2.发现漏洞以后怎么办?
发现漏洞以后,需要对漏洞进行验证和分析,验证过程通常是根据漏洞详情验证漏洞的真伪,扫描设备、各类漏洞通告有较高的频率出现误报,所以在发现漏洞后首先要对漏洞进行验证,确认网站系统是否存在漏洞或受到漏洞的影响。
在确认漏洞的真伪后,通常对中高危漏洞需要优先分析,分析的目的在于确认漏洞被利用后会对资产或企业造成何种影响,相同的漏洞给不同的网站带来的风险是完全不同的,应该由网站维护人员和安全管理员共同判断。在对网站进行验证分析后,需要网站管理人员作出决策,凡有可能对网站造成机密性、完整性、可用性破坏的漏洞都应该考虑及时采取措施预防和修复。有部分不会对网站造成任何影响的漏洞可采取接受风险的策略。
3.漏洞未能修复之前怎么办?
在漏洞未能修复之前采取的临时措施,通常是在漏洞修复之前采用技术手段将来自外部的风险(漏洞利用)屏蔽。这个过程可以通过修改 Web 程序来实现,也可以依赖于网站的防护设备,通过追加临时安全防护策略可以拦截外部攻击者利用漏洞的行为。
在漏洞预防策略实施后,需要再次通过人工方式或设备验证漏洞预防策略是否已生效。当然,漏洞预防措施的实施不代表漏洞不需要修复,因为来自内部的威胁照样存在,彻底解决的办法还是修复漏洞。如果发现漏洞后可以快速修复漏洞,甚至可以不采取漏洞预防的措施。
4.如何修复?
针对网站已有的漏洞在技术上进行修复,根据不同种类的漏洞采取的手段各不相同,同一类型的漏洞也可以采用不同的手段修复和规避,降低风险。按照漏洞的几种常见类型,漏洞的修复方法可以按照如表所示:
2019年真的是IT行业的寒冬吗?
题主不知道目前从事什么工作,为何考虑要转行呢,现在从事IT行业要慎重考虑!
众所周知,由于IT行业的薪水较高与其他行业,引来了一大批从业者,然后各个培训机构也看到了红利开始疯狂的招生,平均每四个月就有一批人员流向市场,Java,h5,android,ios比较明显,逐渐的IT市场出现了饱和状态,好多人培训之后没有找到工作,最后不得已离开了,2018年下半年开始现在好多公司倒闭,甚至一线互联网公司都出现了裁员潮,几乎市场是都弥漫着裁员的味道。
但是,招聘网站上依然有很多岗位在招聘,这不是矛盾吗,饱和的其实是一些初级的工程师,市场上对于高级的工程师还是急缺的,能力足够,工作就在等你,互联网经过一定时期的快速的发展,慢慢稳定发展了,所以现在要做的就是静下心学好技术,提高自己的竞争力,我也是在这个所谓的寒冬找的工作,而且薪资还比之前高了不少,所以还是有机会的。
语言本身是次要的,要选一门入门语言,然后就会触类旁通,根据2019年5月编程语言排行版前五的一次是Java ,c,c++,python,.net,Java,c,c++是常青树,是不错的选择,pyhton这几年发展迅速,甚至是高校的二级考试都选择了python,所以可以考虑python,顺势而为,更容易成功。
最后,很重要的一点,学历要求一定是本科,最好是科班,现在招聘网站上各个公司要求是
本科以上,好多甚至是985,211,谨记。所以,希望题主慎重考虑!