学习别人的方法,借鉴

来源:互联网 发布:java不能重载运算符 编辑:程序博客网 时间:2024/05/21 08:32

三个多月来的工作和学习小结

毕业到现在做web开发已经三个半月了,现在总结一下最近三个月来的工作和学习

本人喜欢写博客,所以总结最近三个月的工作和学习需要参考之前的博客文章---csdn@PHP淮北

列个表格吧,看着也比较方便:

时间

事项

六月

七月

八月

九月

工作任务

前端页面

服务端页面

地图定位

服务器搭建

图片上传

视频文件信息的获取

关键词

Css+div+js

PHP,谷歌maps,jquery

Centos,Nginx,图片上传

Ffmpeg,flv

博客文章数量

11

14

42

15

通过上面的表格可以大概知道自己工作内容和学习的东西

下面是个人三个月来的一点小总结:

①  ,之前没有接触过前端,导致做前端页面的时候总是忘了测试浏览器的兼容问题,,修改自己的布局和js,给用户一个很好的用户体验!这是一个细心活需要耐心!

② 学,如谷歌maps开发,谷歌api有很好实例供你使用和学习,也许官网是纯英文网站,这个貌似英文阅读能力也是程序员的一个瓶颈!

③ Phpliunx,通过配置centos下面的lamp环境,第一是学会熟悉liunx命令行操作模式,第二点就是熟悉lamp环境的具体配置,之前在xp上面都是使用集成开发环境包,对具体的配置文件还有这四则之前的关系,不慎了解,通过lamp分别安装,对PHP的底层工作原理和lamp四者之间的关系了解更加深入

④ Nginx服务主要存放静态文件,css 图片,视频文件,他的最大优势就是反向代理功能,处理高并发的请求时性能据说是apache的十倍,具体的我没有测试,但是通过nginx服务器配置文件和apache的配置文件的对比,就可以感觉到nginx的配置文件相当简洁清晰,相反apache配置加载的模块就比较庞大,就像一个瘦子和胖子,在百米冲刺比赛上,很明显瘦子很占优势。一般的网站架构会两个服务器都使用,各取所长,使用nginx负责静态文件,apache负责php页面

⑤ 谷歌还是百度关于搜索工具的选择之争很多,我这里只是说一下个人使用他们解决工作问题的一点体会:假如你是搜索一个新的知识点,谷歌搜索的第一页:一般是官网网站或者wiki百科,还有就是一些优秀的博客文章。百度搜索的第一页:一般是百度知道或者百度百科,还有一些就是一些靠转载为主的网站,这些网站一般小广告很多,文章转载的不全或者代码没有什么高亮,看起来的话有点费力。个人感觉对于学习新知识的话:以官网或者优秀的博客学习为最佳材料。

⑥ 写代码重要还是流程重要?接到新的工作任务时一般都是上来就写代码,写着写着感觉自己都不知道要解决什么问题了,可能这个问题解决,但是相关的一些问题却出现了,于是有赶紧解决其他问题,总是感觉写程序像是在打补丁,不停的修改补充,这样的代码是不可取的,反思总结的结果就是;接到新任务之后一定要搞清问题的流程和步骤还有一些相关问题如何解决,这些都是需要提交在流程图体现出来,谋定而后动,这样有计划有流程的去做,可以减少返工的几率和避免一些以外问题的发生!

⑦ Liunxphp结合的一个优势就是可以使用php调用shell命令,有时候靠php自身很难实现某些功能,但是liunx可以编译某些组件,可以通过shell获得,那么在使用php调用shell命令,这样处理问题真是太方便了!例如本人使用ffmpeg这个linux组件获得视频文件的缩略图,还有视频文件的长度,格式,尺寸等等信息,如果纯粹靠php这些问题恐怕是很难搞定的

⑧ 对liunx的学习还有一点就是对计算机工作原理有一定认识,例如大家经常说的是对于一个大网站来说数据库通常是瓶颈,但是自己却从来没有理解他,在看鸟哥的liunx的时候,里面有关于计算机工作原理的简介时:说缓存的主要作用就是缓冲高速的cpu和低速的i/o操作,而对数据库的读取就是属于i/o操作,这也就解释了为什么大网站需要对数据库进行频繁的读取所造成的瓶颈了

