如何从零开始通过自学计算机编程成为编程高手!需要看那些书籍,有联系性的!

25266人阅读
C/C++(20)
windows(7)
创业(12)
●帮助人们为他们的下一个面试准备
●帮助IT工程师找到合适的工作。
●帮助IT工程师创造更好的环境。
我们通过两个方面面试IT工程师:
●技术技能:包括理论和实践技能以及经验等。
●非技术技能:性格,沟通技巧,是否能够融入我们的文化环境。
第1部分中,我将主要从技能部分讲述。
1、一个IT工程师应该具有的技能
我认为实用技能包含3个方面,如图1所示:
& & & & & & & 图1
这些都是很重要的:
●编码:你必须能够在限定时间内编写出高质量的代码。
●经验:具有相关经验表明你对该行业的热情,并能够在一开始就进入工作状态。
●理论:理论知识是IT工程师的基础,好的理论知识能够让你快速解决新出现的问题。
而准备工作面试的过程是一个提升自己各种能力的绝佳机会。
1、提高你的理论知识
(1)学习C语言
& & C语言是编程的基础。因此,学习C语言能为我们了解高层概念打下坚实的基础学习C语言的基础知识并不会花太长时间,只需要几个星期的时间一般就能够掌握。C没有太多的抽象封装,这就使得C语言相对简单,和其他人一样我学习C语言是看《C Programming Language》这本书(我们可以看谭浩强的书)。
& & 一旦你能够真正理解C语言中的指针和内存管理,C就会变成一门有趣的语言,因为它将帮助我们从处理器层面(底层硬件)来理解语言,而这正是其他大多数的高级语言所不具备的。同时了解这些概念,也将有助于你了解更高层次的语言工作。
(2)了解数据结构和算法
& & 虽然在网站/应用程序开发中编写复杂的算法和数据结构比较少见,但是数据结构和算法在我们编写复杂系统的时候将会影响我们的思维。即使你不需要编写自己的数据结构,你也可能会在编程中使用到他,因此,了解基本的选择是至关重要的。
& & 我推荐这本书,《算法导论》。由于这本书是很长,如果你没有时间把他读完,那也要学习其中的排序,哈希表,二叉树,字符串匹配部分。
& & 一旦你很好的掌握了数据结构和算法,你会发现这些概念将只是将你做的每件事都总结成问题而已。
2、比较编程语言
一开始,你会经常接触多中编程语言。你可能还需要快速学习新的语言和概念。
为了加快学习,学习不同语言有助于我们了解他们的概念以及他们的相似及不同之处。
最好的办法是在下面每种风格的语言中学一门语言:
●底层:C语言。
●面向对象:JAVA,C++等。
●动态语言,高层次的语言:python, ruby 等
●函数式语言: Lisp, Erlang, Haskell等(之前将其翻译为功能性语言,感谢的纠正)
3、至少精通某一种语言和一种框架
这能够说明:
●你既然能在一个领域成为专家,就表明你同样能在其他领域做得一样好。
●你理解这些语言/框架的细节可以让你根据不同技术的优缺点来做出决定。
●你有激情去深究一个项目并且深入语言的最底层。
想要成为专家需要花一定的时间和经历。这里有一些建议:
●尝试做不同的项目,这样能够帮助你理解编程语言。
●阅读其他人的技术博客。 是一个很好的技术博客。
●为开源社区做出自己的贡献,例如在GitHub上能够查到你的代码。
4、提高实际编码能力
在这里我们在面试时主要通过3中方法来测试工程师的编码能力:
●你贡献到开源社区的代码(例如,在GitHub上)
●现场编写一段代码
●连续2小时编写代码的挑战
& & 一个工程师的编码能力的质量和速度是重要的,而这只能来自于实践经验。
& & 另外,使用合适的语言和框架对于一个项目也是很有帮助的。例如用Python和Ruby等脚本语言可以比使用像Java、C++这类静态语言的许多情况下更快。因为我们知道一个求职者可能在动态脚本语言方面没有太多经验,所以我们面试的时候并没有将其作为重点。
& & 做一些有挑战的编程测试可以磨练你的技能。网上可以找到了大量的资源,这也可以测试你的编程速度,从而让你可以进一步提升你编写代码的速度。上面有一些不错的题目。
5、提高您的相关技术经验
& & 有一些相关工作经验是很重要的:
●这表明你对编程有一定的激情
●你的开发经验可以引导公司里的其他人
●你将会在工作中一鸣惊人。
●你有能力可以探究更多的现代技术,并有一个更加全面的视角
& & 你可以从你以前的公司里或者其他项目中学到这些经验。
& &当然,在技术方面仅仅是一个硬币的一面。第2部分中,我将探讨非技术方面。
(翻译并不一定完全准确,但是满足基本的阅读应该没问题)
原文地址:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:339806次
积分:4222
积分:4222
排名:第5586名
原创:77篇
转载:65篇
评论:104条
(3)(1)(1)(1)(1)(5)(5)(2)(10)(20)(15)(11)(19)(9)(1)(1)(7)(6)(14)(11)& 给程序员的五点建议--如何成为编程高手并以此创业
给程序员的五点建议--如何成为编程高手并以此创业
&&&&&& 写在前面:此篇文章出自雷军之手,是他为软件开发2.0技术大会准备的演讲稿,但由于某些原因没有派上用场。这里跟大家分享下,对我们来说还是大有裨益的。&&&&&& 每个IT企业,尤其是初创企业,非常苦恼:找不到好的程序员。现在大学、软件学院及各种培训机构,每年培养几十万的程序员,毕业的每个人都有同样困恼:找不到好的工作。问题出在哪里呢?其实,企业需要的是不是刚会写程序的人,需要来了就能干活的人,尤其能把活干好的人。而刚毕业的大学生多半刚学会如何写程序,的确很难企业需求。&&&&&& 企业到底需要什么样的程序员,一个刚入门的程序员如何成为企业需要的高手呢?还有很多程序员问我,&我需要具备什么样的能力就可以去创业?&我一直在琢磨类似的问题。我自己写过十年程序,也在金山管理过一千多人的研发队伍,最近也在做天使投资,仔细总结了如下五点建议与所有程序员分享。&&&&&& 建议一:只有真正喜欢才能写好程序&&&&&& 喜欢写程序,做程序员就是上天堂;&&&&&& 不喜欢写程序,做程序员就是下地狱。&&&&&& 程序员需要整天趴在电脑前,经常没日没夜的,非常辛苦,而且工作来不得半点虚假,少写一个标点符号都不行。喜欢的人,日子过得非常开心,每写一行代码,都会有新的成就,尤其当自己的作品被广泛应用的时候,那种自豪感油然而起。不喜欢的人,坐在电脑前极端无聊,被进度压得喘不过气来,天天为找bug改bug生气。&&&&&& 只有喜欢,只有热爱,才能把程序写好!&&&&&& 我建议不喜欢写程序的人早点转行,不要勉强自己,免得误人误己。&&&&&& 建议二:把程序当艺术品,象写诗一样来写代码&&&&&& 现在很少有公司做 codeview (对写好的程序做代码级检查),于是很多人在进度的压力下潦草应付,只要测试通过就算搞定。表面上看,开发速度很快,进度有保障;但实际上,这样的程序连开发者自己都很难读懂,一旦有bug,很难调试,将来维护升级都非常困难。这样的代码多半只能重写,浪费自然严重。&&&&&& 如果每个人写程序的时候当艺术品来写,写每行都认认真真、干干净净的,虽然速度略微慢了一点,但综合的开发成本会低很多。&&&&&& 如何写像诗一样美的代码呢?方法也很简单。&&&&&& 一、买几本经典的编程书,把书上所有例程全部重新写一遍,逐个比较和书上范例的差距,一步一步改善自己编程的风格和技巧。时间长了,自然就能写出象书上例程一样的代码,甚至可以比书上写得好。&&&&&& 二、基础扎实后,多看看Linux 等系统级的源代码,看看高手是如何写的,就有感觉了。&&&&&& 三、通读一下MSDN中所有的资料,这样,&读书破万卷,下笔如有神&。&&&&&& 还有,一定要牢记软件工程的铁律:可能出错的地方一定会出错。每个变量都做初始化,引用每个参数都会做有效性检查,在可能出错的每个地方都会做边界条件检查,这样开发出来的程序一定会稳固很多,就是出错也会很容易修改。野路子出来的高手,一般开发速度很快,但做完后bug很多,经常需要很长时间修改。而真正的高手,追求的境界是 bugfree code(零缺陷代码)。&&&&&& 建议三:必须写够十万行代码,不要心存侥幸&&&&&& 程序员象木工一样,熟能生巧。程序员必须写足够代码量的程序,才会有感觉,这是一个苦力活,没有任何捷径可走。&&&&&& 计算机是一门实践性的科学,没有动手能力做支撑,很难做出好的科研成果。我的一个学长是美国卡内基梅隆大学的博士,卡内基梅隆大学计算机系在全世界非常出名,他说每个博士生必须写十万行代码才能毕业,卡内基梅隆大学博士进任何一个大企业基本不用面试。而国内培养的大部分研究生、博士生,动手能力都偏弱。&&&&&& 没有写过足够代码量的,想成为高手是不可能的,只能纸上谈兵!&&&&&&&建议四:时刻保持好奇心&&&&&& 计算机技术更新换代非常快,每年都有各种各样的新技术出现。在我过去的职业生涯中,仅编程语言,我就用过 basic、masm、pascal、、vba、Delphi、 等。需要时刻保持好奇心,不断学习各种新的东西,才能在未来的几十年职业生涯中不落伍。你要理解为什么 iPhone 出来很多高手用,现在一天到晚惦记着换部 gPhone 玩玩。&&&&&& 人的精力有限,高手往往工作压力也比较大,如何在有限的时间内掌握整个行业动态,的确是一个不简单的事情。我的经验是经常看业内的各种技术杂志,参加各种聚会,可以节约很多时间。最重要的是,交几个博学的技术高手,多和他们交流,一定获益匪浅!&&&&&& 建议五:不要局限在技术本身,多花点精力关注用户&&&&&& 做到前面几条,就已经是千金难求的高手了。但一个真正的高手需要知道用户需要什么,如何做出让用户满意的产品。&&&&&& 现在的软件研发越来越强烈团队协作,不少团队都配置了专门的需求分析的工程师、用户界面及用户体验的设计师,软件研发的分工越来越细。很多程序员以为只要把技术搞好,不用管用户需求和用户体验。实际上,需求方案及界面方案不可能写得非常细,具体的实施还是程序员自己来实现的。这个时候,好坏的差距很快就体现出来了。&&&&&& 我们写程序的最终目的是满足用户需求,不是简单完成需求规划方案中的功能。所以,程序员一定要认真揣摩用户心理,能明白用户的真实需求。&&&&&& 其次,怎么设计交互界面,让用户觉得好用,用起来舒服,这里面学问很大。我举一个小例子,每个程序窗口右上角都有三个按钮,如最小化、关闭等。乔布斯觉得不好看,不易用,他提出改用红绿蓝的交通灯。这样修改后,果然 Mac OS 漂亮和易用了很多。&&&&&& 目前互联网和手机上的应用开发,都非常强调小团队研发。这样研发模式速度会快很多,但对程序员的综合素质的要求也就更高了。&&&&&& 我强烈建议程序员不要仅仅局限在技术本事,还需要多点精力考虑和用户相关的问题,学会洞察用户的需求,并努力设计好用易用的产品。做着这点的程序高手,创业成算就很大了。&&&&&& 这些就是我说的《创业十大标准》中提到的&技术过硬&要求。&&&&&& 这样的技术高手,如果捕捉到合适的产品方向,并且具备一定带团队的能力,创业成功机会很大!事实上,绝大部分创业的技术公司,创始人都是这样的人!比如迅雷的邹胜龙和程浩,UCWEB的何小鹏和梁捷等。
除非特别注明,文章均为原创
转载请标明本文地址:
作者:鸡啄米
&&( 22:55:43)&&( 0:9:11)&&( 22:13:38)&&( 22:0:1)&&( 21:35:55)&&( 21:18:20)&&( 21:53:41)&&( 22:4:12)&&( 21:56:47)&&( 21:53:16)
不错的建议,必须支持下!
编程是脑力活啊,不会
这样的技术高手,如果捕捉到合适的产品方向,并且具备一定带团队的能力,创业成功机会很大!
好久没来了,最近忙的找工作
实习生我感觉只要心态好,干活肯学还是进步很快的,我们公司有几个想去你的那个实习单位 于
13:06:15 回复你好你是哪个实习单位,我可以去吗?
非常好的提议,很不错!
我是物联网博客,第一次来!欢迎回访
这个建议不错,支持一下!
楼主,你自己是程序员吗?
只有喜欢了,才能做得长久,才能找到乐趣。鸡啄米 于
23:06:03 回复说的很对
兴趣是最好的老师。
养成良好的编程习惯很重要鸡啄米 于
22:51:50 回复对,养成习惯以后也就没那么累了
像我这个学程序不久,又面临着毕业就业的孩子来说,着实感到不小的压力……总感觉学的东西太少,时间又很少摆好心态吧,慢慢学,一点点进步
完全随机文章}

我要回帖

更多关于 自学计算机编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信