登录
首页大数据时代6个步骤获得高质量的项目经验,告别没有项目经验的炯
6个步骤获得高质量的项目经验,告别没有项目经验的炯
2021-03-09
收藏

来源: 麦叔编程

作者:麦叔

很多在校生或者自学编程的人表示:我没有项目经验,应该怎么办?

在开源盛行的今天,我们根本不缺乏项目,随便在Github上搜索一下就可以找到成千上万的高质量的项目供你学习和实践。

我们缺乏的是:把开源项目内化的方法,让开源项目变成自己的项目的例子。

本文分享6个内化开源项目的步骤,以及4个加深项目经验的步骤。如果你认真执行这些步骤,项目经验将不再是问题。

一、步子大了容易扯着蛋

这里说的项目是指比较综合的项目,具有一定商业价值的项目,写在简历上可以给你加分的项目,比如:

  • 一个在线教育网站
  • 一个内容完善的博客系统
  • 一款有价值的手机App
  • 一个设计和功能都不错的游戏

项目虽好,但我不推荐初学者上来就做这种项目,步子大了容易扯着蛋。

在做项目之前,必须先有一定的编程基础:

  • Java是否掌握了Core Java的核心知识?
  • Python是否掌握了基础语法,面向对象,模块和包等?

否则就算你比着葫芦画瓢把项目运行出来了,项目随便出点问题,你就傻眼了,因为一些基础的知识你都不懂。或者让你做点复杂点的功能,完全没有思路。

所以在实践本文的步骤之前,先掂量一下,自己是否已经有了一定的基础。

并不是说从零开始学习编程就不能实战入门,相反,我非常推崇实战项目入门的方法,所以我在B站分享很多Python,Java的小游戏,小项目的教程:

6个步骤获得高质量的项目经验,告别没有项目经验的炯
6个步骤获得高质量的项目经验,告别没有项目经验的炯

这些都很适合零基础学习编程,但如果放在简历上就太单薄了。

在B站搜索:麦叔编程,可以查看这些视频。公众号在近期也会开通相关的小程序。

在接下来两周,我会发布学习文章,也是防止扯了蛋:

  • 不扯淡Java学习路线图
  • 不扯淡Python学习路线图

请保持关注。

二、找开源项目

如果你已经有了一定的基础,就可以开始找个开源项目,练练手。

找项目的方法很简单,可以去github,或者国内的gitee上,搜索你感兴趣的项目,挑选点赞数比较多的就可以了。

但这里我想提醒一下,一定要循序渐进,找适合自己的项目,并不是点赞多的就是最开始学习。

以Java开源项目为例,我认为要分成几个层次:

  • 先做一个Web,Servlet,JDBC为主的项目,不要上来就上框架项目。所有的框架都是基于Java语言的特性,如果你不理解语言本身,上来就做框架,必然会造成根基不稳,你不会成为大牛,工资也不会很高。
  • 再做一个以主流框架为基础的项目,比如以Spring/SpringBoot + MyBatis为主要技术栈的项目。在上一个项目的基础上,你更能理解这些框架的好处,也知道他们的实现原理。有了问题,你有你能力去看源代码。
  • 再做一个分布式的项目,比如基于Spring Cloud的项目,在这个项目中用上缓存,Message Queue等技术。这是在上一个项目上的自然延伸,如果这样的项目你也比较熟悉了,你的表达能力又不错,你运气好,应该可以拿到比较高级的岗位了。应该在阿里P6的水平。

再说一遍,我的主要意思是:要循序渐进,找适合自己的项目。

如果你不知道如何循序渐进,在接下来的一两周之内我会发布:

  • 不扯淡Java项目推荐和案例分析
  • 不扯淡Python项目推荐和案例分析

请保持关注。

三、6个步骤

假设你已经确定了一个开源项目,怎么下手呢?

按照下面的6个步骤来:

  1. 运行项目让项目运行起来,了解它用什么服务器,用什么数据库,如何启动,如何关闭。如果是分布式项目,这个步骤就有一定的难度。在运行的过程中可能会碰到各种类库不能下载的情况,这个过程本身就是一种锻炼。
  2. 测试它的功能,写一份功能列表运行起来后,不要急于去学习代码,先了解项目的功能,并且自己写一份功能说明书,越详细越好。如果功能都不了解,谈什么构架,谈什么技术?面试的时候也会挂掉。
