主流的是计算机相关专业,如软件工程、计算机科学、通信等专业。例如,应用中有的模块是计算密集型的,它需要强劲的CPU;有的模块则是IO密集型的,需要更大的内存,需要懂点英语其中这句话的潜台词就是你起码得个初中学历,因为有不少地方是初中开始学英语,我们编写代码用的不少开发环境都是英文,看有些函数的帮助文档也可能是英文,所以懂点英文是需要的,如果你想针对性的学,可以看下计算机英语。
1、程序员都是学了软件工程专业才去编程序的吗?有没有不学软件工程专业就去的编程的?
作为软件工程专业研究所刚毕业,刚通过校招参加工作的学长,谈谈我的认识。当程序员需要什么专业?主流的是计算机相关专业,如软件工程、计算机科学、通信等专业,计算机类的专业学生大学里都或多或少开通编程课程。但是讲真,真正学好编程的同学都是私下里自己去学的学生,因为上课讲的相对浅显一些,除此之外很多特例,我就是一例比如我本科英语专业但是酷爱编程,本科期间经常把不重要的专业课和非专业课都逃课回宿舍看视频敲代码,几乎是废寝忘食。
不过还好通过了英语专业四级和英语专业八级,否则连退路都没有,后来认识一个计算机老师,才走入正轨,不过还是自学为主,本科期间也通过了软考初级程序员和中级软件设计师,那参加过一次软件比赛,拿了省级一等奖,也有幸参与了我们市单证防伪系统的设计。如果坚持下去毕业应该也可以找到小公司工作,不过后来跨专业考研读了软件工程研究生,现在在国内一家知名互联网企业工作,
其他途径也有很多其他专业的学生通过编程培训等成为了程序员。也有少数自制力强的学生,计算机相关性并没有那么大的好学校的学生,毕业也顺利当了程序员,理性对待不是只有软件工程专业才可以当程序员,计算机相关专业都有机会当程序员。还有很多其他途径,最关键的是你是否适合编程,是否感兴趣,很多培训机构想尽办法忽悠你去学习,拿出各种“成功案例”,这只是少数特殊案例而已。
如果你对编程不感兴趣,也不是这个专业的,建议不要投入到这个行业,如果你对编程很感兴趣,非这个专业的,也可以大学期间去学习,有机会也可以考虑跨专业考研,或者直接就业,但是要学的相当不错才行,否则考研和就业没有优势。如果你觉得本文对你有帮助,欢迎伸出您的右手点个赞呗!也欢迎评论补充和交流,也欢迎关注我,您的鼓励是我创作的最大动力,
2、阿里程序员很牛,请问他们都是学什么出身的?
这个问题,其实也是很多人的疑问!我想说:四种软件架构演进史,程序员会一种就很牛了!如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面,一、单体架构单体架构比较初级,典型的三级架构,前端(Web/手机端) 中间业务逻辑层 数据库层。
这是一种典型的JavaSpringmvc或者PythonDjango框架的应用,其架构图如下所示:单体架构单体架构的应用比较容易部署、测试,在项目的初期,单体应用可以很好地运行。然而,随着需求的不断增加,越来越多的人加入开发团队,代码库也在飞速地膨胀,慢慢地,单体应用变得越来越臃肿,可维护性、灵活性逐渐降低,维护成本越来越高。
下面是单体架构应用的一些缺点:复杂性高:以一个百万行级别的单体应用为例,整个项目包含的模块非常多、模块的边界模糊、依赖关系不清晰、代码质量参差不齐、混乱地堆砌在一起,可想而知整个项目非常复杂。每次修改代码都心惊胆战,甚至添加一个简单的功能,或者修改一个Bug都会带来隐含的缺陷,技术债务:随着时间推移、需求变更和人员更迭,会逐渐形成应用程序的技术债务,并且越积越多。
“不坏不修”,这在软件开发中非常常见,在单体应用中这种思想更甚,已使用的系统设计或代码难以被修改,因为应用程序中的其他模块可能会以意料之外的方式使用它。部署频率低:随着代码的增多,构建和部署的时间也会增加,而在单体应用中,每次功能的变更或缺陷的修复都会导致需要重新部署整个应用,全量部署的方式耗时长、影响范围大、风险高,这使得单体应用项目上线部署的频率较低。
文章TAG: