作者:黄小斜

文章来源:微信公众号黄小斜

作为一名典型的非科班程序员,我在学习和工作一段时间之后,发现了自己跟科班程序员还是有很多的的区别,不管是思维上还是做事风格,以及对待问题的解决方式,都感觉有些差强人意。
今天我就给大家梳梳理一下,科班成为相对于非科班程序员,他们的优势到底在哪里?
第一点那就是算法能力。
为什么要强调这一条呢,大公司总是喜欢考算法,平时有些项目也有可能用到算法,总之算法就是衡量一个程序员的一把利器,作为非科班程序员,大部分时间,学习算法都只能靠自己,作为计算机领域的一门难题,没有老师指导,没有一些好的学习方式,那么你在算法上面的成长,可能也会很少。
对于算法问题,即使是科班的程序员往往都很难以去克服,更别说我们这些半路出家的程序员了,记得我当初连数据结构,都不知道是个啥,这种情况下去学习算法,真的就是扯淡,学会了数据结构之后,发现也只是学了皮毛,等真正接触一些面试算法题,才发现计算机的世界原来如此的博大精深。
除了算法之外,更要命的东西来了,就是计算机基础,传说中的四门专业课,我相信这几门课程也是横亘在科班程序员和非科班程序员之间的一道巨大鸿沟,科班程序员基本上在大学期间都有机会接触到这些基础课程,而非科班程序员几乎是无法接触到这些课程的。
一般来说,他们能够掌握一门语言,并且学会了如何做项目之后,就觉得自己已经学的很多了,很多非科班的程序员都不知道,对于程序员来说,这些作为根基的东西也是他们必须需要学习的,比如计算机网络,网络编程的基础,如果我们搞不懂计算机网络的话,你甚至连电脑上的ip配置都搞不清楚。
操作系统则是很多编程语言能够运行的基础,不管你用的是Java,还是C++,你都要对操作系统有一定程度的了解,操作系统是你理解各种高级编程语言的基础,特别是后端编程,我们需要考虑内存管理,考虑并发编程,考虑网络编程,等等等等,这些东西都必须跟操作系统打交道。
数据结构就不用说了,刚才我们在算法里已经提到了。还有一门很重要的课程就是计算机组成原理。你不知道计算机组成原理,你就不知道电脑到底是怎么启动的,更不知道CPU到底是如何运转的,如果你连这些都不知道,等以后你真正遇到这些问题时,再让你从头学起,岂不是天方夜谭?
想到这里,我不禁两行清泪,我的计算机基础其实也是靠自己恶补补回来的,虽然说现在也只是个半桶水,但是也已经算是非科班程序员中做的还算不错的了,即便如此,我还是经常在遇到实际问题时,因为对计算机基础掌握得不够好而走弯路。
当然了,非科班程序员也有自己的优势。
比如说,理解事情的能力和解决问题的能力,我觉得科班程序员,他们能够成为一个程序员,是一个非常正常的事情,他们按照自己的原有轨迹去做,毕竟这是他们比较熟悉的领域,并且能够把它们做好,非科班程序员就像是半路杀出个程咬金,可能你不知道他之前的积累是怎么样的,你只知道他现在可以通面试。
这里不得不提一点,就是非科班程序员的跨界能力,非科班程序员大多是自学成才,其实要跨界成为一个程序员,还是比较有挑战的,毕竟我们可以在他们身上看到更多的可能性,他们更加有变通的思维,至少在自学这个方面,他们更加有话语权。
所以非科班程序员往往更有自学能力,他们有很好的技术视野,知道如何去扩展自己的技术边界,毕竟他们知道如何很快的切换到另一项技术,或者是另一个领域。
对于非科班程序员来说,这种跨界的尝试会更加的轻松一些。
总结了以上这几点,我觉得科班程序员和非科班程序员并没有什么天壤之别,只不过大家开始的时候不一样。
大学的时候由于学校原因,我没有选择计算机专业,但是我在读研的时候,仍然选择了我当时想要选择的计算机专业,也有很多人是为了高薪进入互联网公司,也有很多人是因为自己的热爱而开始自学。
不管出于什么目的,不管是如何开始的,非科班程序员和科班程序员在未来的道路上都会逐渐的越走越近,最终他们之间可能没有太大的差距,我想他们各有各自的优势,也各有各自的缺陷,你说呢?

有热门推荐?

1. 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

2. 不敢相信?System.currentTimeMillis() 居然存在性能问题

3. GitHub 标星 3.2w!史上最全技术面试手册!

4. 面试常考:Java中synchronized和volatile有什么区别?

5. Spring 常犯的十大错误,打死都不要犯!

6. Java 线程池 ThreadPoolExecutor 八种拒绝策略浅析

句题外话,有不少人想加鱼哥微信,鱼哥姑且放出来,但是坑位有限哦

想去大厂么?来加入鱼哥技术星球,放大你进大厂概率

扫描如下二维码加入我的知识星球:

