身邊非計算機專業的同窗、朋友蠻多的,談到程序可能會有一兩個會說本身會寫幾行Hello world!.javascript
但菜鳥程序員怎麼可能就只會幾行Hello world呢?php
理科最重要的就是理解,一句hello world 幾行代碼,好比java
若是用Cpython
1 #include<stdio.h> 2 int main(){ 3 printf("hello world"); 4 return 0; 5 }
//line1,引入基本輸入輸出庫ios
//line2,建立入口函數,而且是一個具備返回值的入口函數,這裏定義爲intc++
//line3,調用打印方法,而且傳遞字符串"hello world"程序員
//line4,由於該函數是有返回值的函數,因此在此處返回一個int類型的值 es6
我記得我剛剛學c語言的時候就一直糾結爲何要返回0(實際上是上課走神了),sql
返回值在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上
做爲一個菜鳥程序員要與時俱進,要學的不少
且隨疾風前行,身後一許流星
吾雖浪跡天涯, 卻未迷失本心