大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。

过来人,野生程序员15年

转行程序员 答疑解惑 全部问题

先理解科学和工程

学编程,学IT,学计算机……其实是一个非常宽泛的概念。

为什么会有:学编程“要不要数学好”“要不要学历高”的争论?为什么普通人对计算机有“高精尖”/科学怪咖的印象,而程序员却自称“码农”“IT民工”?

很大的一个原因就是因为你们不了解“科学”和“工程”的区别:


特征
工作结果
入行路径
科学
在未知领域进行突破,获得新知识/技术/发明
找到规律、提出见解、发表论文……
几乎就只有考大学考研考博……
工程
利用技术、资源解决的问题
芯片、电脑、软件/程序/应用
可以自学、培训

我们培训班能够提供的,不可能是“计算机科学”方面的教学,一定是“工程应用”类知识。

再理解硬件和软件,底层和上层

计算机大的方面,可分为:
  1. 硬件:看得见摸得着的都属于硬件。比如一台电脑,就包括:显示器(屏幕),键盘鼠标,还有里面藏着的CPU、内存、磁盘、网卡等等。还有网络设备:网线、交换机、路由器……
  2. 软件:看不见摸不着的,以信息、代码、程序等形式存在,运行在计算机硬件上的东西。比如:电脑上都要安装的操作系统,QQ或者微信,浏览器打开的网站……  

编程,属于软件的范畴。

现代计算机都是由软件驱动硬件运行。

软件越接近硬件的就越底层,一般来说,越底层就越难。

绝大多数培训班,都是面向最上层应用的培训。

数据库又是一道分水岭

在我们所说的上层应用中,按有无数据库支撑,又可以划分为:

  • IT信息化应用:简单的理解,它就是把现实生活中的数据搬到计算机中进行处理。比如淘宝,其实就是一个大商店,只不过这个商店里面不放具体的商品,而是展示商品的信息,比如名称、图片、价格、销售情况等等。整个淘宝,本质上是信息的传递,数据的:
    • 录入(比如发布商品/好评);
    • 修改(改价格/图片等);
    • 删除(货物下架删差评);
    • 查找(各种各样的商品)
    的过程。背后通常都需要“数据库”(以及由此衍生的“大数据”概念)的支撑。现在大部分应用都属于这一类。
  • 系统应用:其核心业务不是数据的增删改查,背后也不需要大型数据库支持。典型的就是:
    • 工具类软件,比如绘图的Photoshop和CAD,
    • 以及各种游戏。

不要局限于编程语言

你去培训机构问题他们的课程内容,很有可能听到的就是:Java/python/C++……

这些都是“编程语言”。你可以理解成和计算机交流的一系列的语法“规则”集合,不同的语言有不同的语法规则更多内容可参考:主流编程语言概述

以语法为导向,必然带来这么个问题:

  1. 记不住:把学习当做一种“背诵/记忆”,所以学了后面的忘了前面的
  2. 抓不住重点:纠缠/窃喜于一些生僻的、晦涩的、根本不常用的语法,茴香豆的茴字有几种写法?尤其是一些比较垃圾的语言(点名JavaScript
  3. 迷茫:学完了所有语法,也不知道能干嘛,做个网站,游戏,还是APP?都不会,甚至方向错误(PS:你为什么要学Java?懵逼.jpg)
  4. 视野狭窄:喜欢玩鄙视链,打口水战。学C的看不起学Java的,学Java的看不起学PHP的,PHP说它才是世界上最好的语言……

不知道你有没有饱受“学英语语法”之苦?不仅苦,而且作用非常有限。

一定要牢记:语言只是工具。 要用编程语言来局限你的学习内容! 因为你要学的,绝不仅仅是某一门或几门编程语言,而是全面的开发技能,比如一些必要的理论基础知识、基于语言的常用类库框架、开发调试技巧……等等。

那应该怎么选择自己的学习方向?

最好是你有自己的兴趣,知道你学编程是想干嘛的。比如:做一款游戏、开发一个APP、写一个网站……然后根据这个目标,学习相应的技术,一般包括:
  1. 基本的原理和基础知识;
  2. 相应的编程语言;
  3. 语言对应的类库框架等。

注意除了1基础知识以外,其他选项都是灵活的。比如开发游戏,可以使用的语言有:C++、Java、C#、JavaScript等可选;基于Java开发网站的框架有Spring、Struts等可选。这时候你可能就需要一些专业建议,或者随大流,^_^

如果没有特别的爱好,就是单纯的“面向就业”,个人建议随缘,就听你“领路人”的话就行。只要是主流的语言主流的框架,都没啥问题。

觉得很 ,不要忘记分享哟!

多快好省!前端后端,线上线下,名师精讲

  • 先学习,后付费;
  • 不满意,不要钱。
  • 编程培训班,我就选源栈

更多了解 加:

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧

公众号:源栈一起帮

二维码