商业周刊用一个整版来阐述程序员的牛逼,得出一个夸张的结论,如果不懂编程,你将在这个世界上寸步难行。有些夸张,但是其实有一定道理,因为进入数字时代,编程已经从一种专业技能变成了一种思考方式,你可以不懂编程,但是不能不了解程序的基本原理和构成。就像你可以不懂财务,但是你必须会算数一样。现在,所有的系统,业务,周围的一切都是数字化程序构成的,你如果对编程,对这一切的构成过程都一窍不通,这就跟不会英语,不懂基本的沟通技巧一样,至少,会不够时尚。
这时,凯哥心里窃喜,哈哈,幸亏十多年凯哥都没有丢编程的功底,一高兴还能写一些代码。。。。。。技不压身啊。。。
“整个国家都应该学会如何给电脑编程,因为这将教你如何去思考。”
史蒂芬乔布斯在1995年的时候就说过这句话。据统计现在大概有1800万专业或者业余人士会使用代码,但对其它的人来说,电脑编程还是件挺遥远的事儿。
“程序就像诗,都是在有限的空间里尽可能简洁的表达自己的想法”
“世界属于写代码的人,不明白这个道理,会被世界抛弃”
正好这一年以来不断有朋友找凯哥咨询,大部分都是创业者,希望用互联网技术来改变一下传统业务,问题往往都是这样的:
我要做一个APP,能够帮我把现在的商品挂上去,对,就像淘宝一样。
我想做一个网站,挺简单的,就是在手机上,在电脑上都能看。
功能么,聊天啊,像微信一样,可以看到朋友间的消息,有的还不能看到。
然后凯的表情是这样的
好纠结啊。
于是讲了一遍遍的话又重复的讲一遍:
一个互联网程序是如何构建的
一个技术团队需要哪些构成
为什么开发程序是一个挺苦逼复杂的实情
为什么你们看起来那么简单的事情电脑做起来就他妈的是挺傻逼的.......
今天看到蓬勃的这个文章,有点感觉。但是它又没有讲的很清楚,反而是把一个本来挺简单的道理讲的更复杂(GAO DA SHANG)了。当瓜哥发现蓬勃的程序短信验证码竟然有bug,不能正确验证的时候,更加不相信纯媒体从业者能够把这个道理讲清楚了。
作为一个十几年的IT技术从业者,资深码农,号称准全栈码农的程序猿,瓜哥觉得有必要把以前说的东西都整理一下,给各位朋友们,那些现在想做应用,将来会用应用,有可能在程序用的不爽的时候骂娘的朋友们做一个程序的普及。
初步计划主要涵盖的专题有以下几点:
一个互联网程序和技术团队的构成
为什么APP不简单,但是不是每个创业之初都需要APP
如何快速构建你的第一个创业产品
......
( 每一部分的内容都挺多的,瓜哥忙着创业,写文章的时间也少,所以不承诺时间,也不承诺数量。当然,如果您有其他的问题,也可以消息告诉我,如果提的朋友多,我可以增加专题回答。)
一、一个互联网程序和技术团队角色的构成
上面这幅图,是瓜哥举了个典型的现在互联网应用的框架构成, 包括技术团队角色的构成。
应用的构成总的来讲就是:
用户端
用户端又分成:
网页端(WebAPP端,PC端)
手机端(安卓手机,苹果手机,对不起,还有WP8,不过这玩意100个应用里很少开发它的)
服务器端
服务器端主要包括数据库服务器,应用服务器
考虑到南电信北联通网络的特色,中间还有CDN等各层,这里就不讲了
存储端
把存储单独拿出来,是因为现在的媒体、文件基本上都会独立存储
以上途中的连线,表示网络访问,所以这里又存在端口,默认所有浏览器访问,应用基本上走的都是80端口。这里也不细讲了。
那么好,完成这样的一个互联网应用,把它从一个需求,想法,实现出来,到部署,测试,数据准备,然后上线,需要多少个角色呢?
需要13个角色,真的,现在的互联网开发,如果你做一个能让天天玩手机的一般用户使用的话,至少需要这么多角色,而且人数可能还不止这么多。
相信你的表情现在是这样的:
的确,瓜哥也觉得挺坑爹的。几年不做程序,现在你去拉钩上看,尼玛光技术的职位是这样的:
回想起十年前,瓜哥一个人带一个团队(3个人,基本上都是新手)两个月就完成了一个需求很复杂的MIS系统,有自动计算规则,状态机,大数据分析,异构数据库,Windows服务,跑批抽数。瓜哥又是前端,又是后台,又是数据库设计,又是部署工程师,从尼玛C#写网页,到JS写前段树空间,从ASPX到写dll。
可那时候才拿多少钱啊。。。。。。。
但是如果同样的项目放到现在,团队至少是10人的建制,时间也至少需要增加一倍。
程序核心需求真的复杂了很多么?其实没有,但是用户的体验上来了,现在的环境复杂了。
用户体验上来了,这是一定的,以前的程序是这样的:
现在的程序要求是极致用户体验,无论从配色,设计,交互,各方面都有者韩国整容一般的巨变。
这些体验是如何满足的,就是靠的硬件性能的提升,软件技术的提升,但是从编程的角度,其实这么多年,核心理念并没有太大的变化,只是把各方面的技术进行了细分,深化。(十年前就已经提MVC,struts,spring,hibernate已经就用了很熟练了。)
环境更复杂了,这个从浏览器层面就能看出来。十年前写程序,只需要考虑IE6,而且显示器也基本上大小差不多,1024*768打遍天下了。而现在,尼玛一碰到浏览器兼容性,程序猿恨不得就上吊。用户说,为什么我这里啥都出不来啊,程序猿调了一晚上,被项目经理逼的快跳楼了,最后一问,尼玛,丫用的是IE6。
微软自己不争气,通过IE干掉了Netscape,但是,最后把IE做的跟一坨坨一样。标准也不统一,从360,百度,搜狗,遨游,到firefox,chrome,加上国内的各种山寨浏览器一堆,坑爹的是这些浏览器各版本的内核还都不太一样。
好了说了半天可能大家都不明白什么意思,简单的说,不同的浏览器内核,程序的很多写法都不一样,所以如果一个应用需要适配所有的浏览器,意味着从开发到测试,前端工作量都要翻倍。
好了,下面把这些工种的工作职责简单说一下,瓜哥也该睡觉了。
产品经理:不赘述,他掌握和设计互联网应用的需求和结果。
原型工程师:为了让需求和实际开发的效果保持一致,降低沟通成本和返工的可能,最重要的是避免需求和开发打架干仗,建议必须通过原型确认所有的需求和设计,然后再启动开发。
UI设计师:原来说的美工,作PS的,作图的
UE设计师:交互设计,一般由产品经理兼任
网页工程师:把效果图切成静态HTML页面,并且加上简单的动态效果,还要会一些CSS
测试工程师:这个就不讲了,就是负责测试的,但是在大型的项目里,需要分白盒,黑盒,功能等各种测试工程师
以上是产品层面的团队,更多的是面向用户的。下面是纯技术开发团队
架构师:类似于技术层面的产品经理角色,需要考虑整个程序的技术架构,部署,数据库设计,性能保障,接口关系等。
JS工程师:前端工程师,现在是市场上最紧俏的了。当然牛逼的JS工程师,需要熟练开发CSS。特别是碰到自适应各种尺寸屏幕(PC、平板、各种尺寸手机)的需求,这个角色每天就对着一堆比后端更枯燥的代码死扣,死扣。感谢Chrome的调试器,让所有的前端工程师都能够顺利活到70岁。(当年瓜哥调试JS,只能用alert,恨不得把电脑都砸了)
后端页面开发工程师:后端页面开发,同时需要集成前端页面。一般需要懂(java/php/python/C#/ASP)这几种中的一种语言,同时要熟练HTML5和一般的JS。
后端接口开发工程师:可以不熟悉HTML5,但是必须熟悉json
IOS开发工程师:开发苹果OC和Swift的工程师,基本都是java后者C转的。
安卓开发工程师:用java的语言在安卓平台上开发手机应用的工程师。一辈子最恨的五个字是“适配全机型”,最羡慕的工种是IOS工程师。
运维工程师:这是最坑爹的角色,要精通操作系统centos/ubuntu等linux,要精通数据库部署,甚至还要精通存储、网络、双机等,基本上,程序以外的事情都需要他负责。
好,数人头数完了,这意味着什么?
钱啊!都是钱啊,下面是瓜哥按照现在市场的一般行情,一个有一定规模的公司招聘的价格,一个月的纯工资费用,就是15万啊。(不算社保)(小公司还要加价,因为人家看不上)。
产品经理 1 15000
UI/UE 1 10000
网页工程师 1 8000
前端JS工程师 2 15000
原型工程师 1 4000
架构师 1 20000
后端网页开发 2 15000
IOS开发 2 15000
安卓开发 2 12000
运维工程师 1 20000
接口开发工程师 1 12000
合计 146000
而且,为了攒齐这样的一个团队,可能你要花费的时间是三个月到半年,所以,当你创业的时候感觉啥都有了,就缺程序员的时候,你想想,这意味着什么。
所以,最后一句话,全栈工程师该有多值钱啊!
后续的章节正在写哈,要想看的,请关注我的公众号。
每次瓜哥的文章都很长,不知道各位看完了没有,是不是嫌啰嗦,投个票吧,帮助瓜哥改进。多谢。
另外,昨天发的那个创业股份分配的帖子反响热烈,很多人小窗、电话问那个合作协议模板在哪里,瓜哥这周会做一个瓜哥版本发出来,这个时间一定保证。
可惜没认证公众号,没开通支付。如果你觉得这文章不错,打赏一下吧,直接微信转账就好,认识的,下次吃饭买单就好 :)
网友评论