如何避免成为一个低级的码农?

在知乎上看到上面这个问题计算机科学与技术专业的学生要怎样做才能避免成为一个低级的码农?,以下是我的回答:

其实题主应该是看到一些学长学姐或者是看到网上一些有关程序员的言论才来问这个问题的吧?首先,我觉得题主是个很有心的人,还没毕业就开始对自己的未来开始考虑了。其次,题主现在的技术积累和学习成绩应该是一般般,我猜没什么项目经验,虽然想努力但是还是很迷茫,不知道如何下手。再者,题主应该是个对计算机抱有一定热爱的同学,要不然不会来问这个问题。

首先我来理解下题主所谓的低级码农:**表象为工资低、职位低、工作内容枯燥乏味低级、工作前景不明朗、发展空间不大;内在为个人对技术不够热爱、没有进取心、以混日子为主、对工作中的内容不求甚解。**不知道我理解的对不对,而以下的内容都是按照我的这个理解来展开的。

我是CS本科出身,在学校成绩中上,参加过一些比赛,成绩都一般,项目经验几乎为0,也就是平时自己会自学一些技术。所以,题主别慌,我当初也是跟你一样。好了,以下是干货,说一些适合普通人的路子。这其中有些我做到了,有些是我当时没有做到后来自己总结觉得应该去做的。另外这里也不讨论考研相关,只针对本科到工作。

在校期间
1.学好专业课。 计算机导论(建立整个计算机世界的价值观)、C语言(编程入门必备,对编程有初步的认识,主要就是基本语法、数据类型和指针这三大块,语言特性可暂不研究)、数据结构与算法(编程进阶必备,掌握70%肯定不是低级码农)、数学(包括高等数学、概率论、离散等,这个要是能学得差不多也肯定不是低级码农)、计算机组成原理(计算机硬件 + 底层原理,帮助理解计算机的一些原理。比如解释为什么读redis比读MySQL快)、操作系统(同样,帮助你更好的理解计算机。比如解释多线程并发不是真正的并发)、网络原理(学这个不是让你当网管。工作后连ip、端口都分不清的话,就得后悔为啥没好好学网原了)、数据库(这个不多解释了)。理论基础很重要,是摆脱低级码农的基本条件。随着工作的进阶,这些原理显得越来越有用。

2.多参加计算机相关比赛。 什么ACM、计算机程序设计大赛这种。ACM训练编程能力和算法能力,计算机程序设计大赛可以作为你在校的项目经验。大创这种,如果做的话一定要能落地,见过太多搞了一个高大上的课题结果糊弄糊弄最后只有一堆吹B用的PPT,电脑上两个开发环境都没有。

3.重视课设毕设。 别说学校注重理论没有实践,课设毕设不就是实践么?不要在百度上copy别人的现成的程序应付了事。自己该踩的坑要自己踩,该抓的头皮要自己抓。可以去搜索解决方案,找别人的代码,但是最后一定要自己动手敲一遍。注意,动手敲不是让你照着别人的代码一行一行敲,是要把别人的代码思路读懂,然后自己按照思路独立敲一遍。然后不断debug、优化,到最终完成课程项目。如果能做到这一点,恭喜你,大概率毕业后你不会成为低级码农。因为能做到这点说明这个人身上具备优秀工程师的一个特点:拥有解决问题的能力。

4.重视课设毕设的报告论文。 有些人报告糊弄糊弄就完事了,毕业论文也是东摘西抄,但这正是锻炼写作能力和表达能力的过程。一个不会表达、不会分享、不会总结归纳的程序员,也就只能是低级码农。

5.关注大企的校招信息。 BATJ(百度、阿里、腾讯、京东)、TMD(头条、美团、滴滴)等这样的大企,每年都会有春招、秋招的校招计划,可关注他们的官方招聘网站或者公众号参与校招流程,或者在各种社区、社群等获得内推机会,争取进入这样的企业实习。一般来说,能去大企实习的同学,绝大概率不会成为低级码农。

6.在校期间出去实习,最好是全职实习。 去不了大企就去一些中小企业实习也可以,这时候就不要挑企业的大小规模好不好了,就看准一条,进去后能不能跟着参与实际项目的开发。当然了,这种也是可遇不可求的。根据我的经验,能让实习生参与项目的小公司居多,因为小公司没时间去培养新人,如果你能力还行的话有个一周两周就能慢慢上手了,而且实习生薪资也不会很高,企业也喜欢用。只有在真实的项目中锻炼,成长才最快。要不然在公司打酱油,每天也没什么事,反而浪费时间。

