搜索
首页后端开发php教程送给和小弟我一样曾经浮躁过的PHPer程序猿,希望有帮助

送给和我一样曾经浮躁过的PHPer程序猿,希望有帮助

<pre class="brush:php;toolbar:false"><span style="white-space:pre">	</span><span style="font-family:SimSun">2012年偶决定开始写博客了,不为别的,就希望可以通过博客记录我的成长历程同时也希望可以帮助一些刚毕业,刚入行业的兄弟姐们们。我们是一群充满浮躁、抱怨、迷茫的程序猿,想一想3年就这么过去了,社会变得更浮躁了,鸭梨也越来越大,房?车?女人?... 抓狂...<span style="white-space:pre">	</span>决定写这样一篇文章,再次明确自己的职业规划,也送给浮躁的你,踏上程序猿这条路可谓是路途艰辛,乏味,枯燥,在这里把自己的学习心得,目前正在计划的规划,列出来。希望对你有所帮助。<span style="white-space:pre">	</span><strong>1、多动手,多思考</strong><span style="white-space:pre">		</span>不要怕做不好,刚毕业或者刚入行最缺的就是工作经验,没有别的途径,只有做,做,做,多做经验就来了。项目做多了自然而然你就有了多种不同项目的业务逻辑,这些可是在大学根本无法学到的东西,也是企业最需要的。<span style="white-space:pre">		</span>任何一个企业需要的是一个快速上手,马上解决业务任务的员工。面对现在层出不穷的新技术,各种复杂的业务逻辑需求,你是如何去应对呢?很简单:做,做,做,我的学习过程就一个字:做!<span style="white-space:pre">		</span>截止目前从0 到 1 真的很辛苦,大大小小做了上百个(包括接的大大小小单子需求,之前公司各种业务需求解决),总结就一句话:做的多了 沟通就多了,沟通多了就更好的理解客户需求和用户展示的一些基本经验。<span style="white-space:pre">		</span><span style="white-space:pre">	</span><strong>2、少抱怨,多学习</strong><span style="white-space:pre">		</span>当你刚进公司时,难免会做很多杂事,这个是无法避免。我刚进这个行业做了大半年的杂事,什么DIV,CSS,JS 调个模板 改个小东西,等等。一切都是熬出来的,只有当你的经验,技术积累到了足够<span style="white-space:pre">		</span>应付业务需求的时候,你自然会被赏识,当然如果还是无法赏识,建议你可以立马跳槽。对于程序员来说偶尔的跳槽也是成长的一部分,不知道对被人是否是这样,但对我来说我的每次跳槽都会<span style="white-space:pre">		</span>一次快速成长。作为程序猿我觉得如果真想做好,必须要有兴趣,写代码会让你疯狂,让你疯癫,这样你才能写好它。如果你只是为了工作而去做,那么你只是一个工具而非程序猿,那么你也就<span style="white-space:pre">		</span>不要过于频繁跳槽,因为每次跳槽对你来说都是一个大的挑战。有了兴趣,支持以恒,不要在乎任务多,压力大,能做就做,你的目的就是提高自己,让自己在明天比昨天更有价值,当价值积累到了足够<span style="white-space:pre">		</span>的资本,很多公司会抢着要你,相信这个社会肯定会有识才的公司。耐心+机遇+坚定不移的信念,这就是我!一个简单的程序猿。<span style="white-space:pre">	</span><strong>3、制定有效的学习计划</strong><span style="white-space:pre">		</span>当你制定了计划,就一定要坚持的完成,如果不能,请你不要制定计划,因为这样会让你很痛苦。在公司或者各类技术社区尽量多认识大牛,多加群,多交流、讨论,多帮助别人。<span style="white-space:pre">		</span>在制定计划时,不要过于盲目。根据自身情况制定各个阶段计划,最好的计划是短期计划并且可以保证顺利完成的计划,如果制定一个飘渺无期的计划,你更适合当一个演说家。<span style="white-space:pre">		</span>请不要吝啬,在你计划学习的过程中尽量写到博客,比如CSDN博客 就是很不错的选择。这样你即可以帮助新手,也可以让自己更深入的熟悉学习的知识,并在需要是最快的速度查找到。<span style="white-space:pre">	</span><span style="white-space:pre">	</span>废话基本说完了,下面介绍下我近期整理的计划和一些学习心得,希望我们可以一起进步,一起提升,一起为了明天的更多薪资而努力。</span>

