很多人想要自学编程,但基本上是一个计算机小白。不了解自学编程应该从哪里开始?甚至不了解什么是编程。今天黑马程序员从不同维度带大家了解如何自学编程。
一、了解方向
自学编程无论是出于兴趣,还是为了就业,我们首先要了解的就是就业方向:
前端开发:也就是用户端开到的界面,比如我们看到的百度首页、购物平台页面,甚至是各种APP能看到的界面。都属于前端范畴,所以前端的工作更偏重于与用户的交互。前端基础是HTML+CSS+JavaScript,由于框架相对较多,技术更新较快,所以需要一定的学习能力。
不同的后台应用的语言不同,如果说前端更在乎用户的体验感,那么后端就是更偏重于逻辑。这里建议学习的编程语言是Java,毕竟现在国内市场需求量依旧是第一。不同的后台应用的语言不同,如果说前端更在乎用户的体验感,那么后端就是更偏重于逻辑。这里建议学习的编程语言是Java,毕竟现在国内市场需求量依旧是第一。
数据库开发:也称之为DBA,之前阿里培养过一批DBA,主要工作就是维护数据库,针对数据库进行设计和开发。常用MySQL、Oracle、SqlServer等。
大数据是后台技术加上数据库操作,可以来处理海量数据。大数据用Python/Java多一点。
大数据是后台技术加上数据库操作,可以来处理海量数据。大数据用Python/Java多一点。
嵌入式:大家对自动化驾驶或者是机器人有兴趣的话,可以了解下嵌入式开发。更适合科班生,主要用C/C++;
机器学习:这都是人工智能方向的内容,也是比较适合科班生,很综合的学科。所涉及的学习内容就不光是编程语言这么简单了。
自动化测试和自动化运维:这两个方向都需要测试或者是运维的基础,学Python比较合适。
二、各类编程语言
上面讨论了,不同就业方向需要重点掌握的编程语言不一样。下面一起来看看各类编程语言:
机器语言:是一种指令集的体系,二进制代码语言,是计算机可以直接识别和执行的语言。但是直观性差,非常容易出错。
汇编语言:是面向机器的程序设计语言,为了解决机器语言难以记忆和理解的问题。汇编语言,机器不能直接识别,需要一种程序将汇编语言翻译成机器语言。
高级语言:屏蔽了底层许多细节,高级语言和汇编语言同样完成一项工作,但是效率确实汇编语言的3-6倍。
脚本语言:多为无类型的,比如一个变量可能现在为字符串,下一刻变为整型。
难易程度按照图片由高到低,一层比一层难。
三、如何自学
(1)选定方向
按照第一个分类,大家找到自己感兴趣的方向,进行学习。找到你要选择的行业,它所需要的技术是什么?然后抽丝剥茧,找到对应的学习资料。
(2)基础学习
我们以Java举例,基础所需要掌握的知识为:
需要高清图请到黑马程序员官网查看
要学习的第一步就是基础语法,那什么标准才是学会了呢?做出Demo,从输出第一个hello world,到完成一个学员管理系统。这就说明已经是入门了,不断地输出会增加学习动力。
(3)做出项目
现在网络上很多培训机构也有公开的免费项目,可以跟着课程进行一个简单项目的学习。按照老师的思路,有一个完整项目学习的思路。之后我们可以到GitHub上找到开源项目,筛选出自己感兴趣的进行实践。
先看课的好处就在于,老师会带着大家了解解决问题的思路,有整体的项目架构了解。比如这个项目采用了什么最新技术?这些技术点面向市场的价值是什么?
四、学习中会遇到的困难
(1)环境的安装与配置
新手面对的第一大难题就是环境的安装和配置了。最先开始接触的时候,根本不知道怎么配置环境。这个时候只需要一套好的教程,和百度即可。百度文档一般都有比较清晰的步骤。
(2)找到学习资料
现在培训机构会在各大平台更新编程的课程,多试听几套,找到你喜欢的老师风格即可跟着学习了。书籍的话,看评分,看其他人的推荐,一本好的书不仅可以带我们入门,还可以扩展我们的学习思路。
(3)问题不会解决
出bug就慌了,不知道问谁不知道怎么解决。但是初学的阶段,出现的一切问题都可以在搜索引擎上找到答案,只需要将报错问题,复制到百度即可。或者是到IT论坛中提问,常用的国内论坛有CSDN、开源中国等。
结论
以上是一些帮助新手学习编程的思路,但实际学习过程中要涉及的内容非常多。坚持才是最重要的,多多实践持续学习一定会有好的结果。至于计算机组成原理、操作系统、计算机网络、数据结构与算法、编译原理,这些科班生必备的内容。可以到真正就业后补,如果你有大把的时间自学的话,可以看一些高校名师的公开课。