1、学会思考,思考为什么要这样,而不是那样。还要举一反三的思考。
2、用户界面几乎呗2个东西主宰:web 和 移动设备ios或者Android。
3、学习linux基础知识。
4、学习服务器端技术LAMP
5、学习web的安全与架构
1)学习html5 2)学习web开发的安全问题(参考新浪微博被攻击的这个事情,以及Ruby的这篇文章。) 3) 学习http server的rewrite机制,Nginx的反向代理机制,fast-cgi 4) 学习web的静态页面的缓存技术。 5)学习web的异步工作流处理,数据Cache,数据区分,负载均衡,水平扩展的架构。
task: 使用HTML5的canvas制作一些web动画。 尝试在前面开发过的那个web应用中进行sql注入,js注入,以及xss攻击。 把前面开发过的那个web应用改成构造在Nginx + PHp-FPM + 静态页面缓存的网站。
6、需要学习C语言,(美国麻省理工学院免费视频) 需要研读的书籍:《深入浅出设计模式》、《Effective Java》and《Java解惑》 主要学习Java的设计,如Ioc等。
学习使用Java做web service
task: 尝试在Spring 或Hibernate框架下构建一个有网络的web service的远程调用程序, 并可以在两个service中通过jms传递消息。
7、加强系统了解。
《unix编程艺术》《unix网络编程卷1 ,套接字》《TCP/IP详解 卷1:协议》
task: 写一个网络聊天程序; 写一个简易的HTTP服务器;
《unix网络编程卷2, 进程间通信》
task: 写一个管道程序,父子进程通过管道交换数据。尝试写一个共享内存的程序,两个进程通过共享内存交换一个C的结构体数组。
8、系统架构。
负载均衡。HASH式的,纯动态式的(可到google学术里搜一些关于负载均衡的文章)
多层分布式系统 : J2EE
CDN系统 - 就近访问,内容边缘化。
P2P式系统,研究一下BT和电驴的算法。比如:DHT算法。
服务器备份,双击备份系统(LIVE-STANDBY和LIVE-LIVEAAA系统)
学习Hadoop、Hhrift。
了解NoSQL数据库