每个月IT摘录201811

技术

1.打牢基础,从会使用-了解原理-了解思想一步一步来,最怕基础很弱但却以什么都用过为荣的人,这样的人我招进来也只是初级而已,工做年限再多也没有用。少林里面,有功和拳之分,如蛇拳猴拳是拳,马步功石锁功是功,你以为你练会了蛇拳就能打人?一样,编码之路,分清什么是功什么是拳,一开始80%事件花在练功上,而不是练拳。练武不练功,到老一场空。前端

2.《深刻理解计算机系统》比较适合一直从事Java Web开发和APP后端开发工做的人群。《tcp/ip详解 卷1、2、三》比较适合作网络编程的人群,好比你使用netty去开发的话,那么就要对TCP/IP有更深刻的了解。而《数据结构与算法》这本书,则比较适合作计算研究工做的人,好比刚才提到的分布式计算。
另外,这里所说的适合,并非其它两本对你就没有用。好比你作Java Web和APP后端开发,《tcp/ip详解 卷1、2、三》这本书对你的做用也是很大的。这里只是分出个主次关系而已,你要是时间足够的话,能把三本都精读那固然最好不过了。但若是时间有限的话,那么就先挑对你帮助最大的书去读。
理论上来说,这一年你能把这三本其中一本精读下来,就已经很是厉害了。有了基础,有了前面的工做经验,你就能够去开拓属于你的领域了。java

4.学框架必须理解原理。面试时,若是会用dubbo他们就问你计算机网络,网络编程,rpc,netty,会用zookeeper他们就问你分布式原理,怎么保证一致性balalala。mysql

5.reactor设计模式,是一种基于事件驱动的设计模式。nio中采用了reactor设计模式。
在事件驱动的应用中,将一个或多个客户的服务请求分离(demultiplex)和调度(dispatch)给应用程序。在事件驱动的应用中,同步地、有序地处理同时接收的多个服务请求。
6.PHP 、 Python,都适合快速开发不太复杂的 Web系统。可是大型复杂的商业系统开发仍是用 Java合适。react

 7.一个RPC框架大体须要动态代理、序列化、网络请求、网络请求接受(netty实现)、动态加载、反射这些知识点。
如今开源及各公司本身造的RPC框架层出不穷,惟有掌握原理是一劳永逸的。
8.掌握原理最好的方法除了阅读源码,本身动手写是最快的。android

9.使用Hystrix进行熔断和降级。ios

好比,积分服务挂了能够来个降级:每次调用积分服务,你就在数据库里记录一条消息,说给某某用户增长了多少积分,由于积分服务挂了,致使没增长成功!这样等积分服务恢复了,你能够根据这些记录手工加一下积分。这个过程,就是所谓的降级。nginx

 10.通常微服务架构中都必然会设计一个网关在里面,像android、ios、pc前端、微信小程序、H5等等,不用去关心后端有几百个服务,就知道有一个网关,全部请求都往网关走,网关会根据请求中的一些特征,将请求转发给后端的各个服务。并且有一个网关以后,还有不少好处,好比能够作统一的降级、限流、认证受权、安全,等等
 11.微服务架构中,发起请求是经过Hystrix的线程池来走的,不一样的服务走不一样的线程池,实现了不一样服务调用的隔离,避免了服务雪崩的问题。
 12.redis 哨兵的做用是监控主从,主从切换的。能够是一主多从,不过数据都是冗余存储的,每一个主从节点存储的数据都是同样的。
而集群是将数据分片存储,每一个节点存储一部分数据,从而达到分布式集群的目的。
 13.经过2018年的面试题来看,能够看出目前大型互联网公司面试考点为:
  • 性能调优、算法数据机构
  • 高并发下数据安全、接口冪等性、原子性等
  • 分布式下协同、已经锁的处理
  • 数据库的分库分表、项目之间的垂直拆分
