没有编程怎么学php,学习编程类是不是不太可能?
理工科的话,问题不大,数学专业的可能还有优势;文科生的话,就不太建议了,思维方式不太一样,学起来会挺费劲。
科班出身的,因为有较长的时间学习理论知识,耳濡目染之下,了解的广度和深度都是超过非科班的,这就导致工作中相同技术水平的科班和非科班出身的两个人,在学习一门新的编程技术时,往往科班的学习的更快。所以,非科班出身学习编程时,不仅仅是学习某个编程语言本身(招式套路),也需要注重计算机基础理论(内功心法)的学习。
最后,如果自我感觉不太能学会编程,或者说不太清楚自己今后是否真的喜欢编程,建议你从大前端方向入手,做app或者H5开发。相对而言,现在的话H5更好找工作,能利用很多库做出酷炫的效果,能及时给学习一个正向的反馈,刚学起来不会有太多挫败感。
想学习计算机编程?
题主您好!
想学习计算机编程,如何入门?我个人是计算机专业毕业,c++现在已经是计算机专业的入门课程之一。学习编程的入门课程。作为入门学习,还是可以的。
编程这个事情,最主要的还是学习编程思想。无论是C#,C++,还是JAVA,都只是工具,实现具体应用的工具。会根据需要应用的场景和运行的平台不同,可能需要选择不同工具。
如果题主学习编程是为了工作,建议先思考一下编程的方向。现在可以考虑的是JAVA,
.net
等应该程序,或者是WEB编程如PHP,又或者是WEB的前端编程,大量前端工具可以学习。总体来说,现在编程思想是一样的。要看你打算工作的方向,还决定学习的工具,更为节省时间。哪一种编程工具,都可以作为入门学习的,如果单纯学习C++,去找工作的时候方向比较窄。不具备针对性,建议学习一些更容易找到工作的方向编程工具,例如:移动互联网,手机APP的前后端应用类的。这样社会的需求比较大,更容易找到工具,也有更多的机会去深入开发,有助于你快速掌握更多编程技巧。PHP是什么?
PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
主要特点编辑
(一)开源性和免费性
由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。 [1]
(二)快捷性
PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。 [1]
(三)数据库连接的广泛性
PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。 [1]
(四)面向过程和面向对象并用
在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言是做不到的。 [1]
优点编辑
(一)流行,容易上手
PHP是目前最流行的编程语言,这毋庸置疑。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。 [1]
(二)开发职位很多
在服务器端的网站编程中PHP会更容易帮助你找到工作。很多互联网相关企业都在使用PHP开发框架,所以可以说市场对PHP的开发程序员的需求还是比较大的。 [1]
(三)仍然在不断发展
PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。 [1]
(四)可植入性强
PHP 语言在补丁漏洞升级过程中,核心部分植入简单易行,且速度快。 [2]
(五)拓展性强
PHP 语言在数据库应用过程中,可以从数据库调取各类数据,执行效率高。
PHP有什么特点?
tep 1 =>
php的扩展模块都放在 ext/ 目录下,比如说 snmp模块、mysql模块。 我们要建立自己的模块,就要在ext目录下为自己的模块建一个目录。比如,我们要做一个分析config文件的模块,命名为pconfig模块(parse config的简写),需在ext下建立目录pconfig。将我写好的7个文件copy到该目录下,另外需对主目录下的configure和internal_functions.c作一些修改。
Step 2 =>
Makefile.am Makefile.in
是模板文件,用户执行configure时,会调用这两个文件,生成编译时所用的Makefile文件。修改时将小写的pconfig换成你自己的模块名,别忘了把大写的PCONFIG也替换掉(不要告诉我你不会vi的替换语句)。config.m4也是执行configure将会调用的检测脚本程序,以后我们来讨论这些脚本程序的更深入的修改。现在你只需要把pconfig该成你的模块就可以了。对config.h.stub和setup.stub也如法炮制。其实setup.stub也没什么用。
Step 3 =>
php3-pconfig.h 头文件中
extern php3_module_entry pconfig_module_entry;
#define pconfig_module_ptr &pconfig_module_entry
#define phpext_pconfig_ptr pconfig_module_ptr
这几行定义了模块的入口,将入口注册到php后,php会通过模块入口找到你写的函数
下面几个函数定义是用宏进行定义的,展开以后其实就是 php3_minit_pconfig , php3_rinit_pconfig ……分别在你的模块初试化或结束时被调用,如果你的模块很简单,也就不需要这些定义了
extern PHP_MINIT_FUNCTION(pconfig);
extern PHP_RINIT_FUNCTION(pconfig);
extern PHP_MSHUTDOWN_FUNCTION(pconfig);
PHP_MINFO_FUNCTION(pconfig);
这是你的函数声明,将来写在php脚本语句中的函数名就是在PHP_FUNCTION中定义的名字。
PHP_FUNCTION(pconfig_test);
如果有多个,还可以继续往下加
PHP_FUNCTION(pconfig_parsefile);
PHP_FUNCTION(pconfig_release); …….
Step 4 =>
接下来我们看最重点的C代码了
function_entry pconfig_functions[] = {
PHP_FE(pconfig_test, NULL)
{NULL, NULL, NULL}
};
定义的是你的函数的入口(前面我们提到过模块的入口),按照格式将你在头文件中定义的函数写进去吧。注意,这是用宏定义的,不要管语法是否正确。以后我们具体讨论这些宏的用法。
php3_module_entry pconfig_module_entry = {
"pconfig", pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES
};
注册模块的入口信息,比如模块名,函数接口,初试化模块将调用的函数等等,如果你的模块不执行复杂操作的话,可以忽略掉他们,写成
php3_module_entry pconfig_module_entry = {
"pconfig", pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES
};
Step 5 =>
写你自己的函数
在头文件和function_entry处,我们已经定义了自己的函数pconfig_test,现在我们就来实现pconfig_test的功能。就比如执行两个数相加的和吧。
static void _php3_pconfig_test(INTERNAL_FUNCTION_PARAMETERS)
{ ......
}
PHP_FUNCTION(pconfig_test)
{
_php3_pconfig_test(INTERNAL_FUNCTION_PARAM_PASSTHRU);
}
当系统调用pconfig_test时,会调用你的_php3_pconfig_test函数,当然你也可以把_php3_pconfig_test里的内容直接写在PHP_FUNCTION(pconfig_test)中,这样做只是程序结构比较清晰。注意:不要将_php3_pconfig_test命名成php3_pconfig_test,PHP_FUNCTION(pconfig_test)宏展开后实际上就是php3_pconfig_test!
Step 6 =>
好了,现在我们开始修改configure,在echo $ac_n "checking for MySQL support""... $ac_c" 1>&6的前面(当然,如果你熟悉configure的话,可以加在任何合适的地方)加上下面几句话
if test "${with_pconfig+set}" = set; then
withval="$with_pconfig"
# Add your lib in here
EXTRA_LIBS="$EXTRA_LIBS"
# Add your include path in here
INCLUDES="$INCLUDES"
EXT_SUBDIRS="$EXT_SUBDIRS pconfig"
EXT_LIBS="$EXT_LIBS pconfig/libphpext_pconfig.a"
EXTINFO_DEPS="$EXTINFO_DEPS ../ext/pconfig/extinfo.c.stub"
EXT_STATIC="$EXT_STATIC pconfig"
fi
修改internal_functions.c,在头文件定义中加入#include "ext/pconfig/php3_pconfig.h"
在zend_module_entry数组中加入phpext_pconfig_ptr,
Step 7 =>
从新configure,带上需要的参数,不要忘记的是在参数里加入 --with-pconfig
Step 8 =>
index.php3
<? echo pconfig_test(123,678)."
"; ?>
执行%>php index.php3
但以后想从事计算机行业?
谢谢邀请!
作为一名IT行业的从业者,同时也是一名计算机专业的教育工作者,我来回答一下这个问题。
目前IT行业内有大量从业者并不是计算机相关专业毕业,随着移动互联、大数据、物联网的不断发展,IT行业内的人才结构需求也越来越多元化,所以即使不是计算机专业的毕业生,也能够在IT行业内找到自己的位置。
虽然IT行业目前在人才需求上逐渐多元化,但是IT行业的岗位通常都具有一定的门槛,也就是需要一定的技术积累,不同的岗位需要不同的知识结构,需要进行针对性的学习。
从目前IT行业的技术人才需求量上来看,大的岗位需求集中在软件开发岗位、网络岗位和设计岗位上,其中开发岗位可以选择Web开发、大数据开发、移动互联网开发、嵌入式开发等岗位,网络岗位主要集中在网络运维、网络设计和网络部署,设计岗位则主要包含交互设计、视觉设计。
如果具有一定的数学基础,同时对编程比较感兴趣,那么可以考虑选择开发岗位,IT行业内的开发岗位众多,从就业的角度来看,开发岗位是不错的选择。开发岗位通常需要从编程语言开始学起,在学习的过程中陆续补学一些相关的计算机基础知识,包括计算机网络、操作系统、数据库、数据结构、算法设计等。在编程语言的选择上,可以重点考虑一下Java、PHP、Python这三门语言。
如果对软件开发不感兴趣,可以考虑学习网络方向的相关知识,将来可以从事与运维相关的工作,网络方向的知识包括网络体系结构、交换机配置、路由器配置、网络设计等,学习计算机网络知识需要进行大量的实验。另外,运维岗位还需要了解操作系统知识、存储知识、各种服务器知识、网络安全知识等。
最后,IT行业内还有大量UI设计岗位和测试岗位,这两个岗位需要掌握各种工具的使用,同时要了解常用技术的应用边界。相对于软件开发岗位来说,UI设计和测试岗位对于基础知识的要求并不高。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网方面的问题,或者考研方面的问题,都可以咨询我,谢谢!