⑨ 写代码一定要养成良好的注释习惯和命名习惯还有文档说明手册,经常遇到命名很相似的方法没有注释说明,例如我要修改你一个返回url的一个方法,数据库里面只有一处存储url的,我在类文件里面看到一个getHistoryVideourl方法,前面注释着获得视频的url的功能,我修改本地测试ok,上传到服务器就是没有效果,后来老大直接在服务器测试url返回值,我发现他使用另外一个方法getVideoUrl,我靠,这个没有注释,返回值也是urlgetHistoryVideourl的返回值一样,于是赶紧修改这个,最后还是没有效果,我郁闷了一天,整个流程可能出现的问题,我排除了就是没有效果,第二天我意外的发现还有一个叫getVideoInfo的方法,同样这个也没有注释,但是里面的sql语句是slect * from table_video.....,也就是这个方法把video的相关信息全部返回,我试着在这个方法里面修改url,靠,居然是这个方法,整整浪费了我一天半的时间,真是坑爹啊。。。

⑩ 工具的选择,良好的工具确实可以帮助人高效的完成任务。写php的话我一般使用eclipse,写前端页面的话使用dwdw有时候很卡占内存太大,可以使用nodepad这小巧轻便的工具临时调试php或者前端页面!数据库管理工具建议使用sqlyog之前使用navicatphpmyadmin,但是和sqlyog比起来,那些工具只是弱爆了,word的话我喜欢wps因为他可以提供很多使用的插件,像截图,表格染色等等,很实用也很高效。



下面是个人的不足和反思:

======================================================================

1:对应高性能开发缺少认识和实践机会,我知道大家都喜欢谈高性能网站,但是我目前还没有接触到这个大网站大流量的问题,只知道理论但是不知道怎么操作

2:对性能没有做过很深的思考,对于工作也是只是完成,或者达到老大的要求,但是我感觉当流量很多的时候,我的程序估计要重新,对于我目前做的这个小网站来说,写代码基本上考虑不到性能的影响,因为数据量小,以后的工作重点之一就是要加强对程序性能的思考,不能只是完成任务,还要深度思考程序性能。感觉大公司就比较好点,每写一个sql都要考虑性能,在大公司环境下很容易思考深度比我们深!

3:关注新技术,但是不知道如何使用这些技术,如何把这些项目运用到自己的项目中去,之前学习mongodb还有nodejs,但是也是了解而已,感觉这些东西如果不做到项目里面,自己真的很难理解。。。实践很重要

4:英文一个问题,因为很多就是都是英文官网,需要加强英文学习

5:对计算机组成原理和数据结构的学习,上大学的感觉不重要,现在感觉很多深度问题都是要回归到计算机原理和数据结构上,书到用时方很少啊。。。

6:一般学习语言都是从基本语法学习,我感觉要先搞清他的工作原理,再次带着问题或者带着解决工作上面的问题去学习语法,这样可能更高效,基本工作原理有时候可以让你避免陷入语言的陷阱里,让你从更高的角度思考问题

作为程序员为什么一直都很努力,却没有进步?

 

我们一直很努力,为什么却感觉到没有什么大的进步?不知道大家有没有这样的感受,

这是一篇关于反思类的文章,作为程序员我们一般自学的方式有哪几种,个人归纳其他大致三点:

第一种:看书,第二种:看视频教程 ,第三种,看博客文章等

先说第一种,买书,作为初学者经常做的事情就是买书,

什么畅销书排行版,什么热门图书统统的都买,

个人认为这种方式不推荐,书有很多种,我认为对计算机类的图可以大致分为两种

①基础类的图书,这种图书一般是对基本语法知识为准的图书,像什么零基础学XX系列的图书,这样的书我们可以买,可以作为语法手册,入门级的图书,你可以熟悉这门语言的最基本内容,这个属于基本功必须滴。当然现在网上有很多手册找其他也很方便

②应用类的图书,本人曾买过一本XX语言应用详解,刚买回来我的前辈翻了几页就说,里面全是tmd代码,一本书除了代码和注释,就没有几句话,如果这样也能出书的话,那我都可以出几本书了,话虽有点偏,但是事实就是这样,在书上看代码,很是吃力,第一你不能调试,第二你也不是他写的代码是不是有误,第三:调用方法和类的时候,你要翻几页找这个方法,这种图书如果不是连续看,很熟悉的看,坐在马桶上都在看的。。。那真是坑你妹的图书。。。。,因为过两天你都不知道他要解决什么问题了

