零IT基础运维小白们学IT应该选什么专业?

先自我介绍以下,本人是一枚刚毕业不到两年的某一线城市的程序员,本科阶段专业是计算机科学与技术。从大四开始出去实习到现在的编码经验也有快2年半了,两年半的时间包括实习在内任职过有4家公司,包括一家互联网公司,两家基金公司,一家区块链公司,多多少少对程序员这个行业有了一些自己的认识,至少不像一开始连什么是框架都不知道。因为本人在大学期间一直忙着拯救世界,所以基本上没有怎么学过专业方面的内容。自己还记得当初要找工作实习都没人要的那种苦楚,我相信也有很多和我当时一样的人吧(大牛除外……)。于是自己想把自己入门这个行业学到的东西和一些技能点写下来,一方面给自己做个总结,另一方面也希望能够给一些朋友提供一些入门指引,尤其希望能够对那些准备入门程序员行业又没有头绪的人。(PS: 以下将是满满的干货)先弄清楚从事这个行业可以做哪些岗位:从事IT行业就都是编写代码的程序员吗?其实不是这样的。IT行业有很多职位可以选择,包括但不限于研发、测试、运维、产品经理、设计、算法、DBA……平时所说的程序员基本上都是指的研发岗位,这个岗位对技术的要求也是最高,而且加入同样毕业找工作实力相差不大的情况下研发的工资往往是最高的。不过,这些不同的岗位内部又有很多区分,下面我会挑一些介绍每个岗位的工作内容和内部一些基本的划分。研发岗研发岗的工作说白了就是写负责编写调试代码的,天天熬夜写代码指的就是这些人。这个岗位大体可以分为前端开发和后端开发,当然也有全栈(fullstack)开发、运维开发、Devops…一个产品一般来说是分为前端部分和后端两部分,比如一个网页,前端部分就是和用户交互的部分,后端则是整个网页的后台逻辑和数据的组织方式,后端往往更加体现业务逻辑。(有些公司的一些项目往往把前端做的富丽堂皇后端却烂的一匹,这样比较容易骗到投资人的钱)前端开发:前端开发又可以分好多种类,比如按照产品类型分可以分为web前端开发、app前端开发、桌面端前端开发;按照技术的不同又可以分为React开发,Vue开发……后端开发:后端按照语言可以分为java开发、c++开发、python开发、node.js开发、Go开发……每种开发类型要求的开发语言不相同,一般做后端开发最好了解至少两门语言会比较好。其中国内大部分大公司用java的比较多,但Python和Go在最近几年开始流行起来。论述各个语言的差异不是本篇讨论的范围。当然,后端开发也可以分为ios开发,安卓开发等。测试岗:我就不用课本上的专业的话来论述这些岗位的作用了,做测试主要就是利用一些测试工具和框架对研发人员开发的软件进行测试,比如白盒黑盒测试之类的,说白了就是个研发找bug,也有一些公司会提供测试开发这个岗位。对测试人员的代码水平要求不高,以前带我的领导直接和我说你就把测试当成编程傻瓜就可以。测试基本上就是测出程序员的Bug,然后提交给程序员要他们改。这里有一片测试人员用的技术栈文章,贴出来分享给大家:运维 运维人员和公司技术人员的划分在小公司不是很明显,在大公司可能就会分的很清晰了。运维一般做的工作就是当软件测试没毛病后负责把产品部署到生产环境上去给用户实际用。这里面就包括了自动化部署、服务器性能、网络吞吐、服务器压力监控、数据库性能、数据管理等一系列的工作,小公司有时候网线啊,网络啊,服务器啥的都是运维负责,甚至再小的一些公司这些工作会直接摊到研发的身上。不过做为研发人员,运维技术栈中很多还是对于研发来说也是要必须会的,比如Docker、nginx、git、tomcat、k8s……运维不多说,同样也分享一篇运维的技术栈,提供给对这个方向有兴趣的同学:需要一提的是,有些人认为开发测试运维在IT行业三足鼎立,这是最主要的三个职业了。三个职业又相互交叉,形成了包括测试开发、运维开发、运维测试、全栈开发等不同的岗位,每个岗位要求的技能树不相同。但是,随着技术的发展和公司业务的需要,对IT从业人员的技能要求也越来越多,fb甚至要求全部开发都是全栈开发。只能说程序员还是学无止境的。产品经理、算法、实施……严格来说已经和IT相隔比较远,但也是计算机从业人员可以去做的工作,这里简单介绍以下:产品经理:主要负责产品的设计和业务需求的对接,完全不需要代码基础都可以做,比较适合女生。一般都是给程序员提需求,给程序员安排活干,安排不好容易得罪程序员,哈哈,漂亮小姐姐除外~感觉产品经理还是比较牛逼的,想象张小龙,微信的设计者,哈哈。算法:算法工程师,对这个职业我了解不多,但是对学历的要求比较高,很多公司都是要求博士学位去设计改进一些人工智能算法之类的,比如计算机图像识别,产品推荐算法啥的,工资很高。实施:实施这个行业,我认识一些学编程学不进的一些同学去做这个职业,说白了就是产品售后,进公司以后教给你一些基本的软件使用方法和一些安装方法,技术要求很低很低。DBA:DBA这个主要是管理数据库,对数据库原理和一些数据库软件比如Oracle,Mysql,Sqlserver要求比较多,基本不需要变成知识,不过了解一门比如python的脚本语言会比较好。2. 对前后端开发人员所需要的技术栈有个大概的认识首先,明确你的方向,你是想做一个后端开发还是前端开发or全栈开发。我现在分别介绍以下从事这几种开发作为一个小白所需的技术栈和学习路线。首先介绍作为一个研发人员都建议掌握的一些基本内容版本控制工具:git --用于协同管理代码和代码的历史记录终端使用基本的数据结构和算法github使用SSHHTTP/HTTPS协议及其接口设计模式编码和常用加密解密原理linux的使用Json,XML等数据结构化工具web前端开发从事前端开发需要了解的技术如下:网页基础知识:HTML语言,css,javascript,domjs库:jquery包管理工具:npm , yarncss预编译:Less,SASScss框架:Bootstrap构建工具:webpack前端框架:React,Angular,Vue……后端开发从事后端开发所需要的技术如下:选择一门语言:C C++ Java Python Node.js Go ……熟悉一种数据库使用:Oracle,Mysql,Postgresql ……选择对应语言的一个框架:比如Django(python),Node.js(Express.js),Java(SSM)缓存工具:Redis接口风格:Restful通信协议:HTTP/WebSocket消息队列:RabbitMQweb server:Nginx,Apache、容器:Docker操作系统:进程/线程,多进程/多线程,同步/异步,并发/并行,进程间通信,锁,内存管理,I/O 相关知识……其余的包括但不限于网络,编译原理,数据库,微服务架构,分布式存储等各种知识……由于自己的经验有限,以上也就只是列出了一些涉及到前后端开发所需要的基本的知识,其中黑色粗体的内容是入门开发行业所必须的内容,而全栈开发的要求就是至少以上的这些内容都是需要有所了解和掌握的。当从事开发过程中,大家会有更多的内容需要去学习和掌握。3. 我是一个小白,我该怎么从完全不会到找到一份开发的工作呢?我想,很多想入门这个行业的新人都面临一个这样的问题,甚至是一些本科院校的专业学生,毕竟学校教的东西和工作的内容是不一样的。下面我就分别从非本专业学生和本专业学生两个角度来介绍一下入门的步骤:我不是该专业:如果你是一个非科班出身的从来没有接触过计算机方面知识的人,对于你们来说,转向计算机这个行业会稍微有点难度。不过要相信,只要功夫深,铁杵也能磨成针,什么工作只要不笨并且有一根好学的心,然后在一个行业里泡的时间够久,就总会有收获的。在学习之前,确保你的有一定的英语基础。对于非科班人来说,由于可能没有科班学生那个时间和机会了解很多基础的知识,建议先从语言开始入手,选择一门语言然后跟着教学视频试着做出一个项目,能够让刚开始就产生成就感,有利于日后向外扩展学习。语言的话建议从简单点易于上手的语言比如python入手,最近几年python靠着人工智能的发展也风生水起,Python同时也由于它快速开发简单上手的特点深受一些公司的欢迎。并且市面上已经有了成体系的python教学资料,方便初学者学习和掌握。这里,建议大家跟着一些学院的教学视频开始学起,教学视频不一定要去机构花几万块钱学习,大家完全可以去某宝上面搜相关视频,几块钱就搞定后,后面就下载下来慢慢看,推荐的学习路径是这样的(以Python为例):Python在电脑的安装和对这门语言的基本认识,了解环境变量是怎么一回事Python语言的基本认识和语法介绍吗,pip包管理工具使用在IDE pycharm或者visual studio 上使用python写helloworld程序Html、Css、js一些基本语法的学习,学会写一些简单的静态页面数据库Mysql学习使用,了解数据库相关概念,知道数据库的增删改查Django框架的使用,尝试跟着教学视频做出一个购物或者博客之类的网站,在这个过程中对框架有个大概的认识在项目的开发过程中使用git做代码管理,学会使用github学习项目在linux的部署,熟悉使用uwsgi工具,进程管理supervisord或者systemctl,nginx服务器部署当完成了以上学习后,对于找到一份实习工作不是什么问题,当然,这些也只能算是一些简单的花拳绣腿罢了,如果想让面试官对你的技术和能力信服口服,尝试由一个点引出一个面,向周围更深的内容学习:系统的学习操作系统,了解进程/线程,多进程/多线程,同步/异步,并发/并行,进程间通信,锁,内存管理,I/O 相关知识系统的学习数据结构,了解队列(Queue),栈(Stack),数组(Array),数列(List),树(tree)等相关概念系统的学习计算机网络:了解网络OSI七层参考模型,了解HTTP、TCP、UDP、ftp等相关概念学习C语言这门高级语言中偏底层地语言可以帮助你了解其他语言的原理,并且了解向java面向对象和其他面向过程序言的区别理解一些常用语言的内存分配原理学会Docker的使用,学会使用一门web框架,比如React学习数据库的性能优化原理和方法……技术的掌握往往是多多益善,只要你掌握的越多,就越能让面试官对你的技能有所肯定我是本专业学生如果你是计算机专业的学生,而且你发现在学校老师教的都是纯理论的东西,如果你还对这个行业不太了解,那么请认真看我想要说的话:对于还在上学的学生来说,一定一定要记住,不要急着上来就搞个大新闻,觉得学校教的理论课没意思就不学了,或者认为那些东西难学就不学了,如果以后决定要走开发这条路,那么这些基础知识是必不可少的。学校中的专业课中《数据结构》《计算机操作系统》《计算机网络》《计算机体系结构》这几门课对你以后的发展很重要,这也是计算机专业考研要考的知识。一定要老老实实把这几门课学好,尤其是前三门。另外比较重要的一点是,在大学阶段,能早点出去实习就早点出去实习,因为往后你去百度等大厂实习,是一定要有项目的开发经验的。在平时学习专业课的闲下时间可以花时间去看看我对非专业人学习路线的介绍,可以学会试着去做出一个项目找份实习,这样学习与实践相结合,能够大大让你对这个行业有更深的认识。以后毕业了找工作,也更加会有主动权。这里再描述一些专业学生要学的路线:学习C语言等高级语言中偏底层一点的语言(一般院校都是以C开始入门)学习Java等高级语言和面向对象相关内容学习《操作系统》、《网络》、《数据结构》、《组成原理》、《汇编原理》、《数据库》等相关知识在以上的三个过程中,尽早地按照上面对非科班人员的路线同步学习,然后找份实习,在实习过程中可以认识一些大佬教你们一些开发领域相关知识,这对你以后是否从事开发工作和人生规划有很大帮助,也至少会拉不去实习不学习项目只是按照老师的规划学习的同学好几条街。以上就是我对对这个行业还不太了解同时也想从事这个行业人的建议,以下我再免费分享一套Python的全套学习视频,想要的可以在评论区评论或者私信我,我把链接私信给你们。另外再分享一套前端开发、后端开发和运维开发所需要的技术栈介绍,方便大家更明确未来的开发之路:以上,如果觉得这篇文章对大家有帮助,请为我点赞,如果有问题,请大家积极为我指出,也欢迎有问题的同学私信我。
首先推荐一手网络安全,这一行业的知识体系对零基础的小白来说相对友好,而且因为当前人才缺口很大的缘故,入行的门槛并不算高,即使非科班出身,企业也有不错的接纳度。另外网络安全不存在像程序员那样过了35岁就面临中年危机的情况,所以入行的年龄稍微大一些影响不大。(但年龄不能超太多,毕竟我们都知道年纪上去了学习能力是在下滑的,年龄大还经验少,企业愿意录用的概率很低)当然,除了网络安全,还有不少入门比较简单的IT行业,要一一介绍就太多了。(有需要可以来私信知了姐)不过转行当码农并不是很推荐,现在程序员这一行其实挺卷的,你的竞争对手不少都是科班出身,理论知识齐全,技术水平不差,除非你天资过人,几个月就学成技术大牛,不然企业大概率还是倾向于综合能力更好的科班生的。(自降待遇倒是有可能拿到offer,但你转行来IT多半为了IT行业的普遍高薪,这不就本末倒置了?而且程序员35这道坎也是个问题)转码农更适合本身有计算机方面基础的同学。接下来就说一说学习的问题。零基础要自学确实比较困难,但选择报班还是要谨慎,靠谱的培训机构能让你事半功倍,但不靠谱的机构也能让你连连踩坑,浪费时间和金钱。这里知了姐分享几个辨别机构是否靠谱的技巧!看对方的课程是否是当下流行的技术?(有的机构拿过时了n年的课程来糊弄,学完了也和白学差不多)是否会有学习规划和就业指导?(报班的一个优势,就是在学习上能够效率更高,同时就业方面有专业指导,能比较准确地了解企业的招聘需求,在求职过程中能准备得更为充分)收费是否在合理区间?(太贵了大概率割你韭菜,太便宜也要当心机构跑路等问题,毕竟机构从业人员也是要生存吃饭的,不可能说收费连成本都抵不上)即使选到了靠谱的机构,也不要觉得就是万事大吉了,再靠谱的机构,起到的都是辅助作用,真正去学习的人还是你自己,如果三天打鱼两天晒网,再好的老师和规划,都是白搭。最后,别急着自学或报班,先做个分析和规划,找到适合自己的IT职业。(要考虑的因素很多,当前年龄、学习时间、自律程度、目标薪酬......)当下的工作如果干得还行就别急着离职,等你真正做好了规划再说。不善于规划的同学,也可以来找知了姐帮忙。(点个关注不迷路)

