tdengine,TDengine

30岁的程序员该何去何从?
【tdengine,TDengine】

tdengine,TDengine


我自己做了很多年的程序员,并且做了十多年的招聘的技术面试,所以作为过来人,告诫30岁的程序员要居安思危 。一般到三十岁,经验有了,编程也是熟手了,我们原来开玩笑,可以闭着眼睛编程了,工资也上去了,但实际上这个时候很危险了 。因为不管是我们自己招聘,还是我们去应聘,对三十岁以上的程序员都已经很慎重,绝对不会要菜鸟或者很浅的了 。
程序员有两种,一种是通用型,一种是和某个行业深入结合 。前者是要把编程玩到极致,比如当年还有borland c刚时髦的时候,我一个朋友可以自己编写出自己从头编写的windows powerbar;呵呵,估计现在的小朋友们都不知道这是啥了;可以把操作系统挖透,可以自己编写小型os,到这个水平的话,三十岁以后工作还是很好找的 。
如果是和行业结合,比如通信等,那就要深入了解行业知识,编程只是一种技能,两者深入结合,能够具备系统设计能力,才能到三十岁,心里不慌 。三十岁以后的确体力、能力都有所下滑,所以程序员到三十岁起前,建议两个准备,一个是要有储蓄,可以满足自己两年不工作的要求,这样子找工作时候或者遇到大型裁员时候心里才不慌 。很多时候遇到大型裁员,如果只是公司运行不好,这种会遇到很多公司来捞熟手,比较好找工作;如果是整个行业下滑,这种的话,会有大量类似属性的人员释放到人力市场上,会导致找一个合心工作要很长时间 。
物联网时代的数据库如何选型?
tdengine,TDengine


物联网时代,大量的数据从不同的设备传感器产生,单机数据库系统肯定无法存储这么大量的数据,在选择数据库方面,肯定要选择具有分布式能力存储的数据库 。在物联网时代,数据之间还有一个非常重要的特性,那就是数据之间的关联性 。不同的数据从相互连接的互联网设备传感器中产生,由于不同的传感器相互连接,协同工作和采集数据,如何将大量具有相互关联的数据保存在数据库,这里我推荐使用图数据库来进行存储 。
图数据库相对于其他数据库来说,最大的优势就是查询数据之间的关联性会更加快速,消耗的时间会更短 。打个比方,在社交网络中,我们想要查询在用户A的粉丝中,粉丝关注了B的用户 。如果使用传统关系型数据库来存储用户的关注关系,在上面的数据统计中,要使用两层Join才能算出结果,而关系型数据库Join操作会很慢 。使用图型数据库存储数据的话,图中的点为用户,边为用户的关注关系,在查询A的粉丝,同时粉丝也关注B的用户,只需要遍历两层关注关系就能很快查询到结果 。
图数据库也属于NoSql数据库的一种,常用的图形数据库有,JanusGraph、Neo4j、Cayley、dgraph 。不同的图数据库,底层实现也不尽相同 。JanusGraph是一种分布式图数据库,由Java语言开发,可以使用Hadoop生态存储系统作为数据源,构建出数据大图 。是TiTan图数据库的开源版本,支持事务的ACID 。
Neo4j是一种单机的图数据库,其优势就是能够快速安装并且使用,便于新同学上手 。你的数据量一般不大的话,我推荐使用Neo4j,直接使用Neo4j相关的API就可以将数据模型图构建而出,然后使用 Neo4j Cypher查询语言,就可以分析数据,Cypher是一种类SQL的语言 。Cayley和Dgraph都是使用Go语言实现的图数据库,Go语言的最大特性就是其编译速度和开发便捷性,Cayley和Dgraph都支持分布式存储,不过都不支持SQL语言查询数据,Dgraph不支持事务,而Cayley支持事务,不过在开源社区,Dgraph比Cayley更加活跃,这里优先建议使用Dgraph作为物联网的存储数据库 。

推荐阅读