6个步骤获得高质量的项目经验,告别没有项目经验的炯
  1. 浏览代码,做一个技术栈列表现在可以开始学习代码了,不要盲目的学习,学习完了要有一定的产出,那就是出一份技术列表。这个项目中都用到了哪些技术?不用太漂亮,把用到的技术都列出来。用了什么Web框架,什么业务层框架,什么数据库层框架,什么数据库?要详细一点,用到那些模块,那些类库,分别用的什么版本,统统都列出来。这个产物就是一个简单的列表。这个过程你必然要全面的浏览代码,了解代码的结构,对代码有个比较好的总体的理解。
  2. 画一张技术架构图,画一张流程图这时候需要把这些东西内化了,给你的作业是两张图。一张是技术架构图,前面你已经有了一个技术列表,现在把列表中的东西放到一张相互依赖的图中去,进一步消化项目的架构。相信我,在面试的时候,如果你能轻松画出你的项目的架构图,面试官一定对你刮目相看!还有一张是流程图。挑选一个主要的业务流程,比如电子商务系统中的下单流程,画出这个流程的详细的流程图。这个流程图中最好有两部分,一部分是业务流程,一部分是代码流程:这个流程中一步步是如何调用的,最后数据被存在了那张表中等等。

架构图示例:

6个步骤获得高质量的项目经验,告别没有项目经验的炯

流程图示例:

6个步骤获得高质量的项目经验,告别没有项目经验的炯
  1. 添加一个功能/修改一个功能经过了上面的4个步骤,你对这个项目的理解已经很透彻了,可以说击败了90%的小伙伴,但是还不够。你只是在学习,你还没有实战。现在修改产品功能列表,添加一个新的功能,你把这个功能开发出来。这个功能不能太简单,需要有一定代码量,你至少要两周才能开发完成才行。对,这个步骤非常关键!你需要有实际的项目经验,不只是道听途说,不是把别人的东西说成自己的。现在就是你建立实际项目经验的时候。
  2. 给自己出10个问题,找出优秀的答案你对这个开源项目很了解了,也自己开发了新的功能。现在来检验一下自己,尝试站在面试官的角度,给自己提10个问题。提问题的时候不要想答案,不要想这个问题我会不会。就只是想问题,列出你认为的最难的10个问题。找出这10个问题的答案。这个过程,你需要再去深入研究相关的技术,要的就是这个效果。

经过这样的6个步骤,你一定有信心把项目写到自己的简历上。实际上,你可能会比真正有工作经验的人还要表现的好。

我见过很多工作了几年的人,都不能画出自己的项目的架构图,对项目需求一知半解,问到点深入的问题就答不出来。如果你有实际的工作经验,也可以应用上面的几个步骤。

如果你觉得这个几个步骤很好,但还是感觉不知道怎么下手,在接下里一两周,我会选取一个开源项目,带你一步步实践上面的6个步骤。请保持关注。

四、获取团队合作经验

经过上面的6个步骤,你的项目经验应该没问题了,但是你没有真正的在一个团队中工作过,你没有团队合作经验,这可能会是一个问题。

下面分享的4个步骤帮你获得团队合作经验:

  1. 找两个同学或朋友一起研究同一个项目你们就是一个团队,制定计划,分配角色。也可以各自研究一个模块,再互相交流。这个过程不仅仅是做项目,你在培养你的团队协作能力,沟通能力,甚至领导能力。以后的公司会有越来越多变成虚拟团队,大家就是通过网上交流,互相协作。所以你和你同学成立的团队,和公司的团队是一样的。你获得的也是货真价实的团队合作经验。
  2. 各自修改一个功能,通过git管理代码你们共同讨论,确定要增加什么功能。每个功能分配一个人开发。你们共用同一个代码库,通过git管理和协作代码。原本你只能开发一个功能,现在因为有了3个人,你可以给这个开源项目增加3个功能了。你的项目经验也更多了。
  3. 互相审查对方的代码,互相测试对方的代码团队中,代码审查是重要的一个环节。你们3个人,互相审查对方的代码,给对方提出意见。互相测试对方的代码,给对方报bug。
  4. 互相审查技术构架图,互相提问对方的问题在6个步骤中的各项产物,你们都可以互相审阅。重要的是,你们可以模拟面试对方,用你觉得最难的问题,去狠狠的考验对方。比面试官还要狠。

如果你很难找到合作伙伴,我创建了一个“项目实战互助群”,也许这里你能找到你的合作伙伴。请在公众号回复项目加入群聊。

五、后记

我知道,说起来容易,做起来难!但是不做会更难。

如果下决心,严格执行这些建议,项目经验绝对不会成为你的障碍。

为了更好的帮助大家,在下面的一两周我会推出相关的文章:

  • 不扯淡Java学习路线图
  • 不扯淡Python学习路线图
  • 不扯淡Java项目推荐和案例分析
  • 不扯淡Python项目推荐和案例分析

数据分析咨询请扫描二维码

客服在线
立即咨询