出现频率高的技术点有:HashMap、JVM、Dubbo、Mybatis、Zookeeper、http tcp/ip
14.数据结构和计算机基础>Java基础>其余开源框架。
少看点乱七八糟的开源框架吧。工做上要用时再学来得及的。老老实实天天学点经典源码我以为进步速度就贼快了。
15.互联网公司面试常常会考察的点:HashMap、JVM、Dubbo、Mybatis、Zookeeper、http tcp/ip
16.若是是长远的后端开发,那就要全面深刻的发展,首先是语言,没有哪一种语言,是和后端或者 web 开发划等号的,Java 要想深刻,不要过多的搞设计模式。语言知识你要掌握的知识的一部分,如下多个方面你都要掌握,记住,当你有能力掌握这么多知识的时候,你的学习能力有具有了,具有了学习能力,什么具体的 java 技术、后端技术,都不是什么问题,哪怕下一次技术更新,你还能依靠你的学习能力,继续保持技术先进性。
  • 1. JVM 深刻了解,Tomcat 深刻了解,多看 Java 库的源码
  • 2. 计算机网络深刻理解,物理层、数据链路层,能够不用深究,可是网际层、会话层、应用层的概念要熟悉,IP 协议、HTTP 协议要熟悉,基于 IP 协议的子网划分,要熟知
  • 3. 操做系统,这是不管哪方便开发都要熟悉的,不管是前端、移动端、后端、数据库、运维,只要是搞计算机的,都要有扎实的计算机操做系统的功底,操做系统的体系结构、运行机制,Linux 内核、帐户管理、安全,多用户多进程模式、内存管理、进程管理、进程间通信等等,《深刻理解计算机原理》,《 Linux 入门到精通》等等,要多学多练习,可使用 Java 去调用操做系统的底层 API,试试,若是想不明白的,可使用 C 多去研究一下
  • 4. 数据库方面,SQL 与 NoSQL,SQL 要注意 SQL 语言的范式模型,从逻辑上理解究竟什么是 SQL,SQL 语句为何能标识数据查询,SQL 能作到什么,不能作到什么,而后就是 SQL 数据的实现,mysql、oracle、postgresql,深刻理解数据引擎,游标这些东西
  • 5. 有了上述基础,再去学习一些理论知识,比方说马丁大叔提出的 IOC 理论、Roy Thomas Fielding 提出的 Rest 理论,SOA 的提出和发展、微服务的提出和发展,充实对现代分布式计算架构的理解
  • 6. 尝试本身实现一套 IOC、SOA、微服务框架,锻炼本身经过理论去进行实践的能力,固然这点不是要求你造轮子,只是为了可以让你到达,可以经过理论,造轮子的程度
17.Nginx是Web服务器(Http Server)。能够进行负载均衡、反向代理。
Tomcat是应用服务器(Application Server),是一个能够运行Servlet/Jsp应用的容器。
18.SpringMVC 它的思想是所有请求统一用一个 Servlet 去作请求转发与控制,这个 Servlet 叫 DispatcherServlet。
19. 你们每周完成一个 ARTS:每周至少作一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。
(也就是 Algorithm、Review、Tip、Share 简称 ARTS)须要坚持至少一年。

20.RPC(Remote Procedure Call)--远程过程调用。程序员

一个RPC框架大体须要动态代理、序列化、网络请求、网络请求接受(netty实现)、动态加载、反射这些知识点。web

21.整个码农界有10%作底层、中间件就不错了。剩余90%都是业务开发,目标是商业的变现,取决于你对业务的深入理解,对市场、产品、运营等知识的了解。也并无那么多人作高尖端技术产品,即便这些人,可能也就精通本身的领域知识,搞人工智能的不须要懂JVM,搞JVM可能也不懂数据库,搞数据库的可能也没去看jdk源码。面试

22.zookeeper分布式锁。
客户端想要加锁,都是先在zookeeper中一个锁节点下建立一个接一个的临时顺序节点。
若是本身不是第一个节点,就对本身上一个节点加监听器。
只要上一个节点释放锁,本身就排到前面了并取得锁,至关因而一个排队机制。
并且用临时顺序节点的另一个用意就是,若是某个客户端建立临时顺序节点以后,不当心本身宕机了也不要紧,zk感知到那个客户端宕机,会自动删除对应的临时顺序节点,至关于自动释放锁,或者是自动取消本身的排队。
23.所谓的"没有银弹"是指没有任何一项技术或方法可以使软件工程的生产力在十年内提升十倍。(1987年提出)

在软件开发过程里是没有万能的终杀性武器的,只有各类方法综合运用,才是解决之道。

 24:TDD:Test Driven Develop  测试驱动开发

      DDD:Domain Driven Develop  领域驱动开发

25.分布式session共享,有多种方案解决。能够选择使用Redis存储session。用nginx负载均衡,而后tomcat集群从redis中获取session。

 

工做

1.保证充足的睡眠并保持健康。若是你疲倦了或者生病了,就更难保持专一,更易分心走神。

2.在工做和生活中,若是记性很差,就慢慢想;
若是问题很差解决,就慢慢解决;
若是一次不成,就作两次;
既然跑不快,那就不如慢点跑,好好看看风景。

3.跳出圈子,多接触别的圈子,最好是比你层次高的圈子,那最好不过了,你的思惟与认知会在不知不觉中发生变化。
若是你是程序员,没事多跟公司的产品经理、设计师们聊聊,多接触下外面更多、更牛的圈子,那你就很容易跳出这种思惟的定式,你所看到的,你所想到的,可能都会大不同。

