走上It之路
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

走上It之路

on

  • 549 views

 

Statistics

Views

Total Views
549
Views on SlideShare
549
Embed Views
0

Actions

Likes
0
Downloads
17
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

走上It之路 Presentation Transcript

  • 1. ⾛走向IT之路 谢凌(David Xie) david.scriptfan@gmail.comSaturday, 27 October, 12
  • 2. 何为IT之路? • 无休止的编程? • 开发人员都是屌丝? • 永远没有出路?Saturday, 27 October, 12
  • 3. 如何学习编程? • 英语. 第一步永远是英语 • 基础. 计算机组成原理, 编译原理 • 工具. 语言, 数据库, 服务器 • 协议. 食物链的顶层Saturday, 27 October, 12
  • 4. 如何编程?Saturday, 27 October, 12
  • 5. • 会写代码就可以了吗? • 能写出工作的代码就可以了吗? • 能完成任务就可以了吗?Saturday, 27 October, 12
  • 6. 远远不够!Saturday, 27 October, 12
  • 7. 1. 选择⼀一个操作系统Saturday, 27 October, 12
  • 8. 操作系统 • Windows • Linux • Mac OS XSaturday, 27 October, 12
  • 9. 选个⼀一个Linux/Unix吧!Saturday, 27 October, 12
  • 10. 有很多选择 • Ubuntu/Debian • Fedora/CentOS • OpenSUSE • ArchLinux • Gentoo • FreeBSDSaturday, 27 October, 12
  • 11. kernel • 什么是kernel • kernel能干什么 • 如何编译kernelSaturday, 27 October, 12
  • 12. 操作系统原理Saturday, 27 October, 12
  • 13. • 内存管理 • 进程管理 • I/O管理 • 设备管理 • 文件系统管理Saturday, 27 October, 12
  • 14. 最好的选择 FreeBSD • 学院派 • 质量高 • 代码严谨 • 性能好Saturday, 27 October, 12
  • 15. 2. 选择⼯工具Saturday, 27 October, 12
  • 16. 编程语⾔言Saturday, 27 October, 12
  • 17. 写在选择之前 • 不要参与语言之争 • 了解语言的特性 • 了解语言的应用场景 • 不是有了锤子后, 眼里都是钉子Saturday, 27 October, 12
  • 18. 语⾔言 • C • C++ • Java • Python • Ruby • PHP • ......Saturday, 27 October, 12
  • 19. 数据结构 • 数组 • 队列 • 树 • 链表 • 图Saturday, 27 October, 12
  • 20. 算法 • 排序 • 寻址 • 最优解 • ...Saturday, 27 October, 12
  • 21. ⾯面向对象 • 封装 • 继承 • 复用Saturday, 27 October, 12
  • 22. 设计模式 • KISS (Keep It Simple, Stupid) • DRY (Don’t Repeat Yourself) • 23个设计模式 • 工厂, 单例, 适配器, 观察者....Saturday, 27 October, 12
  • 23. 推荐⼀一本书Saturday, 27 October, 12
  • 24. 数据库Saturday, 27 October, 12
  • 25. 有哪些数据库 • Oracle • MS SQL Server • MySQL • PostgreSQL • SQLite • Redis • MongoDBSaturday, 27 October, 12
  • 26. 数据库设计 • 1NF • 2NF • 3NF • BCNFSaturday, 27 October, 12
  • 27. 数据库事务 • 什么是数据库事务 • 数据库事务的准则 • ACID • 原子性, 一致性, 独立性, 持久性Saturday, 27 October, 12
  • 28. SQL • 标准化查询语言 • select, insert, delete, update... • left join, right join, inner join, union...Saturday, 27 October, 12
  • 29. SQL Injection • SQL注入 • 原因? • 如何解决?Saturday, 27 October, 12
  • 30. ORM • 对象关系映射 • 用对象来操作表 • 表与表之间的关联 • 更直观 • 屏蔽数据库间的差异Saturday, 27 October, 12
  • 31. DAO • Data Access Objects • 继续封装数据操作 • 一个DAO的方法涵盖一系列的数据操作Saturday, 27 October, 12
  • 32. 编辑器/IDESaturday, 27 October, 12
  • 33. 编辑器 • Vim • Emacs • Notepad++ • EditPlusSaturday, 27 October, 12
  • 34. IDE • Eclipse • NetBeans • Intellij IDEASaturday, 27 October, 12
  • 35. 如何选择? • 初学以编辑器为主, 加强自己的coding能 力 • 以用着顺手为前提, 工具只是为了提高生 产力 • 写Java这样的语言, 建议用IDESaturday, 27 October, 12
  • 36. 不要做 • 参与编辑器/IDE之争 • 不停的更换编辑器/IDE • 做编辑器/IDE的奴隶, 离开了不会写程 序Saturday, 27 October, 12
  • 37. 版本控制软件Saturday, 27 October, 12
  • 38. 关于版本控制软件 • 什么是版本控制软件 • 为什么要使用版本控制软件Saturday, 27 October, 12
  • 39. 有哪些版本控制软件 • ClearCase • CVS • SVN • GIT • Mercurial(HG)Saturday, 27 October, 12
  • 40. 现在最流⾏行的是什么呢?Saturday, 27 October, 12
  • 41. GIT!!!Saturday, 27 October, 12
  • 42. 为什么流⾏行? • 分布式版本控制 • 速度快 • 功能强大Saturday, 27 October, 12
  • 43. 3. 选择⽅方向Saturday, 27 October, 12
  • 44. web开发Saturday, 27 October, 12
  • 45. 前端/后端Saturday, 27 October, 12
  • 46. 前/后 端的区别 • 何为前端? • 何为后端?Saturday, 27 October, 12
  • 47. WEB开发中, Java算哪端?Saturday, 27 October, 12
  • 48. 前端需要掌握哪些技能? • HTML • CSS • JavaScript • HTML5/CSS3Saturday, 27 October, 12
  • 49. 后端需要掌握那些技能? • 后端语言(Java, PHP, Python, Ruby) • 数据库 • 服务器优化(Apache, Nginx)Saturday, 27 October, 12
  • 50. WEB开发中最推崇的MVCSaturday, 27 October, 12
  • 51. MVC模型 • Model 模型 • View 模型 • Controller 控制器Saturday, 27 October, 12
  • 52. 4. 开始开发Saturday, 27 October, 12
  • 53. 开发过程 • 文档先行 • 架构在后 • 测试优先 • 编码保证Saturday, 27 October, 12
  • 54. 优秀的⽂文档 • 格式化语言 • wiki语法 • 可以导成HTML格式 • 清晰的说明程序的作用和想法Saturday, 27 October, 12
  • 55. 优秀的架构 • 优秀的数据结构是程序优良与否的关键 • 优秀的架构是程序优良的保证Saturday, 27 October, 12
  • 56. “烂程序员关心的是代码. 好程序员关心的 是数据结构和它们之间的关系.” - LinusSaturday, 27 October, 12
  • 57. “git的设计其实非常的简单, 它的数据结构很 稳定, 并且有丰富的文档描述. 事实上, 我非常 的赞同应该围绕我们的数据结构来设计代码, 而不是依据其它的, 我认为这也是git之所以成 功的原因之一[...]依我的观点, 好程序员和烂程 序员之间的差别就在于他们认为是代码更重要 还是数据结构更重要.”- LinusSaturday, 27 October, 12
  • 58. 测试的重要性 • 代码质量的关口 • 功能的保证 • 最不能小视, 缺最容易被小视 • 单元测试/TDDSaturday, 27 October, 12
  • 59. 编码实现 • 代码风格 • 函数/变量命名 • 注释 • 代码是写给人看的, 机器码才是给机器读 的Saturday, 27 October, 12
  • 60. 5. 解决问题Saturday, 27 October, 12
  • 61. 解决问题的⽅方法 • Google/Baidu • 问答网站(StackOverflow) • 论坛 • wiki • mail list • ircSaturday, 27 October, 12
  • 62. 提问的艺术 • 查询有没有相同的问题 • 在问题中把问题描述清楚 • 举例Saturday, 27 October, 12
  • 63. 6. 如何提⾼高Saturday, 27 October, 12
  • 64. 提⾼高的⽅方法 • 阅读 • 实践 • 和有经验的人交流 • 阅读别人的代码 • 参与开源Saturday, 27 October, 12
  • 65. 阅读 • 计算机书籍(语言类, 协议类, 基础类) • 编程技巧文章 • 他人经验的总结Saturday, 27 October, 12
  • 66. 推荐⼏几个开源⺴⽹网站 • http://sourceforget.net/ • http://code.google.com/ • http://github.com/ • http://bitbucket.org/Saturday, 27 October, 12
  • 67. 如何参与开源 • 写文档 • 测试 • 提交功能申请 • 修改bug • 参与开发Saturday, 27 October, 12
  • 68. 以github为例Saturday, 27 October, 12
  • 69. http://github.com/Saturday, 27 October, 12
  • 70. Saturday, 27 October, 12
  • 71. github能干什么? • 托管开源代码 • 团队协作 • 管理项目 • 文档管理 • bug追踪Saturday, 27 October, 12
  • 72. 总结Saturday, 27 October, 12
  • 73. • 善于阅读 • 善于总结 • 善于提问 • 善于抽象 • 善于动手Saturday, 27 October, 12
  • 74. 优秀的程序员都是懒惰的程序员, 因为 只有他们才会开发出更多让⼈人可以更懒 惰的程序Saturday, 27 October, 12
  • 75. 愿⼤大家都能成为那个懒惰的程序员!Saturday, 27 October, 12
  • 76. Thanks!Saturday, 27 October, 12