返回首页

如何成为一名合格的程序员?

255 2023-08-16 20:32 admin

一、如何成为一名合格的程序员

很多人想要成为程序员,在学习编程的过程中,面对各种 bug 和源源不断的问题,有时会对自己是否适合编程这一问题产生困扰。

作为一名教授全栈 Web 开发的教育工作者,我已经带领很多新手成为了程序员。好消息是,我发现没有任何人是不能学习编程的。我把它看作是一种基本的人类技能,就像阅读、写作和算术一样,任何人都可以做到。它是我们人类能力的一部分,只是需要学习。

在过去的几年的教学中,我目睹了不同的学生在学习过程中的斗争,以及在他们的挣扎中出现的一些共同问题。

下面的列表将帮助你了解你是否喜欢编程

1、缺乏好奇心

如果你对计算机是如何工作的缺乏好奇心,那么,作为一个程序员,你将永远不会成功。

学习的一个基本要求是对你所学的东西有积极的兴趣。如果你没有一个对技术好奇的头脑,你就没有精力去坚持学习要成为一个成功的程序员所需要的广博而深入的知识。相比之下,技术的世界就像一个巨大的海洋,里面充满了各种有趣的领域、相互联系的思想和各种可能,它们可以激发人们的想象力。想要潜入这片海洋并发现你所能发现的一切,需要内在的动力。

找到你的好奇心:问问你自己,编程是否真的让你感兴趣?如果没有兴趣,去找你感兴趣的东西,以节省时间和精力。但是如果你的答案是感兴趣,那么就强迫自己去发现一些你以前没有注意到的新事物,认识到浩瀚的技术海洋,再往下潜一点。

2、缺乏自主性

如果你不培养自己解决问题的能力,你就永远不会成为一个成功的程序员。

毫无疑问,要成为一个成功的开发人员,你必须对自己的学习能力充满信心。这实际上是一项基本的生活技能,如果你年满 18 岁,没有人有义务教你任何东西。这就是现实。当你想学习技术所需的技能时,首先要学会的是,在谷歌中输入你想要的任何东西并获取你需要的信息。除此之外,所有编程语言都有文档和规范,这些文档和规范对语言的工作方式解释的非常清楚,它们就像字典一样。作为一个程序员,最快速、最可靠的学习方法就是简单地阅读这些文档。

当你有问题的时候,在问别人答案和查阅官方文档之前,强迫自己先搜索一下,节省别人的时间。

3、面对问题缺乏毅力

如果你在遇到问题时轻易放弃,作为一个程序员,你将永远不会成功。

编程的本质是解决问题,这也是计算机产生的全部原因!每当你开始编写一个程序时,你总是会遇到一大堆问题。一旦你解决了一个问题,那么几乎总是有另一个问题在后面等着你。你在进步,但总是会有新的问题要面对。

这堆问题会让人望而生畏,令人感到沮丧。如果你觉得程序应该「能用就好」,那么你就没有精力坚持下去,因为问题还在继续出现,它们会一点一点地击溃你的情绪和决心。从字面上来说,你的工作就是找出程序为什么不能跑起来。

从我在授课上的经验来看,通常每个班都有一两个学生,和其他学生相比,他们似乎更容易遇到更多的问题——通常是非常随机和模糊的问题。我提醒学生,他们面对的问题越多,学习越深入、越彻底的可能性就越大。如果他们能通过这些问题获得深刻的理解,他们会很快发现他们变得更加自信了,因为他们面对和解决的问题比普通学生多。

你需要认识到,问题不仅仅只是问题,它实际上也是挑战。你所面临和克服的每一个挑战都能让你更深入地理解技术,更好地面对新的挑战,并迅速解决旧的挑战。

4、解决问题之后没有成就感

如果你在解决一个问题后没有兴奋感和成就感,作为一个程序员,你将永远不会成功。

与上一个问题相关的是,你成功地解决了一个问题,却缺乏「良好的感觉」。当修复 bug 和问题变成了一个永远不会结束的事情时,你会失去与克服问题的动力。

当你解决一个问题时,你需要的是多巴胺的释放。这类似于在电子游戏中完成了一个关卡,或者解决了一个像纵横字谜或数独这样的挑战。我们都知道,坚持通过一项挑战,然后最终赢得比赛,一般都会有成就感和兴奋感。但是如果你失去了感受这些快乐的能力,或者从一开始就没有真正有过这些感受,你将无法体验到编程带来的快乐。如果你把编程看作是一种磨砺,你只想尽可能容易地得到结果,那么你永远不会真正成为一个成功的程序员。