PHP程序员突破成长瓶颈?(整理于网上,并自己也在逐条实施中)
对PHP的掌握不精(很多PHP手册都没有看完,库除外)
知识面比较窄(面对需求,除开使用PHP和mysql ,不知道其它的解决办法)
PHP代码以过程为主,认为面向对象的实现太绕,看不懂
这些PHPer 在遇到需要高性能,处理高并发,大量数据的项目或业务逻辑比较复杂(系统需要解决多领域业务的问题)时,缺少思路。不能分析问题的本质,技术判断力比较差,对于问题较快能找出临时的解决办法,但常常在不断临时性的解决办法中,系统和自己一步步走向崩溃。那怎么提高自己呢?怎么可以挑战难度更高的系统?

高性能系统的挑战在哪里?

如何选择WEB服务器?要不要使用fast-cgi 模式
  要不要使用反向代理服务?选择全内存缓存还是硬盘缓存?
  是否需要负载均衡?是基于应用层,还是网络层? 如何保证高可靠性?
  你的PHP代码性能如何,使用优化工具后怎么样? 性能瓶颈在那里? 是否需要写成C的扩展?
  用户访问有什么特点,是读多还是写多?是否需要读写分离?
  数据如何存储?写入速度和读出速度如何? 数据增涨访问速读如何变化?
  如何使用缓存? 怎么样考虑失效?数据的一致性怎么保证?


高复杂性系统的挑战在哪里?
能否识别业务所对应的领域?是一个还是多个?
  能否合理对业务进行抽象,在业务规则变化能以很小的代价实现?
  数据的一致性、安全性可否保证?
  是否撑握了面向对象的分析和设计的方法
  当我所列出的问题,你都能肯定的回答,我想在技术上你基本已经可能成为架构师了。

怎么样提高,突破瓶颈?

分析你所使用的技术其原理和背后运行的机制,这样可以提高你的技术判断力,提高你技术方案选择的正确性;
学习大学期间重要的知识, 操作系统原理,数据结构和算法。知道你以前学习都是为了考试,但现在你需要为自己学习,让自己知其所以然。
重新开始学习C语言,虽然你在大学已经学过。这不仅是因为你可能需要写PHP扩展,而且还因为,在做C的应用中,有一个时刻关心性能、内存控制、变量生命周期、数据结构和算法的环境。
学习面向对象的分析与设计,它是解决复杂问题的有效的方法。学习抽象,它是解决复杂问题的唯一之道。
“这么多的东西怎么学,这得学多久呀” ?
如果你努力的话,有较好的规划,估计需要1~2年的时间,怎么学习的问题,我们后续再谈。

PHP学习的过程网上已经有很多教程了,就不列举了。基础+数据结构+算法(PHP这个比较弱)   不断重复的学习使用

其次是设计模式,尤其复杂的业务需求设计模式非常有帮助,我博客也会不断地学习,讲解各种设计模式的用法。

积累:把常用的一些库(用过的,自己写的)都收集起来,挡在用到时拿出来用即可,非常方便。如:分页,图片处理,上传,下载,EMAIL等等这些常用到的。

多方位动手:不光要写代码,把代码片段分析放到博客 也是进步提升的一个重要的环节,加深记忆不错的方法。

1.PHP基础入门(语法,常用函数和扩展)
2.面向对象的PHP(书籍:《深入PHP,面向对象、模式与实践》)
3.网站软件架构设计(设计模式、框架等)
4.网站物理层次架构设计(分布式计算、存储、负载均衡、高可用性等)

