php 怎么上机 考试,如果想学习编程?
多谢悟空邀请。这个问题还真不是一句话能够说清楚的。我简单谈谈几点我的看法。
首先,搞清楚您学习编程的应用方向学习编程有很多不同的目的,有自娱自乐的、有拿来找工作的,无论那种,您都要明确您学会了编程想要做什么方向。我提几个方向仅供参考:
移动应用开发。包括手机、平板等移动平台的开发。
传统桌面应用开发。包括应用于windows电脑上的各种应用程序。
网页开发。各类网站和基于网页的应用等。
嵌入式开发。各种嵌入式设备开发。
微信小程序开发。
人工智能开发。
数据库开发。
其它等等。
知道了您将来学会了编程要来做什么,您才能选择合适您学习的编程语言。
其次,选择满足自己现在和将来应用的编程语言知道以后要做什么,就要根据自己的要求选择合适的编程语言了。编程语言太多了,每种都能说出一大堆的优点出来,根据应用方向,您可以大致如下考虑:
移动应用开发。Android的一般用Java、Kotlin、Go、Delphi等,ios一般用Object-c。Kotlin是Google官方支持的Android开发语言。Java很泛滥,大家都知道。
传统桌面应用。基于windows的应用,目前用的比较多的主要是C#、Dephi、VB等,C#正当时、Delphi再走下坡路,VB有点半死不活。
网页开发。这个有很多可选的。比如PHP、Javascript这种,还有Ruby On Rails框架的,还有Java的等等。
嵌入式开发。这个一般都是C\C++、Python这些了。
微信小程序开发。一般用Javascript+WXML+WXSS混合模式。
人工智能开发。现在最热的是Python。
其它。
第三,要配合学习SQL,精通至少一种数据库数据库是数据存储和处理的后台,您如果真想开发系统,一般都是绕不开数据库的,数据库也有很多种,大部分都SQL-92的支持都是不错的。
SQL语言是标准化的数据库语言,一般包含查询语言和控制语言两种。简单说查询主要是select句型,控制主要包括update、insert、delete等数据操作语句。这个学起来比写程序要死一些,但想要精通也需要日积月累。
数据库有很多种,比较常见的主要是Microsoft SQL Server、MySQL、PostgreSQL、SQLite、Access、Oracle等,个人建议SQL Server和PostgreSQL两个都不错,一个商用的、一个开源的,性能都很牛掰。不过MySQL学的人最多。
第四,选择编程语言的开发平台一般的编程语言,主要是程序构成,程序本身就是文本格式的,用记事本就能打开,但程序的编译需要开发平台的支持,比如Java需要JDK支持。一般大家比较喜欢选择集成化的开发环境,称之为IDE。比如微软的Visual Studio系列、Delphi、Eclipse等等都是集成化开发环境。
Notepad++、editplus、ultraedit、Sublime Text、vim这些用来写程序很好,但不算是很好的IDE。建议您选择合适的IDE。我这里不再展开描述了,如果您有兴趣,可以@我,我专门写过一篇《编程大师成长日记:常见常用的编程环境》描述如何选择开发环境的。
最后,日积月累、由易到难、由浅入深、学以致用1、变量的类型及定义,包括整型、浮点型、字符串、日期、布尔等;
2、循环,包括for、while等;
3、分支,包括if、else等;
4、逻辑等式判断等;
5、数据库连接、存取接口等。
了解了基本的语法风格,您基本就有一些感觉了。这时候对您来说,最重要的就是要选择一个合适编程环境,编程环境的选择非常重要,要用来干活,就要选得力的开发工具,如果自己不懂,就要看看别人都用什么工具,选了工具适应也需要过程,一般以后干活也要用这个了。
选好了编程环境,您就要尽快熟悉环境,编程环境一般称为IDE(Integrated Development Environment),也就是集成化开发环境,集编写代码、拖拉组件界面、调试、编译一条龙。
熟悉编程工具的使用后,您最好找一些简单的、现成的例子导进来编译试试。编程最怕直接面对生疏的东西,这会让你手足无措,有了例子做底子,最起码您刚开始就能够有些成就感。
当然,光靠编译成功几个例子有点成就感、只是有个进步的台阶,您要不停的基于例子做各种修改和增强,有台阶踩着,您不停的改造例子,顺道把各种语法都囊括进去不停的反复练习,这样你就会越来越熟、越来越接近于实战、越来越有感觉。
随着编程练习的深入,您就会开始碰壁了,这时候千万不要气馁,多在网上找解决方法。高手就是在不停的碰到问题、查资料、验证处理方法、搞定这样不停的循环中炼成的。网上有不少高手就各种问题提供了处理办法,您多参考下问题很快就解决了。
练得多了,您的水平就提高了,也就越有能力接近实战了。等您开始真正实战干活,苦难还在后边呢,你要吃的苦头才刚刚开始,万里长征才开始第一步。不过请您记住,程序员就是这样:永远的痛并快乐着!等待您的,将是一次次的凤凰涅槃、浴火重生!
怎样才能把算法学好?
上学时候傻,为了校招,看了不下于五本算法书,加上LeetCode,刷了大半年。
总共一两千道题啊……不刷怕考到……忘了刷,刷了忘……毛都快掉没了……
现在工作近十年,辗转几个大厂,由当年的应试者变成了出题人,才知道,完全不必这么辛苦。
任何事情都遵循28原则,我们只要把握住那20%,就能拿到80分!
凡事都讲究性价比!
省下来的时间,谈个女朋友,它不香么???!!!
这里把我这些年的出题经验告诉大家,希望大家知道哪些是重点,应该怎么学数据结构和算法。
直接上干货,我花了两天的时间做了一张图,涵盖数据结构和算法书籍中都会讲到的知识点。并给出了常用算法的平均时间复杂度,对于必须要学的内容前面加了星标
这里面涉及到了近二十种数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;超四十种常见算法思想:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
掌握了这些基础的数据结构和算法,再学更加复杂的数据结构和算法,就会非常容易、非常快。
需要高清无水印思维导图源文件的小伙伴,可以点击这里获取:
算法导图及推荐学习资料下载mp.weixin.qq.com
长文预警,以下内容涵盖了十几年来学习算法的心得,总结出来供大家参与。如果看完这篇文章,还学不好算法,尽管来骂我。收藏是点赞的五倍啊,原创不易,小伙伴们双击屏幕点个赞支持下吧,手动叩谢了。文章写了很久,我相信它一定能帮到你,也希望大家能给我个赞,以示鼓励,谢谢目录:
数据结构与算法的区别数据结构怎么学怎么学习算法算法太难懂?那是你不知道这些模拟网站一、数据结构与算法的区别很多同学搞不明白,数据结构与算法有什么区别,甚至有些同学以为数据结构中就包含了算法。
其实,是字面意思就能知道个大概,数据结构主要讲解数据的组织形式,换句话说,我就是我们要怎样把这些数据存储起来,所以有列表、堆、栈、树、图,这是数据结构的重点。
而算法,则注重的是思想,比如列表里的元素怎么排序、怎么在当前的存储结构中找到最大的数和最小的数?等等,说白了就是解决现实中问题的思想。所以才会有分治思想、贪心思想、动态规划这些经典算法。
二、数据结构怎么学关于数据结构,我想说的是,它是这四大件中最简单、最基础的一个。离开了数据结构,几乎任何的程序都会失效,所以在讨论数据结构的时候,常常要把算法也连带着说一说。
要单纯地掌握常见的数据结构,就如同拆解一个个精妙的仪器件一样有趣和简单。正因为数据结构这个东西在程序中的作用,和仪器部件特别相像,不同的数据结构有着不同的特性,因此要想学好数据结构,图解是必备武器!
这里强推中国大学上,浙江大学的开设的《数据结构》课程,涵盖了常用的数据结构和算法。
辅以教材参考书,强推《大话数据结构》,光看封面你就知道这本书的风格了
没错,这就是大名鼎鼎的《大话设计模式》的作者出的,绝对顶。
三、怎么学习算法算法课常常和数据结构课放在一起,在有些高校中,会存在“数据结构与算法”和“算法设计与分析”这样的两门课。
学习算法的套路很简单,多看、多写、多上机,既然是思想的集合,看得多了,自然无师自通。
至于刷题,很多同学都知道要刷LeetCode。
LeetCode题库:(2123题)
总共两千多道题,而且有些题,非常难,就算每天10题,也至少刷半年。这显然不适合绝大部分同学。
所以,我们要找到最核心、最重要的题集,即可
比如,如果时间紧张,可以先刷《程序员面试宝典》里的题目,总共109题。
刷完以后,有时间,可以再刷《剑指offfer》的题目,共75题。
因为这两本书,都是面向面试的高频题汇总,自然有很多题目是重合的。这也正能说明这两本书的重要性。
如果专攻面试的话,还有两本不错的书推荐:
《编程珠玑》这本书的豆瓣评分非常高,有 9 分。
这本书最大的特色就是讲了很多针对海量数据的处理技巧。这个可能是其他算法书籍很少涉及的。面试的时候,海量数据处理的问题也是经常会问的,特别是校招面试。不管是开拓眼界,还是应付面试,这本书都很值得一看。
《编程之美》这本书有多位作者,其中绝大部分是微软的工程师,所以书的质量很有保证。不过,这里面的算法题目稍微有点难,也不是很系统,这也是我把它归到面试这一部分的原因。如果你有一定基础,也喜欢钻研些算法问题,或者要面试 Google、Facebook 这样的公司,可以拿这本书里的题,先来自测一下。
当然,我也有一本谷歌师兄总结的高频面试算法习题集,包含了常见的数据结构和算法汇总,无论是排版还是内容,都是非常棒。
所有这些书,我都为大家找到并下载好了,需要的小伙伴可以直接领取。这回得帮我点赞了吧
算法导图及推荐书籍资料下载mp.weixin.qq.com
四、算法太难懂?那是你不知道有这些模拟网站算法的难点在于,根本没办法在脑子里抽象出它的步骤啊
对于做个几何题都费劲的男孩子来说,那更是要了他的亲命了。
今天,我就给大家推荐几个算法可视化的网站。
没错,就是写了代码以后,可以看见他们是怎么一步步求出结果的。
1、https://visualgo.net/en
目前网站支持中文,印尼文,日文等多语言版本。
最关键的是,它几乎包含了所有算法!!!!
在搜索选项中你可以根据关键词查找到你想要的算法。
点进去一个具体的算法之后,会有两种方式的可视化呈现方式,一种是电子讲座模式,一种是示例模式。其中示例模式是以动画方式呈现,你可以控制动画的快进与倒退,电子讲座模式是以知识点讲解模式呈现,你可以手动控制页面的进度。两种方式都可以帮助你演示每个步骤的过程代码。
接下来我们演示一下冒泡排序的执行过程,如下图所示:
另外,你还可以创建一组自定义的数,然后让动画显示“你的算法”。
除此之外,还支持在线测试哟~
2、Algorithm Visualizer
在Algorithm Visualizer,大家可以很清楚的看到算法运行的整个过程,很直观,便于大家学习。
大家可以很清楚的看到,网站分为三部分,最左边是算法目录,大家可以选择自己感兴趣的算法,目前已经包括了很多算法了,比如二叉树、图、排序算法、动态规划等等经典算法 。中间区域主要是算法演示以及运行log。右侧是代码以及算法运行按钮。
我们用它来演示一下冒泡排序的执行过程,如下图所示:
同时它是开源的,目前有35K个star,足以可见该项目的欢迎程度,这里推荐给要学习算法的各位。
https://github.com/algorithm-visualizer/algorithm-visualizer
3、Data Structure Visualization
目前已经有很多常用的数据结构与算法的可视化,如:常见的数组、链表、队列、二叉搜索树、红黑树、各种排序等,如下图所示:
比如,我们用它来模拟一个二叉搜索树,如下图所示:
我们再用它来演示一下快速排序算法,如下图所示:
把这些内容学会,算法应该说是非常牢固了,无论是校招还是工作,都已经非常够用了。
但程序员的人生不是只有算法的学习,我们还有校招、面试、青春饭等等的困惑,我把我这些年的所知所得,整理成了一本书,开源到github上了。相信会对大家很有帮助,大家可以去看.
目前还在持续更新,欢迎大家star。
地址:https://github.com/harvic/FightingCoder
好了,这篇就到这了,希望大家毕业都能找到好工作。
怎么才能招到好的PHP程序员?
你可以问一下这几个问题:
php方面
1.了解多少种设计模式,平常生活中用到哪几种设计模式,spl标准库包含哪些,有没有用过composer
2.平常用的多的php框架,说说其中的某个框架哪些地方用到了设计模式
3.做过的最好的项目是什么,数据量有多大,日ip有多大
4.有没有纯个人开发的作品,有的话展示一下
5.做过哪方面的业务? 商城 p2p 企业站 小程序 公众号
6.对协程了不了解,用没用过协程框架?(基本到了与workerman swoole 相关了,算提分项了)
7.有没有自己的开源项目(这个提分)
前端方面
除了上面类似的,前端用过什么框架,做过什么,我一般会多问一个问题。
请谈谈事件绑定和事件委托的区别是什么,在jQuery中是怎样体现的。
一般这个答不出的只能说能写js 但基础不扎实。
我个人不太偏向笔试,因为中国大部分写代码的人边百度谷歌边解决问题,一个问题,一个技术有可能用比写不出来,但用工具能解决,能办事就行。
30岁学零基础编程还来得及吗?
应该负责任的告诉你,只要你想学,什么时候学都不晚。最怕的就是你不学。人的脑子是潜力无穷的,所以从现在起,做好学习的计划,朝着你的理想迈进把。
说到编程,我觉得你最好不要开是学习C++,这门语言对于初学者来说还是比较难的,我建议你学习Java或Python,这两毕竟比较火,而且相对而言,难度没那么高,而且找工作也比较好找。
学编程花的时间最多的就是上机练习。一定要多操作,先把书上的原理先看一遍,明白说的是啥,搞清楚使用的场合与环境,然后跟着案例一起来操作,操作时,不能很机械,要边做边想,如,界面,结果是怎么出来的?做出来后有什么更快的方式?出了问题该怎么解决?
这里面最复杂的就是那些代码后运行出错该怎么解决,很多人都看不懂,不明白怎么解决。其实没有想像的那么难。任何问题都可以通过网络找到答案。即使找不到,要学会分析,知道底层原理,这些错误其实真的很easy,而且我觉得排错是一种很有意思的事情。
写代码方面也有一些固定的风格,标准等规范,多看别人写的代码,多模仿,写多了自然就会有一种感觉,没事多去一些论坛泡泡,可以看人家发的帖子,回答相关问题等。如:CSDN等。
学习编程需要花大量的时间,而根据你的情况,可能需要挤出时间来学习,所以,你每天一定要做好安排,每天学哪些内容,自己要清楚。
你说要学前端方向,Java前端方向不是很难,包括H5,CSS3,JS,JQUERY,note.js等,我个人觉得还是很容易上手的。前端主要 以界面为主,要做出精美的界面其实不断,关键是要有耐心,页面需要大量的调试,需要记的东西也比较多。你在学的时候,可以参看一些学习视频或参加一些前端课程学习一下,对你快速提升有很大的帮助的。
所以,总的来说,你需要的是更多的时间,学历,技能一个都不能少,而且都还要做好,不容易,但是也不难,关键就在于四个字:用心、坚持。
只要用心,凡事都好解决,都可以解决。只要坚持,你就可以成功。祝好运。
软件工程学着有多难?
学软件开发?那可不是闹着玩的。不从事这一行的永远不知道这行的艰辛,还咋巴着小眼睛问编程好不好学?
不知道LZ看没看过圣斗士星矢这部动漫,首先你得问问自己,想学编程,你有没有像星矢一样持之以恒百折不挠一步一个脚印忍受常人无法想象的困难和痛苦的品质,没有?你说我开玩笑逗你,那好,下面的不用看了,因为你确实不适合学。
如果你只想着挣大钱,劝你别碰这行,一句话,别来找虐。为什么?你看到的手机APP,各种应用,要想开发出来,不知道需要多少种技术。拿最常见的网站开发,需要后台数据库mysql,数据格式json,xml,各种网络协议,还有网站开发语言PHP, JSP,ASP.NET,等等不下十几种技术。而每一种技术都是一本厚厚的五六百页的书,需要最少一年多时间掌握一门技术。最要命的,每种技术互不交叉还跨度很大,每种技术都有自己的设计理念和很多很多“天坑”在等着你攻克,你问问你自己,你有这个恒心和意志力天天捧着本大部头的书天天看,天天上机操作学吗?你说有,那好,你看电视上那些富二代天天潇洒地到处游玩泡妞基本于你无缘了,因为你根本就没时间,谈个恋爱都困难,还想打网游玩王者?那算了,你还是别碰这行了,别耽误你玩游戏享受生活了。
程序员加班很恐怖,工作制通常是996,即早9晚9周六还要上班,晚9下班还是早的,一般到晚上十点。你想那时夜深人静了人家都休息抱着老婆孩子睡觉了,你还在工作中,是不是很崩溃?
第2,程序员耗脑太严重。工作中需要十几个小时大脑不停地运转。需要设计算法,不断地把代码改来改去来适应客户一天几变的需求。很多功能没有现成的解决方案,还经常遇到一些天书一样的疑难问题,bug,实际工作中突发状况千奇百怪,你可能见都没见过的bug,崩溃,需要一点一点查几万行的log日志。而且也需要百度,google,英文论坛寻求帮助,理解错误信息是什么意思。所以英文不好的没耐心的还是算了吧,不适合这行。
第3. 程序开发首先是非常难学的,任何一门编程语言都有自己独到的思想,概念设计,很多情况下一门语言与另一门语言没有多大关系,知识经验无法串用。而且工作中你还不得不用到这些技术你不得不去学。而且程序技术日新月异,新类库新SDK每天都会推出,你需要日复一日不断地学习新技术。如最新视频解码技术,游戏引擎等等,而这些新技术可是国内没有书和任何资料的,需要你到英文官方网站去找实例看文档去学,更要命的,新的技术和老的还没太大关联,你得重头去学。而且老板急赶项目不会给你什么时间,一般三天就是极限了,你需要这么短的时间快速掌握一项新技术...
综上,你明白程序员为什么总要加班了吧,也知道这行不是人干的吧。为什么说程序员干到三十干不动。很简单,以这种消磨人生所有时间状态,你生命中只有加班加班工作工作学习学习,你将不能顾家不能跟朋友聚会不能再有自己一点点休闲时间,更别说谈女朋友恋爱了,以这种状态你能坚持到三十岁?我想那简直是个奇迹了