先说观点:在没学计算机专业之前,大家都是零基础。
计算机专业科班出身学编程确实有优势,但是这并不意味着非计算机专业就一定比科班出身的差,技术都是不断更新迭代的,能坚持学到最后的才是真正具有专业精神的人。
一、计算机专业学编程的优势在哪里?
1.1 计算机基础
计算机基础,传说中的四门专业课,相信这几门课程也是横亘在科班与非科班之间的一道巨大鸿沟,计算机专业出身基本上在大学期间都有机会接触到这些基础课程,而非计算机专业几乎是无法接触到这些课程的。
举个例子:不管你用的是Python,还是Java,你都要对操作系统有一定程度的了解,操作系统是你理解各种高级编程语言的基础,特别是后端编程,我们需要考虑内存管理,考虑并发编程,考虑网络编程等等,这些东西都必须跟操作系统打交道。
1.2 数据结构与算法
编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论。
同样的功能,看实现的具体代码,新手写出来的可能与牛人高手写出来的差距是很大的,这就是算法思想在具体语言上的体现。
作为计算机专业来说,大学里就能接触到算法内容,还有专业老师指导算法成长;。而非科班出身大部分算法学习都只能靠自己。
二、如何提高编程能力,缩小差距?
2.1 计算机基础
纵观各个大厂面试的前两轮,基本上都会重点观察面试人的基础知识,如果前期基础不扎实,那么就很难进入后面的面试
(1)计算机网络
计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
重点学习物理层、数据链路层、网络层、传输层、应用层这些层次结构。要明白各个层次结构之间的关系,明白每个层都具有什么功能,拥有什么协议,重要的一些协议的内容以及作用。要能灵活的将各个层次联系起来。
(2)操作系统
操作系统(Operating System,OS):是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
(3)数据库
数据库(DataBase ,简称DB ):是长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
2.2 算法基础
广义:
- 数据结构:一组数据的存储结构
- 算法:操作数据的一组方法
狭义:
- 指的是某些著名的数据结构和算法,如:队列、栈、堆、二分查找、动态规划等
数据结构和算法你能在任何计算机领域里看到,比如在编译原理中寄存器的分配会用到贪心,死代码检测与消除会用到图论里不可达的知识;操作系统进程、线程调度会用到多级队列和调度算法;组成原理中 Cache 的替换会用到 LRU、FIFO 等算法;开发必备的数据库也离不开 B+ 树、LSM 等数据结构和查找算法。
如果不学习算法,连什么时候用 Map(红黑树实现)、什么时候用 HashMap 都分不清。所以学习算法有助于我们根据应用场景选择最合适的数据结构。
2.3 常用数据结构与算法
工程师工作中必备的核心数据结构,包括链表、数组、栈、队列、堆、树、图、布隆过滤器、LRU Cache、散列表和并查集等。
最基础、最核心的算法,包括递归、排序算法、二分查找、哈希算法、搜索算法、字符串常见算法、贪心算法、分治算法、位运算、回溯算法和动态规划等。
三、各类编程语言学习路线
2022年全新Java学习路线图,含源码+笔记,另附在职提升课_黑马程序员官方的博客-CSDN博客_java学习完整路线图简洁版本Java学习路线:Java SE基础–>Java Web–>Maven–>Git–>SSM框架 -->MybatisPlus–>Spring Boot–>传智健康【医疗行业】–> Spring Cloud–>Dubbo–>Zookeeper–>RabbitMQ–>RocketMQ–>Docker–>Redis -->MongoDB–>搜索技术Elasticsearch–>SaaSiHRM【企业服.https://blog.csdn.net/itcast_cn/article/details/1223044192022年前端学习路线图:课程、源码、笔记,技术栈_黑马程序员官方的博客-CSDN博客_前端技术路线图前端学习路线图概览:HTML+CSS-->移动web->JavaScript基础-->Web APIs->数据交互&异步编程-->Node.js-->Vue2+Vue3-->React核心技术-->微信小程序
https://blog.csdn.net/itcast_cn/article/details/1223659452022年Python+大数据学习路线图,源码笔记,最优学习资源_黑马程序员官方的博客-CSDN博客任何学习过程都需要一个科学合理的学习路线,才能够有条不紊的完成我们的学习目标。Python+大数据所需学习的内容纷繁复杂,难度较大,所以今天特别为大家整理了一个全面的Python+大数据学习路线图,帮大家理清思路,攻破难关!文章目录前言第一阶段 大数据开发入门1.大数据数据开发基础MySQL8.0从入门到精通第二阶段 大数据核心基础2022版大数据Hadoop入门教程第三阶段 千亿级数仓技术数据离线数据仓库,企业级在线教育项目实战(Hive数仓项目完整流程)第四阶段 PB内存计算1.pytho
https://blog.csdn.net/itcast_cn/article/details/122306552软件测试功能到自动化学习路线图,2022年最新版技术栈_黑马程序员官方的博客-CSDN博客2022年全新版软件测试技术栈,零基础入行必备、高质量免费在线课程+笔记+讲义分享。适合零基础,功能测试、即将面试回顾知识点的各位伙伴。文章目录前言第一阶段、功能测试1.软件测试入门到精通2.Linux系统2天快速入门3. 软件测试MySQL数据库知识精讲+项目实战第二阶段、Python编程10天玩转Python软件测试第三阶段 UI自动化1. 软件测试web自动化测试精讲与实战2.零基础入门移动自动化——Appium框架3. 轻松教你使用Appium进行IOS真机自动化测试第四阶段 接口自动化接口测.
https://blog.csdn.net/itcast_cn/article/details/1224735982022年人工智能学习路线图,清楚明确_黑马程序员官方的博客-CSDN博客_人工智能学习路线图众所周知,人工智能时代已经融入到我们的生活的当中,不论是图像识别还是语音识别的相关产品已经开始落地,就连国家都将人工智能设为了国家战略级发展规划,人工智能开发将会是是未来技术研究的前沿。下面特别给大家整理了人工智能的学习路线,希望大家都能有清楚的学习方向。文章目录第一阶段 人工智能开发入门1. 人工智能之python编程零基础入门2、4天快速入门Python数据挖掘第二阶段 机器学习核心技术第三阶段 NLP自然语言处理技术第四阶段 CV计算机视觉技术1.AI-OpenCV图像处理10小时零基础入门2
https://blog.csdn.net/itcast_cn/article/details/122882407
想了解更多内容的小伙伴,可以关注黑马程序员社区及对应学科专栏,每日更新最新学习资源、附课程笔记、技术栈, 你想要的这里都有!