本文主要是介绍知乎-顾鹏-对Full Stack Engineer的认识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
动机
做这样一个简单的app:一个天气应用,干净清爽的界面,天气信息一目了然。它不仅可以精确预测未来10天的天气,还可以显示某地的历史天气信息。它具有自定义提醒功能,支持web版本,iOS版,Android版。
为什么想要做这样一个App?因为你喜欢旅行,但没找到一个天气app可以提供你下个月或者某个特定月份的天气信息;因为你懒你没有每天看天气预报的习惯,你想要在第二天温度达到30度以上或者温差有+/-7度的时候,获得温馨提示;因为你要成为一个Full Stack Engineer,你必须不断训练每个stack的能力。
Web版
你决定用mysql来存储用户数据,用nosql存储历史天气数据。你用Redis作为cache,缓存一些最常请求的天气数据。你用Python写后台,功能简单,后台不复杂,用户注册登录,抓取返回某城市的天气数据,某地的历史天气数据,很快便搞定。
后台开发并测试好了,接下来是web前端。你十分清楚一个好的UI设计对一个app的重要性,你也明白UI的设计不只是为了美观,更重要的是提高信息的可读性和程序的可用性。幸好你平日的积累这次派上用场了。你把之前保存下来的上百个优秀的UI设计作品拿来研究,你从书架上拿出Norman的那本经典 - The Design of everyday thigns 重新细读。最终你用白纸黑笔敲定了第一个版本的UI,简洁直观,没有任何多余的设计,所有元素的排列间距 大小颜色都恰到好处。你相信即使天气不好,但用户只要使用这个app都会有着愉悦的心情。
那么开始写前端吧。啊,别急,都忘了还有icon和logo,可是不会PS不会AI怎么办呢,学吧。你平日喜欢结交不同领域的朋友,正好几周前在一个活动上你认识一位朋友做设计的。她花一个下午的时间教你基本的PS和AI的使用,并对你的UI设计给出了一些意见。你请她吃了顿晚饭表示感谢,然后立即回家根据她的一些建议重新调整了UI,这次你在PS里把UI画了出来,icons和logo也顺道一起做了。
接下来的一周,你学习HTML,CSS,以及javascript,并漂亮地把前端搞定。
发布App
在朋友圈发了个状态,找人帮你做Beta测试。他们都首先问你是什么app,一开始你简单回答一个天气的app。但你发现,这不能提起他们的兴趣。你觉得你需要用语言,用故事包装一下。不光是作为别人「是什么app」提问的回答,也是成为Full stack Engineer道路上的一个重要技能。
你去看了所有你喜欢的产品的主页,从他们的文案上获得一些灵感启发;你读了经典的On Writing well,发现好的文案,好的设计,其实和好的代码很相似,都是重在交流,如何让他人毫不费劲地明白你要表达的内容。你的故事要吸引人,你的产品介绍要在1分钟内解释清楚,并确保你的父母可以毫无压力听明白。
一切就绪,产品上线了。反响不错,用户持续增加。很多用户希望有移动版本,于是你立即投入到iOS版本的开发上。
iOS版及后台优化
你花一周不到时间学习了基本的语法和工具使用便投入到app的开发中。你知道learn by doing 是最好也是最快的。由于之前学习了设计的基础,UI,icons很快搞定,不久iOS版本便发布了。iOS的发布带来了更多的用户增长,后台服务器的压力颇大,你知道是时候优化后台了。
你在AWS上多开了2台服务器,并写了一个script来自动化部署过程。
你改用uWSGi协议,用uwsgi作为application server
- 你使用Nginx来做并发,负载均衡…
- ……
- ……
成立公司
用户持续增长,每天你都会收到十几二十封用户的邮件。你很感激这些愿意花时间给你写邮件的用户,你相信他们是你最重要的用户,是潜在的付费用户。如果你把他们像上帝一样对待,他们同样也会把你看作是上帝。所以除了睡觉时间的发来的邮件,每一封邮件,你都会在2小时内给予回复。
果然这样的付出是收获巨大的,他们不仅惊讶且非常感谢你的快速回复,他们会在app store里给你★★★★★的评价,他们在社交网站上分享你的app,他们甚至会主动提出捐款给你。
你从快速的用户增长中嗅到了商机,你开始思考如何赚钱。广告你是坚决不能允许的,你认为再精确的广告也会影响用户体验。你设计了2个不同的付费方案,你打算用A/B测试看哪个方案更好。你分别给200个用户发去邀请尝试付费的邮件,邮件内容你精心打磨过,并在最后写上:CEO & Founder. 通过分析2种方案的用户行为,你决定将使用第一种方案。
接下来,你相信差不多是时候成立个公司了。为了省时间,你花2000块钱找了个园区挂靠并帮你注册公司。公司的名字让你头疼了很久,你不想只是简单的用这个app的名字作为公司名字,你知道公司将来还会做出其他优秀的产品。你希望这个名字简单易记,同时其含义也是你公司文化的象征。
公司注册下来了,但银行那边得自己跑。你联系了一些媒体编辑,邀请他们来试用你的产品;你重新设计了产品主页,并开始写产品的blog;你在各大社交网络都给app注册了账号,即做社区客服也为宣传… 这些事大大压缩你写代码的时间。以往你都是以代码量作为衡量自己当天工作效率的指标,所以这些天你总感觉没做啥工作。
这样的发展早已超过你的预期,这个app从一个side project几乎变成了你生活的全部。你跟你女朋友半个月才出去约会一次,为了省时间你总是约她在酒店房间见面,她抱怨不断;你1个月没跟朋友出去喝酒了;你2个月都没锻炼过身体… 你意识到, YOU CAN NOT DO THIS ALONE,你需要帮手,你需要找人一起把这个做下去。
但你不是要成为Full Stack Engineer么?你现在是了么?
Full Stack Engineer
设计,后台开发,前端开发,移动开发,运营维护,PS,文案… 好像都会了,这算Full Stack Engineer了么?
不,这只是踏上成为Full Stack Engineer的第一步。你知道目前只是每个stack都懂一点,离senior或者expert还差得远,而要每个stack都做到极致,需要大量的时间和精力。精力有限,产品开发紧迫,力不从心啊,这条道路也太孤独,因为你不需要与任何人进行协作。难道要把一些stack的任务交给别人做么?这样算是放弃成为Full Stack Engineer么?
不!这不是。
什么是Engineer?「Engineers are versatile minds who create links between science, technology, and society」
Engineer的本质工作是设计,开发出应用于大众的产品。一个真正的Full Stack Engineer,他从生活中发现问题,洞察需求,他设计解决方案,并开发出初始版本的产品。为了达到目标,他愿意去学习任何领域的技能和知识。同时他不追求一个人完成所有工作,如果有人可以比他在某方面做得更出色,便会十分热情的邀请他们加入。
最终他的职位也许不再是Engineer,他不再设计UI,不再写代码… 他的工作不再是design and building an app or product,因为他有更大更重要的任务要做 - design and building a team or a company which builds great products.
而这时,社会给了他们另一个称呼 - 创业者。尽管众人已忘记他们engineer的身份,但在他们骨子里,内心深处,自己始终都是一个engineer。当他们需要从头再来时,他们毫不犹豫从设计开发产品做起。Nikola Tesla,Ferdinand Porsche,Henry Ford,Jack Dorsey,Mark zuckerberg,Elon Musk… 细数那些改变了或正改变世界的创业者,他们大多数是engineer背景,热衷于设计创造。他们学习技能和知识,不是为了成为某个领域的专家;而是因为那些 是完成自己目标所需要的。
个人思考
在知乎中发起的,”怎样成为全栈工程师Full Stack Developer?“中,有人提出了”一个真正的全栈工程师,目标只有一个:创业。“这个观点,和上文胡鹏的观点其实是一致的,只不过在这里说得更加清晰一点,看了之后我感触比较深。
上文中,不仅在讲关于FSE的学习历练过程,而且也描述了一个潜在创业者的成长过程。
- 从生活刚需或个人想法出发,app的设计理念的诞生;
- 后端开发;
- 前端开发;
- 初步上线;
- app优化;
- 多终端支持;
- 用户积累,创办公司的条件成熟;
- 招人,构建团队,管理公司;
- 新的产品;
- 不断发展;
- ……
整个过程非常清晰,同时我一直在关注微信公众平台上一个栏目”格局生涯”,也讲到了很多有关创业的事情,这里列举两个:
- 【企业推荐】波波网:从发型师垂直互动交流社区切入美发 O2O
- 【企业推荐】海外购物分享社区小红书,获几百万美元A轮融资
因此,成为全栈工程师,作为一个创业者,是我走技术路线的目标。当前,好好积累技术,跟大牛学习,积累人脉吧。任重道远,好好努力。
这篇关于知乎-顾鹏-对Full Stack Engineer的认识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!