身在互联网类公司,对于互联网公司的技术要求比较清楚。为造福想进互联网行业的小弟小妹们,特整理出来。
软件测试
分知识密集型和劳动密集型。
像一些app的测试,黑盒测试,写白盒测例,跟踪缺陷一般属于劳动密集型
知识背景主要是Android/iOS手机系统使用经验,linux系统
测试开发
要动手做点测试工具,稍微进阶一点。
要动手搭建完善持续集成持续交付流程(Jenkins,Jira,Git),会Python
熟悉各种自动化测试工具
Web前端
JavaScript,Node,Linux系统,数据结构,算法,HTTP
运维开发
ansible规范部署
centos系统管理
存储数据库管理
YARN/HDFS/Hive/Pig/Oozie/Spark/Druid
对Hadoop有了解
大数据统计
熟悉若干技术:hadoop、hive、hbase、MapReduce、flume-ng、kafka、spark
掌握Java多线程和网络编程
运用机器学习、数据挖掘技术处理海量数据,分析与挖掘潜在规律和关联,认识、建模并解决实际问题,包括搜索相关性、点击率、改善用户体验等
有hadoop等分布式系统编程经验,这里处理的都是大数据
实时/离线(Storm、Flink、Hadoop、Spark)大数据计算处理经验;
业务开发
熟练使用C/C++ 语言进行开发,有高效、高可靠代码开发经验
熟悉常见的数据结构和算法
有实时服务端系统开发经验。
熟练掌握web后台相关技术,如: jetty、mysql、spring、mybatis等。
熟悉redis、rpc、消息队列、zookeeper、storm等常用开源组件或技术的应用。
有两年以上的Java/C++经验,熟悉多线程编程,内存管理,设计模式,具有良好的编
程习惯;
熟练掌握主流应用服务器架构体系、数据库以及各种中间件技术,如Tomcat、Radis、
memcahced、Hbase、Mysql、ActiveMQ等;
具有大型系统的技术架构/应用架构/数据架构的的研发经验,互联网高并发大系统设计
与研发经验,具备良好的系统分析、构建能力;
具备搜索引擎或推荐系统开发经验,熟悉搜索引擎体系架构;
数据爬虫
文本挖掘/文本分析/语义理解
NLP/机器学习理论和技术基础
熟练掌握c/c++、python/perl/shell等语言编程、及数据结构基础算法
有自然语言处理系统或数据挖掘或搜索引擎开发经验
分词、文本分类、非结构化文本提取、语义分析、语义表示、语义匹配、组块分析、主题模型、篇章分析的某个部分有深入研究。
有亿级别以上文本挖掘经验。
推荐算法
先进、适用的解决方案
用户建模和挖掘,提升个性化推荐的效果
扎实的推荐算法/机器学习/数据挖掘/NLP理论和技术基础
熟悉C/C++、JAVA、python等开发语言,编程能力扎实
熟练掌握Linux平台开发和常用数据库(MySql、postgreSQL)
有内容推荐系统或搜索引擎或广告系统开发经验
熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息等机制
良好的数学功底和建模能力,理解数据挖掘,机器学习领域的常见算法,包括回归、决策树、SVM、朴素贝叶斯、k-means等,以及常用算法的适用场景、优点、缺点以及弥补办法
熟悉常用的数据挖掘和推荐算法,如关联规则挖掘、协同过滤等,有推荐系统开发经验者优先。
UserCF是某个群体内的物品热门程度
ItemCF是反应本人的兴趣爱好,更加个性化
熟练运用分类、回归、排序等模型解决相关问题,有分布式系统理论基础和实践经验,熟悉Map-Reduce/BSP/实时计算等分布式计算技术
LDA通常有两种解释,分别是隐含狄利克雷分布(Latent Dirichlet Allocation)和线性判别分析(Linear Discriminant Analysis)。关于线性鉴别分析的研究应追溯到Fisher在1936年发表的经典论文(Fisher R A. The use of multiple measurements in taxonomic problems),其基本思想是选择使得Fisher准则函数达到极值的向量作为最佳投影方向,从而使得样本在该方向上投影后,达到最大的类间离散度和最小的类内离散度。在Fisher思想的基础上,Wilks和Duda分别提出了鉴别矢量集的概念,即寻找一组鉴别矢量构成子空间,以原始样本在该子空间内的投影矢量作为鉴别特征用于识别。实际应用中存在着大量的典型的小样本问题,比如在人脸图像识别问题中,类内散布矩阵经常是奇异的。这是因为待识别的图像矢量的维数一般较高,而在实际问题中难以找到或根本不可能找到足够多的训练样本来保证类内散布矩阵的可逆性。因此,在小样本情况下,如何抽取Fisher最优鉴别特征成为一个公认的难题。
Google2013年开源了一款深度学习工具word2vec。word2vec技术基于神经网络模型,可以简单地将神经网络模型分为三层,分别为输入层、隐含层和输出层。
了解开源搜索或自然语言处理项目,如Lucene,Solr,openNLP,Gensim,Mahout
学scala编程对于推荐算法不是最优先的。
扎实掌握常用机器学习、概率统计和最优化算法、自然语言处理、模式识别技术
具有文本分类、内容识别、用户画像等相关算法经验
具有大规模文本、视频、商品推荐系统实践经验
有深度学习(MXNET、TensorFlow等)经验
有搜索、竞价广告等工作经验
商业广告
有模型方向、广告相关性方向、机制方向、广告主策略方向
提高在线广告的相关度、用户体验、投放效果及变现能力
搜索
移动搜索、垂直搜索、推荐系统的算法开发,在自然语言处理、网页分析、排序模型、离线特征计算、搜索日志挖掘、垂直搜索、推荐系统
搜索自然语言处理的研发,包括海量数据挖掘、实体和实体关系抽取、n-gram分析、新词发现、热点发现、分词、句法分析、同义词、纠错等、知识库建设
网页解析、网页分类、信息抽取,与排序相关的网页分析的离线特征的计算与改进
大数据人工智能
基于CUDA的分布式深度学习系统
统计机器学习(如深度神经网络、Boosting、图模型、概率统计、最优化方法等)
熟悉大规模并行计算的基本原理并具有实现并行计算算法的基本能力
具备扎实的统计学、自然语言处理、数据挖掘、机器学习、信息检索等相关领域的理论基础,并且在某个方向上有深入的研究和积累
关于thrift技术
Thrift是跨语言的RPC框架,现在是一个Apache的顶级项目。Thrift通过一个中间语言–IDL接口定义语言,来定义RPC的接口和数据类型。使用Thrift的代码生成工具(thrift-0.9.1.exe编译器)读取IDL文件,生成不同语言的服务端与客户端代码,并由生成的代码负责RPC协议层和传输层的实现。目前支持语言C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk
类似的技术还有google开源的protobuf。
不错的技术描述
1. 长期使用JAVA及开源框架进行项目开发,并有一定得项目管理经验
2. 擅长使用开源框架,在某个领域内对开源框架,解读过部分或者全部源码,掌握实现原理。
3. 研究 http 协议、搜索引擎、缓存、jvm 调优、序列化、nio、RPC 调用框架等,并且有相关实践经验
4. 精通 MySQL 应用开发,熟悉数据库原理和常用性能优化技术,以及 NoSQL,Queue 的原理、使用场景以及限制
5. 参与过大型复杂分布式互联网 WEB 系统的设计开发者优先,拥有和工作年限相称的广度和(或)深度。
6. 经常混迹各种开源社区、关注各种技术博客,有个人blog或者github
7. 擅长算法和建模,参加过ACM并获取一定成绩的。
形容java技术纯熟:
Java基础扎实,理解io、泛型、多线程、集合等Java基础使用和部分实现原理,对JVM原理有一定的了解;熟悉面向对象设计开发;
对于用过的开源框架,能了解到它的原理和机制;