软件开发需要的知识和技能:
1、理解计算模型和框架:顺序计算、并发计算 (并行计算、分布式计算);
2、高效的数据处理:熟悉常用数据结构和算法设计,能够针对计算目标设计高效的数据结构和算法并实现之, 满足性能需求;
3、大容量的数据管理与检索:至少精通一种主流数据库, 从数据处理中分离出的一种专门针对大量应用数据实时检索要求的技术;
4、系统底层机制:进程、信号、内存管理、API 等,理解相关概念及实现,熟悉使用LinuxMacOSWindows至少一种操作系统;
5、进程的网络通信:TCPIP socket , RPC ,Http , 序列化与反序列化, 熟悉网络程序设计的底层原理;
6、编程语言:面向过程、面向对象、脚本语言、函数型、浏览器语言等,最好每种类型语言掌握一种等。