是不是当老师习惯了,连视频教学都跟学校上课时间一样,一个普通的安装教程要四五十分钟?我搜了一篇安装教程的文章,整个步骤不到八步,从下载到安装,整个过程不到二十分钟,一切搞定,假如我看视频学习的话,如果边看边安装,最理想情况下需要四五十分钟,如果是看完后在安装,安装这个需要一个小时以上,本来二十分钟的事情现在要搞到一个小时才搞定,这不是坑爹吗。。。。我们的时间就是这样被一些无端的弱智的视频给摧残了。。。

术类的博客,

这些博客大概也能分两种:

第①种就是说明类的文章,基本上就是说明阐述介绍的文章,本文就是属于说明类文章,这样的文章可以博得大家哈哈一笑或大发感慨或者大骂一翻。或喜或悲或怒,它(文章)都在哪里,过几天你就会忘的,因为人的记忆有遗忘规律,你也不会以外,除非你不是。。

第②种:含有代码类的技术文章,一般的人只喜欢看,很少动手真正的去实践调试一份,可能你发现一篇很牛逼的文章,如获至宝,但是真有那么大的效果吗?大家都学习过英语,经验告诉我们:天天看四六级词汇的人,未必能写的出四六级词汇,天天学习英语的人,未必说的出流利的口语,原因在于何处:缺乏真正的实践,仅此而已!

前几天我在centos上安装curl,谷歌了几篇安装教程,差不多都是复制转载的,考虑到这么多人转载应该是没有任何问题,安装出错的时候才发现,都少了一步,真坑爹,所以啊当年邓爷爷他老人家总结:实践出真知,此言不虚啊!

古人经常说的知行合一,就是强调学和用同样重要,反观各位都是以知为主,而不是做到知行合一!

总结:

己的极限,基础类的买几本倒是无妨,偶尔看一些发现几个新语法或者对某人基础知识加强深刻倒是不错。

②看视频:大家要有选择的看,不要太让视频带着我们的思维去走,而应该让视频为我所用,让视频解决我现在困惑的问题,而不是我已经知道和无关的问题,这样的人很少,因为这样的是一般都是善于学习,选择性学习的人,他知道有所学有所不学,这样的人不是很多。

③看博客:对于代码类的技术文章,建议大家动手去实践,如果能把他融入自己的项目之中,效果更好!

****************************************************************************************************

准备升级学习的时候:勤动手,写代码.。其实知道的很多并不重要,实践了很多这才牛逼

③当你读万卷书行万里路之后,再回来考虑思想上问题吧

本人小小见解,如有不同意见欢迎拍砖留言!

 

向中级程序员转变必备的10个秘诀

 

