回顾大学四年,做过的落地实战项目大大小小也有几十个了,这些落地项目基本都已经在企业、个人、政府等正常上线使用了,包括移动端、微信小程序以及 PC 端。

其中有些项目是和同学组建团队一块开发的,有些则是我个人开发,还有一小部分是小鹿和读者一起开发的。

这些落地项目开发经验将成为步入社会最丰富的的履历。相比于其他的应届生,算是有这么一点点的优势吧。所以,作为过来人,对于在校生的项目实战方面的经验,小鹿不得不多啰嗦几句,总结有关落地项目大多数在校生遇到的一些棘手的问题。

考虑到关注俺的在校大学生偏多,这篇文章中所谈到的经验适合在校大学生、跨专业、非科班以及正在自学编程的小伙伴。

1、

咱先谈谈自学和教育中存在的缺陷。对于很多高校,其他学校大学如何授课咱不敢说,按照目前小鹿学校授课方式基本就是教科书式的读课本和 PPT,这也导致了我大学基本都处于逃课状态,上了四年,逃了四年。说点真心话,大学“洗脑”教育,简直就是丧良心。

如果你属于那种上课好好听讲的学生,理论课基本能听懂,考试基本都能轻松过,你会发现,毕业后,学校所学到的和就业要干的简直就是两个世界的东西。

之所以出现这种状况,原因很简单,大学教你专业课的教师很少开发经验和缺少完整的知识体系,而且技术发展很快,如果不能保持持续的学习,就业用到的技术和书本的教学内容是相差好几年的,好几年在互联网行业代表着什么,就不用再强调了。

再说了,如果专业课老师是位大牛,明明可以靠开发能力进入大公司,拿着年薪百万,它不香吗?嗯,如果你说就是放弃年薪百万,就想当个老师,那我就没话可说了。

为了避免幸存者偏差误区,不能以局部代表整体,但是大部分的学校教学基本是这个样子的,大部分的学生也在面临着这种困境。

如果你不是在名校,学校的教学是对你产生很大局限性的,本来编程就是动手实践的,再加上学校之教学理论,而且存在不完善性,这个时候迷茫真的不怪你,这是必然的。

还好,有时候学校会有课程实践课,如果让我来评测项目水平的话,和实际项目差的太远了,可以说无论你用什么技术去完成,只是在小打小闹罢了。后来跟阿里的一位技术大佬交流,也是重点谈到这个在校生存在项目经验的局限性问题。

2、

无论是非科班还是在校自学者,往往会陷入一个大坑就是,自学更偏向于理论,而非动手的实际项目。这一点,我个人陷入也挺深的,直到实习的时候,才发现被这个坑坑了我不轻。

说个最常见的情况,很多时候,我们通过书籍也好还是各种论坛博客学习也好,前期大多数的时间都在和基础理论打交道,这就导致出现眼高手低的情况。你明明看完了整本书的内容,一动手让你写代码或者写个页面,就感觉无从下手。

这个是我在前段时间带大家做前端实战的时候发现的,虽然看起来几个简简单单的网页,就是很多小伙伴看起来无从下手,从而使你更加的困惑和不解。

你会问,平常哪有什么实际项目可以练手,无非就是跟着视频敲敲代码,去 Github 找个项目源码看看,然后动手敲敲。这也在思维上,让我们大多数的自学者收到限制,因为你知道,没有实战项目可以练,只好闷头去学理论和基础,给自己打上了一个标签。

3、

鹿哥,你说了这么多,我也知道落地实战项目的重要性,关键是身边真的没有资源去接触到实战,尤其是在校大学生和大多数自学的小伙伴。

第一,我们首先要摆脱一种思维定式。很多自学编程的认为,只要有一定的基础才有资格去做实战项目,所以前期你一定在不断的学理论基础,我觉得这是很大一个误区。

没有谁规定是先要学基础才能做实战的,举两个小鹿教科书式的反面例子。

大二,我在学习移动端开发,只会些 java 基础语法,对面向对象编程掌握不深入,正好手头有一个安卓的移动端开发的企业项目。当时让我入伙一块开发,我还有些胆怯,毕竟觉得学了这点皮毛,做不出什么东西,还怕拖别人后腿。