引用:一个不错的网上找到的学习建议

如何有效的学习是一个大问题。 自己有些实践但很零散,不好总结。昨天晚上睡觉前,突然想到了RUP的核心,“以架构为中心,用例驱动,迭代开发”,借用这个思想,关于有效的学习的方法,可以这样来表述:
以原理、模型或机制为中心,任务驱动,迭代学习
目的: 学习如何提高处理性能。
可迭代驱动的任务: 通过IP找到所在地域。
这是WEB应用常见的任务,IP数据库是10左右万行的记录。
第一次迭代: 不考虑性能的情况下实现功能(通过PHP来实现)
因为无法直接通过KEY(IP)进行查找地域,所以直接放到数据或通过关联数组这种简单的方法都是不行的。思路还是先把数据进行排序,然后再进行查找
  1. 如何通过IP查找? 已序的数据,二分查找是最快的。
  2. 如何排序?用库函数sort当然 是可以,但是即然是学习,那还是自己实现快速排序吧。
  学习目标: 排序算法,查找算法
  PHPer 数据结构和算法基础比较差,平时也没有这方面的任务,自己也不学习,因此这方面的知识很缺乏。
但是,编程解决的问题,最终都会归结到数据结构和对这种数据结构操作的算法。
如果数据结构算法常在心中,那遇到问题就能清晰认识到它内在的结构,解决方法就会自然产生。

第二次迭代:优化数据的加载与排序
如果做到第一步,那基本上还是不可用,因为数据每次都需要的加载和排序,这样太耗时间。 解决的思路是,数据一次加载排序后,放到每个PHP进程能访问到的地方
放到memcache 这是大家容易想到问题。
其实放到共享内存(EA等加速器都支持)中是更快的方式,因为memcache还多了网络操作。 
数据是整体放入到共享内存,还是分块放入,如何测试性能? 如何分析瓶颈所在(xdebug)? 在这些问题的驱动下你会学习到
学习目标: 检测、定位、优化PHP性能的方法; PHP实现结构对性能的影响。

第三次迭代: 编写PHP的扩展
怎么确定需要学习的机制和原理呢? 怎么找到驱动学习任务呢?
从这个技术的定位来找出需要学习的重点,即它怎么做到(机制)的和它为什么能这样做到 (模型或原理)
列出这个技术最常见的应用,做为学习的任务,从简到难进行实践。
如果完全自学,找到需要学习的要点(机制、模型、原理) 设定学习任务的确不是那么容易把握。如果找到一个有经验的人来指导你或加一个学习型的团队,那学习的速度的确会大大提高。

最后简单总结下:

1、一定要有耐心,制定好计划一定要实施

2、PHP基础比较吃透,手动多了自然就会记得更深(PHP手册一定要多次反复的阅读)

3、PHP设计模式并在实际场景中尝试应用,不断地加强记忆和理解设计模式

4、现在新东西真的太快,所以为了适应就必须要多下功夫。内存缓存,文件缓存,静态缓存,高并发处理,这些必须要熟练应用。

5、加强计算机系统原理的了解,熟悉常用数学知识,练习算法应用。计算机科学本质上讲是数学的一个学科。好的数学家中间会产出优秀的程序员。不要让你的数学能力丧失殆尽。

     逻辑学、离散数学、微积分、概率论、统计学、抽象代数、数论、范畴论、偏序理论这些数学知识尽量多练习,多熟悉下。

6、关注PHP安全,了解最新PHP,MYSQL版本更新和BUG动态。

7、深入学习数据结构和算法,不论是什么语言 最核心的就是数据结构和算法。

8、开始学习C,或者同步和PHP进行也可以,看你的时间和学习强度计划了。C是必须要学,如果你想走程序猿这条道路的话。PHP也是C写的,而且PHP运行机制也是通过编译器编译成C在电脑上运行,所以C学好了对你的开发之路只有益处。你的money 也会 赚的比以前 更多!!!!!!!!!!