7.自学技术。 光靠学校学的那些内容远远不够,很多知识学校也只是讲的皮毛,必须要自行扩展实践。这里提一点我觉得最重要的自学思路是:先实践、再理论。什么意思?我在校那时候,APP开发火爆得不行,但学校也没有Android开发等课程。于是我就自己买了一本Android开发实践的书,然后跟着慕课网的免费Android课程自学Android,做过简易计算器、拼图游戏、绩点运算器、番茄工作法工具等。说出来别人可能都不信,我那时候Java一点都没接触过,看了几节基础课程后就直接摸索开发APP,注意是直接动手开发。不懂的内容就先照着代码敲,先跑通再研究为什么这样做(先能看到成品会比较有成就感,会产生正向的反馈)。后来在解决一些问题的时候觉得比较吃力,发现是某部分基础不行的时候,反过来去补充相关的Java基础,后来不知不觉Java基础都让我补充完了。然后我又跟着传智播客的一套Java视频课程系统的学习了一遍Java。这段自学过程让我在大四实习的时候,很快就可以上手参与项目开发。

工作期间
1.首先是工作的选择。 有一句话“选择比努力更重要”。如果按照我对低级码农的理解,低级码农出现可能性比较大的公司为外包公司、传统IT行业、一般的中小公司以及不是以开发为主的公司的开发部门。我只是说可能性比较大哈,低级码农其实哪都有。至于为什么?首先是这些公司在招人的时候,技术门槛相对来说比较低,所以更容易招来一些符合低级码农的特质。其次,公司由于自身特质,不那么重视开发团队,或者说开发团队按照现有模式和技术积累已经可以满足现有需求的开发,开发人员不需要创新不需要解决什么高难度的问题,只是按照流程框架把项目开发完即可。在这种氛围下,一个人很容易被周围人影响,除非时刻保持清醒的头脑和自我驱动能力。所以,如果想避免称为低级码农,尽量避免许选择这样的企业。

2.不断学习,自我驱动。 一个人是不是优秀的工程师,除了看他工作时的工作效率和质量,还要看他在非工作时间是不是也能够保持输入。如果仅仅满足于完成工作内容,很难在这个行业走得远。我身边的一些人,有的人工作时候看似很努力,也经常把努力和奋斗挂在嘴边,但是很少看见他们在业余时间保持学习。在我看来,这样的人的进步速度是非常缓慢甚至是原地踏步的,所谓的那些励志口号也仅仅是口号罢了。而我认识的那些对行业、技术保持热爱的人,基本上发展都很不错。所以,说到底,想摆脱低级,就要不断学习让自己变得更高级。

3.坚持写作。 在技术社区里注册个人博客,CSDN、cnblog、oschina之类的都可以。把个人的学习过程,或者某个技术难点的解决方案总结归纳一下,发表成博客。不但锻炼自己的写作能力,更重要是通过这个过程可以逐渐打造自己的个人品牌。只要能坚持,保证文章的质量和深度,保持个人的风格,会不断积累自己的粉丝最后逐步建立自己的圈子。那时候,你的个人品牌就是你最好的名片,这还会是低级码农么?

4.关注行业趋势,保持独立思考。 谈到趋势,不得不想起雷布斯那句猪在风口上飞的经典名言。每个时代都有那个时代的风口,抓住趋势,比别人早一步上车,就能抢占蓝海获得更多的机遇。15年前,有人靠房地产发家;10年前,有人靠电商发家;5年前,有人靠移动APP发家;现在,大数据、算法、AI都可能是未来几年的蓝海领域。所以,想要个人提升,业余时间学学Python、机器学习、大数据等内容,投入到这方面领域的工作,极有可能会赶上一波红利,摆脱题主所谓的低级码农。

其实,题主的顾虑我感同身受。我也有过迷茫,有过焦虑。大部分人从事开发的人都会有低级码农的阶段,任何事情都不是一蹴而就的,都需要一个过程。所以就算是处于低级码农,也不用太沮丧,因为这是个分水岭。有的人很机灵很快就能跳出这个阶段,有的人可能需要几年时间来实现进阶,而有的人可能一直在这个阶段。所以归根结底其实就是几点:不断思考、坚持学习、立即行动。

希望你能尽早够实现从低级到高级的进阶!
 

你可能感兴趣的:(如何避免成为一个低级的码农?)