搜索
首页后端开发php教程关于计算机专业的人如何学好编程

这篇文章是写给低年级的人的,已经工作的就不用来看我废话浪费时间了。
最近总是有人问如何确定自己方向的问题,说是看到有的人在搞手机,有的人在搞网页,有的人在搞游戏,还有其他的什么的,然后说自己只懂得这么一点东西不知道该怎么办之类的事情。我一直在一些做软件开发的群里面混,里面有很多学生,也有很多从业者。那些人对于人们在基础不够扎实的情况下就“做各种各样具体的项目”有两种说法,一种说是浮躁,另一种说是这样开阔眼界是好的。
大学就四年。学校通常安排前两年学数学英语,然后大一学语言大二学数据结构。到了大三有很多比较具体而且复杂的课程,然后就要找实习,大四其实就是在找工作,课也没有,卫生也不检查了,等于在租学校的宿舍住。
于是在这短短的三年里面想在计算机那么多领域里面找到自己喜欢的,然后钻研下去,最后还有所成就的话,还是比较难的。因此很多人经常会看到自己周围突然有两三个人就干了点什么很有成就感的事情了,一问,以前学过的。这种人我也接触了几个。我有一个同学说是高中的时候被称为代码狂人,给emule写了点代码,然后还自己做了个即时通讯工具卖了出去。到了大学就一直在重写这个东西,最后实习就到腾讯去了。前几天还遇到个人,说是小学就在折腾flash里面的action script了,后来投靠perl,说是一直到了大一才写了一个超过2000行的程序。我也没去求证,只是觉得比较不可思议。
于是我想,就照着那些传统的路子先搞定一门语言(《C++Primer》),然后学数据结构(《算法导论》),再去学点库(《STL源代码分析》《深入浅出MFC》),之后弄点设计模式(《设计模式》),最后写个某某管理系统(笑)什么的,也是无聊了点。竟然要学了那么多东西,才能弄出一个看得见摸得着的程序,也太考验人的意志力了吧。几乎是个人都是从拖控件开始的。那些一开始就摸着黑白屏幕狂搞算法的人,要么是NOI出身,要么是ACM出身,然后对着几道算法题乐此不疲。但是最后有所成就的,很少。我在学校认识了那么多个ACM出身的,最后也就一个去了google。感觉风险还是有点大啊。
但是反过来也是有问题的。要是一开始就从界面开始弄,人也是很容易浮躁的。很多人因此就陷入了对花花世界的追求了(根据对群里面的人的统计),譬如说特别关心怎么在ListView前面画棵树什么的。这种人里面,其中一些有追求的,最后都会沿着Windows SDK,再走到DDK,最后写驱动,一脚踏进泥坑,从此不能自拔,当然这些人也是少数。每当有少数人人对着剩下的多数人说跟“我今天实现了让Word不能打开某某文件”差不多的这些事情的时候,他们两眼大放光芒,然后就开始跪求源码,狂问用了什么API,最后当代码终于到手的时候,就放进之前精心准备好的一个文件夹里面,封存万世,从此再也不去看了。当然也有其他的版本,譬如说老是下载书,而且还是rar,然后从不解压一样。曾经有这么一个人就在群上炫耀说自己有多少多少G的电子书。我让他上截图,结果全是rar。根本就没看嘛,他自己也承认了。
于是怎么看两条路都是很有危险的,这就是为了什么到了大四的时候,能学成的人总是不多的缘故。 太容易陷进去了 。这是什么意思呢?人总是只对自己做得好的事情感兴趣。对自己还没做的事情感兴趣那种是好奇,需要严肃对待。当人终于做好了一件事情之后,就会一直不断的钻研下去,这当然是好事。但是,从此只见树木不见森林,以为全天下的编程就那一件事情,那当然是要吃亏的。
所以首先要开阔眼界,知道世界上原来还有这么多的东西可以做。 在差不多知道编程是什么东西的时候,需要这个玩一玩,那个玩一玩 。不然就会看到旁边的同学这个用java在手机上跑一个能告诉你1+1=2的东西,那个人用PHP+MYSQL弄了个留言版,看得唾液直流,心里发慌,说自己对着C++的黑白屏幕弄了这么久居然连那点小玩意都做不出来,自尊心很容易受到打击的。
于是在玩过了之后呢,要及时收手,就专门做一件事情好了 。因为这个时候自己已经大概知道自己看见的东西差不多就是那个样子,想做自己也做得出来,看着别人写那些花边的程序也就不会给自己施加太多压力了。专门做一件事情的意思就是,选定一个方向,然后找书,找人,看代码,写程序。 譬如说可以去弄图形做游戏,也可以去弄脚本引擎做做编译器,还可以跟着老师去搞什么数据挖掘啊嵌入式什么的 。对一个领域的深入研究最大的用处是可以让自己接触 复杂的问题 。
当然,当研究得深入了之后,程序就越写越大了,这个时候就会出现很多各种各样的问题了。譬如说效率太低啦,程序一出错就要全盘推倒重来啦(这个还是比较可悲的),代码太多很难组织函数啊类什么的啦,或者说名字给你用光啦等等。这个时候就需要各种各样的理论知识了,譬如说数据结构与算法,还有设计模式什么的。当然讲来讲去也就这几样,因为“这世界上没有银弹”,所以那些通用的东西必然不多,剩下的还是要靠在同各领域里面其他人的积累或者自己的研究才能最终解决的。
上面所说的可以做的各种各样的事情还是偏向于理论化一点,其实有一个学术上的领域还是不够的,因为最终一个程序在跟计算机打交道的时候靠的是输入输出,也就是俗称IO的东西了。这究竟是什么呢?也就是说,知道那个地方放着你要的数据,你要把它拿过来。你自己算出了什么,知道要往哪里放,你要会放。这里面包含的东西很多,譬如说典型的,键盘和屏幕上的输入输出,网络要用的Socket啦Web Service啦,那些看得见的窗口啦控件啦,读写硬盘啦,还有其他什么的。这种 在某一平台上的专用的API 都是至少要熟悉一种的。不然你光学会这个算法那个算法有什么用啊,譬如说你想对一个图片进行压缩,专门学了那个知识,但是一个bmp放在硬盘上你却读不进来,那岂不没意义了么。
于是说了这么多,无非就是刚开始的时候要去见识世面,然后挑一个来慢慢研究,最后研究着研究着程序搞大了,就自然会碰到很多高级的问题了。这个时候去解决了,其实本科需要你具备的水平其实也差不多达到了。
所以很多人都洗心革面,终于开始努力研究一个领域的问题了。领域总是复杂的,这个时候会遇到很多编程上的问题,譬如说算法太复杂表达不出来啦,文件读着读着就挂啦,一不小心越界了之后造成了很多奇怪的问题啦(C++)等等。这种关于调试的问题,一般只能够靠自己错得多错得离谱了,最后就成才了。当然前人也总结出了经验,写了本叫《 Why Programs Fail 》的书,想看的话可以自己去下载。其次, 具体的库总是有很多书和文档的,没事也要多看点 ,譬如说用Visual Studio的人都得把MSDN给装了。
话也差不多说完了,虽然我自己也觉得这篇文章比较虚,因为这也是“通用的东西”。具体自己该怎么办自己得好好想想。我就把这篇东西献给现在大一大二那些还在迷宫里转的弟弟妹妹了,要是有什么特殊的疑难杂症的话,就私底下联系我吧。
总之,无论什么时候,手头上都要留有一个可以研究的问题才好。
免费领取LAMP兄弟连原创php教程光盘/《细说PHP》精要版,详情咨询官网客服:http://www.lampbrother.net
PHPCMS二次开发 http://yun.itxdl.cn/online/phpcms/index.php?u=5
微信开发            http://yun.itxdl.cn/online/weixin/index.php?u=5
移动互联网服务器端开发   http://yun.itxdl.cn/online/server/index.php?u=5
Javascript课程   http://yun.itxdl.cn/online/js/index.php?u=5
CTO训练营                http://yun.itxdl.cn/online/cto/index.php?u=5



