杂思

移动互联网,大数据,云计算,人工智能

5个小时的比赛,挑战的是人类脑力和体力的极限。要应对的是由数据结构图论计算几何与数论算法机器学习模式识别等科目混合而成的考题,解答它们需要严密的思维方式和长期训练的思维能力。它还考察你的团队协作能力、以及在强手如云的氛围里能否应对自如的心理素质。

 

高内聚

 

低耦合

 

命令式编程: 顺序,分支,循环

 

函数式编程

 

常见的数据结构:

1.字符串

2.可以动态增长的数组  在java中就是arraylist  python就是列表  ruby就是数组

3.用来存储key-value这样值对的集合  在java中就是map  python就是字典  ruby就是hash

 

面向对象中的 封装,继承,多态

继承:  在java中就是extends  python就是括号  ruby就是"<"

封装:private protected public

多态:很多静态语言的专利, 动态语言用的是 Duck Typing

 

突破内存:

程序顶多只能在内存中折腾,最多能输出到毫无趣味的控制台上,还无法访问硬盘和网络

不同的语言对硬盘和网络的抽象大相径庭

例如java试图把所有的东西都称为IO 抽象出一套优雅但是不太好用的API

 

对于XML和JSON的操作是必须要掌握的

 


什么是进程,什么是线程,为什么要有进程和线程
并发编程会涉及到线程之间的同步和通信,如何加锁,防止死锁,线程池 虽然在实际工作中都封装好了,业务编程中用的少,但是要理解概念

 


语言特性:
java----反射,泛型,注解
ruby----block,元编程
javascript---原型,闭包,函数

 

 

对于网络编程,至少要理解socket(tcp/ip)和http 一个是传输层,一个是应用层

 

redis:

为什么要有缓存?

缓存和应用程序是在一个进程内还是不同的进程?

缓存在本机还是网络上?

缓存里能放什么东西?

数据是什么格式?

缓存和数据库的一致性怎么保证?

如何实现高性能?

一个redis服务器满了怎么办?

一个redis服务器挂了怎么办?

 

posted @ 2018-05-06 17:17  muskwang  阅读(134)  评论(0编辑  收藏  举报