最重要的是基础,一些框架等可以很快上手。
基础是语言和数据结构算法。
需要看的书:
1 posix编程
参考 Posix线程编程指南- 大约有5篇
15号之前看完
2 accelerateC++
3 stl
孟岩、侯捷译:c++标准程序库
学习stl的资料总结 :http://www.cnblogs.com/me115/archive/2010/10/15/1852438.html
4 网络编程
理论参考:
谈一谈网络编程学习经验(06-08更新)
实践:(python 网络编程)
5Djangobook2中文版.
6推荐系统实践
6数据挖掘&人工智能&机器学习
先看《 数据挖掘导论》 比较好
如果不是纯搞数据仓库+挖掘,个人更推荐刘兵的《WEB Data Mining》
+ Bishop大神的《Pattern Recognition And Machine Learning》。
个人建议如下: 第一阶段:掌握数据挖掘的基本概念和方法。先对数据挖掘有一个概念的认识,并掌握基本的算法,如分类算法、聚类算法、协同过滤算法等。 参考书:《数据挖掘概念和技术》(第三版)范明,孟小峰 译著。 第二阶段:掌握大数据时代下的数据挖掘和分布式处理算法。现在已经进入大数据时代,传统的数据挖掘算法已经不适用于 参考书:《大数据:互联网大规模数据挖掘和分布式处理》 王斌 译著。 第三阶段:使用Hadoop进行大数据挖掘。Hadoop里面有一个Mahout组件,几乎包括了所有的数据挖掘算法,包括分类、聚类、关联规则等。 参考书:Hadoop实战(第二版).陆嘉恒 著。 另外,数据挖掘是数据库技术、人工智能技术、机器学习技术、统计学习理论、数据可视化等一系列技术的综合,所以,要想学好数据挖掘,这些技术也得懂的呀。 推荐入门时先看浙江大学王灿老师的数据挖掘课程,网上搜下
资料:1 机器学习与数据挖掘的关系
2
微软的资料
7设计模式
8软件测试
9 失控:全人类的最终命运和结局
10 哥德尔·艾舍尔·巴赫——集异璧之大成
学习网络编程的十个步骤
经过多年的网络编程实践之后,个人觉得初学网络编程者可以从以下几个步骤开展:1)下载一个可以互动的学习工具,通过这个与这个工具互动,我们可以及时的学到每个api的结果如果。我个人强烈推荐一个互动好工具,即python,下载地址http://www.python.org 对于有c/c++或java基础的朋友通过一两个礼拜的时间就可以上手了,另外个人建议初学者可以学习dive into python。
2)掌握网络编程中会用到的几个基本概念和内涵,比如IP地址,port号,socket等
3)记住和消化网络编程C/S模型,把server和client端编程的常用模式理解和消化
4)花几天时间学习socket api集,api集可以分为下面几大类:
创建 socket bind listen accept
收发 read/recv/recvfrom write/send/sendto
关闭 close shutdown
参数 getsockopt/setsockopt
地址 gethostbyaddr getaddrbyhost,...
在学习这些api时候,可以先关注在函数功能,参数意义上
5)结合python互动平台,实践socket api的用法,比如socket函数怎么使用,bind怎么使用等等。在互动过程中,我们可以变换参数,看看调用结果如何。比如,
创建一个tcp socket的语法如下:
socket(AF_INET,SOCK_STREAM)
创建一个udp socket的语法如下:
socket(AF_INET,SOCK_DGRAM)
6)学习socket server端编程实现简单规约比如echo,time等,然后通过cmd中的telnet来测试。
7)学习I/O模型,比如阻塞、非阻塞和反应式(select,poll,WaitForMultipleObject)等
8)学习Richard Stevens的《Unix网络编程》,深入学习其中的api原理以及服务端设计原理,并通过代码编写。
9)下载高性能网络编程框架twisted,笔者强烈推荐,它将使你的网络编程效率提高10倍以上。
10)学习设计模式、操作系统知识比如线程、进程、同步等。
探索:
互联网进化史 似乎很不错。
pip PIP(Personal Information Portal)一种个人信息管理的软件,可以管理个人的各种信息,包括文档,文件,数据表格,网页。即可以存储,也可以查询。目前还没有这方面的代表软件。国产软件magicflu,3.0引入网页快照,网页保存功能,也在向PIP方向迈出了重要的一步。
需要做的事:
建立个人站点
一些好的文档:
推荐系统的工程挑战 (下载讲稿)--百度 陈天健
个性化推荐系统的几个问题 (下载讲稿)豆瓣网首席科学家王守崑
记录:
威客是个不错的平台。例如,猪八戒
1、架构师胚胎(程序员) 学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)——学习搭建应用系统所必须的原材料。 2、架构师萌芽(高级程序员) 学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容) 3、架构师幼苗(设计师) 应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE构架、UDDI、软件设计模式等。在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理。 4、软件架构师的正式成型在于机遇、个人努力和天赋软件构架师其实是一种职位,但一个程序员在充分掌握软构架师所需的基本技能后,如何得到这样的机会、如何利用所掌握的技能进行应用的合理构架、如何不断的抽象和归纳自己的构架模式、如何深入行业成为能够胜任分析、构架为一体的精英人才这可不是每个人都能够遇上的馅饼……
招聘一则:
一淘广告平台目前是国内第二大广告平台,并且保持着100%以上的增长速度。一淘广告平台拥有国内最具商业价值的海量流量和用户数据;最丰富的广告模式;国内最大的联盟广告平台。互联网领域最具潜力的两个方向:电子商务和互联网广告,在一淘广告平台结合。而一淘广告技术部就是这个最具潜力的广告平台的研发团队。
在这里,汇集了当前最热门的技术和研究:大规模机器学习、数据挖掘、自然语言处理、推荐系统、用户行为分析、云计算、高性能架构;
在这里,你能够接触到一淘最核心的系统、国内最具有商业价值的数据、最有挑战性的技术问题;你不仅仅是一个螺丝钉;
在这里,有来自来自微软、doubleclick、百度、yahoo等公司的顶尖工程师、有昔日的高考状元、名校博士和硕士,无数的牛人伴你一起成长;不管是算法、C/C 、还是Java、PHP都会有一条为你量身订制的技术路线;
在这里,你的每一行代码都会影响到数亿网民,一个升级可能带来每天数十万收入增长;你会深刻体会到技术创造价值。加入一淘广告技术部,与牛人一起、与一淘广告平台一起快速成长!
算法;64人-北京杭州各半
三多是资深总监
铁相:算法的负责人;
自然语言处理专家
学历要求 本科
岗位描述 应用自然语言处理的相关算法进行词汇、query、广告、拍卖词、网页等的分析挖掘、广告相关性计算、Ontology构建等。应用自然语言处理算法改进淘宝的广告投放算法
岗位要求 计算机及相关专业本科或本科以上学历
精通算法设计/数据结构
- 精通C/C 语言编程,熟悉网络编程、多线程编程技术
- 熟悉Linux/Unix平台上的开发环境
- 有较强的分析和解决问题能力,有持续自我学习的能力和意愿, 善于沟通和逻辑表达,良好的团队合作意识。
- 精通自然语言处理,有自然语言处理应用经验更佳
机器学习专家
学历要求 本科
岗位描述 利用机器学习算法改进淘宝的广告算法投放。包括广告的排序、CTR预估、广告筛选、自动分类等
岗位要求 计算机及相关专业本科或本科以上学历
- 精通算法设计/数据结构
- 精通C/C 语言编程,熟悉网络编程、多线程编程技术
- 熟悉Linux/Unix平台上的开发环境
- 有较强的分析和解决问题能力,有持续自我学习的能力和意愿, 善于沟通和逻辑表达,良好的团队合作意识。
- 精通机器学习,有机器学习应用经验更佳
- 有海量数据处理背景更佳