一年一度的春节又到了,做为程序员的你是怎么告诉亲朋好友本身平常究竟是作什么工做的呢?程序员
程序员是一个新兴的职业,我在上大学之前不了解程序员究竟是作什么的,对编程语言也一窍不通,也不关心玩过的「游戏」和每天逛的「网站」到底是怎么来的。数据库
当年加了计算机科学与技术专业的新生群,听着师兄和师姐们在聊天,其中就聊到了「程序员」这份职业。当时脑海里第一反应想象的竟是「复印机、打印机等办公」乱七八糟的东西编程
有的「初高中」同窗知道我读了计算机专业,因而过来问我:计算机专业应该会组装电脑的吧,我想组装一台新电脑,能不能帮帮忙给点意见,好比电脑配置清单什么的。微信
在我大学期间我爸但愿我多考一些证书,好比有关「电气和会计」之类证书。他认为:只要证书多,那找工做确定不成问题,工资也会比没有证书的人要高。编程语言
临毕业了,跟同窗出去吃宵夜,我当时正忙着找工做,同窗也多问了一句:“你在找什么工做啊”。因而我说:”就IT呗,程序员了解不“。他说:”不懂啊,你会不会盗QQ、作游戏外挂那些东西的啊?“。网站
前几天跟亲戚去吃饭,得知我年后要离开广州去杭州作软件相关的工做,几杯酒事后,深长意味告诉我:“仍是作**「行政」相关的工做有前途**,走那么远作软件有啥用啊,我来给你介绍去xxx工做”。编码
我这里想表达的是:老一辈的人大多不太了解互联网行业,认为行政、银行、老师、医生这些行业才是“正道”。我对这些行业都持有敬畏之心,并无讽刺的意思。加密
外行人对程序员的误解,也有可能只是看到网上有不少关于程序员的言论,真觉得「大多数」程序员都那样。翻译
好比说程序员都爱穿格子衫:3d
程序员没有女友:
程序员人傻话少死得快:
其实不少的言论都是程序员们在闲暇之余的时候「自嘲」罢了。大多数程序员跟其余行业的人都同样,并无像网上说得那么玄乎。
程序员在网上通常称本身为「码农」(编码的农民)
暂且无论关于程序员其余的言论,但对于互联网行业来讲,加班的确是「广泛」存在的现象,就在前阵子,「有赞」在年会上公开宣布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多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!
以为个人文章写得不错,不妨点一下赞!