成为一个php专家,最重要的一环
当我通过阅读博客,google+,newsletter,或杂志了解和php相关东西的时候,我常常注意到技术的两极分化。问题不是“我怎么才能连上mysql”就是一些“我怎样优化我的邮件系统在不引进新的服务器的同时做到每小时发送一万封邮件”。
我自己划分了4个关于php的级别(基本适用于任何语言或行业)初级,过渡期,专业和精通。
每个极端
对于php,初学者学习关于变量,引用,表单处理。学习一些简单的逻辑结构,根据教程去发送邮件,或是直接粘贴复制一个面向对象的例子却没有去真正的理解它。你用wordpress工作,修改几个css属性,只有这些知识,你应该很难找到一份工作。
专业的php开发者会在很多项目中贡献他们好的技术。他们不只部署框架,而且也部署一些商业应用,他们根据效率选择不同的数据库,经常参加分享会或是进行分享。他们研究设计模式并且能够轻松的设计一整个项目从画图到执行。他们不用面向过程的代码。
精通php的开发者就是传说中投入10000+小时去研究打磨他们技术的专业者。他们自给自足,自己写php安装中的扩展,只需要看一眼源码就能发现其中的bug。他们对代码的布局非常谨慎,他们会找到一个可替换的富有想象力的方式去解决人们都没有发现这是个bug的bug。他们经常会写一些很受欢迎的书籍,然后进行n场分享,或者自己写一个或两个特别受欢迎的框架。
所以,这里面谁是中间的过度者呢?
缺失的一环
一个初学者怎样能成为一个专业的人或是更厉害的呢,如果一个人只知道学习基础知识,怎么能提高技术去摆脱笨拙的练习方式而找到一个更加先进的方式。这是一个我经常问初学者的问题,要成为一个专业的人,必须先有一个过渡期。
通过以下途径就能熟练的运用php。
抛弃冗长的代码
很多人认为写类就是面向对象编程,写方法就是面向过程编程。这当然是错误的,为了这个争论,我们假设一个普通的定义:不用类和对象的代码是面向过程的代码,面向对象的代码是你尽可能的用了类和对象。
我的建议是全面抛弃面向过程的代码,尽量用面向对象的思路去抽象类,封装逻辑,和现实的实物术语想结合。面向过程代码产生的好处和面向对象带来的可复用和方便后来人们开发相比是可以忽略的。反对这个的一个理由通常是”word press” 就是面向过程的。诚实的说,这或许听起来很残酷,用wordpress编程的开发者只是一个用Instagram的摄像师。这不代表WP就没有用,他是一个很优秀的blog,简单的网站,一天你就能搭建好的项目。是一个很好的捷径或是为了一些不专业的人来说。但是掌握WP并不代表你就是一个合格的php工程师,一团乱遭的代码是不会教你争取的设计规则的。
开始的时候,抽象一下真实世界的对象,尽量用面向对象的思想去编程,通过辅助教材去学习慢慢的取得进步。如果你在面向对象编程中不能好好理解类的概念,那你是无法过度到适合的框架,理解不了Model,View,Concrol的概念。
剖析现有的项目
研究你所能找到的所有源码,比如,在github上的项目,拷贝下来,然后在本地运行,尽量的去灵活运用。仔细的分析每个文件下的每行代码,直到你弄懂为止。
寻找有注释或文档,良好的结构并且有人维护的项目,如果项目制更新到2008年,如果你已经进入php5.5那你肯定从中学不到什么.知识。你会错过那些能够让你能够在这个最受欢迎的领域里脱颖而出的最新最棒的特性。
学会搭建你自己的php环境
能够搭建自己环境是一项基本的技能。这不仅能够让你自定义的安装,而且还能让你对源码的扩展更加熟悉。
抛弃windows。如果你的笔记本是windows系统,那就下一个虚拟机然后安装一个linux系统,windows对大小写不敏感,一行就是一个结束,对于大多数服务器环境都有些古怪的不兼容问题,所以最好用一个和你运行环境类似的系统。
虚拟机也会帮你实验,如果出错了,你可以直接清理掉,然后重启一下或是直接回滚,你能没有后顾之忧的一直做实验。掌握一个工具很重要,但是有一个好的工作平台更重要。
你自己不断的安装也让你能够熟悉不同的服务器,使用Apache或是Nginx,或是都不使用直接用应用服务器等等。
早练习是最佳实践
当你写代码的时候,你一定要有注释块,漂亮的缩进和仔细的架构。当你写好一个类,项目或是类库的时候用一个知名的注释工具去提取注释块然后再去改进。
一个好的开发集成工具很有价值,一个能够适应多平台的编辑器会帮助你很快搭建起一个新的环境,这样你就不用花时间去设置快捷键和主题直接奔向你的代码,确保你把你的开发工具的配置在类似google drive里备份了一份。这样你就可以在任何需要的时候都能马上把环境搭建起来。一个好的开发工具是phpstore,如果你买不起它或是没有任何的开源项目去换取一个免费的license,那NetBEANS是一个好的后备选择,都是基于多平台的。
早点练习会帮助你保持连贯,让别人更能够读懂的你的代码。找到你的一个风格并坚持下去,会帮助你们双方。尽量去遵守PSR标准,他们被称之为标准也是有一定原因的,大多数人都喜欢它,它也让大家的代码易复用,易读。
尝试不懂得框架,找到合适的一个
一直以来,php就是框架最多的一种语言。无论这是否论及我们社区的不一致或是语言的受欢迎。我无法断言,但是事实就是选择一个框架是一个头疼的事情,尤其是你已经用了一款后。
我用过大多数框架,我强烈推荐Phalcon作为一个学习框架因为它的健壮和品质。事实上它是基于c语言然后作为一个php扩展。但是多尝试几个框架是必要的。
当你尝试的时候,对一个普通的问题你会学到一种新的解决办法,每一个框架都有你喜欢或是讨厌的特性。但是更重要的是你能学习到别人的心态(就是这个框架开发者的)。当你把一个小的项目在不懂得框架下搭建是你会找到新的用法和方法。这会让你分辨出哪个是最有效率的。
读代码
不要小看别人的任何提示。尽可能的多读,这不会花费你很多时间的,找一个好的blog去关注,研究网站里的教程,在stackoverflow里提出问题并且找到答案,预定newsletter,关注google+上好的资源。避免一些基础的php教程,它们在出版时已经过时了。取而代之的是在网上关注几个很牛的人,然后去学习那些时时更新的代码。即使是那些标题你已经看过的也尝试再看一下,根据不同人对于同一问题的理解或许能学习新的东西。
如果没有工作,创造工作
保持总有事情去做。不要让自己说我没有一个项目或是更糟糕的我已经厌倦了。如果你没有一个新鲜的项目去做,那就自己创造一个。你是否对一个每天都用的工具却缺失的某个功能感到抓狂,那就自己写一个代替。如果没有一个好的想法,那么就做一个现有的。试着重新做一个最原始的facebook,做一些你已经知道的功能当做练习。
最重要的是不要停下来。如果你不做就没有传说中的10000+小时。努力工作,努力把工作与兴趣结合。做一个简单通讯录应用,然后重新做一个框架,最后用另一个数据库去代替现有的。不要停下来!
找一个同伴或导师
如果有一个人和你一起那你会学的更轻松。找一个同伴去分享的热情。或许你足够幸运找到一个和你臭味相投的小伙伴。也可能在学校里面有一个初学者刚刚想要有个同伴一起学习,甚至你也可以找一个导师指导你学习。
结论
当你从各个方面去收集你想要的信息,你就明白哪个是你想要的,不要放弃,你正在成为一个专业的php开发者。保持热情,继续练习。
如果你找到了任何关于怎样帮助你过渡成为一个专业php开发者的信息,想要和我们分享的话就在下面评论吧~
posted on
浙公网安备 33010602011771号