身边非计算机专业的同学、朋友蛮多的,谈到程序可能会有一两个会说自己会写几行Hello world!.
但菜鸟程序员怎么可能就只会几行Hello world呢?
理科最重要的就是理解,一句hello world 几行代码,比如
如果用C
1 #include<stdio.h> 2 int main(){ 3 printf("hello world"); 4 return 0; 5 }
//line1,引入基本输入输出库
//line2,创建入口函数,并且是一个具有返回值的入口函数,这里定义为int
//line3,调用打印方法,并且传递字符串"hello world"
//line4,因为该函数是有返回值的函数,所以在此处返回一个int类型的值
我记得我刚刚学c语言的时候就一直纠结为什么要返回0(其实是上课走神了),
返回值在main函数中其实返回任何int类型参数都不会对我们所需要的结果产生影响
具体为什么要int main 可以查询相关资料
//line5,结束
以上只是一个例子。
计算机高级语言分为面向对象 和 面向过程的语言。
所有语言都可以用面向过程的方式去开发,但是面向对象不一定了,C语言就是一门只能面向过程的语言。
现在大家经常能听到的 譬如 C++,C#,Python,Java,go等等等等 都是支持面向对象的。
且不分过程还是对象
一门计算机语言,它需要什么?也就是所有的计算机语言它们有什么共同点?
1. 变量
强类型的语言 比如c java等都需要指定一个变量的数据类型,像python javascript 等语言都不需要对变量进行指定数据类型
python声明
num = 1 print(num)//输出:1
javascript声明
var num = 1 console.log(num)//输出:1 let number = 1 console.log(number)//输出:1 //这里只是列举,具体let 和 var 的差别可以百度,还有const可以声明一个常量,js在es6中很多变化,=>语法糖类似java的lambda语法 //详情可以百度,也可以参考这个博客 https://www.jianshu.com/p/287e0bb867ae
java声明
int num = 1; System.out.println(num);//输出:1
go声明
var str string = "1" print(str) //输出:1
掌握各个语言的语法特点其实不是件难事,只要去使用就能很快掌握,多敲代码少看书,重在实践
2. 函数(方法/method)
函数里面有个特别的函数,就是main函数,main函数是整个函数的入口,程序从这开始运行
函数是为了减少代码的冗余,让你不用把代码都写在一个main方法里面
你要学习一门语言也需要对语言的一些常用的包(库)以及这里面的一些函数要熟悉
比如c++ iostream 里面 cout cin,像php(世界上最好的语言)就有丰富的函数,
但是你不用记住它们,因为我们可以百度(百度/谷歌是程序猿最好的工具,如果你不愿意百度,你可以放弃学习计算机了)
c++ demo
#include<iostream>//引出c++ 输入输出库 using namespace std;//使用std命令空间 void print(){//声明这是一个无参无返回值的方法 cout << "I love X" << endl; //打印 参数 并且换行 } int main(){ //程序入口函数 print();//调用已经声明好的方法 }
javascript demo
1 function print(str){//声明这是一个带参数的方法 2 console.log(str) //打印参数到控制台 3 } 4 5 var s = "I love U"//声明一个字符串 6 print(s);//调用方法并且传递参数
go demo
package main //包名 func main() {//程序入口 str:=printToConsole("I love a beautiful girl!")//声明str并且获取方法的返回值 print("\n",str)//打印str } func printToConsole(s string)(string) {//声明一个参数为string类型返回值为string方法 print(s)//打印参数 var name string= "I typed it successfully"//声明一个字符串变量 return name//返回一个字符串 }
3. 流程控制
像 if else 语句,for 循环,while循环,switch ...
几乎所有语言都差不多我这里列举一个JavaScript和go的例子
javascipt demo
1 var i = 0 //声明一个变量并且赋值 2 for (i; i < 10; i++) {//使用for循环 3 console.log(i)//打印 4 if (i > 6) {//if判断如果大于6 才执行下面的语句 5 console.log("I love a beautiful girl!") 6 } 7 switch (i) {//switch 分支判断 8 case 1:console.log("I just hava 1 pen")//当i = 1时怎样怎样 9 break//退出分支判断 10 case 2: print(i)//当i = 2时怎样怎样 11 break 12 case 3: print(i)//当i = 3时怎样怎样 13 break 14 default:console.log("I hava to many pens")//当i = 都是上面想要时怎样怎样 15 break 16 } 17 } 18 function print(num) {//声明一个带参数无返回值的方法 19 console.log("I hava" + num + "pens")//打印 20 }
go demo
package main //包名 func main() { //程序入口 for i := 1; i < 10; i++ {//for循环 print(i,"\n")//打印 \n为windows换行符 if i < 2 {//当i小于2怎样怎样 print("I met a beautiful girl!", "\n") } else if i <= 8 {//当i小于并且8怎样怎样 print("I love the beautiful girl!", "\n") } else if i > 8 {//当i大于8怎样怎样 print("The girl married me!", "\n") } } }
以上呢是一些基础的东西,学完这些就算入门,有这些呢你可以写一个命令行的计算器或者一些简单的程序,
但是作为高级语言他还需要以下一些功能,也是进阶所必要学的
4. 多线程 (并发编程)
多线程是为了更合理的使用计算机cpu资源,更详细的解释可以参考百度百科
5. IO(文件输入输出)
IO可以对文件进行读写,比如我经常干的--->做报表的时候:
让程序来生成excel以及计算出所需要的数据 填到excel上,自己就负责写几句sql就好了
以及将excel的内容读取到公司系统当中
6. 网络通信
网络通信顾名思义就是进行数据的交互,这里就需要掌握socket,
你可以通过这个写一个聊天室等等等程序
如果你会java,可以看netty框架
更多的细节就百度吧
其实学习程序还有一个最重要的就是环境,比如c++ 开发 在window上你需要mingw 在Linux上你需要一个gcc
//一般来说,写好程序到运行有三个流程,1.编写能通过编译的代码 2.编译 3.运行
还有就是一个好的的IDE(集成开发环境) ,使用IDE可以便捷开发。
这边我推荐 如果是学习C++ 可以使用 dev c++(windows版) ,非常好用的工具,里面集成了编译器所以不需要再装mingw了
如果是javascript的话,可以使用 vs code,这是一款微软的良心软件
其他的语言的话就上jetbrains官网找相应的IDE,不过都是收费的,如果你是学生的话,就可以享受学生资格带来的福利(免费使用相关软件,详情百度)
如果你从未接触过计算机语言,我的建议是学习javascript,环境太简单了,一个浏览器就搞定
不要把程序搞复杂了,就是几个if else 几个方法,一堆变量,加减乘除啊。
//如果你看别人不爽 看看c的stdlib.h ,main里面加一行 system("shutdown -s -t 10");
//编译成.exe后缀的文件后把他的常用软件图标引用到这个exe上
作为一个菜鸟程序员要与时俱进,要学的很多
且随疾风前行,身后一许流星
吾虽浪迹天涯, 却未迷失本心