当前位置 博文首页 > 人生代码 ---- 公众号:大学如何学习编程

    人生代码 ---- 公众号:大学如何学习编程

    作者:[db:作者] 时间:2021-08-01 20:53

    主要写给大学生看的。

    基本上认为你是0基础。

    最基本的能力

    学会网上搜索。你的问题网上都有答案。

    逐渐学点儿英文(或者使用翻译技术。) - 这个要求也许有点高。就当是学英文了。

    学会在正确的地方提问题,(别在知乎上提!)

    在这儿提问题:

    Stack Overflow - Where Developers Learn, Share, & Build Careers

    软件行业的简单介绍

    计算机语言

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

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

    不建议学C\C++,枯燥无味。

    应用范围

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

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

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

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

    学习的步骤

    利其器
    * 学习使用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)。

    基本编程能力的进阶

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

    Level 1:学会使用赋值语句/分支语句/循环语句完成一个小功能。
    Level 2:分拆代码的能力,使用多个子方法来解决问题。
    面条式代码(Spaghetti code):就是将一大堆代码写在一个方法里。这是需要避免的。

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

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

    可以理解为数据抽象。

    Level 4: 功能封装。
    这个术语上称为“内聚性”。

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

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

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

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

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

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

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

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

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

    层次的作用:

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

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

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

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

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

    什么是高手

    愿意写详细准确的注释

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

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

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

    注重代码的性能

    注重安全性

    cs
    下一篇:没有了