A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Screenplay

初级黑马

  • 黑马币:24

  • 帖子:7

  • 精华:0

本帖最后由 Screenplay 于 2018-3-9 19:38 编辑

       相信很多人和我一样,在大学选了一个自己不感兴趣的专业,毕业发现资薪待遇与自己想象的不符,自然而然想到了转行做码农,我就是万千转行中的一员,转行需要勇气,有的是做了多年工作才下定决心转行,有的是迫不得已才转行,我就分享一下我决定来这的心理过程.
       首先,我先谈一下自己打算转码农的初衷,就是因为钱,可能有的人说码农工资也不高啊,加班多时薪低之类的。没错,的确如此,在外人看来码农的境遇的确是被高估的,加班多也是事实,不过反过来讲,不加班还工资多的工作,找得到吗?不能说没有,只能说这种工作轻松收入高的工作,不认识人很难能进,要么就是要求特别高比如至少要求硕士博士之类的。所以这种工作可以说对于大多数普通人来说是绝缘的。所以留给我们的只有:“轻松但月薪低的工作”、“辛苦但月薪低的工作”以及“辛苦但月薪高的工作”。如果你是一个对自己未来还抱有一丝希望,还想通过自己努力一把好让自己以后的生活更好的人的话,那么应该都会选最后一种。
      我记得毕业季的校招会上,本专业找人工资才两三千,实习期上三千都算高的好多人挤着进,而且工作环境就是进工厂,隔壁的软件系都是四千起步,实习拿四五千有的是,于是就想转行,我记得当时我还小心翼翼的投了一家软件公司,我说我是想转行过来,他们直接问我会不会什么数据库,JS之类的,直接把我听懵了,眼看着同学都在为前程忙碌,我也就下定决心来培训了,其实来到这其他暂且不说,至少心里安定了下来,这也是归功黑马的专业与实力,让人信服来这里是正确的,他确实可以让我转变成一个优秀的程序员,
       如今从刚来到现在已经近三个月了,我也已经适应了这里的氛围,这里对想来黑马的还有已经在黑马的同学提个醒,切记眼高手低! 每个人学习都会有一个倦怠期,就我个人来讲,当我学了快一个月的时候我就开始有点倦怠了,想偷懒,上课也不想当初一样认真听了,教的内容都是最基础,也是最精简的,精简到没有任何知识点是你可以随便了解一下就行的地步,所以,一定要坚持,坚持,再坚持。
       最后,很多人不知道码农是干什么的,或者不知道出去工作后的工作流程是什么,我之前看到一个大牛写的码农的角色,在这里分享一下:
       1.码农的角色
       1.1 编码人员
        编码人员会收到需求文档或者设计文档,被要求要实现什么样什么样的功能,然后进行编码实现和需求文档,设计文档要求一致的东西。编码问题具体后面说。
       1.2 设计人员(我们所说的系统架构师其实就是高阶的设计人员)
设计人员分2类,一类是UI设计人员,一类是系统设计人员会收到需求文档,被要求要做一个什么功能,要实现什么为目的,设计文档包含系统架构,语言,数据结构,数据流向,安全性评估,可行性评估等等等,产出一份设计文档交给开发进行开发。
      1.3 需求人员
需求人员会和用户或者产品经理进行需求访谈,引导用户交出合理并且准确的需求,准确的逻辑,然后产生一份需求文档,并将需求文档交于设计,进行可行性分析。可行性分析通过则设计人员会开发进行设计,编写设计文档。需求人员要求必须能够拿到准确的需求并且传达给设计,因为一旦需求错了,整个设计和开发都要重新来过,浪费的人力物力可不是一点半点。用户或者产品经理提出问题,需求人员根据需求问题找到可以实施的解决方案或者优化现有的作业流程。在完全需求的同时,提出的解决方案要尽可能的为设计开发考虑,降低设计开发成本。
      1.4 产品经理(创意团队)
考察市面上的产品,针对自己的产品进行规划,要做哪些功能,什么样的功能受众大,什么样的功能可能能打击到竞争对手等等情况进行分析,然后发展产品,对产品周期进行规划。产出为产品规划书,产品生命周期,产品介绍等等相关文档,并且和需求人员合作产生需求文档。
      1.5 测试人员
当然了就是对开发的功能,模块,产品根据需求文档进行测试,有猴子测试,白盒测试,灰盒测试,黑盒测试,压力测试,测试工具测试,自己编写代码测试等等等..... 产生的文档 就是 测试计划,buglist文档回馈给开发人员。补充一句,所谓的bug是指凡是和需求文档不一致的结果都是bug,并不是代码出了问题才叫bug。
      1.6 运维人员
运维人员就是有管理员权限,可以操控产品,功能的一些参数来管控,对产品和功能使用是非常熟练,并且会一些简单的编码和数据库原理,第一线对系统产生的问题进行处理并且修复数据,如果能找出根源的问题就是优秀的运维。产出的东西有 troubleshooting 文档,问题反馈文档,另外很多运维也会写用户说明书,因为他们对系统是最熟的。
      1.7 项目经理(PM,PMA)