1.学习另一门语言 其实你学的是哪一门语言并没有关系,但是学习另一门语言(不管你已经了解多少种语言)将把你打造为更好的程序员。能学会一门与你日常使用的语言风格迥异语言则更佳。打个比方,如果你是C#程序员,学习VB.NET或者Java对你的帮助就没有学习Ruby或者Groovy大。我说学另一门语言的意思是要真正学会它。学习一门语言包括三个领域的知识:语法、内置操作符和库,以及如何使用。前面两个简单;我认为一名有经验的程序员,根据语言的不同,能在半小时到几小时内掌握足以维护代码的语法知识。操作符和库只不过是知识逐步积累的过程,你什么时候想清楚要了解什么了,再去查阅参考材料也不迟。只有第三项,如何使用它”-花上你几个月的时间去跟这门语言打交道,真正的奇迹就在此发生。我建议用这门语言的风格去做一个适合该语言的项目。真正学会了另一门语言之后,我敢保证你的程序员水平一定会突飞猛进。

  2.学习先进的搜索技术、手段和及策略 作为一名好的程序员,不仅仅是技能的问题了,而是你寻找信息的技巧,这个趋势越来越明显。对大部分人而言,仅仅输入“现代语言及开发框架”,这都是泛泛之 谈,记不住多少的。因此,你完成工作的能力通常取决于你的检索能力。不幸的是,了解到如何找到准确而高质量的信息可不仅仅是跑到TechRepublic来找答案,或者在你选好的搜索引擎上敲几个字那么简单。 “技术(Techniques)”、“手段(tactics)”和“策略(strategies)”看起来是一回事,实际上并非如此。你需要学会的技术是 掌握你喜爱的搜索引擎的高级搜索系统;你需要了解诸如布尔操作符,如何过滤结果(像“非”关键字,域限制等等),关键字的词序扮演什么角色,等等。一句 话,RTFM(Read The Fucking Manual,读那些他妈的手册)吧。 你应该学会这些手段,诸如如何接近特定的搜索,以及了解自己实际上想查些什么。查错误很容易—只需查出错代码即可—但是许多搜索的关键字选择要困难得多。 至于策略,你需要学会的东西,包括像应该使用哪种搜索引擎(提示:普通的搜索引擎不一定就是最佳选择),使用普通搜索引擎前应该访问哪个网站,甚至是应该 到哪个论坛去寻求帮助,等等。

  3.帮助别人 教别人始终是学习一切东西的最好方法之一。相对而言,由于你在开发领域还是个新手,认为自己没什么可教给人家的,这可以理解。但这毫无意义。记住,你所学 到的一切都是你从别人或别处学到的;因此请尝试一下,成为另外一个人要请教的“别人”。每天尽量花一点时间试着回答TechRepublic上的问题,其 他网站的亦可。读读其他会员的回答,你也可以学到很多东西。

  4.有耐心,常练习 研究表明,要成为一名“专家”,需要花费10年,或者10000到20000小时的刻意练习时间。真的很久。还有,成为专家不尽然就是执行10年同样的任 务;通常这意味着要在特定领域内执行广泛的任务。需要花费大量的时间和精力才能成为“专家”;做几年程序员是不够的。想在30岁左右成为一名高级软件开发 工程师?要么尽早接受教育/培训,要么你得愿意在闲暇时间进行大量的工作、阅读和练习。我从高中开始编程,还牺牲了许多休息时间去跟踪行业发展、学习新技 能等等。结果,我获得中级和高级程序员的时间就比我的大部分同事都要早得多,随着时间的推移,这些就转化成为很多的金钱

  5.对教条拒之门外 是时候开诚布公了:也许初级程序员了解的东西还不足以说出做某件事情有一种最好的方式。尊重朋友或者权威的观点是好的,但直到你更有经验之前,不要把他们 的观点说成是你自己的。很简单,如果你所了解的不足以让你独立地找出这些东西来,你又怎么会认为你知道哪一位“专家”是对的呢?话是难听了点,不过请相信 我;由于受某些愚蠢建议的蛊惑,或者追随某些根本不知道自己在说些什么的所谓专家,白白把自己的职业生涯耽搁了几年,这样毛头小伙程序员,我见过多了。这 一点有一个很好的例子,就是面向对象结构的滥用。比如说,许多初级者读了一些有关面向对象的信息后,突然间,他们那简单的应用程序的类图看起来就像埃菲尔 铁塔一样了。

6.深入学习一点先进理念 成为一名中级程序员,很大一部分是要在代码里面体现出一些所擅长的概念。就我而言,是多线程/并行性,是正则表达式,以及如何对动态语言进行变化(后两个 在我离Perl渐行渐远后开始退化)。这是如何发生的?多线程和并行处理是因为我读了相关文章,觉得它看起来很有趣,然后再自己把它弄清楚了;然后我就一 直使用这些技术来写应用。我做过一件工作,是用Perl写的,里面运用了大量的正则表达式。我也用一个过程引擎模板内置数据库系统写过我自己的电子商务 引擎;那时我几乎花了2年时间在这上面。 找到真正令你着迷的东西。也许是图像处理,也许是数据库设计,等等。即便你是一个入门级的程序员,也要尝试一下成为某一自己所关注领域的专家。这会让你相 当快速地进入到中级水平,一旦你到了那个水平,你的专家之路也走到一半了。

 7.学习你的领域里面的基本理论 写出“Hello World”,跟理解那些字是如何显示到屏幕上的是两码事。通过学习支撑你所从事的工作的“基础/底层工作(groundwork)”,你会变得更加在 行。为什么?因为你会理解事物为何会以这种方式运作,当东西坏了就能知道是哪里的问题,等等。通过掌握工作的底层机制,你变会得更出色。 如果你是Web程序员,读读HTTP RFC和HTML规范。如果你使用代码生成器,好好看看它生成的代码;如果你使用数据库工具,看看它生成的底层SQL语句,不一而足。