声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP的当前状态:查看网络开发趋势PHP的当前状态:查看网络开发趋势Apr 13, 2025 am 12:20 AM

PHP在现代Web开发中仍然重要,尤其在内容管理和电子商务平台。1)PHP拥有丰富的生态系统和强大框架支持,如Laravel和Symfony。2)性能优化可通过OPcache和Nginx实现。3)PHP8.0引入JIT编译器,提升性能。4)云原生应用通过Docker和Kubernetes部署,提高灵活性和可扩展性。

PHP与其他语言:比较PHP与其他语言:比较Apr 13, 2025 am 12:19 AM

PHP适合web开发,特别是在快速开发和处理动态内容方面表现出色,但不擅长数据科学和企业级应用。与Python相比,PHP在web开发中更具优势,但在数据科学领域不如Python;与Java相比,PHP在企业级应用中表现较差,但在web开发中更灵活;与JavaScript相比,PHP在后端开发中更简洁,但在前端开发中不如JavaScript。

PHP与Python:核心功能PHP与Python:核心功能Apr 13, 2025 am 12:16 AM

PHP和Python各有优势,适合不同场景。1.PHP适用于web开发,提供内置web服务器和丰富函数库。2.Python适合数据科学和机器学习,语法简洁且有强大标准库。选择时应根据项目需求决定。

PHP:网络开发的关键语言PHP:网络开发的关键语言Apr 13, 2025 am 12:08 AM

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP:许多网站的基础PHP:许多网站的基础Apr 13, 2025 am 12:07 AM

PHP成为许多网站首选技术栈的原因包括其易用性、强大社区支持和广泛应用。1)易于学习和使用,适合初学者。2)拥有庞大的开发者社区,资源丰富。3)广泛应用于WordPress、Drupal等平台。4)与Web服务器紧密集成,简化开发部署。

超越炒作:评估当今PHP的角色超越炒作:评估当今PHP的角色Apr 12, 2025 am 12:17 AM

PHP在现代编程中仍然是一个强大且广泛使用的工具,尤其在web开发领域。1)PHP易用且与数据库集成无缝,是许多开发者的首选。2)它支持动态内容生成和面向对象编程,适合快速创建和维护网站。3)PHP的性能可以通过缓存和优化数据库查询来提升,其广泛的社区和丰富生态系统使其在当今技术栈中仍具重要地位。

PHP中的弱参考是什么?什么时候有用?PHP中的弱参考是什么?什么时候有用?Apr 12, 2025 am 12:13 AM

在PHP中,弱引用是通过WeakReference类实现的,不会阻止垃圾回收器回收对象。弱引用适用于缓存系统和事件监听器等场景,需注意其不能保证对象存活,且垃圾回收可能延迟。

解释PHP中的__ Invoke Magic方法。解释PHP中的__ Invoke Magic方法。Apr 12, 2025 am 12:07 AM

\_\_invoke方法允许对象像函数一样被调用。1.定义\_\_invoke方法使对象可被调用。2.使用$obj(...)语法时,PHP会执行\_\_invoke方法。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.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版

EditPlus 中文破解版

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

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。