如何成为一个程序员

如何成为一个程序员,第1张

如果想做一个程序员,在没有基础的情况下,买书自学是一个办法。但是大多数人会因为没有相关的基础知识,导致看书看得一知半解,因为有不同的语言,不同的开发环境,在你不了解的时候,买的书不一定合适。

比较速成的办法还是去报名一个培训班,系统的学习一下基础知识,然后选择一个发展方向,再具体的针对性的买点书籍来学习。

程序员是一个不停学习的岗位,你需要每天除了工作以外,花一定的时间了解新的技术或正在使用的技术的原理,这样才能一直提高,不然,可能会被淘汰。在你了解代码以后,你还需要了解逻辑,就等于你要熟悉你所从事的这个领域及行业。

注意事项:

不管任何行业和任何工作,概念的理解都是成功的关键。除非你有强大的概念基础,否则就不可能成为一名优秀的程序员

核心概念的理解有助于你用最佳的方式设计和实施解决方案。如果你觉得你现在还没有好好掌握关于核心计算机科学和编程语言的特定概念,那么现在回过头去重新学习这些基础知识犹未晚矣。

首先,你需要选择一门自己感兴趣的编程语言。现在常见的编程语言有:

C / C++:属于大多数情况下能接触到的相对基础的编程语言了,优势是基本掌握以后面对其他语言均可以“无压力”;坏处是学习起来非常的困难,需要系统性的了解非常多知识点,且耗时一般较长。如果你有更多的时间和精力,同时希望能够长期更好的发展成架构师,那么这可能就是你比较合适的语言选择了。

Java:应用广泛,几乎大多数开发场景都有java或者java变体的身影。学习java你可以了解到面向对象思想,了解虚拟机等的概念,面对常见的开发也能够有应对方案。同时这个语言对比C/C++能简单不少,在很多情况下是面向新手比较合适的选择了。

Go:最近一段时间流行起来的语言,在面对高并发等场景下有天然的优势。Go语言有自己独到的特性,同时也可以支持一些C语言的能力,而且也越来越在国内的互联网公司作为首选开发语言之一。

PHP / Python / JavaScript / net / Swift / :这些语言大多有自己的特定应用场景,比如Python在大数据和人工智能领域比较常见,JavaScript是前端开发的必备语言等。如果你希望的工作有比较强烈的语言要求,那么选择上面的语言准没错。

                                 

其次,掌握数据结构及算法,同时能够通过程序语言实现。

比如常见的数据结构,像是数组、链表、堆、栈、队列、树、图等,尽量都有机会了解数据结构的实现原理(包括自己用代码能够简单编写),知道数据结构的优缺点,以及在什么场景下使用。算法原理上如时间空间复杂度,一些数学概念;同时一些经典的排序、与数据结构结合的实现,也应当有了解。

这些推荐你去找专业的书籍,系统性的选择;尽量减少如面试宝典等取巧的方式,深入掌握不仅仅是找工作,在后续的工作中也能更好的帮到你。

                                 

再次,了解计算机基础。

常见的计算机基础包括计算机组成原理(简称机组)、 *** 作系统、网络、编译原理等。这里需要投入比较多的精力,如果确实时间上比较紧张,可以有侧重的选择。

比如你希望从事偏底层的开发工作,那么更侧重在机组和 *** 作系统上;如果侧重在上层开发,那么可以侧重在网络上,以此类推。当然,更好的掌握以上知识能够在很多不经意的时间给到你帮助,如果有空,也建议多深入的理解。

最后,知道一些计算机知识的应用。

这里就比较多了,比如数据库、一些基本的项目设计、项目实战等等,根据你希望的工作有针对性的去了解,或许有不小的帮助。

按照上面这几个步骤进行下去,可能确实需要投入一定的时间和精力,但是一旦你选择希望成为一名程序员,就一定要坚持下去,才能取得更好的结果。

学习能力:互联网是一个日新月异的行业,所以对于码农来说,一定要具备不错的学习能力。学习能力一般会从两个维度来看:学一个新事物的能力,从经验中学习的能力。学习新事物的能力,不同面试官考察会很多。可以从项目中用到哪些新技术,怎么学的;或者让候选人介绍自己学某个东西的过程,从这个过程中考察候选对新事物的接受程度,学习的一些思路。我个人更喜欢考察从经验中学习的能力。比如这个项目,如果现在给你时间和资源,重新开始做,你会有哪些优化的方案?为什么?码农很多的经验都是从实践中来的,那实践之后有没有及时总结思考,是直接决定这个人成长速度的关键。

团队协作:前面说过,我们做的事情不是原子d实验室,是需要高度团队合作的。那面试中一定绕不过去的就是团队协作能力的考察。比如你有没有自己做过项目负责人?做负责人中都出现哪些问题,怎么协调的?如果你是一个APP开发,那跟后端接口怎么协商,改接口怎么处理,各种校验逻辑放在客户端,还是服务端如何PK?产品改需求,怎么处理?项目中你的方案被别人否了,怎么处理?这些问题都是考察候选人在多人合作中出现问题,能否换位思考,能否有大局思维,以及一些基本化解冲突的经验和技巧。

抗压能力:码农是一个非常烧脑的行业,特别是线上出问题的时候,一定是血压飙升的时候,所以抗压能力也是考察的一个重要维度。抗压其实就看这个人为了一个目标能不能排除万难,坚持下去,在某种程度上你过去的经历可以体现你的抗压能力。比如卫哲老师有一次分享,说问一个小孩,你这辈子最苦的事情是什么?人家说有一次从杭州到上海的高铁,居然没有座位,我整整占了1个多小时……这样的人我肯定不敢要。所以面试中,面试官会经常问你做过一些有困难的事情是什么?或者举例说下自己如何坚持做一件事的。

综合能力包括的面很多,比如我一直觉得优秀的人一个基本素质一定主动性,这是贯穿整个综合面试中最重要的一个素质,可以从项目中看到你是否在积极推进项目进度,可以从你学习经历中看你是否主动思考,可以再抗压考察中看到你能主动排出万难,达到目标。任何一家公司都不希望找一个只是被动等待分配工作,做好分内事情的人,一定希望这个人能有全局思维去推动事,还能不断自我学习和总结。

此外,有的面试官会关注思维能力,比如我曾经校招面试时,就被问到一块蛋糕切成18份,至少需要切几刀?这个是见仁见智的一些考察方面,不做评价。OK,码农除了技术之外的基本能力模型和素质:沟通能力、学习能力、团队协作能力、抗压能力,以及最最重要的主动性。

以上就是关于如何成为一个程序员全部的内容,包括:如何成为一个程序员、小白,想入门程序员,应该从什么开始学,顺序是什么、怎样成为一个好的程序员等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9343330.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存