非科班程序员和科班程序员的差距到底在哪里?相关推荐

  1. 非科班程序员与科班程序员的区别在哪里?

    [文章来源微信公众号:每天学编程] 作为一名典型的非科班程序员,我在学习和工作一段时间之后,发现了自己跟科班程序员还是有很多的的区别,不管是思维上还是做事风格,以及对待问题的解决方式,都感觉有些差强人 ...

  2. python的类程序的结构_Python程序员学习路径之数据结构篇

    原标题:Python程序员学习路径之数据结构篇 点击标题下「异步图书」可快速关注 在计算机科学中,数据结构是一门进阶性课程,概念抽象,难度较大.Python语言的语法简单,交互性强.用Python来讲 ...

  3. 漫谈程序员系列:程序员该不该考虑初创公司

    IT 这个行业,最不缺的就是机会,追逐机会的,有各种各样的小公司,也有各种种样的程序员. 创业公司 每一个出来创业的人,心中都充满了希望和梦想,而且认为自己眼光独到,手段高超,一定能够逐浪潮头. 可是 ...

  4. 如何从初级程序员到中级程序

    如何从初级程序员到中级程序 在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客.文章及杂志分成两类:面向初学者类("hello world"这种类型的教程 ...

  5. 虚继承是什么意思_程序猿是什么意思?程序员为什么叫程序猿?程序猿笑话段子-360常识网...

    程序员不是你们眼中的程序猿.程序猿是一种非常特殊的.可以从事程序开发.维护的动物.一般分为程序设计猿和程序编码猿,但两者的界限并不非常清楚,都可以进行开发.维护工作,特别是在中国,而且最重要的一点,二 ...

  6. 中国的程序员与日本程序员

    不知从什么时候起,我凡是听到中国人在日本人的面前提起"程序员"三字,从头皮到脚跟都要发麻.中国企业培训出来的程序员,和日企培训出来的"会写程序的人",从称呼.内 ...

  7. 为什么中国程序员不如外国程序员有创造性?

    上面这个公号「涩郎」,是我的一个备用号,为了防止万一哪天大号失联,平时一周我也会发三篇左右的我的思考,读书笔记,认知感悟等文章,带领大家一起探索精神与财务自由之路. 大家好,我是校长. 元旦期间,在家 ...

  8. 漫谈程序员系列:程序员的生活就这样吗

    我当了快十年程序员了,终于老得可以来谈谈程序员的生活是什么样子了. 或许陈奕迅的<十年>中的一段歌词,可以表示很多程序员和软件开发之间的感情纠葛: " 十年之前 我不认识你 你不 ...

  9. 漫谈程序员系列 让程序员蛋疼的那些事儿

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 听说嫁人 ...

  10. python 程序员专属情话_程序员专属情话 程序员的土味情话

    程序员专属情话 程序员的土味情话 作者: cxy 更新日期: 2019-12-05 21:50:53 阅读: 1400 理科男被大多数女生划分为直男,程序员也一样.他们的直当然也是有原因的,心思当然没 ...

最新文章

  1. 对Promise的一些深入了解
  2. 使用VMware虚拟机安装Windows8系统
  3. react mysql增删改查_react增删改查
  4. W5500EVB UDP模式的測试与理解
  5. chrome浏览器下“多余”的2px
  6. PHP学习笔记--011 PHP文件处理
  7. 小程序promise封装post请求_微信小程序 es6-promise.js封装请求与处理异步进程
  8. 中国工业自动化行业需求现状及投资风险评估报告2022-2027年版
  9. python 文件操作 open()与with open() as的区别(打开文件)
  10. [笔记]C#基础入门(十四)——C#用流程图描述程序逻辑
  11. Eclipse中看不到jsp的页面效果
  12. matlab 柴油机仿真,用MATLAB/SIMULINK实现柴油机及其控制系统的动态仿真
  13. 数组shift方法_数组shift()方法以及JavaScript中的示例
  14. 【ICLR2019】Poster 论文汇总
  15. java能连上数据库_jsp usebean调用不行_JSP+tomcat+sql2005+javabean连接不上数据库,请高手帮我看看原因...
  16. OpenvSwitch架构
  17. git pull命令报错
  18. Educational Codeforces Round 23 F. MEX Queries(线段树)
  19. Django--4、认证系统
  20. c语言万年历节日算法,万年历星期的算法(C语言)

热门文章

  1. Node.js:封装Node通用web容器
  2. Ubuntu16.04安装ROS Kinetic详细过程
  3. Cesium 环境配置笔记(使用node.js 或者WampServer服务器)
  4. tensorflow中获取shape的方法比较
  5. 用AXIS2发布WebService的方法 使用eclipse插件生成服务端和客户端
  6. Ubuntu安装Tensorflow及anaconda环境下使用TensorFlow
  7. 霍夫变换检测直线的公式推导以及基于opencv的源代码分析并实例实现
  8. NodeJS连接MySQL
  9. 九校联考-长沙市一中NOIP模拟总结
  10. logstash收集TCP端口日志