怎样学习编程开发

对于初学者 哪几种编程语言最值得你去学习 | 程序师为你推送和解读最前沿、最有料的科技创投资讯
36Kr股权投资
汇集行业内最优质创业项目的股权投资平台
聚集15家顶级投资机构的专业互联网融资平台
聚集全球最优秀的创业者,项目融资率接近97%,领跑行业软件开发的家园,编程爱好者的天地.
&&|&&&&|&&
初学者,你应当如何学习C
来源:互联网
时间: 11:46
  JavaScript是世界上最受误解的语言,其实C
何尝不是。坊间流传的错误的C
学习方法一抓就是一大把。我自己在学习C
的过程中也走了许多弯路,浪费了不少时间。  为什么会存在这么多错误认识?原因主要有三个,一是C
语言的细节太多。二是一些著名的C
书籍总在(不管有意还是无意)暗示语言细节的重要性和有趣。三是现代C
库的开发哲学必须用到一些犄角旮旯的语言细节(但注意,是库设计,不是日常编程)。这些共同塑造了C
社群的整体心态和哲学。  单是第一条还未必能够成气候,其它语言的细节也不少(尽管比起C
起来还是小巫见大巫),就拿Javascript来说,作用域规则,名字查找,closure,for/in,这些都是细节,而且其中还有违反直觉的。但许多动态语言的程序员的理念我猜大约是学到哪用到哪罢。但C
就不一样了,学C
之人有一种类似于被暗示的潜在心态,就是一定要先把语言核心基本上吃透了才能下手写出漂亮的程序。这首先就错了。这个意识形成的原因在第二点,C
书籍。市面上的C
书籍不计其数,但有一个共同的缺点,就是讲语言细节的书太多――《C
gotchas》,《EffectiveC
》,《MoreEffectiveC
》,但无可厚非的是,C
是这样一门语言:要拿它满足现代编程理念的需求,尤其是C
库开发的需求,还必须得关注语言细节,乃至于在C
中利用语言细节已经成了一门学问。比如C
模板在设计之初根本没有想到模板元编程这回事,更没想到C
模板系统是图灵完备的,这也就导致了《ModernC
Design》和《C
TemplateMetaprogramming》的惊世骇俗。  这些技术的出现为什么惊世骇俗,打个比方,就好比是一块大家都认为已经熟悉无比,再无秘密可言的土地上,突然某天有人挖到原来地下还蕴藏着最丰富的石油。在这之前的C
虽然也有一些细节,但也还算容易掌握,那可是C
程序员们的happyoldtimes,因为C
的一切都一览无余,everythingisfiguredout。然而《ModernC
Design》的出世告诉人们,“瞧,还有多少细节你们没有掌握啊。”于是C
程序员们久违的激情被重燃起来,奋不顾身的踏入细节的沼泽中。尤其是,模板编程将C
的细节进一步挖掘到了极致――我们干嘛关心涉及类对象的隐式转换的优先级高低?看看boost::is_base_of就可以知道有多诡异了。  但最大的问题还在于,对于这些细节的关注还真有它合适的理由:我们要开发现代模板库,要开发activelibrary,就必须动用模板编程技术,要动用模板编程技术,就必须利用语言的犄角旮旯,enable_if,type_traits,甚至连早就古井无波的C宏也在乱世中重生,看看boost::preprocessor有多诡异就知道了,连C宏的图灵完备性(预编译期的)都被挖掘出来了。为什么要做这些?好玩?标榜?都不是,开发库的实际需求。但这也正是最大的悲哀了。在boost里面因实际需求而动用语言细节最终居然能神奇的完成任务的最好教材就是boost::foreach,这个小设施对语言细节的发掘达到了惊天地泣鬼神的地步,不信你先试着自己去看看它的源代码,再看看作者介绍它的文章吧。而boost::typeof也不甘其后――C
语言里面有太多被“发现”而不是被“发明”的技术。难道最初无意设置这些语言规则的家伙们都是Oracles?  因为没有variadictemplates,人们用宏加上缺省模板参数来实现类似效果。因为没有concepts,人们用模板加上析构函数的细节来完成类似工作。因为没有typeof,人们用模板元编程和宏加上无尽的细节来实现目标…C
开发者们的DIY精神不可谓不强。  然而,如果仅仅是因为要开发优秀的库,那么涉及这些细节都还是情有可原的,至少在C
09出现并且编译器厂商跟上之前,这些都还能说是不得已而为之。但我们广大的C
程序员呢?大众是容易被误导的,我也曾经是。以为掌握了更多的语言细节就更牛,但实际却是那些语言细节十有八九是平时编程用都用不到的。C
中众多的细节虽然在库设计者手里面有其用武之地,但普通程序员则根本无需过多关注,尤其是没有实际动机的关注。一般性的编码实践准则,以及基本的编程能力和基本功,乃至基本的程序设计理论以及算法设计。才是真正需要花时间掌握的东西。
对我有帮助
对我没帮助
以下留言只代表网友个人观点,不代表本站观点.1您所在的位置: &
程序员初学者如何自学编程另类版
程序员初学者如何自学编程另类版
初学的程序员通过下面8点开启另类的自学之门,作者告诉我们,要成为程序员靠的是“装”(自学各种知识装进你的大脑),要成为优秀的程序员靠的是“逼”(生活压力逼着你进步),要成为大神那么要结合前两个,那就是装和逼双管齐下,简称装逼。
一、要做大神编程基本要靠自学
俗话说老师引进门,修行靠个人。
编程也不例外。没有哪个培训机构能100%保证能把你培养成啥样。编程不是健身,你的私人教练无法帮你把胸脯练得和他一样大。
不要纠结是否要选培训机构、要选哪个培训机构。实际上如果你强迫自己学一门语言一年,如果还是懵懂的很厉害(譬如连hello world都写不出),那么基本请考虑换个事情做做吧。
一般好的程序员都是靠自学的。就像老板大部分都没上过MBA.
二、开发语言选型
选啥语言?
Php?你会发现学了一半,好像java做的事情更多
Java?你会发现学了一半好像ios开发更有前景
Ios?你会发现还不如android好
Andoid?你会发现其实还是php容易找工作
所以初学者其实很难选择语言。既然难,索性不要急于选。
小建议:不管什么语言,在网上都很容易找到入门教程。这里要说明的是,不建议一上来就买纸质书,一方面现在的纸质书滥竽充数的太多,抄袭太多,另一方面,也贵~~~
我看到过一个学校的专业班级(和企业合作,有php、java和.net三个方向),学生到了大四可以选择进入这个班级,作为企业定向培训。这个班级分类学生很有意思:
1、 老师在网上下载了php、java和.net三个语言的基础教程,分发给大家
2、 每个人分别看入门教程各一天。(只许看第一章,不许动手写程序)
3、 然后选择自己&感觉看的最爽&的语言进行班级语言分类选择。
这就是一个很实践的帮助学生选语言的方式。
三、选一本好书
如果语言确定了,那么选一本书就很重要。
如果你没有项目经验,那么学一门语言基本上靠看网络文章是学不好的。必须买书,因为网络上很多技术文章都有各种错误,我写的也不例外。
一本书好不好,主要看第一章、中间一章和最后两章。基础讲得好,一般不会差。
高级章讲的好,一般也不会差。差的书在于基础部分讲的冗余、隆⑼享常搅烁呒墩陆谝宦佣ㄊ导噬鲜切词榈娜俗约阂膊换幔
看定价,除非书是精装版、经典版、国外版,如果死贵死贵的书,一般都是出版社找个有名声大牛,然后大牛找个专门写书的团队这边抄,那边摘。
四、不管什么不会都不能不会javascript
要么你打算这辈子就搞底层开发了(那么你还敢说你是初学者?还用我教?)
看看google带来的web去世和各种html5应用就知道,如果你还没有工作想学习编程,我建议你从javascript入手,如果这门语言你能学的得心应手,那么今后玩java一定不会玩的太木鱼。
五、Linux学习
微软不做老大已经很多年,大家一定很怀念当年vb6雄霸天下的年代。这个年代如果你还只会windows而对linux一点不会,那么已经不能称之为合格的程序员了。
据统计,学习linux很有助于你学习真正的开发语言。所以如果你一点基础都没有,不妨抛开一切所谓的语言,先把linux学一学,学到一定程度后你必然会觉得豁然开朗。
除非你记性太差,那么linux其实并不难学。
六、不要过早玩开源
这点其实很多忽视了,都以为学编程先弄个开源框架学习。一般来说,好的开源框架集结了多个技术大神多年来的技术经验和思想,你想在毫无基础的情况下学会必然会让你一头雾水。
正所谓:零基础学开源框架属于杀敌一千自伤八百,很不上算。当然也不排除有些奇葩能搞定。
太早玩开源好比早恋,弊总是大于利,但是运气好你成为大神的时间会缩短很多。
七、反向思维写程序
大部分程序员初学编程有个习惯,写完一段代码后想着如何优化。实际上这个办法适合大部分人,但凡事都有例外,并不一定所有人都能这么干并能干成功,反而越写越觉得没有信心,当你也有这种情况时请看下面方法:
这里有个我在一个技术大牛&回忆录&中看到的办法:
先按照教程学习,然后合上书、拔了网线,把刚才学到的内容用程序写出来,注意不要写太多。
编译通过后,进行反向思维,写一段性能更烂的程序,并时刻关注内存耗费情况。
再次编译通过后,重复上述步骤,再写一段性能更烂的程序,并时刻关注cpu耗费情况。
重复上述步骤数次后,你会发现你再也写不出比最后一段更烂的程序了,然后你会发现为了写更烂的程序你竟然把各种知识点都掌握了。
八、开个&淘宝店&
这个办法也是一个很有趣的办法,也是我道听途说来的,据说这个办法帮助了很多人&突然间&成为了程序员。
我有一个朋友的朋友,大学刚毕业,想做web程序员,结果死活学不会,但这货还就是想学,就是想做程序员,谁让他转行跟谁急。
苦于毕业后在家没有收入,于是这货没办法只能先开个淘宝店(自己有一些货源),然后边兼职做淘宝边上一些培训班。
好吧,没想到过了大半年:
1、 舍不得花钱买模板,这货竟然学会了css,还很精通,店铺自装修的挺精美
2、 这货发现原来dreamweaver是这么的好用
3、 最近已经能很犀利的把你的照片PS成裸照
4、 为了宣传自己的淘宝店,开了一个博客来宣传自己的产品(wordpress学会了)
5、 他突然发现自己会php了
6、 有段时间他的博客瘫痪了,在数据移植和恢复的过程中,他mysql基础学会了
据说现在开了微信服务号,正在搞微信接口开发,并熟练开发了html5页面。一个实战级的程序员就是这么从零开始产生了。
最后,想告诉大家,要成为程序员靠的是&装&(自学各种知识装进你的大脑),要成为优秀的程序员靠的是&逼&(生活压力逼着你进步),要成为大神那么要结合前两个,那就是装和逼双管齐下,简称装逼。
原文练级:【编辑推荐】【责任编辑: TEL:(010)】
关于&&的更多文章
每年的一月份大约都是在看似忙忙碌碌中度过的。最近一段时间,北
网友评论TOP5
作为移动开发者,WOT2016移动互联网技术峰会,绝对有你不得不来的理由。
讲师: 0人学习过讲师: 35人学习过讲师: 58人学习过
在脚本语言领域,Lua是最快、最高效的脚本语言之一,
2014年节假放假安于这周出台,80%的公民对此次的放假
进入12月份,一年的日子到头了。年末总结什么的也都开
本书对第1版的某些章节作了合理的调整,增加了部分实用的程序,并在每一章的最后加了适量的练习题,以巩固前面所学的知识,更加有利
51CTO旗下网站

我要回帖

 

随机推荐