新手学习编程入门

2023-06-05 0 818

前年给两个好友写了两个自学程式设计进阶的单纯文件格式,那时放出。这首诗特别针对的是程式设计初学者,唯有能囊括绝大部分常见的小东西,请诸位合作开发届大牛通达股份!但是请考量该文的第一类,千万别不屑一顾了?

[计算机系的初学者们,能看我的那个提问:计算机系大二迷惘求点拨-王解县的提问]

责任编辑的产品目录如下表所示:

1 网络平台

1.1 图形界面网络平台:[1.1.1 Linux,1.1.2 Windows,1.1.2.1 .NET网络平台,1.1.2.2 非.NET网络平台,1.1.3 Mac]

1.2 终端网络平台:[1.2.1 AndroidAndroid,1.2.2 iOS,1.2.3 Windows Phone]

1.3 Web网络平台:[1.3.1 后端,1.3.2 后端]

2 词汇

[2.1 C, 2.2 C++, 2.3 C#, 2.4 Java, 2.5 HTML, 2.6 PHP, 2.7 Python, 2.8 ASP.NET, 2.9 其它]

3 辅助工具

[3.1 Visual Studio, 3.2 Eclipse, 3.3 Intellij IDEA, 3.4 Android Studio, 3.5 XCode, 3.6 Pycharm]

4 远距

[4.1 资料库, 4.2 Github, 4.3 MOOC]

1.网络平台

1.1 图形界面网络平台

图形界面网络平台以作业系统来进行分类,分成Linux、Windows和Mac四个网络平台。

1.1.1 Linux

Linux是著名的黑客Linus在大学合作开发的开源作业系统,建立在早期的Unix内核基础上。由于它优良的特性及开源的管理方式,吸引了全球大批的合作开发者使用。Linux一般是用于服务器,因为它作为两个作业系统来说本身极其优秀,适合在后台作为服务器系统持续稳定地运行。 Linux上的程式设计是比较基础的,考察你对命令的掌握情况,但是对于初学者的话,还是有一定难度的。虽然号称掌握了Linux就说明是个大牛,但是至少这种言论是片面的。但是自学Linux确实能提高对计算机的理解能力,这方面比较好的书有两个叫[《鸟哥的Linux私房菜》](http://vbird.dic.ksu.edu.tw),专门为学Linux写的好多书,业界评价很高。

1.1.2 Windows

Windows是使用最为广泛的作业系统,粗略进行分类也能为分个人用户版本(专业版,基本版,家庭版等)和服务器版本(Windows Server)。但是由于Win10的推出,Windows那时实行全网络平台统一内核的方式管理,又新增了嵌入式版本的Windows。 Windows上的程式设计是最基本的,因为绝大多数人都在用Windows。从QQ到英雄联盟,从快播到书店管理系统,从ATM到银行交易,基本都是在用Windows(当然,很大二部分后台都是Linux。Windows和Linux是最重要的作业系统)。Windows下有很多的程式设计框架,大致能分成两种:一种是微软出品的(限于Windows就是微软的)以.NET为代表的程式设计框架,另一种是其它第三方的网络平台。

1.1.2.1 .NET网络平台

以前的.NET只能运行在装有特定版本的Windows作业系统上。.NET伴随着Windows的更新也一直从1.0升级到如今的4.5.以.NET为母体,如今微软将.NET开源了,苹果和linux都能用了。通过mono,能在各个作业系统上调用.NET。但是,真正拿.NET主力合作开发的,恐怕大多数还是windows吧。有MFC(C++,非常古老)、WinForm(C#,主流)、WPF(C#)等程式设计框架。

– MFC:很古老的一种程式设计框架,用C++写的,有控件,有事件,有服务,很完备。缺点就是小东西太古老,不好用,那时各高校仍然有课程在用(比如图像处理等),但是做这小东西事倍功半,不推荐;

– WinForm:非常主流的程式设计框架,很多软件都是用那个框架做的。用C#作为程式设计词汇,运行很稳定,好上手,合作开发成本低。

– WPF:微软新推出的程式设计架构,界面很绚丽,用XAML+C#作为合作开发词汇,优秀的MVC架构,是未来的趋势。可惜发布时伴随着Vista系统的失利,加上其本身庞大的资源消耗,所以基本上没有多少人在用。但是它的思想是先进的,一路走来赶上win8和win10(商店应用)都是在用的。

1.1.2.2 非.NET网络平台

非.NET网络平台的框架一般都能跨网络平台使用。

– Qt:诺基亚出品的程式设计框架,用C++合作开发。有自己的界面库,支持跨网络平台。在前些年很火,但是那时不流行了。

– Java网络平台:Java本身是个词汇,但是基于Java有很多开源的框架和网络平台,如Swing等,都提供自己的控件。但是运行效率太低,因为Java本身就是个虚拟机。目前随着硬件网络平台效率的提高,已经不是问题。绝大多数服务器后台都运行的是java。

– 还有其它的网络平台,在Windows上使用率基本很少。

1.1.3 Mac

Mac是苹果专用作业系统,苹果系统很大二部分软件都是用Mac下的软件合作开发辅助工具做的。Mac下的合作开发框架叫Cocoa,iPhone下的叫CocoaTouch(多了个touch)。当然,Mac下的软件也能用上面的跨网络平台的框架来合作开发。这方面不做过多介绍。

1.2 终端网络平台

那时最火的就是终端网络平台了,这一点毋庸置疑。

1.2.1 AndroidAndroid

Android是两个开源的作业系统,在2008年首次推出,之后由Google收购,到那时是最火的作业系统。Android的内核是基于Linux的,由于其开源的特性,所以很好定制,使得Android在短短几年内迅速占据终端作业系统的三分之二。 Android合作开发是基于Android提供的SDK(软件合作开发包)进行的。主要的合作开发词汇是Java(用来写后台逻辑)和XML(用来写界面)。 Android合作开发有一些书,这方面比较有代表性的是[《疯狂Android讲义》](疯狂Android讲义_百度百科). 早期(2013年前)Android的合作开发环境是Eclipse,配合Android的SDK、模拟器等,后来Google推出了整套的Android Studio进行Android合作开发,效率非常高,那时基本都在采用Android Studio进行合作开发。

– [视频教程](AndroidAndroid合作开发_AndroidAndroid合作开发视频教程从入门到精通 – 麦子学院)

1.2.2 iOS

iOS是苹果iPhone以及iPad上的作业系统,只能在苹果机合作开发,只能用在苹果产品上。iOS是两个及其优秀的终端作业系统,Android在发展的早起,很多都是借鉴了iOS的合作开发经验做的(当然,后来就互相抄袭了)。iOS合作开发使用苹果出品的XCode软件进行,那个软件还能用来合作开发Mac下的软件。XCode是一整套的合作开发辅助工具的集合,能设计界面、进行调试、上传到应用商店等。iOS合作开发使用Objective-C程式设计词汇和Swift程式设计词汇,后者是苹果在2013年6月推出的新一代程式设计词汇,集合了当下所有词汇的优良特性,大有取代Objective-C的意思。所以Swift一直很火。这方面的教程有:

– [斯坦福大学公开课iOS合作开发](斯坦福大学公开课:iOS 8合作开发)

– iOS合作开发指南等。

1.2.3 Windows Phone

Windows Phone是微软出品的手机作业系统,那时已升级到了Windows Mobile 10.它的合作开发环境是Visual Studio,用C#进行合作开发,基本就是windows下合作开发软件(WPF)的模型是一致的。虽然我在大学做的最多的就是WP(因为上手快,微软的教程给力),但是它的市场占有率多年来一直升不上去。希望得益于Windows10的爆发,能给点力。这方面不给教程了。

1.3 Web网络平台

Web网络平台的程式设计基本是基于服务器的程式设计。这方面分成网页(后端)和服务(后端)。

1.3.1 后端

后端就是我们所看到的网页。比如[百度](百度一下,你就知道)的首页很朴素,[QQ浏览器](QQ浏览器9官方网站 – 浏览器_浏览器下载_微信电脑版)的首页就很酷炫,等等。这些是用什么实现的? 实现词汇会在后面再介绍。概括来说

– html是所有网页词汇的鼻祖,网页都得用它;

– CSS就是两个样式选择器,那些字体、颜色等都是用的CSS来控制的;

– javascript是网页脚本(它可和java没有半点关系),是用来写单纯的后台逻辑交互和后端界面交互的;

– html5是最新的html的版本,支持众多的界面特性。QQ浏览器的首页就是用html5做的。

1.3.2 后端

后端是用户看不到的,小到注册两个用户,大到处理几十万的数据,都是后端来做。这方面典型的合作开发词汇是C++、Java、php和python、ASP等。 后端是基于服务器进行的合作开发。基本上在软件工程中处于很顶级的地位。这方面用Java合作开发是业界很流行的,因为Java没有C++那么难写,本身又有很多框架,比如Spring等,非常适合写后台的数据交互。

2.词汇

计算机程式设计词汇有几百种,小到智能手机,大到服务器集群,都运行着各种各样的程式设计词汇写的程序。没有哪一种程序就比另一种高贵,都各司其职,完成我们交给他们的任务。

计算机系的学生一般自学程式设计都是从C或者C++开始的。这两种词汇在大多数高级词汇中出现较早,影响力也很大。对于计算机系,当然要学好这两种词汇,才能为以后自学其它词汇打下基础。

对于非计算机系或者以前从没接触过程式设计的同学来说,不建议上手就学C和C++,因为它们偏难,而且并不是必须的。对于这些背景的同学,十分建议学Python。因为Python首先是跨网络平台,然后,没有特别复杂的语法(至少完成日常使用不需要),最重要的是,有各种各样的包能支持你做各种各样的事情!

2.1 C

C是基础性词汇。它不是面向第一类的,是面向过程的词汇。C诞生于1972年,其优良的特性很高的效率使它长期占据程式设计词汇排行榜第一名。C可被广泛用于图形界面、服务器、嵌入式合作开发中。

– [C程序设计视频教程](C程序设计案例教程(2015秋季)-学堂在线慕课(MOOC)网络平台)

2.2 C++

C++能看作是对C的扩展,增加了面向第一类的机制。什么是面向第一类?单纯来说就是,所有的要操作的物体都是第一类,比如两个人是两个第一类,一条狗也是两个第一类。接着就能在第一类上定义操作,比如人走路是两个函数,人吃饭也是两个函数。这样设计的好处就是能封装起来多次使用,也能进行继承。保留总体的相似性,又不失个体的个性。比如张三和李四都是继承人那个类,但是张三吃饭要3分钟,李四就要10分钟,这就是个性。面向第一类设计的思想能在[这里](什么是面向第一类程式设计思想? – Java – 知乎)找到进一步的阐述,这基本是所有现代主流词汇的基础。会面向第一类,所有的词汇学起来特别快。 C++能被广泛用于图形界面端、服务器和嵌入式的程式设计,使用程度非常广泛,但是由于它的语法很难(主要是指针操作)、没有现成的SDK进行封装,所以并不是很适合用来写终端端的应用。 能认为,C++什么都能干,它太基础了,效率是高级词汇中最高的,但是术业有专攻,它并不是都适合写各个网络平台的应用。

– [C++程序设计视频教程](C++ Programming | C++程序设计)

2.3 C#

C#是微软是2000年推出的在.NET网络平台上的程式设计词汇,没有指针,集合了大多数面向第一类词汇的精髓,好学好用,效率也不低,是主流的windows图形界面应用和部分windows服务器后台的程式设计词汇。

– [C#视频教程](C#程式设计-学堂在线慕课(MOOC)网络平台)

2.4 Java

Java和C#类似,差不多单纯。但是Java是跨网络平台的,能写图形界面、终端(Android)和后台服务器,用处非常广泛,框架也最多。

– [Java视频教程](学堂在线-最大的中文慕课(MOOC)网络平台)

2.5 html

html和javascript、css等都是合作开发网页后端界面显示的词汇,是很轻量级的。

– [html等教程](Codecademy – learn to code, interactively, for free)

2.6 php

php是用来合作开发服务器后端的词汇,非常好学好用,语法很单纯。

– [php教程](PHP 教程)

2.7 python

Python是一种脚本词汇,执行效率很低,但是语法异常单纯,c++写几十行的小东西,它几行就能搞定。Python理论上能用在任何地方,但是基本上常见于后台服务器和一部分科学研究。作为脚本词汇,Python是优秀的。

– [python教程](Codecademy – learn to code, interactively, for free)

– 推荐的两个教程:Python 3教程发布

2.8 http://ASP.NET

http://ASP.NEThttp://ASP.NET是微软出的写服务器后端与部分后端的框架。用C#和html程式设计。

– [视频教程](ASP.NET基础实例教程-我要自学网)

2.9 其它

其它词汇还有几十种,但是都不是很常见。这是不再介绍。 学会面向第一类程式设计思想,走遍天下都不怕。

3.辅助工具

3.1 Visual Studio

微软出品的宇宙最强程式设计辅助工具,没有之一。 VS能被广泛用于图形界面、服务器和终端端的程式设计,最新的VS也能用来做Android和iOS,其性能之彪悍功能之强大是宇宙第一。写C、C++、C#的天然网络平台,也能用来写Python、html等。

– [VS的官网](Visual Studio Home)

3.2 Eclipse

Eclipse是免费开源的软件。它是两个软件网络平台,配合丰富的插件,能用来写Java、php、C++、Python等,用来写图形界面、服务器应用。

– [Eclipse官网](Eclipse – The Eclipse Foundation open source community website.)

3.3 intellji IDEA

Intellij IDEA是捷克Jetbrains公司出品的收费的程式设计软件。是Eclipse的替代品。能把它叫做java界的Visual studio。用来合作开发基于Java的任何应用。Android Studio就是基于那个软件的框架进行合作开发的。

– [intellij IDEA官网](JetBrains: Development Tools for Professionals and Teams)

3.4 Android Studio

合作开发Android的集成辅助工具。

– [网站](http://www.baidu.com/link?url=ckxMsBEZ42QFFLmh0KtPkZLHHcFMaVnxPwfDvUdFFNsyo1RtqvnyaodTIqqw9Z5z&wd=&eqid=fed82086000f227b000000035646be0f)

3.5 XCode

XCode是用来合作开发iOS和Mac下的软件的,也就是说它只能运行在苹果电脑上。XCode能编写的词汇主要有C/C++,Objective-C以及swift等。其它XCode个人感觉并不是太优秀,有很多不如人意的地方,但是没办法,你想做苹果的小东西只能用那个。JetBrains公司出了两个Mac下写苹果软件的IDE叫做AppCode,我也用过,体验还能。但是话说回来,有官方的小东西就有官方的支持,用第三方的难免会出现不必要的问题,最多也就当个备用吧。

3.6 PyCharm

PyCharm也是JetBrains公司出的专门用来写Python的IDE。它基本能说是Python界的Visual Studio,想要的功能基本都有。更新也很频繁,目前我一直在用它。

4.远距

4.1 资料库

资料库是存储数据的媒介,所有后台数据交互的都必须有资料库参与。目前最常见的资料库有Oracle、SQL Server、MySQL、MongoDB等。资料库独立于程式设计词汇,由特定的SQL语法进行支持。

4.2 Github

[Github](Build software better, together)是世界上最大的开源软件管理网络平台。责任编辑就托管在github上。世界各地的程序员把他们写的各种类型各种词汇的代码托管在github上实现共享,有利于软件行业的发展。git代码管理网络平台是那时最火的版本控制辅助工具。 iOS、Android等有很多有名的项目都是托管在github上的。

4.3 MOOC

那个主要是网络公开课。那时最火的受教育形式。 近几年,MOOC越来越火,课程的数量和质量都不断发展,给了我们足不出户就能领略世界大师风采的绝佳机会。责任编辑有很多链接都是公开课的。推荐的不错的有:

– [网易公开课](网易公开课),资源比较多,各个领域都有,里面有计算机板块,中国外国都有。上面说的MIT的算法,我们都是在上面学的,老师讲的特别好。另外它还有不断更新的TED视频,很值得一看。

– [coursera](Coursera | Online Courses From Top Universities. Join for Free),斯坦福机器自学大牛Andrew Ng联合成立的,上面都是外国大牛校的视频。我研究生课程里的机器自学就是学的这上面的,不错。

– [果壳MOOC学院](MOOC学院(慕课)| 发现全球在线好课),它只是两个公开课搜索中心,帮助你链接到各个mooc课程。

– [学堂在线](学堂在线-最大的中文慕课(MOOC)网络平台),清华主导的,网站做的不错,课程质量很高,那个是要着重推荐的,我也是最近才发现,上面的计算机和数值方面课程不错。

– [codecademy](Codecademy – learn to code, interactively, for free),这不是公开课网站,是两个手把手教你自学web词汇的。这里有Ruby,python,html等热门web词汇,而且教程设计丰富而有趣,感觉是学后端最好的地方了。

– 网络资源:大牛的博客什么的,这方面我就没什么好推荐的了,看你的水平去发掘了。百度和google你是当然离不开的了。翻墙什么的你自己去弄吧,反正百度没有的小东西,你能去google,google也没有,你能尝试一下用英文搜索,效果非常好!这里推荐stackoverflow网站,只要你有解决不了的问题,用英文上google搜,如果stackoverflow里有类似问题,恭喜你肯定能解决。

– 书籍:我们计算机方面有很多经典的书,比如高德纳老爷爷的《计算机程序设计艺术》相信你一定听过,网上都有pdf下载,能看一看。另外,我们那个方面像《XXX精通》等书太多了,而且基本都是大部头的,还能防身呢!那个推荐你能下pdf就下pdf,不然这么大,有个三五本就够你受的了。这些书都是当字典用的,千万千万别从第一页码开始一页一页读!效率低而且你会发现没用。这都是你在遇到问题时去查的,不是让你真学的。

– [我在知乎上关于计算机自学的两个提问](大二迷惘求点拨? – 王解县不在家的提问 – 知乎)

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务