无论何时,当你解决了一个一直在努力解决的问题时,无论这个问题多么微小,你总是为你的成就感到骄傲。你需要休息一下,祝贺你自己完成了一项出色的工作,让成功的感觉渗透进你的心里,为你即将面临的下一个问题注入活力。

5、无法独立思考

如果你期望别人为你着想,并且主动看到你自己所在的处境的细节,你将永远不会成为一个真正成功的程序员。

当你在学习新的东西时,很容易感到缺乏知识和经验,并没有自己的观点。主动做事或者说错话似乎是有风险的。对于错误,我们的内心都有一种恐惧感。当对错误的恐惧抑制了你的探索和好奇心时,你会扼杀开发真正知识、从经验中获得的知识和「失败」的能力。当你需要依靠「权威」的观点、一个受欢迎的博客、一个最佳实践或「教科书」的答案时,那么你就没有真正地整合编程的知识。你需要对什么有效,什么无效形成自己的观点。你需要理解为什么你认为你的解决方案有效,以及使用这个方案有什么好处。你需要建立一个微妙的视角,超越那些显而易见的东西。你需要能够「证实」你的立场。

为自己着想。通过你的经验和批判性思维技巧,发展出你自己的思想体系。做出合理的猜测,坚定立场,并愿意随着新信息的出现而改变立场。

6、僵化、狭隘、混乱的思维

如果你的思维僵化,并且难以保持代码的条理化,那么你将永远无法成为一名真正成功的程序员。

我有时在学生中看到两个极端。第一种是僵化和狭隘的思维方式。拥有这种态度的人拒绝帮助,尽管会有反馈,但不会有改变。他们看事情只从一个角度看,别人给的建议被忽略。

我看到的第二个极端是思维混乱。学生们似乎使事情变得更加复杂,他们的代码杂乱无章,难以理解。他们过度思考问题,写 100 行代码,而其中只有 10 行 是有用的。

当这两种心态结合在一起时,结果就是一种用蛮力的方法去设计程序。我们需要的是回顾解决方案,重新评估它,放弃最初的方法,并重新组织方法。

无法看到其他可能性或无法反思反馈会抑制成长的能力。思维杂乱无章会减慢你的成长速度,阻止你看到那些原本显而易见的模式。你的工作质量也会下降。

自我反省。你需要退后一步,看看你是接触的事物的大局是什么样子的。你要怎样才能做得更好?你能做些什么让你的生活更轻松吗?你需要什么来帮助你?

7、需要「正确」的答案,而不是识别一系列「好」和「坏」的答案的方法

如果你认为编程的最终目标是找到正确的解决方案,而不是一系列解决方案,那么作为一个程序员,你将永远不会真正成功。

当开始学习技能或编程时,学生往往想知道他们所做的是否「正确」,而答案总是「视情况而定」。

计算机科学是一门评估权衡的科学。在不同的环境下,哪条路更好,这完全取决于所处的环境和目标。当你把编程看作是一个有正确答案或错误答案的测试时,你就失去了对全局的认识,放弃了你的创造力。任何答案都可以是「正确的」,前提是你能根据具体情况证明这一点。现实情况是,编程更像是写诗或写短篇小说(如果程序很大,则可能是小说)。在你的代码中可以看到一种美学和美丽,这些东西有时只有你和其他程序员能够识别出来。你决定解决方案的原因,以及你对答案的设想,比「正确的方式」或「错误的方式」更重要。拥有一个艺术家的头脑可以让你编的程序具有选择和可能性,而不是认为只有一种处理方式。这就是编程的美——有很多方法可以解决问题,考虑不同的可能性,然后决定哪种方法最适合当前的情况。

创造性很重要。你要认识到,解决问题的方法有很多种,通过经验和积累,你会对哪些解决方案比其他解决方案感觉更好产生细微的理解。纵观全局,想象不同的可能性,相信你的直觉,你会得到更满意、更好的解决方案

如果你对学习编程感兴趣,我鼓励你开始这段旅程。记住提到的七条,并开始学习、探索在线资源,这些资源可以让你快速学习。你不会后悔的!

二、3年程序员薪资多少算合格?

这个没有一定的。

如果自己本来毕业的院校比较好,自己的实力也很强,三年也积攒了许多的工作经验,也学习了许多的新的东西,并且自己的开发语言也是非常火,应用很广的,自己的公司也是非常大的上市公司,那么工资一万二到一万五是可以的。

如果自己的学校不咋地,自己的三年也没有学到多少东西,学习能力也不强,自己做的还是那种不太火的语言,甚至就是代码复制或者代码移行,公司也是很小的外包公司或者是对日软件公司,三年能拿八千就差不多了。

三、如何自学才能当一名合格的程序员?

