A. 想当程序员,大学应该学什么专业
想当程序员可以学这两个专业:
1、软件工程
软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试、软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才。
2、计算机科学与技术
计算机科学与技术专业主要培养具有良好的科学素养,系统地、较好地掌握计算机科学与技术包括计算机硬件、软件与应用的基本理论、基本知识和基本技能与方法,能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用的计算机科学与技术学科的高级科学技术人才。
选了这两个专业,会在大学中学习到c语言,c++,java,javaweb等等一系列编程语言,要注意的是,大学里一般一个学期结束一门语言课程的学习,进度会非常快,课程安排量也不会太充足,想要学好,还得靠自己课下努力才行,至少得掌握一门自己拿手的语言。
当程序员需要具备的能力
1、编程语言能力
作为合格的计算机程序员,精通一门语言是必须的。这种精通,不是说看了一本编程宝典,抄了几个程序就能说精通的,要靠长时间的积累。
2、编码能力
遵守编码规范,是一个程序员最基本的要求。另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。
3、面向对象思维能力
多数编程语言都是面向对象的编程语言。而这些面向对象编程语言的共同精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。
B. 自学编程到底能不能找到工作
能找到工作。说到培训班我觉得培训班是速成,的确培训班能学到东西,前提是你跟得上培训班的进度,实际情况是大部分人跟不上那个进度 因为大部分人连基础都没有,培训班也有培训班的好处,有老师,便是最大的好处。可以让你少走弯路。
我大学自己学了很多,从单片机到Linux应用等等,都学过,然后大四头脑一热,花了七八千报了网络班,后来才发现,什么用也没用,都是讲的基础知识。
好处:
并不是说培训班就一无是处,他有人带,真的能少走很多弯路。
所以,如果周围有人愿意带你,或者有一定的底子,那么去培训班是没有必要的。而且培训班的费用不少。
并不是对口专业出来的就是科班程序员,有好多大学啥也不会,也是快毕业才去学的,是伪科班。
此外,科班程序员和培训班出来的是有区别的,同样用代码实现一个功能,科班的自己能很快有思路,构造整个功能的框架,可能培训班出来的需要别人指点 ,或者思考很久,同样一个api。
科班的知道在哪些情况下使用它比较好,哪些情况要注意,培训班出来的只知道它能干嘛。毕竟科班的踩过的坑多,培训班是速成。
C. 22届毕业生科班菜鸟程序员,找不到工作,该怎么办
编码对一些人来说是非常痛苦的事情,码农大部分都要加班,是常态,别光看程序猿工资高的光鲜,有时候找工作,并不是想象的那么简单,结合你的特点和兴趣,去找一份适合自己的工作做,才是重要的。
要想好编程是不是你真正想做的。有些人初衷只是因为编程薪资较好。但背后是程序员没日没夜的加班测试,头发掉一大把,眼圈常年黑着,压力大的不行。如果自己还没明白职业光鲜背后的真实生活,仅仅凭借一点点兴趣。那好好说,题主即使应聘到了程序员工作也坚持不了多久。在找工作中,一定要在兴趣,现实,技能做到合适的折中。没有精英的能力,就别羡慕精英的工作和生活。你纠结的原因在于,能力没多少,想的却很多。好好想想下一步该怎么办。
D. 对程序员说点实在话,科班与非科班出身区别在哪
一般来说,计算机软件 专业 科班的人需要掌握《数据 结构》《操作 系统》《高级 算法》《软件 工程》……等一些专业课程,这些是非科班程序员所缺乏的。
但是,作为非科班程序员,本身也有其专业优势,就是能够更好的理解其专业领域的应用需求。所以,非科班出身的程序员,只需要自己补充一下以上课程知识,就可以提高自己的软件开发能力。
总之,不断学习,才会有进步。
E. 非科班出身,如何成为程序员
如果你要成为一个专业的程序员,千万不要过早设定自己的方向,因为专业的程序员都是能够把很多个方向做的很牛逼,其中有一两个方向超级牛逼。像你这么年轻的人,应该去巩固一下基础知识的同时,你可以学习ios等级能用来养家糊口。学习ios是为了赚钱,同时为了让你争取时间学习更多的知识,从而成为一个专业的程序员。这并不矛盾。创造windows的dave cutler今年都70岁了,20年前4、50岁了才刚刚开始写winnt,人家在30岁之前都还不太懂怎么写代码,所以不要着急。
因此我认为你在学习ios找工作的同时你应该同时学习(不需要成为专家,学习就好了)
计算机图形学
编译原理
操作系统的基础知识
分布式系统的架构
对你的代码进行靠谱的自动化测试
学会写framework和library,不要一味地写application
这些对于你成为互联网行业的未来的标准制定者和奠定技术基础的人是有帮助的。
F. 程序员未来前景如何大龄程序员出路在哪里
其实程序员什么35岁就不行了的说法是个伪命题,是人为的强加的致幻剂。虽然软件行业有其特殊性,但是也有其普遍性。其他行业35岁那才真正进入事业快车道,软件行业我认为也差不多。
软件行业不光是写代码,积累到35岁,如果还能写代码那一定是经验丰富,代码水平高,即便继续写代码那也比一般的人好,当然排除那些不思进取不学习的人。
最差带几个人做个项目经理做项目就比年轻仔强很多。不但可以利用自己的经验还可以写关键代码。年龄其实不是问题。
那问题是什么给大家的印象是35岁程序员就没得混了?其实现在很多程序员其实是码农,大家说IT行业是一个知识更新非常快的行业,其实也不尽然 ,更新的是表面,其本质一直没变,一个码农一般都学的是皮毛,就懂一点什么框架 的编程,缺乏学习能力,不懂软件最基本的原理,学校学的那点一旦过时就什么也不剩了,那面临的就是淘汰。
如果是一个了解软件本质,学习能力强的人,语言只是形式,对于一个项目,觉得什么语言合适就用什么语言,你懂一门语言,另外一门语言要不了一个星期就可以编程了,关键还是基础,是原理,是思想和经验。
所以程序员们,不要被别人的致幻剂迷糊了,只要你肯学能进步,喜欢软件开发,年龄一定不是问题,只能越来越吃香。
个人观点,不喜勿喷!也希望大家能够说明自己的观点,大家一起学习,一起进步,营造良好的学习气氛!
大家都知道程序员也分为做什么开发的程序员,比如市面上最流行的Java、C语言、C++、python、PHP等等开发程序员,未来的发展是不一样的。
其实,我觉得未来发展前景的话,要找天花板较高的语言来作为基础学习,慢慢的把自己的架构思维给建立起来。
等你拥有自己的架构思维之后,其实语言就是一种工具而已,所以一定要清晰规划自己该学习什么语言,该怎么样来学,我在这里推荐Java语言,因为Java语言的学习就能够帮你初期建立这种思维方式,还有Java语言的独特性,证明了它的优越性!也证明了它的天花板比其它语言要高,当然上手难度也比较高,自己要有一个清晰的认识,
关于大龄程序员出路,我这里得多说一嘴!
一提到大龄程序员,大家第一时间就会想到,35岁中年危机。
不可否定,35岁这个词确实很扎心,也是许多程序员的恐惧所在,但是,请大家不要惊慌,要给自己打一针强心剂。
30而立相信大家都听说过吧?但是也不然,也看个人的机遇和努力!程序员也是一样!
这里就说到了职业规划的重要性,从22岁毕业实习再到30岁这八年时间,处于一段技术磨合和提升期,也就是技术的沉淀,沉淀到了一定的时间之后,就要考虑管理经验的提升,随着年龄的增长,身体上、思想上、精神上都会出现惰性,当然也跟自己的运动有关系,要加强自己对身体的锻炼,每年做体检!
30岁之后,有的人考虑单飞,自己找合伙人创业,自己开公司求发展;有的人继续按部就班,沉浸在996的世界之中;有的人不断地提升自己的技术能力和架构思维,在大厂中继续深造,让自己变得更有价值!
不知道你们是属于哪种,但是,最重要的还是个人的思维!希望自己能够好好考虑一下,从自己下手,彻底的改变自己,不然淘汰是迟早的事儿。
三点:改变自己的思维;加强自己锻炼;做好职业规划!
以上个人观点,不喜勿喷!欢迎大家一起讨论。
本人作为程序员,曾经也为这个问题困扰着。程序员在35岁就会面临各种问题,身边也有这样的例子,上一家公司有一个同事,40岁了还在写代码,他的工资不高。后来项目预算超标了,他也就成为了被裁员的对象。那是我第一次感觉到了年龄越大而带来的危机。
但是话有说回来了,40岁了还在写代码。只能说明了他对自己没有明确的职业规划或者个人的不思进取造成的。IT行业有他的特殊性,第一个特殊性就是知识更新很快,第二个就是很注重职业规划。
所以要想不被淘汰,要么积极学习没拥有很厉害的技术,成为一个领域的技术专家。要么走管理路线,在平时上班的时候就要注重这方面的培养,首先要在工作中锻炼,还有考取一些专业的证书来给自己增加竞争力。
当然也有的选择自己创业,这是最好的结果。所以,在当下最重要的是怎么给自己规划。多考虑这方面的问题,要是想通了也就没有那么的纠结了。
我是个IT新人,程序员的未来前景毫无疑问是不可小看的。世界逐步进入5G时代,对于程序员来说即是挑战也是机遇,5G时代到来必将会带了新的技术升级,也必将淘汰旧的技术,所以说对于程序员即是挑战也是机遇,只有不断地学习你才能把我好这一机遇,雷军说:“站在风口上,猪都能飞”。但首先你得是有准备的猪 。
对于大龄程序员,我是这样子想的,等我年龄大了,不可能一直处在代码一线,要么转管理岗位,如:技术主管,产品经理,项目经理,有能力的做个技术总监。
要么转行,我朋友常常给我开玩笑说,等年龄大了,我们去送外卖吧!自由自在,月入过万
要么拿出积累多年资金、人脉开始创业
30+程序员一枚,刚好可以回答这个问题。
先简要说下我对这两个问题的答案:
下面,我们就来一一解释。
程序员是有前(钱)途的职业
首先是 金钱 方面。在所有行业里面,it行业是比较有前(钱)途的职业,我想这句话可能极少有人反驳。当程序员相对来说能挣钱,即使这些钱是需要加班加点挣来的,但是总归来说提供了普通人一个挣相对高薪的途径。即使在北上广深,当程序员也相对其它行业更容易买车买房,站稳脚跟。另外,每年无数的大专本科生上培训班,当程序员也很能说明情况。
其次是 行业发展 方面。程序员从事的是it行业的工作,是一门用技术改变生活的行业,it技术已经应用于方方面面,这也无形中给程序员提供了更广阔的用武之地。
关于大龄程序员的问题,其实我觉得更应该说是 一个普通人中年危机的问题 。因为年龄大了,薪资相对新人更高,加班能力更差是大部分行业都会遇到的问题,只是这个问题在it行业放的更大了。网络当中很多所谓的35岁问题,一部分是来自于程序员的自嘲,一部分情况其实是因为部分大龄程序员拿惯了高工资,没有做人生规划,技术没有提升,然后又遇到了中年危机后无所适从罢了。可能有人会说老师,医生等行业会随着年龄增加而成长什么的,这个确实有其相关性。但是程序员毕业就拿高薪,其它行业可能要积累很多年(这里说的是平均,个例不探讨)。
至于出路,我认为出路有很多:
当然,我这里说的大龄程序员指的是正常的程序员,不是那种天天混混日子,突然一裁员发现自己啥也不会的人,我觉得这种人基本上是很难有出路的。
关注令狐一冲,关注区块链和IT技术!
在民企,大龄程序员确实不好混了。华为裁掉35岁以上的普通员工,就说明这些大公司只需要年轻人,加班苦干。年纪大了,拖家带口的,加不动班了,就劝退。这种情况说明这种工作都是些按部就班的,没什么创造性的工作,不需要很多经验。
外企的情况会好一些,50多岁的头发花白的程序员依然在工作,他们看重的是工作的积累,经验。公司也把这些人当做公司的财富。国内因为抄袭太严重,不太注重知识产权,导致程序员的地位并不高。
大龄程序员要在工作之余,发展一些副业,多学些技能,考一些证书,做一些理财投资等等。保证自己万一被裁员,不至于没有收入陷入焦虑。
这问题问的,大龄农民工出路在哪儿?
所以了,人口总量下滑,人力资源不足,大龄程序员总是有人要的,只不过不同水平的去向、待遇不同罢了,这跟年龄、行业没关系,哪个年龄哪个行业都一样有分化。
首先,程序员这个职业不再是个香饽饽,这一点各位程序员必须要摆正心态!随着人工智能在编程方面的运用以及程序员数量的大规模上涨,未来大多数程序员的待遇会跟 社会 平均工资看齐,短时间依然会有优势,但随着时间推移,这种优势必然转为劣势。为何?供需决定价格,以前供不应求当然价格高,未来供大于求甚至每个人都会编程,自然没啥议价空间。而那些没人愿意干的脏活累活自然成为高收入岗位。
其次,许多程序员会成为领导或者老板,毕竟 社会 需求在,有大需求也有小需求,对用户需求敏感的人自然能够抓住机会自己创业。
再有,某些高收入程序员会跨界进入别的行业,毕竟有了资本有了 社会 经验,很多事情都是相通的。
最后,大多数冲不上去也没钱或没想跨界的,继续待在公司里搬砖,虽然加班比不上年轻人,但毕竟经验丰富,码代码的速度和质量是有的,只不过工资持平奖金下降不忍也得忍啊,毕竟为了生活,别的很多职业人家的工资本就是好多年没变化,程序员也不会例外,之前例外是因为供不应求。
有人说程序员是脑力活,跟农民工不能比,六十岁农民工还能干活,六十岁程序员脑子怎么跟得上?作为过来人,笔者可以向各位保证:越大的团队,里边需要动脑子的人越少,大多数大厂的程序员混到最后都是干的力气活,根本不需要脑子,这就是熟练度。至于这是好是坏,仁者见仁智者见智。
看到这个问题,作为一个资深的程序员和管理者,我认为我有资格来回答这些问题。无论你是因为爱好编程走上程序员这条路,还是因为看见程序员的高薪加入这个行业。既然有这个疑问,就说明你已经有了职业焦虑:程序员真的能一直做下去吗?是不是35岁就面临着中年危机?单靠写代码能走向管理者岗位吗?大龄程序员的出路在哪里?我结合我自己做10多年程序员的经验(担任过高级工程师、数据架构师、数据负责人和数据总监等岗位),讲讲大家都十分感情去的问题。
一 程序员能干到退休为止吗? 1.1 从初级程序员开始,不要错过的发展路径首先,程序员们关心的都是自己在这个行业能干多久,而不是在某个公司待多久。尤其是现在行业内卷非常严重,几乎不可能让你在一个公司工作一辈子;因为,行业变数很大,说不定哪天就裁员了,而且你正好在裁员名单中。针对这种情况,我的建议是:
在自己30岁之前,一定要不断地丰富自己的知识库,让自己的能力保持在行业的头部。
① 初级->中级
这个阶段主要是学习,在很少依赖其他人帮助的前提下,能够保质保量的完成手上的工作。在这个时期,自己多找几个师父,由资深的程序员对你做技术路线的指导。这样即可以少走弯路,又可以快速地学习和掌握前沿知识。
② 中级->高级
这个阶段主要是从公司现有的技术架构中,提炼出高难度、有价值的内容。并能够用批判的眼光看待这些事,总结出哪些做得好,哪些做得差。如果是你来做,你会怎么做?
可以从领导对你的信任角度上,看出来你在这个阶段成长的好坏,如果让领导和团队成员对你非常信任,说明你这个阶段是成功的,可以方向的走向第三个阶段。
③ 高级->资深
这个阶段至关重要,涉及到你是走专家路线还是走管理路线,这是一个转折期。如果自己擅长沟通和乐意交流,在这个阶段多观察你的直属领导是怎么安排工作的,他的工作方式有哪些缺陷,如果是你你会怎么做,需要不断地总结归纳管理方式方法;除此之外,在技术方面,必须要学会复盘,并且愿意复盘,而且是愿意看别人复盘。复盘是对程序员帮助最大的环节,一定不要认为复盘是浪费时间。
如果你想走专家路线,那么就要保持头脑的清醒:你做的内容是纯技术还是业务+技术。如果是纯技术,那么走专家路线是没有问题的。否则,千万不要走专家路线。
1.2 消除常见的误解,包括【只能吃青春饭】一定要消除青春饭的这种不良的意识,为什么呢?因为管理岗也是技术出身。从程序员编程管理人员,也能够年薪百万。如果你不是科班出身,怎么能做好一个管理者呢?一个管理者需要的技能很多,需求分析、目标设定、资源协调、团队协调和赋能培训。管理者不是想想就能做到的,需要既懂技术又懂业务,同时还要懂管理,更要会报告,会表功,甚至会做客户的公关,智商情商双双在线。
如果你练就了这一身本事,还能是青春饭吗?是不是感觉到自己有很多内容要学习,要修炼。
二 我适合做管理还是技术 2.1 并不是说管理者一定会脱离技术作为程序员,其实人到中年,就要面临着转型的挑战。如果一直写代码,你和20岁出头的小伙子去竞争,就会累得头破血流。人无远虑必有近忧,就职业发展规划来说,应该转型为架构专家、算法专家,研发主管或者项目经理。
管理者不是必须要懂技术,管理本身就是一门学问,职业经理人就是依靠管理吃饭的。管理的真正核心是利用资源,知人善任,自己不懂技术可以找一个懂技术的人。经常看见公司的高管在变动,他们在技术、专业方面不一定有多精通,但是具备了经营管理的能力,一样可以在新的领域取得成绩。
2.2 不要做自己不擅长的事,不盲目追求高薪追求高工资,带来的是钱,也是一种成就感。但是一味想通过跳槽来升职加薪,是最不可取的。可以负责任地讲,在你的职业生涯的头5年,这种做法影响不大。但是在5年以后,你会发现自己没有沉淀和积累,因为换工作也是非常耗精力的。
不要看见别人做了管理者,自己就认为可以做。自己一定要认清楚自己的能力范围,在能力达到时,并且自己愿意转型时,值得一搏。
三 除了写代码,你还有很多事情要做 3.1 学会互联网思维,多渠道发展,多种经营有人会说,我现在已经35+岁了,我还是普普通通的程序员,没有一技之长,也不懂管理。我该怎么办呢?互联网时代给了我们很多创业的机会,比如可以做自媒体,直播带货,自己开一个小型的培训公司。
最好是在自己年轻的时候,就考虑过有一天会被IT行业淘汰,那我应该去做什么呢?要着手准备什么呢?
3.2 掌握跨界知识,成为跨界人才我还是那句话,自己行业内的东西对于自己来说,是最简单的。平时多和其他行业的人交往,多听、多学,有可能他的领域就是你发光发热的地方。程序员有着执着、冷静、聪明的头脑,做任何事情都不会比其他人差,主要是选好方向。
优秀的程序员不论年龄大小,前景都非常好!巨大的市场需求决定了优秀程序员的紧缺性,在数字化时代,已经没有哪个行业会离开软件的支撑,这个趋势在可预见的未来不会改变。
一般来说,人会随着年龄的增长,工作的时候精力会跟不上,但从另一个角度讲,年龄大了,经验就会更丰富,尤其对于像程序员这种知识型工种,只要他肯学习,跟上技术的进步和变化,他就不会落后,就会继续有用武之地。
软件技术的变化也是非常大的,新的框架、新的开发环境、新的编程语言不断出现,程序员也要注重自身的学习和修养,为断适应互联网+时代的技术发展,只有这样,程序员才会永葆青春。
当然如果已经功成名就,账务自由,选择别的职业也挺好,人各有志,看个人发展和兴趣爱好!
G. 在你的专业,科班出身的优势是什么
你现在在做程序员,如果你大学的专业是计算机专业的,你就可以说你是科班出身的,如果还有另一个程序员,他大学专业是艺术专业的,那么他就是非科班出身的。简单地说,就是他现在工作所需的知识,是不是他以前在大学专业课上学的。不过科班出身并不一定强于非科班出身,如今互联网发达,很多学习资料都可以轻而易举地从互联网上获得,老师在课堂上所传授的远不及互联网可以搜到的,所以只要自学能力强,非科班出身的也可以学得相当优秀。
H. 如何判断程序员是流水线上的,还是科班出身
从专业课上看,这个最准
科班出身的的基础知识储备是非常完备的,比如计算机组成原理、数据库、编译原理、数据结构、C语言、算法、操作系统、设计模式、汇编、计算机网络、离散数学、模拟电路、数字电路、软件工程。
这些大学里学的东西,当时感觉一点用没有,学这玩意干嘛?
不如学一学怎么写网站,学一学语言,直接上手编程做开发。
当你做了几年之后,才发现这些东西的价值,就跟学钢琴时要注意坐姿、练习琶音、音阶一样,基础的东西,只有你弹大曲子时,才突然意识到,原来那些基本功那么有用。
上面基本上是废话,怎么从专业上判断一个程序员是不是科班的呢?
问他几个专业性的问题就好了,培训班那种流水线,是不学这些知识的。
比如算法题:说一下深度优先搜索和广度优先搜索之间的区别,举例。
比如数据结构:用一句话说一下栈和队列之间的区别,说一下什么是二叉树。
比如数据库:内链接和外链接的区别,举例说明。
比如设计模式:说一下什么是单例模式,什么是工厂模式
比如操作系统:说一下操作系统中几种常见的进程调度算法
上面五个问题,如果对方听都没听过,那么这个人一定不是科班出身的,这个是100%能下定论的。
你可能不是每个问题都能答上来,如果你是计算机专业的,你一定会对这些问题有印象,因为要考试啊,不为别的,至少你听过这些术语的名字,就这么简单。