程序员学习之路--小白成长记(网站网页篇)
时间飞逝,一名程序员已经由一脸茫然渐渐地懂得了很多东西。
在很久很久以前,一名少年正思索着一些东西,他发现他对网站很有兴趣,可是他不知道该怎么做,于是百度了起来,开始慢慢地了解了起来。
开始渐渐地明白了网页原来是用html代码写出来的,去搜了很多教程,都是从最简单的显示Hello World开始,他发现很多教程老师总是用记事本或者Notepad++新建一个txt文件,然后把后缀改成html,然后点击一下这个html文件,哇!浏览器就显示出来HelloWorld,至于是为什么,也不知道。
再后来,学了很多标签像 input\div\span等等,他这时候发现就这样输出的效果好单调啊,于是他后来又知道了CSS,CSS属性就像是一罐罐彩色原料,它能让之前写的html变得绚丽起来。再后来他有一天想做一个表单,在一个input框里输入一个名字,然后想要在页面上显示:XX天下无敌,啊。。。这可怎么做啊,之前的html只能写什么输出什么,没有一点交互作用,于是在这样的情况下,他认识到了JavaScript,他学会了js的一些小语法,alert(‘XX天下无敌’);js就像是一个个灵活的小部件,他能让页面转动起来。他好像开始对编程有兴趣了。
他一如既往的用记事本一个一个字母瞧着html css js代码,总感觉这样子太慢了,去百度搜了一下:网页编辑器。于是Dreamweaver 进入了它的世界,它发现这个编辑器真是爽,打一个“,这简直是大大的节省了敲代码的时间啊,他开始在怀疑为什么老师之前要叫我们一个一个字母的敲,有这样的一个编辑器不是很爽么?只用打首字母就出来了,这件事在后来的后来他才明白。他发现Dreamweaver还可以不用写代码–只需要拖拖控件就能生成一堆代码出来,啊!那简直是好啊,我们直接拖控件就OK了?为什么我们要写代码?少年乐此不疲地拖拖玩玩,发现挺有意思的。
某一天,他有点很生气,因为他发现Dreamweaver拖的代码,页面布局总是不是他想象的那样子,界面总是乱动,做一些简单的东西,拖一拖还行,稍微复杂一点的就哭了,这并不能满足他。他又开始去学习,怎么才能做一个好网站,那时他还没有能够理解到网站和网页的区别。他开始稍微系统一点的去学学前端了,他认识到了Bootstrap,CSS是一罐罐彩色原料的话,它需要对原料色进行调色才能到达最好的效果,然后一笔一笔地去涂好html。Bootstrap更像是一只只彩色笔,它把颜色已经调好了,只需要直接去使用,大大地节约了书写代码的时间。他也认识了JQuery这个打着“write Less,Do More”旗号的库,这个库也真的是申请了,简简单单的一两行代码可以做好多好多的事。
现在它的界面逐渐变得漂亮了起来,它发现页面感觉太枯燥了,界面连个动的东西都没有,他说我要做个动态网站,我要让页面有绚丽的动画起来。傻傻的少年,天真的认为动态网站就是网页有动画的效果那就是动态,于是他去学了学HTML5、CSS3,一下子页面炫酷多了。他开始迷上了网页编程。
他开始对同学说:我最近做了个网页,同学们:哇,可以给我们看看么?他:啊?怎么给你看看?把你的网址给我呗。。。他回到家又开始琢磨了起来,怎么才能把自己的网页通过网址给别人看呢?噢。需要一个服务器,于是他稀里糊涂地去在腾讯云租了个几十块钱一个月的服务器,最开始的他一脸懵逼啊,这个怎么玩,一大堆乱七八糟的东西。东搞西搞,他了解到了Linux操作系统,懂得了一些操作命令,终于配置好了一个Centos 6.5系统的服务器系统,用FlashXP将自己做的网页传了上去,他访问一下服务器的IP地址 123.2XX.24.1XX,啊哈,看到了自己做的页面展示在了网页上,但是他发现,为什么别人都是什么http://www.xxx.com 进去呀,我的为什么是数字,于是他明白了要去租个域名,将域名解析到服务器上。。。几经周转,当他输入 http://www.xxxxx.com 弹出了他的网页,并将这个网址分享给朋友,他心里成就感满满。
他的网页是在页面上显示一些小笑话,但是久而久之,他发现每次要录入一个新笑话都得把同样的代码复制一遍,然后把域里面的数据再替换成新的内容。这样下去可怎么了得,万一以后录入了上百上千个笑话,那这个html文件岂不是有上千上万行咯?那才是真正的笑话呢。于是引入了数据库,得把内容录入到数据库,然后再利用后台文件将数据库的内容读取出来。对于数据库,他学了MySQL以及和MySQL天生是一对的PHP!!!
因为开始用PHP写后台脚本了,他发现Dreamweaver体验真的不太好,于是接触到了宇宙最强 IDE公司JetBrains的产品–Phpstrom。要运行php文件那得搭建个php运行环境呢,MAMP(Mac Apach Mysql Php)简直不能太好用,就下载一个这个安装好就好了,不用单独去安装其他什么的,在Windows 系统上装个WAMP,在Linux系统上装个LAMP就OK了。万事俱全,只欠开始敲代码。
他开始在html文件中加入了php脚本,将原来的重复的代码使用foreach循环将读出来的数据打印出来,这下页面精致了很多,不过页面由html改成了php,他似乎能理解动态页面和静态页面的区别了,动态页面原来是指数据的动态。就这样,他利用数据库的CRUD(Create Read Update Delete)貌似好像能做很多很多事情了,他学会提交表单到数据库,并且他知道了每次数据提交都是通过GET或者POST提交到一个后缀为php的后台文件里面,然后后台获取到GET或者POST请求数据,再做一些处理最后再返回处理结果。他发现每次提交一次数据之后页面都会跑到php处理文件里面去,然后再在里面写返回之前提交页面的代码,这样感觉实在是太不友好了,它开始接触到了一个新的技术–Ajax,再利用利用json数据格式进行前后端交互,使得异步操作这东西说起来就那么高大上,放JQuery里面就几行代码都事情。她似乎对这门技术越来越热爱。
他某一天发现自己的数据库被人更改了,这是为什么呀?没人知道我的密码呀?被黑客攻击了?几经周折,他在网站安全一块进行了相关探索,原来啊自己被SQL注入了,自己写的简单语句被人类似于“select * from admin where user=’’or ‘a’=’a’ and passwd=’’or ‘a’=’a’”最简单的SQL注入了,他开始想办法将SQL语句写得更安全一点,利用面向对象的思想将查询语句封装起来。除此之外他又顺带了解了XSS、CSRF攻击以及HTTP和HTTPS的区别,这样使得页面安全性提高了起来。
他写的网页文件越来越多了,但都是写小项目,就几个php文件搞定了。他看到了网上有个叫翁天信少年写了他自己的个人博客,那博客真的是棒不,幻想自己也能做一个,说干就干。他从网上找了个模板,解压出来,惊呆了!!怎么这么多html文件!这样一个一个去还去写,简直要哭啊!在这种情况下,他学习到了MVC三层分离思想,将数据与视图通过控制器结合起来。又引入了基于MVC的ThinkPHP框架,加上thinkphp模块化的设计让整个项目逻辑思路特别的清晰明了,程序的耦合性大大降低,因为框架的封装性也使前面的安全问题减少了不少。
通过git命令安装好了Thinkphp框架,然后自己写了个后台管理系统,管理自己的博客文章以及留言,他发现每次进自己的管理系统都要输入用户名和密码实在是有点麻烦,于是又去了解到了Session和Cookie机制,将数据保存在浏览器以及服务器上,这样使得服务器能够认识他,就不需要每次再输入密码和用户名了。
于是他沉浸在Thinkphp的世界里,过了没多久个人博客终于搭建完了。网上有人对他的代码设计很感兴趣问能不能分享一下他的源代码,最初他直接把代码拷贝发送给别人,可是问的人多了,总是这样做实在是太麻烦。于是他认识了Github这个新朋友,将代码托管上去,本地又配置好了其版本控制,通过Commit Pull Push使得代码管理似乎更容易一些了。