写在前面
笔者已经断更了很长时间,当然不是因为笔者偷懒,因为笔者自己也处在探索期,不过总算是有了一些进展,今天笔者想来和大家讨论一下做项目的问题,很多同学做项目可能第一反应就是去网上跟着做,这种账号一打开都铺天盖地了,几十套毕设源码或者视频教学,有些可能还掺杂一些培训班广告,有些同学可能被一忽悠又扔出去几千块甚至几万块,但是正如笔者在【笔者感悟】笔者的学习感悟【一】 中提到的一样,培训班的作用最多只是帮助你在众多技能中新增一个技能而已,多一项少一项不会有啥,不能说完全没有作用,但是作用是有限的,盲目地去跟培训班,最后只会出现扔出去几十万,月薪三千的恶性循环的惨剧。那么到底要怎么做项目呢?
项目亦有不同
不知道大家有没有想过这样一个问题,个人项目和公司项目重点其实不一样,大家平时做个人项目重点是为了啥相信不用我多说了吧,一定是为了练技术和经验,但是大家有没有想过公司项目的重点是在哪,没错是为了创造商业利益,事实上这两点是有很大不同的。有时候创造商业利益的东西往往要用到的技术也没多复杂,有些时候可能一个if条件就可以解决了。就好比笔者之前做过一个前端页面,后端给的接口有两个参数是必须的,如果不传就会出现报错信息,从咱们技术人员的角度来看这是很小的问题,但是在用户的眼里看来这就是很严重的生产事故,如果放到正式环境上用户一定会问责。但是这个处理实际上很简单,在ts中给一个if条件,只要判断一下这几个参数有没有值,没有不让你提交【不调用接口】就可以了。同学们发现没有,这是很典型的小操作避免大麻烦。
所以有时候有些同学就会感叹,我进入公司为什么学不到什么东西,道理就在这,公司毕竟注重的是商业利益,让你学技术只是顺带的一件事情。包括有些同学在面试的时候自以为说为了学什么东西,会博得面试官的好感,现在同学们再看看经过上述分析以后,面试官会对你有好感嘛,同学你这是典型的主次不分。而且同学们如果你告诉领导,我要学习什么技术,能不能把这个项目给我,同学你觉得如果你是领导,你敢给这个项目嘛。
再顺便纠正大家一个思维,既然去公司不是为了学什么东西,那么我们去干什么呢,事实上在学校里你早就得到答案了,很多考过研的同学可能更熟悉,马克思曾经说过,判断一个人是不是人民群众,就看他有没有客观上推动社会的发展,简单地说就是看这个人有没有社会价值。如果我只是这么说,很多同学肯定要说我在照本宣科了,那么大家有兴趣去网上搜一下,EDG创始人之一姬星【昵称:阿布】在上海交大的演讲实际上已经告诉了你怎么实际操作,背景大概是EDG去上海交大招聘,阿布做的一段演讲,其中有一段话是这么说的:“如果你是为了来EDG能够学到什么东西,别来,如果你是为了能够见到哪个选手,别来,招聘广告上的职位只是文字上的表述,你加入EDG以后,你应该尝试着寻找你自己最适合干什么,然后总结出自己最适合干的事情,这个岗位你叫什么都可以,哪怕叫EDG牛逼也可以。”
同学们发现没有,这才是你真正要干的事情,排除一些黑心厂,你加入岗位,要寻找的就是最适合自己的事情,把自己的价值创造到最大,这样你才可以在公司站得稳脚跟,你才不容易出现今天担心明天去哪的现象。
项目怎么练习
那么肯定有同学要问了,你说的容易,找到最适合自己的事情,我啥都不会怎么找,别急,笔者到现在还没谈怎么练习项目,刚才只是帮大家区分一下公司项目和个人项目而已。
笔者还是那句话,寄希望于别人给我们平台和机会去发挥就会显得非常被动。学习这个东西,必须是主动学习。很多同学道理都懂,却从来没实际操作过。不应该指望公司给你学习机会,而是要自己给自己创造机会。也要学会走出舒适区。笔者在前面也提到了,个人项目的重点在于练习技术,在于要尽可能地去积累经验。很多同学在练习的时候重点就错了,抱着已经会的东西反复炒冷饭,不敢走出舒适区。
那么个人项目要怎么练习,既然重点在于练习技术,说的难听点,我们个人项目这个东西不是拿来用的,所以很多事情我们其实用不着去考虑,不需要需求文档,测试文档这么多工程规范上的东西。笔者给大家介绍一位新成员,希望大家可以让他加入你的阵营:实验日志。
具体怎么操作实际上也很简单,你在这个项目想到了加点什么东西进去,效果怎么样,试验是否成功,有哪些心得,你都可以记录下来。比方说今天是10月17日,你在首页上做了一个酷炫的大屏时钟。明天是10月18日,你想到了想尝试一下分页表。具体模板笔者不会给大家,笔者之前就提到过,练习的时候最重要的就是创意,大家可以天马行空随便想象,只要尽可能挑自己不懂的练习。
笔者之前在做项目的时候,经常会出现一个问题,要做练习项目第一步就是整理需求,但是笔者发现一点都整理不出来,好不容易想出来一点需求,也都是些玩烂了的需求做了也没太大意义,后来发现这就好比写文章一样,是需要时间积累的,毕竟灵感这个东西不是水龙头,打开就有。
不知道大家还记不记得,笔者在之前的文章里反复提到过养兵千日,用兵一时的问题,很多事情的积累都在平时,如果大家要上战场了,这个时候发现脑袋空荡荡的,匆忙应战把养兵和用兵压在一起,实行以赛代练,那当然会非常痛苦,最后等来的只会是无穷无尽的加班。
简历上的项目
事实上我们接触的项目是两种,公司项目和个人项目,但是还有一个很特殊的项目,简历项目,我相信很多同学其实也希望笔者能回答这样一个问题,事实上,简历上的项目是最麻烦的,因为简历上的项目需要同时具备商业价值和技术价值两个条件,而个人项目只是技术的堆积,那怎么写到简历上,毕竟单纯的技术堆积做出来的东西根本就没法用。公司项目吧,用户和领导其实也无所谓你技术怎么实现的,他只要用的爽就行了。在前面笔者也提到了,有时候创造商业利益的东西往往要用到的技术也没多复杂,有些时候可能一个if条件就可以解决了。
但是说实话,同学们所在的公司能够有哪个项目符合这个条件,这个笔者帮不了大家,笔者自己都拿不到什么好项目,那么我们还是要回归到老生常谈的那个问题,掌握主动权。
之前笔者提到的实验日志问题,大家在不断地练习中积累到一定地步以后,就要学着做一个同时具备技术价值和商业价值的项目出来,笔者之前也提到,个人项目这个东西不是拿来用的,所以很多事情我们其实用不着去考虑,不需要需求文档,测试文档这么多工程规范上的东西。但是这个项目我们是需要整套工程规范的,从需求文档,概要设计,详细设计,项目运维,一个都不能少,要尽可能地按照企业项目的要求做,当然我相信大家经过大量的实验训练,这个时候阅历已经比较丰富了,同学们这个时候除了一些基础的需求以外,要尽可能从自己的训练里找出那些既有商业价值又有技术含量的需求出来,最后协调整合成一个结构完整,需求丰富,技术困难的项目出来,这样的个人项目才是真正能够作为筹码写上简历的
当然,笔者告诉大家这个项目周期会很长,所以我希望大家看到这篇文章的时候就能开始做准备,不要拖延症晚期,也不要心浮气躁。
附注
那么今天就和大家聊到这里,希望笔者可以给大家带来一些帮助,笔者接下来会更加努力的工作,给大家带来更多的经验分享,希望同学们工作顺利,早日升职加薪、当上总经理、出任CEO、迎娶白富美、走上人生巅峰,想想是不是还有点小激动呢