過年了,給親朋好友解釋「啥是程序員」

前言

一年一度的春節又到了,做爲程序員的你是怎麼告訴親朋好友本身平常究竟是作什麼工做的呢?程序員

程序員是一個新興的職業,我在上大學之前不瞭解程序員究竟是作什麼的,對編程語言也一竅不通,也不關心玩過的「遊戲」和每天逛的「網站」到底是怎麼來的。數據庫

當年加了計算機科學與技術專業的新生羣,聽着師兄和師姐們在聊天,其中就聊到了「程序員」這份職業。當時腦海裏第一反應想象的竟是「複印機、打印機等辦公」亂七八糟的東西編程

複印機、打印機

外行人看程序員

有的「初高中」同窗知道我讀了計算機專業,因而過來問我:計算機專業應該會組裝電腦的吧,我想組裝一臺新電腦,能不能幫幫忙給點意見,好比電腦配置清單什麼的。微信

電腦配置清單

在我大學期間我爸但願我多考一些證書,好比有關「電氣和會計」之類證書。他認爲:只要證書多,那找工做確定不成問題,工資也會比沒有證書的人要高。編程語言

N多證書

臨畢業了,跟同窗出去吃宵夜,我當時正忙着找工做,同窗也多問了一句:「你在找什麼工做啊」。因而我說:」就IT唄,程序員瞭解不「。他說:」不懂啊,你會不會盜QQ、作遊戲外掛那些東西的啊?「。網站

盜QQ

前幾天跟親戚去吃飯,得知我年後要離開廣州去杭州作軟件相關的工做,幾杯酒事後,深長意味告訴我:「仍是作**「行政」相關的工做有前途**,走那麼遠作軟件有啥用啊,我來給你介紹去xxx工做」。編碼

啥纔是好工做!

我這裏想表達的是:老一輩的人大多不太瞭解互聯網行業,認爲行政、銀行、老師、醫生這些行業纔是「正道」。我對這些行業都持有敬畏之心,並無諷刺的意思。加密

程序員喜歡自嘲

外行人對程序員的誤解,也有可能只是看到網上有不少關於程序員的言論,真覺得「大多數」程序員都那樣。翻譯

好比說程序員都愛穿格子衫:3d

程序員最愛格子衫

程序員沒有女友:

程序員女友

程序員人傻話少死得快:

人傻話少死得快

其實不少的言論都是程序員們在閒暇之餘的時候「自嘲」罷了。大多數程序員跟其餘行業的人都同樣,並無像網上說得那麼玄乎。

程序員在網上通常稱本身爲「碼農」(編碼的農民)

程序員加班

暫且無論關於程序員其餘的言論,但對於互聯網行業來講,加班的確是「廣泛」存在的現象,就在前陣子,「有贊」在年會上公開宣佈996工做制。

「有贊」在年會上公開宣佈996工做制

有人可能不知道996是什麼意思,這裏我解釋一下:從早上9點工做至晚上9點,一週上六天班。簡稱996

我在秋招跑了幾個廣州遊戲公司的宣講會,大多在宣講會上明確公司須要「加班」。

經驗都是加班出來的

「蘇寧」以前也鬧出一事

「華爲」的狼性文化也是家喻戶曉的

狼性文化

啥是編程語言

基本你們能想到程序員能作的事,而程序員們幾乎都不會

程序員要你有何用

每一個程序員都會有一門本身拿手的編程語言,有的時候一門編程語言能夠對應不一樣的「崗位」。(好比說,Java程序員、PHP程序員)

一大堆編程語言

程序員天天都是跟「計算機」打交道,讓計算機幹什麼,計算機就會去幹什麼,非常聽話

讓計算機幹什麼,計算機就會去幹什麼

那計算機咋能聽懂程序員讓它去幹啥呀。有點計算機基礎的同窗可能會知道,計算機只認「二進制

計算機只認二進制

「二進制」:逢二進一。「十進制」:逢十進一

「二進制」:逢二進一

看到這裏,你們可能都看不懂了。沒事,咱們繼續往下看

看不懂

程序員也是人,人與人的交流,「經常使用的語言」有阿拉伯語、漢語、英語、法語、俄語和西班牙語等,而不是啥「二進制」的東西。爲了方便,聰明的「程序員」企圖讓計算機去讀懂「天然語言」。(可以讓計算機去讀懂阿拉伯語、漢語、英語、法語、俄語和西班牙語等這些語言)