4.作得越多,出的故障越多。除非你啥也不作,可是出的故障越多,你的成长才会越大。因此我仍是跟你们说,趁着年轻,多犯错误。由于你如今犯的错误都还好,只有人犯过错误了,你才会有那种深入的理解,对这个东西,你会有更深的理解,不犯错误的人你是不会成长的。

5.IT行业的人最好按期更新简历,而后面试一圈,一则看是否有更好的机会,二则了解市场行情与技术动向,也做为本身下一年努力的方向。

6.写代码是一项实践性的工做,不进入生产环境,不少东西本身是搞不懂也不会接触到的。但愿各位自学编程的人,都能早日找到工做,快速学习和成长,不断进化和突破,最终超越本身。

学习

1.学习要一步一步来,不要急。

2.与其凭空焦虑,咱们仍是脚踏实地地学习吧!

 3.贪多嚼不烂,欲速则不达。
4. 看Demo中的代码,先看懂了,而后再盲敲,按照本身的理解琢磨着敲。在本身敲不动的时候,思路卡顿的时候,再去翻书或者看视频,看他们是怎么写的?这样你就会记忆深入,你同时也得思考,我为何会在这里卡住?是否是我对这个知识点没有理解透?而后再熟悉一下,继续本身敲。直到本身完整的敲出来。周而复始,一点一点的锻炼,你的能力就敲出来了。
5.我始终把这些学习网站提供的或免费或付费的视频看成快速了解的渠道,经过视频的方式确实比较节省时间,由于讲的是别人总结完的,挑出来的那一部分,讲的过程当中有时也会想对的解释一些额外的背景知识,但也相对的,这样的知识始终以为不够体系,通常我喜欢经过视频快速了解一个知识点后,有必要深刻在结合其余书籍文档等材料深刻学习。因此我以为知识付费是可取的,但不能一昧,花的钱对的起你节省的时间就行
6.好比我推荐你们读英文刊物,他们读着会有点痛苦,可是慢慢读,咬着牙读上一段时间,他们会以为那些英文文章都仍是让他们比较开脑洞。由于英文文章里面会有英文的关健词,你读英文关健词的的时候,你就会,这个关健词什么?一方面学英文,另一方面你会用这个关健词去搜索,你会获得更多的知识源,你就不须要听那个二手货,或者三手,四手的,相似这样。
7.用你所掌握的技术作一个我的的小项目,设计一些简单的功能而且实现他们。毫无疑问,你会遇到不少的绊脚石,当遇到它们的时候,在StackOverflow或者Google上面搜索之,解决之。你已经踏上一条成为某一领域专家的旅程,遇到的困难挫折越多,你会变得越睿智。有句老话说得好,“专家是犯错最多的人”,这意味着他们尝试了不少疯狂的事情来探索这门技术的极限,最后,对于这门技术是如何运做的就能够知根知底。

互联网

 1.双十一不买东西的缘由:

  • 讨厌被营销,产生焦虑感。
  • 不肯囤货,拒绝鸡肋。
  • 商家噱头太多,诚意不足。
  • 商品不必定是最低价

 

社会

1.中美两国本科生近十年的毕业率数据发现,美国大学本科毕业率约为50%,不一样类型、不一样竞争力的大学,乃至相同类型、相同竞争力的大学本科毕业率都存在明显差别;中国大学本科毕业率则超过90%,不一样类型、不一样竞争力的大学本科毕业率无明显差别。他认为,这种反差,反映了高等教育在人才培养上是“严进宽出”仍是“宽进严出”的选择问题。

高校的教师评价机制,更多看发表了多少论文、作出了多少学术成果,而教学尤为是本科教学质量,权重极小,这样的“指挥棒”下,不少老师对教学没有积极性,敷衍了事。老师讲课质量不高,除了部分自学能力强的学生,大多数学生天然也没法学好。而高校出于追求毕业率等目标,对毕业的要求通常比较宽。
2.迂腐狭隘的人,不须要知道电子竞技是什么,他们只须要一个背锅侠,一个能够掩盖家庭教育失败、学校教育失败、社会教育失败的东西。如今他叫游戏,十五年前它是早恋,二十年前它是偶像,三十年前它是香港电影,三十五年前它是武侠小说。

生活

 1.当你的身体不舒服,老是得去医院的时候,什么月薪2万,3万都是浮云。。好好爱惜本身的身体吧。2.不只是“生育自由”,咱们还须要“恋爱自由”、“婚姻自由”、“产检自由”、“坐月子自由”、“喂奶自由”、“教育自由”、“二胎自由”、“节育自由”!

相关文章
相关标签/搜索