这部分人不是严格意义上的码农角色,只是管理项目的进度,风险,人员,成本,协调资源(和建楼房的项目经理没有本质区别)。这里就不写了。

       2 工作流程
所以整个工作流程 大概就是这样 用户/产品经理--->需求人员--->设计人员---->编码人员----->测试人员----->运维人员。不是指等级越高的人员编码能力越强,只是在上流的人员的容错率很低,所谓差之毫厘谬以千里,上游错了一点点,下游必定错得很惨。人员越多,也会导致流程越长,耗费在沟通上的时间就越多,沟通上容易出错的风险就越大。所以很多公司基本是设计/编码 或者 需求/设计是同一个人。或者一个人身兼数职,比如我,就是兼了所有角色.....

       3 码农的基本素养

       3.1 逻辑能力
逻辑能力一定要强。逻辑能力可能有天赋的原因,可能也有后天学习的原因。逻辑能力强的人一般体现为数学,化学,物理等方面比较出众,所以理科生转码农会容易很多(比如码农里面有大量的自动化,物理系,数学系的学生),因为理科生在逻辑方面被训练得很多。虽然我大学是混过来的,但是高等数学上和下我都拿了90多分.....逻辑能力强会让你在写代码的时候看到推算,各种算法,加减乘除的时候不会紧张,操作链表,堆栈,数组的时候得心应手。做需求分析的时候能够抓到矛盾点,能够分析出流程,功能是否合理,是否能够实现等等等。所以逻辑能力是很重要的。
       3.2 沟通能力
沟通能力可以让你快速融入团队。沟通能力体现在你能够快速接受并且正确理解别人告诉你的事情,你也可以清晰并且准确的表达出你自己的想法。这样你的沟通成本就会大大降低,然后你就能够花更多的时间在代码的编写,需求的分析上面,提升自己的工作效率。
       3.3 学习能力
旧的技术你可以通过一些例子,项目代码,文档然后快速进行掌握,并且在项目上可以开始快速上手开发新功能。 新的技术进来,你有兴趣花个人的时间去专研,并且能在你们团队第一个的搭建出模块,平台供你的团队成员学习,使用,那么毋庸置疑你在哪个地方都会很吃香。
       3.4 阅读文档能力(英文水平)
很多旧技术,新技术其实都是要靠阅读文档,和自己尝试编写代码结合进行学习的。这样学习起来效率会很高,所以会阅读文档,并且理解文档就显得格外的重要的。对于旧的技术或者问题有很多中文文档进行阐述,但是更多的新技术,新问题只有英文文档进行描述,这个时候你的英文水平就显得格外重要了,因为好的文档可以减少你学习的时间,提升你学习的效率,而大部分好的文档其实真的都是英文写的。所以要成为高阶的码农,英文是要有一定的水平的。
       3.5 搜索引擎的使用能力
其实现在码农这个职业现在使用搜索引擎是必不可少的,百度,Googel,github,stackoverflow,csdn都是比较主流的。我一直坚信一个理论,你所做的东西你所遇到的问题肯定已经有人遇到并且解决,你要做的就是去网上有目的的海底捞针,然后看别人是如何解决,你进行复制和简单修改。不要认为这就是复制就能解决,前提是你要能找到在哪里可以复制。当然大部分的东西还是英文的比较好,所以这里又考验你英文水平的时候到了。(我们经常调侃,现在已经不是面向对象编程了。而是面向搜索引擎编程,网络挂了,今天就不要做事了。) 举个简单例子,我曾经接收到一个需求,用户经常要把上万的数据导入到系统里面,因为数据库是sql,而系统是.net的平台,后来我google到可以使用bulkcopy来进行处理,接收这个需求之前我是完全不知道bulkcopy的。这样你在使用搜索引擎在完成任务的同时自己也得到了提升,学到了你周围人都不知道的知识。
       3.6 态度
态度决定一切,你必须有好的态度,好的职业修养,才能被人看得起。遇到问题不甩锅,有责任心,是自己的东西就有一定要把它干出来为止的那种冲动,不眠不休的尝试解决!我手底下曾经有一个程序员,职高毕业,也没参加什么培训。逻辑能力,基本理论知识可以说是差极了,沟通也挺费劲,如果是我去面试,这类人我一般来说是不通过的,不过是老板派给我的,我也只能收着。还好他大部分是做UI和H5的样式,CSS3的动画。可是后来我发现他的态度非常的端正,责任心很强,自己也很有耐心去学习新的技术知识并且运用到实际进行解决。虽说进入状态花的时候有点长,他写的JavaScript代码也是乱得不行,但是能帮到我解决问题,而且态度很好,不管工作难或者不难都不推诿。所以最后还是可以的,现在也慢慢开始成长,转到了其他团队。
       3.7 定位
其实码农是属于第三产业,服务行业,你怎么样让你的上司爽了,让用户爽了,你就牛B了。不一定要用写代码的模式才可以,好的创意,好得理念,好的沟通,好的态度,都在这范围里面。写代码做功能做产品的终极目的就在于做服务,提供服务。你能搞清楚你服务的对象,搞清楚你服务对象想要什么,你能提供什么服务满足他们,并且你实现了,你就成功了。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马