如何成为一个编程高手

在过去5年中,我面试了数百名IT工程师,我认为很值得把我的面试IT工程师的经验同大家分享。这能够:

●帮助人们为他们的下一个面试准备
●帮助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、至少精通某一种语言和一种框架

这能够说明:
●你既然能在一个领域成为专家,就表明你同样能在其他领域做得一样好。
●你理解这些语言/框架的细节可以让你根据不同技术的优缺点来做出决定。
●你有激情去深究一个项目并且深入语言的最底层。

想要成为专家需要花一定的时间和经历。这里有一些建议:

●尝试做不同的项目,这样能够帮助你理解编程语言。
●阅读其他人的技术博客。 Hacker News是一个很好的技术博客。
●为开源社区做出自己的贡献,例如在GitHub上能够查到你的代码。

4、提高实际编码能力

在这里我们在面试时主要通过3中方法来测试工程师的编码能力:

●你贡献到开源社区的代码(例如,在GitHub上)
●现场编写一段代码
●连续2小时编写代码的挑战

    一个工程师的编码能力的质量和速度是重要的,而这只能来自于实践经验。
    另外,使用合适的语言和框架对于一个项目也是很有帮助的。例如用Python和Ruby等脚本语言可以比使用像Java、C++这类静态语言的许多情况下更快。因为我们知道一个求职者可能在动态脚本语言方面没有太多经验,所以我们面试的时候并没有将其作为重点。
    做一些有挑战的编程测试可以磨练你的技能。网上可以找到了大量的资源,这也可以测试你的编程速度,从而让你可以进一步提升你编写代码的速度。Google Code Jam上面有一些不错的题目。

5、提高您的相关技术经验

    有一些相关工作经验是很重要的:

●这表明你对编程有一定的激情
●你的开发经验可以引导公司里的其他人
●你将会在工作中一鸣惊人。

●你有能力可以探究更多的现代技术,并有一个更加全面的视角


    你可以从你以前的公司里或者其他项目中学到这些经验。

6、结论
  

   当然,在技术方面仅仅是一个硬币的一面。第2部分中,我将探讨非技术方面。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编程高手箴言 是国内知名程序员杨博所著的一本编程哲学书籍。这本书以问答的形式,总结了编程世界中一些重要的原则和思维方式,给程序员提供指导和启示。 书中开宗明义地指出,编程是一门艺术,需要不断的练习和追求。对于初学者而言,需要掌握基础知识和技能,但仅有这些是不够的。真正的编程高手需要具备创造力、解决问题的能力以及良好的沟通与合作能力。 书中提到的箴言包括:“以问题为导向”,这意味着编程者应该了解问题的本质,深入理解需求和目标,而不仅仅关注代码的实现;“代码质量至上”,这强调了编程者应该注重代码的可读性、可维护性和可扩展性;“坚持学习与创新”,这表明编程高手应该不断学习新技术和思想,保持创新的心态;“沟通合作,团队共赢”,这鼓励编程者要善于与他人合作,倡导团队合作和知识共享的文化。 编程高手箴言这本书并不仅仅是给初学者读的,即便是经验丰富的程序员,也可以从中找到新的思路和启发。它强调了编程作为一门艺术的独特性,提醒我们编程是需要不断实践和精进的。无论是从技术层面还是人际交流层面,编程高手箴言都给出了很多关键的指导和经验。 总的来说,编程高手箴言这本书对于成为一名优秀的程序员是非常有益的。从基础知识到思维方式,从个人技能到团队协作,这本书对编程者的启发和指导都是非常宝贵的。阅读并实践这些箴言,相信能够帮助读者在编程世界中更上一层楼。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值