大学如何学习编程

软件行业的简单介绍

计算机语言

主流计算机语言:C\C++, Java, JavaScript\HTML\CSS, Python。

注:我把.NET的技术去掉了,主要原因是Java技术应用范围比.NET广的多。

应用范围

  • 应用软件

计算机上的大部分软件都是应用软件,可以分为命令行/桌面软件/网站应用。

  • 大数据

大数据技术,顾名思义是处理大量数据的问题。大型网站的服务器上一般都会使用相应的技术。

  • 人工智能

人工智能技术涉及的面比较广。现在不建议大家学习。

  • 手机软件
  • 单片机
  • 运维
  • 测试
  • 安全

学习的步骤

  • 利其器

* 学习使用github

github不仅仅可以托管你的代码,也可以管理你的软件项目。

建立一个github账号。

建立一个项目(公开的,因为免费)

* 学习使用vs code

vs code是一个轻量级的代码编辑器,带有各种各样的扩展,可以支持不同的编程语言。

下载vs code,创建一个目录,和github的project关联。

学习如何submit/push你的代码。

* 建立自己的博客

可以用github pages功能建立博客。

或者去博客圈建立一个账户: 博客园 - 开发者的网上家园

博客园的好处是,博客园是一个开发者的社区,多多少少可以了解一些开发的消息。

* 学习markdown

markdown是一个文本内容编辑语法。可以用来写博客。

许多网站和工具都支持。

  • 学习的一个关键问题

任何系统的学习一定要有输出。笔记+代码。

如果你看了一本C语言的书,不写笔记,不写程序,那你只是浪费时间。

这就是为什么需要建博客的原因 - 放你的学习笔记。

为什么要使用github - 放你的代码。

  • 如何学习计算机语言

写一个总结:语法\语言特性和示例

下载和阅读语言对应的代码规范。

学习语言要了解一个叫做"framework"的概念,每种语言在设计的时候都有特定的目的,也可以理解为语言的需求。

语言的需求是帮助开发者实现某个方面的功能。

为了这个需求,每种计算机语言会提供一套API。

开发者对语言的使用,更主要的是对语言提供的API的使用。

所以,学习语言 = 语法 + framework。

关于framework,学习的时候,不用太详细,先总结一个分类就可以了。

还有一个概念是:生态环境。

可以理解为:许多第三方的开发者,为这个语言提供了更多的API。

这个也很重要,在你的开发中,多多使用高质量的第三方包,既方便,而且质量也高。

这些东西,和别人多交流,网上多看看,慢慢就了解了。

  • 必备知识

* 如何学习数据结构

写一个总结:

数据结构的类型,每个类型的元素和特点,每个类型对应的算法有哪些,算法的作用是什么。

使用Java实现一些数据结构和算法。

这时候,可以同时学习Java。

* 如何学习数据库原理

可以装一个MySQL和对应的开发平台。

学会以下内容就可以了:

如何创建表(数据类型至少含有varchar2, int, double, datetime),有外键的表,和一个Tree表。

如何删除表

学习如何写SQL:

Select/Update/Insert/Delete

Count/Max/Min/Avg/Group By

Join/Left Join/Right Join/Outer Join

Where/Union/Order By

学习编程的几个发展方向

  • 算法方向

主要是学习数据结构、算法和C\C++,刷ACM竞赛试题。

好处:技术上比较专注,适合学生。

如果你没有极大的兴趣,也可以放弃。

实际上大多数开发根本用不上这些东西。

  • 小软件导向

通过写一些小而有趣的程序,慢慢锻炼自己。

有人问,如果,不知道如何写怎么办?

方法:确定技术\分解问题\网上搜索

拿魔方游戏举个例子,(我也没有做过。)

首先我会在网上搜索Web的3D技术有哪些?

其结果可能是选择一个js 3d的类库。

然后,这个类库肯定有官方文档。

现在是分解问题的时候了。

首先学习怎么画一个正方形。

然后是怎么画出一个立方体。

然后是如何让它旋转,等等等等。

还有一个暴力方法:直接搜索别人写成的源代码,拿过来研究。

举一些例子:

* 写一个2048游戏

使用Html\CSS\Java Script写一个2048游戏。

* 写一个爬虫

使用python爬一个网站,找到拥有某些关健字的文章。

可以学习用sqlite,保存一些信息,比如,文章的URL和内容等等。

用Java再实现一遍。

* 写一个魔方游戏

学习如何解魔方

使用Html\CSS\Java Script完成一个3D魔方游戏。

  • 网站方向和大数据方向

这两个方向和现在软件行业的就业比较match。

但是,需要人指导,所以,现在不讲。

什么是编程

编程是一个分解和组装的过程。

分解:就是把需求分解成小功能的能力,我们称之为设计。

组装:把代码合理的拼凑起来,我们称之为框架(architecture)。

如果大家对C/C++感兴趣的话,可以加一下我们的学习交流Q群:637  935  295,免费领取一套学习资料和视频课程哟~

基本编程能力的进阶

编程是使用编程语言实现一个业务问题的解决方案。

  • Level 1:学会使用赋值语句/分支语句/循环语句完成一个小功能。
  • Level 2:分拆代码的能力,使用多个子方法来解决问题。

面条式代码(Spaghetti code):就是将一大堆代码写在一个方法里。这是需要避免的。

可以理解为写作文中的分段一样,将不同功能的代码封装到不同的子方法中。

  • Level 3: 结构化编程

认识到在一个功能中的数据有哪些,学习合理的封装数据,形成一个或者多个数据结构。

可以理解为数据抽象。

  • Level 4: 功能封装。

这个术语上称为“内聚性”。

比如,把操作字符串的方法,写到一个StringHelper的类中。

把操作文件的方法,写到一个FileHelper的文件中。

  • Level 5: 面向对象编程

面向对象编程 = 数据抽象 + 功能聚合。

面向对象的封装性,继承性需要以后慢慢理解。

  • 层次框架能力

层次是框架的一种简单形式,是对框架的初步理解。

将代码形成多个层次,比如:常见为3层,表示层/业务层/数据访问层

表示层: 把和用户交互相关的代码。

业务层: 业务逻辑代码,和UI无关。

数据访问层:读写数据相关的代码。

层次的作用:

方向性:只能从前层调用后层的功能。

隔离性:不能调用不相邻层次的功能。

  • 代码阅读能力

能够快速地从代码阅读中,明白代码的用意。

  • 业务理解能力

能够很好理解业务,并且能够构想出业务在项目中是如何实现的。

到这儿,就差不多可以算是入门了。

什么是高手

愿意写详细准确的注释

愿意花时间给变量、方法命名

愿意花时间提高代码的可读性

学习代码规范\优化代码风格

注重代码的性能

注重安全性

发布了174 篇原创文章 · 获赞 22 · 访问量 7154

猜你喜欢

转载自blog.csdn.net/weixin_45820912/article/details/103825865