程序员如何自学(什么是程序员怎么学习成为程序员)
本文目录
- 什么是程序员怎么学习成为程序员
- 零基础到能工作的程序员时间要多久,该怎么做
- 程序员如何小白变大神
- 普通程序员如何通过自学达到重点大学IT类专业毕业学生的知识水平
- 掌握学习知识点、缩短学习周期,程序员如何快速入门
- 如何自学成为程序员
- 程序员如何快速学习并使用API
- 程序员是怎么学习算法的
- 无经验想入行程序员该怎么自学
什么是程序员怎么学习成为程序员
笔者是2019年校招进京东集团的软件开发工程师,即所谓的程序员,来回答这个问题再适合不过了。看了回答的各种必须是计算机专业、参加培训机构等惨不忍睹的答案,觉得有必要来回答一下。
(1)什么是程序员?
程序员其实是一个很广泛的概念了,程序员主要参与技术研发,而技术研发又分为硬件研发程序员和软件研发程序员两大方向,软件又分前端开发程序员、后端开发程序员和安卓开发程序员等,后端开发有根据开发语言分为具体的Java开发程序、Python开发程序员等,Java开发程序员又分......上图吧
从外人来看,程序员是
(2)怎么学习成为程序员?
成为程序员,我觉得兴趣第一。程序员要学习的技术十分众多,还得学得十分扎实,而且技术更新迭代十分快,得保持十足的持续学习热情。所以呢,没有兴趣爱好支撑,你是很难入门程序员的,还很难持续的做下去。
其次,学习的话,给自己定一个目标,目标尽量的细,就跟你小学写作文立题目一样。程序员是一个庞大的概念,只有从一个细微的点切入,才能在其中做得格外专业,在社会立足。比如笔者,几年前想成为一个Java程序员,便开始搜索Java相关的知识,从最基础的JavaSE入手学习,其次再涉及web方面的内容JavaWeb,接着接触企业开发常用的技术框架SpringBoot等等,一路走下来....
其他的方向类似,以此类推。
最后欢迎来京东做朋友呀,入职时拍的Joy~~
零基础到能工作的程序员时间要多久,该怎么做
零基础就挺难了,因为现在行业在高速发展,别说是零基础了,就是现在在职的这些程序员他们也得是在不断的学习才能不被行业所淘汰,如果真要想进入行业的话可以先找培训机构学习一段时间,先入门,再学精
程序员如何小白变大神
c c++ java等语言,都是程序员所需要学的。想要学好java首先推荐精读effective java和thinking in java,有个Java学习路线给你参考下:
C语言是基础语言,C++是衍生语言,Java是当前较为流行的语言。
之前有传言说软件市场供大于求,可是在我看来,程序员及软件市场还远远没有饱和。随着网络发展,软件开发等人员供不应求,只要你学的好,有过跟项目的经验,和应聘公司所需要的人才类型相符合,多半都可以找到合适的工作。
能介绍的就这么多,你可以作为参考,可能并不具体。
普通程序员如何通过自学达到重点大学IT类专业毕业学生的知识水平
这个问题,我从几方面回答一下,普通程序员和重点大学的程序员差在哪?有必要通过自学达到重点大学毕业生的专业水平吗?这么通过自学提高自己的技能。
差距
一个远古时代的故事-龟兔赛跑,当你停滞不前的时候,别人一直奋力前行,取得应有的成就,也是他应得的。在现实世界中,不是龟兔赛跑,而是两只兔子在竞赛,而且你可能面对的,还可能是一只不骄傲,不自满的兔子,之前浪费的时光,已经很难再补回来了,或者说,想要赶上对手,你必须将浪费的时间补回来。
说这些,只是想给你打个预防针,努力很重要……
01
我不太想说普通程序员和重点大学毕业的,在编程方面差距有多大多大,事实上,这种差距只会体现在同一时期程序员的面上。比如一个培训半年出来的程序员,和一个985刚毕业的学生,企业一般会要985的,因为他的潜力更高。
02
很多人认为,重点大学毕业的学生,编程水平更高,这个观点绝对是错的。
张非可以说是高考传奇人物,参加诗四次高考,两次得了状元,被清华北大录取,却因为沉迷网络被两次劝退。可见,重点大学也不见得全都是高材生。
同理,普通程序员也不见得水平都很一般,当中也有高手。
04
所以,从编程水平上看,初期谁也不比谁差,更重要的是知识积累、编程思维、自学意识、自学能力之间的差距。
有必要吗?
当然有必要通过自学提升自己的水平,前面讲过,知识积累很重要,哪怕它是理论的,可能在工作中用不上的。记住,不要太过于实用主义,有些东西影响一个人是潜移默化的。
当然,技能升级,也很重要。
自我提升
重点部分,圈起来要考!
做了张图,有点丑,见谅,主要是想说明一下他们的关系和重要性。
需求
我想说,学历只是敲门砖,真正限制你发展的,一定不是什么学历,而是技术。满足企业的发展需求的程序员,才是好的程序员,所以努力提高,并拓展技能才是王道。
技能
当你已经完全能满足企业职业需求的时候,你需要拓展一下你的技能和系统的学习一下一些知识了,可以将自己所需的一些技能画出来,然后再按部就班的学。
举个例子,如果你是前端工程师,下面的这张图可以做参考:
知识
这点我想多强调一下,这里所说的知识,指的是工作、编程以外的知识,这也是重点大学出来,跟普通程序员的区别,千万别两耳不闻窗外事。之前我见过一个十几年的码农,那代码叫一个乱,而且很多新的东西也都不懂,虽然他是做外包的,给小企业做做网站也还够用,但无疑的发展会受到很大的限制。
总结
1、普通程序员和重点大学毕业的程序员,差距不再于编程能力上,而在于知识面、编程思维、自学意识、自学能力上。
2、不要去刻意追求和重点大学毕业生平起平坐,因为他们所学的知识,很多在工作中都用不到。
3、从三方面提升自己:需求、技能、知识面。
做到上面的几点,我相信你一定不会比重点大学毕业的程序员差。
——摘自W3Cschool学员的回答
掌握学习知识点、缩短学习周期,程序员如何快速入门
我做软件开发工作多年,也给不少大型科技公司的程序员做过技术内训,在带软件开发团队的过程中也见证了很多程序员的成长,在我看来,一个程序员要想快速的成长起来需要具备以下几个因素:
第一:对软件开发感兴趣。对于一名初级程序员来说,要想能快速的成长起来,第一个因素是一定要具备主动学习的动力,而兴趣是最好的驱动力之一。我遇到过不少通过自主学习而快速成长起来的程序员,这些程序员往往对软件开发工作都非常感兴趣。
第二:通过实际项目锻炼。初级程序员要想快速成长起来,一定要多参加实际的项目开发,实际项目开发过程能迅速提升程序员的动手能力和项目实践能力,而项目经验往往是判断一个程序员能力的重要因素。有不少初级程序员在做项目之前感觉自己差距非常大,但是当完成一个实际项目之后,通常都会建立起一定的自信,再通过几个项目的锻炼基本上就会逐渐成长起来了。
第三:项目负责人非常重要。对于初级程序员来说,如果遇到一个能力非常强的项目负责人也会对自己的成长起到非常大的帮助作用,这就是为什么优秀的团队往往人才辈出的原因,就是因为有优秀的土壤,而这个土壤就是优秀的项目负责人。有不少资质看起来比较平庸的程序员能够快速成长起来,一个重要的原因是遇到了优秀的指导者。
程序开发是一个门槛相对比较高的工作岗位,即使是做初级程序员也需要一个较长时间的学习过程,对于初学者来说,要给自己制定一个系统的学习计划,如果在刚开始学习的时候能有人指导一下还是会节省不少时间。
我使用C、Java和Python的时间比较久,我在头条上也写了关于学习Java和Python的系列文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有编程语言方面的问题,也可以咨询我。
谢谢!
如何自学成为程序员
题主学校不错,对编程有兴趣,又有充足的时间可以自学,我认为有很大几率成为一名程序员。
编程语言的选择
如果让我推荐的话,一定会有失偏颇的,因为我做了12年的Java开发,让我说一定会建议学习Java的。
最好可以多接触一些编程语言,看看觉得哪一种适合自己,还需要根据目前市场上各种语言的就业情况,选择性的学习。其实很多编程语言都有着类似的原理和语法,可以先选择深入学好一门。
学习编程基础课程
题目中“本人武汉某985一名化学”,我也不太确定是在读还是毕业,我就当是在读吧。
大学期间的课余时间比较富裕,可以在学习编程语言的同时,补一下计算机专业的课程。(不是先学好基础再写代码,一方面因为基础课程很枯燥,另外一方面会写代码,学习基础课程的时候可以实战练习)
主要的课程有:计算机组成原理、数据结构、计算机网络、操作系统。
如果有可能的话,可以去蹭计算机专业的课;当然如果能选择双学位的话,就更好了。
实战
这里的实战,不是说让你找项目做,找实习单位,这些对于现在的你还是有些困难。
首先,在学习一段时间基础课程和编程语言之后,就可以多接触这个语言生态圈下的开源框架了。比如你选择了Java,那么就可以学习Spring一系列的框架,并用这个框架做一些小的项目。推荐使用Github,把你每天练习的代码都提交上去,积少成多,量变产生质变。
另外,可以把平时的学习记录都写下来,比如博客;可以找一些活跃的社区,多发言、多提问、多回答问题。
这两点做好,一方面是提高你的编程能力,让你的学习过程没有那么的枯燥,另外一方面,可以让你认识一些圈子里面的人,有助于你未来找工作。
而且Github和博客上的内容,可能会是你未来找工作的加分项。
我将持续分享Java开发、架构设计、科技前沿、程序员职业发展等方面的见解,希望能得到你的关注。
程序员如何快速学习并使用API
对于应用级程序员来说,每天都要跟各种API打交道,不同的API完成不同的功能,但是简单的总结一下,这些API其实只完成一件事,这一件事就是资源管理。所以了解API实际上就是了解各种资源,以及如何调用这些资源来完成一个具体的业务逻辑处理过程。
通常来说,API有三种大的类型,其一是操作系统API,其二是编程语言API,其三是应用平台API,不同级别的API能够完成不同的资源管理。要想快速学习并掌握这些API,应该首先从了解操作系统、编程语言和应用平台自身开始。
以大数据平台API为例,在学习API之前,应该首先对整个大数据平台有一个整体上的功能认知,知道大数据平台的基本组成(分布式存储、分布式计算等),知道使用大数据平台能做什么事情,然后再去了解怎么通过大数据平台去完成这些事情,而这个时候就需要了解API了。
对于程序员来说,通篇阅读API是很奢侈的一件事情,通常软件任务的开发周期并不允许程序员这么做。
所以了解API需要从功能实现的角度来入手,而通过功能来了解API需要完成具体的实验,而要想通过实验快速了解API,一定要选择有代表性的实验。选择有代表性的实验需要注意三个方面,其一是实验能否代表平台的主体应用方向,其二是实验是否全面涉及到了平台的主要功能,其三是实验是否有良好的组织结构。所以,通常在了解API的时候,都会从平台的官方实验开始,然后逐步深入。
当然,程序员在学习一个平台API的时候,通常都是带着任务的,如果能够找到与目标任务类似的实验,那么会极大的提升学习和开发效率。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网方面的问题,或者考研方面的问题,都可以咨询我,谢谢!
程序员是怎么学习算法的
把自己变笨,要进入计算机的世界,每次只能进行一步计算。最难的算法都是需要迭代理解,比如链表逆转,如果空间足够大,可以把所有链条断开并且都保存起来,用递归:头部的指针直接给临时指针,临时指针变头部指针继续循环,直到找到尾部的指针,然后头尾交换,完成转换。
public Node reverseList(Node node) {
if(node.next == null) {//当最后一个节点的时候返回return node;
}
Node temp = node.next;//得到当前节点的下一个节点
Node returnNode = reverseList(temp);
temp.next = node;//下一个节点的下一个节点为当前节点实现逆转
node.next = null;//实现逆转前链表的头结点为为节点
return returnNode;//返回逆转后的链表的头节点
}
如果没有大空间,就需要头指针自己迭代,保存头部的指针,头部的指针变头头部指针(第一次为尾部空),头头部指针变头指针,头指针变头部指针,这一轮结束,下轮开始,直到末尾。
public Node reverseList2(Node node) {
Node frontNode = null;//头结点逆转的时候前一个节点为null
Node headNode = node;//当前节点为头节点
Node tempNode;//临时变量保存下一个节点while(headNode != null) {
tempNode = headNode.next;
headNode.next = frontNode;//实现逆转
frontNode = headNode;
headNode = tempNode;
}
return frontNode;
}
无经验想入行程序员该怎么自学
现在有很多职场人想通过自学来进入IT互联网行业,从事程序开发、数据分析和运维类岗位,但是由于计算机相关技术通常都属于所谓的“硬技能”,所以自学的难度还是比较大的。
如果想通过自学成为一名程序员,通常需要经过三个阶段,分别是基础知识学习阶段、案例学习阶段和实践阶段。
基础知识学习阶段要至少积累三大块知识,其一是编程语言基础,其二是操作系统基础,其三是数据库基础。
在选择编程语言时,尽量选择一门全场景编程语言,比如Java就是不错的选择。
目前Java的开发岗位相对比较多,而且人才需求类型也比较多元化,非计算机课班出身也有机会拿到不错的offer。
在学习编程语言基础的过程中,要同步学习操作系统和数据库知识,一定要在学习理论知识的同时多做实验,通过大量的实验来理解抽象概念。
案例学习阶段是比较重要的阶段,由于当前有很多开源案例可以参考,所以这个阶段的学习难度也有所下降,但是案例的代码剖析依然有较大的难度,对于自学者来说,有时候即使拿到了源代码,往往也会感觉无从下手。
以我的课题组为例,每年有不少研一的同学进组后,都会在看案例的过程中遇到诸多困难,还经常需要在组会时来集中解决代码问题,所以对于自学的同学来说,看案例并没有想象中那么容易,而且也并不是所有的代码都那么容易阅读。
第三个阶段是实践阶段,这个阶段对于自学的同学来说,难度往往是最大的,因为自学通常并没有参加实践的渠道,而对于职场人来说,参加实践的难度就更大了。
目前想解决实践的问题,可以参加线上的实践活动,考虑到很多同学没有参加实践的渠道,我联合多名985大学的导师和来自互联网大厂的企业导师,共同成立了一个线上实践平台,在陆续开展程序设计、大数据、人工智能、物联网等方向的实践活动,感兴趣的同学可以联系我申请参加,相信会有所收获。
最后,如果有计算机相关的问题,欢迎与我交流。
本文相关文章:
微信自建小程序(用微信小程序自建商城在今后的使用过程中会遇到哪些问题)
2024年7月24日 04:11
navigationbar(微信小程序 navigationbar怎么配置)
2024年7月23日 04:27
免费个人小程序模板(有免费的可视化小程序开发后台,你会选择自己做吗)
2024年7月21日 21:27
java编程思想过时了吗(Java程序员是不是已经烂大街了)
2024年7月18日 06:43
java编程思想过时了吗(Java程序员是不是已经烂大街了)
2024年7月18日 06:43
小红伞误杀程序怎么办电脑高手指点一下?小红伞查出特洛伊病毒怎么办
2024年7月15日 09:35
微信小程序和原生APP比起来有什么优势?相比阿里云的飞天系统,腾讯云用的是什么系统
2024年7月15日 07:33
谭浩强c语言入门(看完谭浩强那本C程序设计并做完所有课后习题,能算C语言入门了吗)
2024年7月15日 07:24
更多文章:
电影api免费接口(API是作什么用的,每台电脑都有吗没有它会怎样谢谢!)
2024年6月29日 11:31
termux使用教程python(termux敲完代码去哪里看运行结果图像)
2024年7月22日 01:30
if if else怎么执行(想请教c语言这种if--else语句如何执行假如: int a=0; if(a==0) {a=1;执行)
2024年7月19日 15:30
java运行软件放固态盘吗(买办公电脑 做java开发用 我应该怎么选电脑,以内存为主还是cpu为主,还是固态硬盘为主最好是)
2024年9月9日 06:15
架构师工资一月多少(如何从三流程序员成长为年薪50W的架构师)
2024年6月29日 03:44
plsqldeveloper使用教程(怎么使用plsql developer)
2024年5月15日 10:55
runtime error 错误怎么解决(游戏途中出现runtimeerror怎么解决)
2024年7月9日 04:05
vlookup根据姓名匹配学号(excel按照姓名自动匹配数据)
2024年7月3日 08:44
advisable(advisable和available的区别)
2024年7月16日 23:26
伟福编译器下载(有谁用过伟福单片机编译器啊我在编译时总是出现“列表文件<.LST>未找到.这是怎么回事啊,)
2024年5月18日 00:55
python是什么东西(Python最近听说又火了一把,人工智能到底是个什么东西呢)
2024年7月3日 20:49
power bi官网首页(PowerBI官方授权账号,近万人注册成功!)
2024年6月29日 02:36