但是后来把握住这个机会了,发现在实战中,很多基础理论学习和理解的更快了。那种来自落地项目的自信和力量充满着全身,到后来的自己开始组团给企业做项目。这也说明了,不是非要等你基础特别牢固再去接触实战项目,不要有这种思维想法,不然很容易被局限。

大三,第一次做的小程序是《小鹿留言助手》现在用户量 10k,虽然不是特别成功,但是这个产品是从零一手搭建的,之前没有接触过微信小程序。

全程靠摸索,遇到问题解决问题,而并没有先去把整个小程序基础学一遍,再去开发的。一个项目摸索下来,基本对小程序了如指掌了。

所以,我总结到,如果手头没有实战,不如从实际用户的需求出发,做一款小产品。先不要想着做高大上的产品,而是做一个满足用户需求的最简单的产品。

我记得给一个客户开发了一个产品,就一个简单的需求页面,当时我还是带着读者做的,一个页面,看起来简单,但是开发起来,各种用户体验方面的都没有考虑到,这些都是平常跟着视频做的项目涉及不到的点。

一个简单页面,加入商业广告后,还能有“睡后收入”。虽然不多,如果后期加点互联网思维,就让其成指数增长,关于商业这块,不是本篇主要的分享内容。

所以说,充分利用已有的资源和把握住每次机会,无论是在校生还是非科班自学,通过实战快速提高技术,还是蛮容易实现的。

4、

不同的项目水平,提高技术也是不同的。大厂的系统和小公司做的系统有着质的差别,这也是都喜欢进大厂锻炼的原因。

不同阶段,要拿不同水平的项目来进行历练。先从在校生说起,没做过项目的,不要对自己代码要求太高,前期只要把功能实现就很不错了,后续再进行完善,这是做实战的第一个阶段。

第二个阶段,当你可以给你一个简单需求可以相对轻松完成功能时,那说明你需要更高一层水平的项目来练手。

那我个人项目经历来说,在校做的一些项目,完全可以将用户的需求实现。要想进阶,必须找一些让自己做起来比较痛苦的项目,比如从零封装一个组件库,当你感觉到艰难的时候,说明又到了另一个层次水平。其实,就是一个不断给自己找刺激的过程。

小结

最后,有一点需要特别说明一下,从一个零基础到可以独自开发实际项目,这个过程是每一个编程开发者经历的,既然是必然经历的,面对项目,不要选择逃避,因为这都逃避不了的。

既然逃避不了,还不如迎难而上,提前过早的去接触各种项目,通过兴趣或者客户的需求,开发一些小产品,看看能不能得到用户的认可和喜欢,然后对自己做的项目进行反馈,这也是一个自学编程的一个突破口。


一个三本混出来的程序员,维护着一个既有技术又有温度的原创号,一直认为能把复杂的东西讲明白是一件很牛逼的事情。

©著作权归作者所有:来自51CTO博客作者mb5fe1601ede528的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 老大,我可以在实际项目中尝试新技术吗?
  2. GUI实战|Python做一个文档图片提取软件
  3. 入职一个月,我在项目中犯了的哪些错?
  4. 项目经理小姐姐非要给我讲一讲,项目开发规范和流程!
  5. 项目版本上线,小鹿获得最佳 Bug 奖!
  6. 实战|手把手教你用Python爬取存储数据,还能自动在Excel中可视化!
  7. 附实战代码|告别OS模块,体验Python文件操作新姿势!
  8. 实战|教你用Python制作一款带有界面的NBA爬虫小程序
  9. 数据分析实战:母婴商品分析

随机推荐

  1. Mac搭建php的开发环境(图文详解)
  2. php获取mp3音频信息实例教程
  3. utf8和utf8mb4的区别详解
  4. 一看就会的php网站源码安装简易教程
  5. 编程小白学习php必须要了解的事
  6. PHP微信公众号支付教程(含图文)
  7. 有利于新手的php基础知识总结
  8. php使用blob存取图片的信息(含源码)
  9. 安装PHP的教程及说明(图文详解)
  10. 绝对适合新手的php入门教程