聰明的「程序員」企圖讓計算機去讀懂「天然語言」

因此程序員們就搞出了一個「編譯器」,編譯器說白了就是能將這些「天然語言」翻譯成二進制,讓計算機讀得懂!

將天然語言翻譯成二進制

在計算機世界裏,對任何事物都不含糊,說一就是一,說二就是二。想要讓「天然語言」可以準確地翻譯成二進制,就必須定下相應的「規則」。而使用不一樣的「規則」,就出現了不一樣的編程語言。由於大多數編程語言都是「外國人」發明的,而且因爲英語的「普遍性」和「易用性」。因此,絕大多數的編程語言都由「英文」組成。

(如下就是各類常見的編程語言,因爲「規則」不一樣,因此看起來都不同。但所作的事都是相同的)

print_r('點個好看、轉發吧!');
var_dump('點個好看、轉發吧!');
NSLog(@"點個好看、轉發吧!");
System.out.println("點個好看、轉發吧!");
console.log("點個好看、轉發吧!");
print("點個好看、轉發吧!");
printf("點個好看、轉發吧!");
cout << "點個好看、轉發吧!" << endl;
Console.WriteLine("點個好看、轉發吧!");
fmt.Println("點個好看、轉發吧!");
Response.Write("點個好看、轉發吧!");
alert("點個好看、轉發吧!")
echo "點個好看、轉發吧!"

解釋程序員幹啥活

別人問到我是作什麼的,我每每會說「你平時用過的「微信」,「百度」這些軟件啊,網站啊就是咱們程序員作的」。

微信等有名軟件

(通常到這裏就不會繼續往下問細節了,但仍是遇到過繼續問到底是怎麼作的)

接下來,爲了繼續演示,咱們能夠掏出手機,打開微信:

掏出手機,打開微信

「咱們都是玩微信的人,要進入微信先得有個帳戶,因此要先註冊「

微信註冊頁面

「註冊實際上就是把你的帳號和密碼「保存」起來」。

帳號和密碼「保存」起來

「若是你註冊成功了,那小本本「數據庫」就有你的帳號和密碼了。等你登陸的時候,就去小本本「數據庫」查一下你輸入的帳號和密碼是否匹配

登陸

「看到這裏,有沒有以爲「程序員」真是容易當,不就把輸入的數據記錄下小本本,等用到的時候再查一下而已嘛。其實否則,就比如微信的註冊頁面,拿IOS系統來講,從IOS 6 到如今的IOS 12已經有6個版本了。Iphone手機屏幕的尺寸也一直在變,從3.5英寸到如今的6.5英寸。微信團隊須要對不一樣的「版本」,不一樣的「屏幕大小」進行兼容,讓iPhone4s仍是iPhoneXS Max都能用上微信。(起碼在不一樣的手機上,看到的註冊功能都是完整的,而不是東一塊西一塊不整齊的)」

兼容問題

「還好比說,小本本「數據庫」記下的密碼不能是你輸入的「原始密碼」。舉個例子:某一天,一個在微信團隊的小夥子拿到了存放帳號和密碼的小本本「數據庫」,把小本本「數據庫」的內容給公開了。(或者說一個黑客把微信給攻破了,而後公開小本本「數據庫」),那豈不是誰均可以上個人微信號了?」

公開小本本的內容

「程序員們固然能夠考慮到這點,他們會這樣作,將你輸入的密碼進行「加密」存到小本本「數據庫」中。不管是誰,拿到加密後的密碼,都**不能「反推」**你原始輸入的密碼。」

密碼加密

「因此,每次比對的都是加密後的密碼」

比對的是加密後的密碼

「固然啦,程序員考慮的遠遠不止這些。無論怎麼樣,每一個程序員都但願本身寫的東西「簡單易用,受人喜歡」」

其實我是一個軟件工程師

最後

文章首發公衆號Java3y過年了,給親朋好友解釋「啥是程序員」

樂於輸出乾貨的Java技術公衆號:Java3y。公衆號內有200多篇原創技術文章、海量視頻資源、精美腦圖,不妨來關注一下!

帥的人都關注了

以爲個人文章寫得不錯,不妨點一下

相關文章
相關標籤/搜索