/*
* 这是一篇伪代码,用于向非专业人士解释如何进入编程世界
* 文章的整体结构,展示了大部分编程语言采用的标准写法
* 当前段落是一个注释区,用来说明功能、声明许可等
*/
#include "《程序员的世界你会懂》之什么是程序员"
#include "《程序员的世界你会懂》之程序员的常用工具
function <a id="zbhj">准备环境</a>() {
- 整块时间:进行系统性学习和开发,如晚上8点-12点
- 碎片时间:进行知识点回顾或做计划,如等电梯、排队时
- 清静场地:如书房或阳台,并告诉你的家人或朋友尽可能少的打扰你
- 远离干扰:手机静音并远离10米以上,或干脆关机
- 拜个师傅:如果有一个可以带你入门的朋友最好,可以少走很多弯路
- 寻求帮助:遇到问题时,应首选Google或百度,解决不了的时候才选择论坛或邮件
- 特殊情况:如果你选择了一个犄角旮旯的方向,光顾论坛或订阅邮件列表是优选
}
function <a id="qdgj">清点工具</a>() {
- 思维图:帮助整理思路。Xmind
- 编辑器:文本是王道。EditPlus、UltraEdit、Vim等
- 浏览器:上网必备。Chrome、Firefox等
- 云笔记:可以在各个设备上编辑查看你的笔记。有道云笔记、便签、备忘录等
- 项目/个人管理:推荐Tower+钉钉,二者简直是绝配
}
function <a id="lqgn">理清概念</a>() {
- 编程语言
- 程序都是用编程语言编写的,如同书是由文字书写一样
- 同一个程序可能由不同语言编写,如同一本书里可能包含了中文和英文
- 常见的语言:C、Java、Objective-C、C++、C#、PHP等
- 操作系统
- 大的,有微软的windows、苹果的iOS、Linux、Android等
- 小的,有μC/OS-II等
- 看看《Orange S:一个操作系统的实现》也许能让你心潮澎湃
- 网站
- 一个网站是需要服务器的
- 你访问的某个网址,可以近似的认为标识了某地某个机房内的一台服务器的名称
- 你现在所看的网页是由部署在服务器上的程序‘生产’出来,并通过网线‘传输’到你的浏览器上的
- 传输的内容是一大堆有格式的字符,需要你的浏览器进行‘解释’,于是你可以看到文字、图片、视频
- app
- Application的缩写,是指智能手机或平板上运行的应用程序
- 这些应用运行在操作系统上(多数是Android和iOS),类似windows电脑上的浏览器和视频播放器
- 数据库
- 可视为电子化的文件柜
- 常见的数据库:MySQL、Oracle、SQLite、Microsoft SQL Server等
- 数据库里存放的都是数据(废话),对数据的操作主要有增删查改
- 对数据库操作同样使用语言,常用的数据库语言为SQL,增删查改操作对应着insert、delete、select、update
- 数据库并不可怕,可怕的是里面的数据
- IP | 域名 | 网址
- IP是一台计算机在网络上的身份证号,域名是为了方便人们称呼这台计算机而给它起的名字,一个域名可能对应多个网址
- 220.181.111.86是百度的IP,baidu.com是域名,mp3.baidu.com和www.baidu.com都是百度的网址
- DNS服务器可以将网址翻译成IP地址
- 直观的,windows下打开命令提示行,输入 ping baidu.com即可
- 嵌入式
- 包含硬件和软件两部分,两者兼并无较明确的界线
- 从硬到软涉及到的知识部分依次为 硬件(各类设备/总线)→ 驱动 → 操作系统 → 文件系统 → 应用程序
- 涉及到的语言,除应用程序外其他基本为C和汇编,应用程序则五花八门
}
function <a id="xzfx">选中方向</a>() {
- 这点很重要
- 0和1的世界太大了,四处放炮是不行滴
- 列几个方向
}
function <a id="ksxxm">开始新项目</a>() {
- 实践是学习的最佳途径
- 找一个感兴趣的点子,用思维图把它构想出来
- 找个行内的人帮你看下,列一下需要哪些知识点
- 最好可以和行内的人一起合作
- 如果自己单干,推荐一种方式:网上找一篇类似《从零开始做xxxx》的文章,当然,xxx和你要做的项目差不多,跟着做
- 开始前先阅读相应的知识点,简单的看,看两天,了解大概其即可,在项目中不懂了再回去翻
}
function <a id="zbj">做笔记</a>() {
- 在云笔记上建几个文件夹,将你需要学习的内容分门别类
- 记录你的灵感、思路、感想、经验
- 记录你遇到的好文章和好项目,记住一定要看,没有看过的东西最终都将与你无关
}
function <a id="xbk">写博客</a>() {
- 坚持
}
function <a id="mkh">模块化</a>() {
- 将代码尽可能的模块化,在做多个项目的时候可以很方便的拿来用,避免重复造轮子
- 别人的代码能用的就拿过来,经历一遍别人经历过的痛苦是没必要的,当然注意保留别人的名字,攒人品也是很重要的
- 用版本控制工具管理你的代码,并上传到云端,github和bitbucket都是不错的选择,国内的也有类似的OSC
}
function <a id="fx">分享</a>() {
- 你的博客你的程序你的产品都可以分享给他人
- 当别人通过你的分享而解决了问题
- 当别人给你的分享带来反馈
- 当别人分享你的分享
- 分享的快乐和成就感是杠杠杠杠的
}
//这同样是一个注释区,称为行注释,与之对应的是通过/* ... */是块注释,如文章开头
//大部分的编程语言都会有一个main函数,意为程序的起始运行点
void main() {
准备环境();
清点工具();
理清概念();
选中方向();
//经过前面的准备过程,接下来就会进入无限循环
//这是一个漫长的过程,需要你静下心来沉淀,沉淀,再沉淀
//当然,在其中你会收获无限的乐趣,还可以明白很多有关程序员笑话的梗:)
while (true) {
开始新项目();
做笔记();
写博客();
模块化();
分享();
}
return 0;
}