学习选择一个方向,比如运维,测试,开发,前端,开发分为java方向(编程语言排行榜第一),以后可以做java程序员。PHP语言适合BS架构,即以浏览器,服务器为平台的开发,优点是通用性好,开发周期短。

推荐51自学网,黑马程序员视频库。

多写实例,有项目经验。

技术好,有上进心,服从上级安排。

学习能力强,可以为企业带来可观的效益。

四、程序员入职体检怎么算不合格?

一般都没啥问题,除非有传染病,或者比较严重的大病

五、请问各位程序员大哥,如何从零基础成为一个合格的程序员?

学习编程是一个由浅至深的过程,报班是正确的选择,不过从一开始就盲目自学C语言或java c++等语言,不仅对于编程零基础者毫无帮助,往往会使零基础者丧失信心。

那么从哪里开始呢?我这里为你大概列出一些方向,帮助你初步理解编程,但是学习的过程必须任然是一个枯燥乏味,且需要不停练习的过程。

什么是编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程。下面是重点,是零基础者需要知道的。

编程分为硬件编程和软件编程。

先由硬件编程讲起(零基础者必须了解,了解有助于认识编程,)中央处理器又叫cpu,(这里用大白话讲述),cpu有很多向外的线 (术语叫做引脚),它们中有一根线我们以它作为电压0参考,其余的线有两个功能:1.读出这点接入的电路的电压,2.输出电压我们又定义电压U,以U为界限将读取输入的电压分为0,1。在PC,笔记本电脑上,1指电压低于-12V,手机里1指电压高于3V,其他情况为零。对于一块1600万色的屏幕,它可以显示16777216(就是24个2相乘)中颜色,24根线每根线电压为0或1,那么刚好有16777216组合,屏幕会根据每根线的电压大小判断该显示的颜色,对1080P的屏幕有1920*1080个点即2073600(小于21个2相乘),21根线的组合可以涵盖屏幕上的点,显示时,21根线告诉屏幕那一个点亮,24根线告诉屏幕亮什么颜色,当21根线代表的点不是这一点,这一点颜色不会变化,拿小米电视来说1s一个点最多可以改变30次,超过24次人眼就感觉不出来。

好了你该问知道这些有什么用,那么我来告诉你,人类最初的编程语言就是这样工作的,我们叫它“汇编语言”,现在除非你在intel等半导体公司工作,汇编语言已经不用了,零基础者千万别学汇编。下面举一个例子,让一个点显白色 MOV XXX BIN(00000000000000000000000);XXX是自己为那24根线起的名字,括号里24个零。

下面是重点,我想在屏幕上显示0,那就包含了很多点,因为屏幕的显示是1个个点构成的,一个人不可能输完,我可以在另一台计算机上编一个软件(下面会讲到),我写

print(“0”);软件会自动翻译成汇编语言,让cpu驱动屏幕一点一点显示。由“print(“0”)”到汇编语言的过程我们叫编译,为了让软件识别我们也应该制定一套标准,那就是C语言和C++语言(以下统称C语言),C语言简化了编程,但是它只可以用于操作硬件,由一台电脑编完后输入硬件系统,这是初学者迷惑的地方,为什么编出的程序可以在windows上运行,因为windows提供了一套模拟硬件,它模拟的是最早的IBM-PC(许多老师都不知道)。不同的cpu用的C语言是不一样的,但他们的基本结构,赋值规则相同,现行的教材都是以IBM-PC为标准,只要你学完谭浩强的教材,当你接触到新的硬件看完生产商的规范最多半个小时后,你就可以用了。

下面是大家关心的,软件编程,大多数人想编的是在windows上运行的。

现在软件编程包括windows编程,安卓编程,OX编程,linux编程。先讲一下原理。拿windows编程来说,微软公司用C语言编写了能使intel amd的cpu驱动显示器显示的程序,就是windows操作系统,你要编写的程序写完后告诉windows,windows把你写的程序当作想点数标一样的反应。微软自己定义了一套语言,但是开发者学习成本有很高,C语言模拟器又满足不了它的要求,于是微软开发了C#(C#有着与C相同的结构赋值规则),它是专门为windows设计的语言,又是windows开发环境,C#最大化的减少windows开发难度,同时增大不同人间的协作性,WPS、AE、QQ影音都是用C#编出的,只要你学过C语言和C#你就可以在windows平台开发。最后说一下JAVA,随着图形界面的流行,各个系统操作日益相同,如windows,linux,MAC OS,java应运而生,它可以把你写的程序翻译为相似平台的语言,从而在各个平台运行。初学者自学不要碰JAVA,只有学过C语言,C#你才能看的懂。

最后总结一下:

编程首先要学C语言(可以不学C++),数据结构(当编写大程序如wps,学过数据结构能增加运行速度,不学的话也可以)这两者可以让你明白编程的基本规则。