8.看看高级程序员的代码 在工作中看看高级程序员写的代码,然后问一问事情是如何以某种特别的方式完成的,为什么?可能的话看看开源的项目。甚至即使其他程序员没有最好的编程习 惯,你也会学到许多编程经验。当然,要小心别学到坏习惯。我的意思是说不要生搬硬套人家的东西;你要能领会到哪些是能行的通的,哪些是有道理的,然后再模 仿人家。

9.学习好的习惯 愚蠢的变量名,糟糕的缩进习惯以及其他一些凌乱的迹象就是一个没有经验的程序员的最好标记。一个程序员在学会如何编程时,却经常没有被传授到那些不那么有 趣的细节,像代码格式编排。甚至尽管学习这些东西并不会令你的代码更好,也不会令你成为更好的程序员,它也会确保你不被同事视为入门级的程序员。甚至即使 某人是高级程序员,如果他的变量是以他那97只猫的名字来命名,或者其函数叫做“doSomething()”的,他们看起来也不像是知道自己在干什么的 人。而且会令其代码在过程中更难以维护。

10.要玩的开心 想要痴迷于单调乏味的工作?痛恨工作吧。要想升级为中级程序员可不仅仅是为了拿到不断增长的工资不达目的誓不罢休,而是要真正享受工作。如果你不喜欢自己 的工作,且还是初级程序员,你怎么会认为成为中级或高级程序员情况就会有所好转呢?换工作或改职业吧。反过来说,如果你喜爱所从事的工作,那就好!只要你 坚持下去,我保证你能成为一名更好的程序员

 

程序员该如何学习新知识

 

想必大家都不是张无忌,人家三十年才可以练成的乾坤大挪移,张无忌大侠两个时辰就可以搞定,作为一个普通的程序员,经常遇到很多新技术和新知识it界就是这样,日新月异,
那么我们如何学习一门技术和新知识呢?下面是我粗浅的几点建议

第一:精通一两门语言

大家都听说过术业有专攻这个词,作为程序员一定要一个立身安命的技术,这个技术可以让你不失业,至少也能混口饭吃的就是需要精通一两门语言,对于你选择的这两门语言是你以后长期饭碗的保障,俗话说:老婆孩子奶粉钱全指望它了,所以对于这个技术,你花再多的时间学习都不可惜,这个知识一定要精通在精通

 

第二:快速学习其他新知识

现在谈谈大家比较关心如何学习新知识问题,我认为如果不是长期要跟这门技术打交道,没有必要对着门技术做太深的研究技术那么多,你根本没有时间样样精通,这里遵守的几点原则:

 

1:二八原则:记得曾经有人说过:百分之八十的问题只需要百分之二十的知识就可以解决,同样对于一门新技术,可能你买一本厚厚的图书,那么你是否需要全部看完呢??假设你看完这本书,然后再去实践,你会发现其实你只需要使用到了这本书的百分之二十,也就是说:你花了一百的精力学习,其实你只用到了百分之二十的知识。新知识是无穷的,而人的精力是有限的,有限的精力和无限的新知识也就决定你不可能全部去这样做,你需要选择性的去学习,选择书中的百分之二十的知识去学习。

 

2:为了工作去学习听到这个词可能会有人怀疑,怎么能抱着这样的心态学习呢???
下面听我解释:我们学习的目的是什么??是为了解决工作上遇到的问题还是为了以后?
如果为了以后,请查看上面第一个:精通一两门语言。如果是为了解决工作问题的,那请继续看下去:举个例子:同样看一本书,你是自己漫无目的的学习和看收获的多?还是你知道你需要了解学习什么的而去看收获的多?如果你不是张无忌也不是神童侠,那么显然带着目的的学习效果高于眉毛胡子一大把的学习,而什么是你的学习目的呢?很显然是为了解决工作上面的问题,所以你需要针对性的学习,选择性的学习。


原创粉丝点击