最后: 认真做好每一项,学扎实,重复的去学。不知不觉中你的能力会得到很快的提升。

本人最近在学C,也希望有在学C的加Q:1235355 一起交流进步,当然PHP也在同步中,技术没有尽头,只有不断地学习,更何况我还是个菜鸟呢~~~~~~~~~~~~~~~~~

最后祝大家  年年涨薪  不怕失业 !!!!!

当你的能力到了,你到哪里都可以吃的开,怕失业吗???? 有了强有力的技术,也算是行业的一个铁饭碗吧。。加油同志们~~~~~~~

最后想说,没什么可以烦心的,不是所有人都是千里马,也不是所有人都是伯乐。 。。如果你是千里马你可以慢慢寻找能赏识你的伯乐,如果你是伯乐也希望你早点找到属于你的千里马。

加油提升自己吧~~~  能力到 所有的事情都是水到渠成  不必过于担心这担心那的。。


1楼A15249203466昨天 08:53
呵呵,顶你,我是小马奔腾
Re: grassroots2011昨天 13:42
呵呵,谢谢关注!回复A15249203466
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP:服务器端脚本语言的简介PHP:服务器端脚本语言的简介Apr 16, 2025 am 12:18 AM

PHP是一种服务器端脚本语言,用于动态网页开发和服务器端应用程序。1.PHP是一种解释型语言,无需编译,适合快速开发。2.PHP代码嵌入HTML中,易于网页开发。3.PHP处理服务器端逻辑,生成HTML输出,支持用户交互和数据处理。4.PHP可与数据库交互,处理表单提交,执行服务器端任务。

PHP和网络:探索其长期影响PHP和网络:探索其长期影响Apr 16, 2025 am 12:17 AM

PHP在过去几十年中塑造了网络,并将继续在Web开发中扮演重要角色。1)PHP起源于1994年,因其易用性和与MySQL的无缝集成成为开发者首选。2)其核心功能包括生成动态内容和与数据库的集成,使得网站能够实时更新和个性化展示。3)PHP的广泛应用和生态系统推动了其长期影响,但也面临版本更新和安全性挑战。4)近年来的性能改进,如PHP7的发布,使其能与现代语言竞争。5)未来,PHP需应对容器化、微服务等新挑战,但其灵活性和活跃社区使其具备适应能力。

为什么要使用PHP?解释的优点和好处为什么要使用PHP?解释的优点和好处Apr 16, 2025 am 12:16 AM

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。

揭穿神话:PHP真的是一种死语吗?揭穿神话:PHP真的是一种死语吗?Apr 16, 2025 am 12:15 AM

PHP没有死。1)PHP社区积极解决性能和安全问题,PHP7.x提升了性能。2)PHP适合现代Web开发,广泛用于大型网站。3)PHP易学且服务器表现出色,但类型系统不如静态语言严格。4)PHP在内容管理和电商领域仍重要,生态系统不断进化。5)通过OPcache和APC等优化性能,使用OOP和设计模式提升代码质量。

PHP与Python辩论:哪个更好?PHP与Python辩论:哪个更好?Apr 16, 2025 am 12:03 AM

PHP和Python各有优劣,选择取决于项目需求。1)PHP适合Web开发,易学,社区资源丰富,但语法不够现代,性能和安全性需注意。2)Python适用于数据科学和机器学习,语法简洁,易学,但执行速度和内存管理有瓶颈。

PHP的目的:构建动态网站PHP的目的:构建动态网站Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP:处理数据库和服务器端逻辑PHP:处理数据库和服务器端逻辑Apr 15, 2025 am 12:15 AM

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

您如何防止PHP中的SQL注入? (准备的陈述,PDO)您如何防止PHP中的SQL注入? (准备的陈述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。