如果你想编写硬件系统,如单片机,windows,安卓(编是一个人是不可能的但该可以),那么你学过C语言,数据结构下一步你要学习ARM,或51单片机,对ARM,或51单片机编程与硬件编程原理相同,之后你就可以看操作系统底层。

如果你想编软件,你要看情况,编windows你要学C#,学完就可以了。编安卓你要学先学JAVA,才能接触谷歌专为安卓修改的JAVA语言。编iOS ,mac os你要学习Object-C。

最后给大家推荐参考书:

C:《c程序设计》谭浩强 没商量

数据结构

《数据结构》 吴伟民,严蔚敏 (适于掌握重点,考试时用)

《数据结构与算法分析》 Clifford A.Shaffer (适于练习时使用)

无论你是报班还是自己看视频,都需要从最基础的开始且不停的练习。这里暂不推荐视频了,你可以自己去网上找合适自己学习节奏的视频。

六、在家自学一年能成为合格的程序员吗?

你居然跟我说自学一年能成为合格的程序员吗?

希望你能够从实际出发

先去面试程序员,如果有幸能进去实习,

把你的见闻,都记录下来。然后感受一下,合格的程序员,都啥样的。

然后再回来学一年,有可能行。

但是,物以类聚,人以群分。就怕你这样的进去了,遇到了一群跟你一样的。

然后项目组倒闭了,你回来自学1年。

那可真的太惨了。

不如,先看看这个再做决断

扶余城里小老二:大一cs学生如何边学算法边买车(需求分析)扶余城里小老二:大一cs学生如何边学算法边买车(抉择)

题主,先把赞点了,再去看。

吃了饭要结账啊。

现在c和c++都只学了一点点,感觉要放弃一个,专精一个,应该专精哪一个?

这个作为点赞的赠品,轻轻奉送

七、合格的程序员一分钟打多少单词

1、程序员自己从来不纠结这种问题

2、如果想要在编程过程中不因为打字而中断思路,至少应该实现大部分内容的盲打。

3、在盲打情况下,每分钟击键100-200下一般是没有问题的吧,很多程序员的输入速度估计比这还要快,当然也有拉低下限的。

4、但实际上程序员每天需要写下的代码量并不是非常大,除了那种外包专门写基础代码的小码农外,每天只写几百行甚至几十行的有很多。更多的时间用来思考怎么写了。

八、黑程序员的都是程序员,为什么?

1、自黑既是一种境界,也是一种沟通方式。在娱乐圈比较常见,在程序员圈也能经常看到程序员们通过自黑来缓解工作压力和表达一种工作状态,这也是他们的一种独特的幽默方式。但某些吃瓜群众信以为真,误会就再所难免。

2、他们熟知程序员的工作内容,且近距离接触,或为朋友,或为同事。在接触过程中,程序员的言行逐渐形成了他们所认为的形象,接触久了,形象就固定了下来,以为大部分程序员都是这样的。以后他们在谈到程序员的时候,就会联想到他们接触到的程序员,脱口而出的便是之前形成的固有印象,实则是某一小撮程序员的形象,并不能代表大部分程序员。

3、多重误会叠加,日复一日,年复一年,程序员就这样被“屌丝”化了。于是经常成为被调侃的对象。

九、此程序员与彼程序员的区别?

此程序员与彼程序员应该没有实质性区别。因为两个人都是程序员,从事同一工作,专业技术都一样,只是在介绍程序员时一种区分。

十、程序员的出路?

程序员可以往以下几个方向发展:

第一:走研发路线。如果程序员未来想在技术领域走得更远,应该走研发级路线,简单的说就是培养自己的创新能力。对于大量目前从事应用级岗位的程序员来说,要想走研发级路线要注重数学能力的培养,因为软件研发问题说到底就是数学问题。对于条件允许的程序员来说,可以重点考虑一下通过读研来完成岗位升级。

第二:走咨询路线。对于长期从事行业定制软件开发的程序员来说,未来可以走行业咨询专家的路线。要想走行业咨询专家路线,需要在平时的工作中积累大量的行业解决方案,并且能够根据技术发展趋势不断完善相关方案。目前行业咨询专家的薪资待遇还是比较可观的,随着产业互联网的发展,行业咨询专家的岗位需求量将持续增加。

第三:走管理路线。管理路线也是不少程序员的重要选择,比如高级项目经理、产品经理等都是不错的选择,另外不少程序员也会转向人力资源管理方面的岗位,比如负责新员工培养以及招聘等工作。在互联网快速发展的近些年来,不少公司都采取“老带新”的培养模式,所以不少经验丰富的程序员逐渐走向了管理岗位。