时间:2019-08-09 来源:原创浏览次数:3144
事实证明,大学所学专业和未来从事行业并不是一定的,没有基础的人从事IT技术岗也是不无可能的!那么接下来,小编就为各位非IT专业的零基础小白,详细介绍一下学习方法吧~
一、明确目标,获取学习动力
在互联网公司的诸多岗位中,分为技术岗和非技术岗两个方向,其中技术岗工资比较高但要求也相对严格,如果你想要赚取高薪,那么首先就要明确自己的目标!
对于非专业人群来说,难点就在于看程序→读程序→写程序的转变,要想克服这样的困难,就要给自己注入动力:或是培养兴趣,或是高薪驱动……强大的动力是成功的必备条件!
二、思路正确,逐步深入学习
选择一门合适的编程语言。学习JavaScript或者Python,两者都是脚本语言,入门容易且易建立成就感。学习Java等面向对象语言,Java已经能够运行于世界上大部分设备,而且面向对象的设计非常优秀。如果有需要再去看C++和C语言吧,有了前面的理解,你会发现,越是难学的东西,其实背后的招式越是简单。
选好语言不要纠结版本问题。学当下最新的就行,不要老在乎什么兼容问题。初入门槛的新人,在很长时间内达不到要被版本区别挖坑的水平。而且基本上作为新人从开始学到开始能做产品怎么也得一两年,到时候现在这个版本就是稳定主流版本了。
先搞定语法。一开始不用学枯燥的计算机组成原理、设计模式之类的知识。先做些看得见的东西,感受一下控制计算机的感觉。这样才能让自己更有成就感,激发一边学一边和小伙伴们嘚瑟的热情。
三、借助外力,轻松入行IT
如果非计算机专业的朋友们短期内想找到工作还是建议选择IT职业教育学校进行IT学习。
因为有专业老师指导,比自己看书、看视频学习更有效率。而且主要你非计算机专业,计算机基础编程基础相当于没有,有些编程理论很难理解,学会借助外力,是突破的一大关键要点!
对IT感兴趣的同学,想了解更多关于IT的内容,可以下方联系中科韬睿~
现在预约还能获得免费试听课的机会,零距离体验IT的深度魅力!

我要回帖

更多关于 IT基础运维 的文章

 

随机推荐