1

决定来说点儿干货,计算机专业的同学们好好看,敲黑板,说重点了啊!

月薪两三千,不说北上广深,就算是三四线城市也会过得很辛苦吧,所以,能有避免成为低级码农的觉悟,就是一个好的开始!

如果你还是一名在校大学生,泥萌一定要对高中老师的“谎言”有所觉悟!“大学生活悠闲浪漫,没事儿就散散步,看看景。”“人生能有几回搏?现在是很辛苦,等上了大学就轻松了。”这只是高中老师们的“激将法”。大学期间务必要上进、自律,为成就优秀的自己打下良好基础。

在校期间不要轻视任何一门专业相关课程,基础打得越牢,将越利于你在实际工作中的发挥。在实际工作中,你可能不仅要会写程序,更要懂算法的原理,必要时还要懂得优化算法,甚至是创造新的算法。

积极进行知识技能实践。比如反复练习课本上的案例,熟悉代码,搞懂其中的运行技巧;到开源中国、Github等网站查阅现有的优秀项目的代码,并学会举一反三;参加实习,找一个靠谱的公司踏踏实实地从码农做起,感受实际工作的环境等。

不断向优秀进阶,你需要将以下好习惯贯穿程序员生涯的始终。

1. 定位清晰,坚持不懈。

IT领域技术栈非常庞大,你不可能同时学完所有的知识,因此有所取舍是相当重要的,避免贪多嚼不烂。一定要根据自己的实际情况及个人兴趣来确定自己专攻的方向:

(通过一步步取舍,确定自己的专攻方向)

确定了专攻方向便要持之以恒地坚持下去,如果你想成为一名高手,就要对自己的主力语言达到精通的程度。当然,并不是说确定了主攻方向,其他技术就不需要关心了,而是要努力把自己发展成一个T形人才,深入学习专攻领域外,对其他技术也要广泛涉猎。

2. 熟读相关书籍,培养程序员素养

通过阅读程序员相关的经典书籍,掌握程序员应该掌握的通用原则。比如《代码大全》、《程序员修炼之道》、《编程珠玑》、《代码整洁之道》等经典书籍一定不要错过,这是快速修炼自己的技术水平的必由之路。

而且,如果你能坚持每个月都能读完一本专业好书,两年之内,你便有可能成为该领域的顶尖人物,这是业内很多顶尖专家认同的观点。所以,从现在开始,为了成为行业大牛,坚持读书吧!

3. 充分驾驭IDE

选择一个合适的IDE/文本编辑器和选择语言一样重要!不要换来换去,坚持使用下去,熟悉IDE的每个细节、快捷键及特性,做到烂熟于心,可以取得事半功倍的效果。用JAVA的话,可以用Eclipse或者IntelliJ Idea;写Python推荐PyCharm;写C、C++,Visual Studio会是不错的选择。

当然,不要专一到离开了自己的IDE环境就不会写代码了哦!

4. 成为Git高手

如果你在Google中输入“git version control”,可以得到数以百万计的返回结果,显然,Git已经成为业界标准,熟练操作Git是成为一个高级程序员必不可少的技能。推荐阅读 《PRO GIT》,了解如何成为一名Git高手,希望能对你有帮助。

5. 精通框架并让重构成为习惯

精通框架可以把你从重复造轮子的窘境中解救出来。框架是项目的基础,所以你拿出学习语言的热情来进行框架学习不为过。

有很多程序员都有过这种经历:拿了别人的框架过来用,没有仔细推敲的情况下便飞快地码好了所有代码,信心满满地提交之后却发现由于框架的不合理而导致整个程序跑不通,不得不自己再重写框架。因此,精通框架可以有效提高工作效率。

由此也可以看出,重构是非常重要的一项技能,随着代码的增加,需求的变更,重构往往不可避免。关于重构,可以读一下Martin Fowler的《重构:改善既有代码的设计》,案例的话,可以看一下酷狗音乐的大数据平台重构。

6. 坚持TDD测试驱动开发

TDD已经成为了软件开发的标准,对于老程序员来说,直接写代码可能更加轻松简单,但是缺点是品质不可控,你总不知道什么地方会出篓子。所以,拥抱TDD是大势所趋,越早习惯TDD,对你未来的发展助益越大。

7. 成为命令行专家

命令行操作起来不仅仅是酷炫,还可以节省大量的时间。熟悉SHELL及命令行技术,对于提高工作效率是相当重要的。要达到传说中用自动化命令完成大部分工作的水平,熟练的命令行技术是必要途径,关于命令行,可以参考《Conquering the Command Line》

8. 培养团队管理及协作技能

程序员往往都喜欢单打独斗,但是事实却证明,天才的程序员敌不过资质平庸的协作团队!因为开发工作并不是一项个人工作,而是需要团队的智慧来解决各种问题,实现客户需求。然而,团队管理及协作却是一项容易被忽视的能力,说白了是情商的问题:知道自己很优秀,却并不急于向别人证明;能够编写清晰易懂的代码,而不刻意在代码中炫技;乐于帮助团队成员提升……一个高情商的人懂得关注他人的利益和感受,强调共赢和团队受益。

9. 关注开源社区

无论你的技艺多么高超,总是藏着掖着也很难出名。注重总结和分享,多写写辅导新人的教程,分享下自己工作中的感悟和经验技巧,把自己过去的好项目在Github上分享,或者将自己的工具分享出来,积极参加到开源项目的建设与改进当中,都有可能会让你声名鹊起,让更多人认识你。

(开源社区对程序员的成长具有重要意义)

最后,程序员一定要打工吗?

NO!

当你技术成熟、经验丰富之后,会有各种优秀的人员拉你入伙创业、或者加入他们的创业公司,到那时你会有更多的选择空间。所以,你一定要保持一颗不断学习不断进步的心!

纸上得来终觉浅,绝知此事要躬行。去吧,皮卡丘!


程序员学习交流请添加慕课网官方客服微信:mukewang666
回复暗号“前端面试”可进前端交流群
回复暗号“Java”可进Java交流群
回复暗号“专栏”可进程序员交流群

最佳贡献者
2

作为一个上世纪八十年代老牌的计算机专业毕业生,我想讲几点:

  • 从码农做起,提高专业水平。
  • 把一件事做到非常完美,提高自己的知名度
  • 选择一个可托付终生的专业方向,不成功绝不言放弃,更不能频繁更换专业方向。

只要能做到以上三点,我想,你最终能成为一个行业内举足轻重的人物。

从码农做起,提高专业水平。

万丈高楼平地起,基础很重要。一般至少要做4~5年的纯码农,才有可能对编程的基本套路、代码规范、底层程序库、系统软件大致架构、操作系统、流行的IDE等等有一个比较专业的认识。

这点很重要。很多人得不到高薪,并不是因为不努力,而是因为在第一关的面试阶段就输了。面试官所提问题,都有代表性,它考核了你在计算机的各方面的应用能力。

这些能力,主要来自于码农4~5年的基础培养,不可缺失。

一件事一定要做到非常完美

我们公司在2015年高薪招聘了一个985软件开发专业毕业的码农,面试时,觉得他基础很好,所以,做为重点培养。工作一年后,我发现两个问题:学习能力及做事不细致。

比如,Windows操作系统在异常掉电后,经常会出现扫描检测硬盘,有时还要反复按键才能正常进入系统。让他去分析,他只是打电话,听人说需加UPS保护,他就这样给我如此说。而另一个工程师,通过各方查找,用一个软件更改完美解决问题。

诸如此类。长期养成这种做事不彻底、不完美的习惯,领导及同事认为他水准有问题,故不再重用。

选择一个可托付终生的专业方向,不成功绝不言放弃,更不能频繁更换专业方向

有基础,做事追求完美,没有好的方向也不行。比如AI、AioT、通讯类、教学类、公共类等诸多方向,选中一个自己有浓厚兴趣的方向。建议花两~三个月时间考虑。

最近我面试了一个工作了十二年的软件开发从业者,他做过通信物理层开发,在互联网公司干过,做过AI开发,做过工业控制等等。按说是大牛了。遗憾的是每个工作基本两年多,从未进入那一个公司的核心开发层,每个工作都是试水。

问其专业知识,都是只知大概。试想一下,那个公司喜欢要这种只知大概的码农?没有丰厚底蕴的码农,是不受欢迎的,只能到处飘着!

总结:计算机专业知识点多,更新又快。一旦选定一个奋斗方向,绝不轻言更换,持续学习、创新、提高,紧跟时代潮流,最终都能在某一行业站稳脚跟。否则,如果频繁更换工作,短时间看,薪资有所增长;长远看,专业水准得不到最大提高,最终使自己永远沦为低级码农。

3

我与计算机打了三十多年交道,可以说对这一领域越来越陌生,不得不感叹廉颇老矣 尚能饭否?为什么这么说?因为计算机技术更新太快,简直无法跟上它前进的脚步,同时又觉得它发展太慢,许多美好愿景,它迟迟不具备实现的条件。

说它快是因为工具类产品层出不穷,你学都学不过来。说它慢是因为你朝着一个目标去迈进,发现穷尽当今的计算机应用技术,也难以实现。你说矛盾不矛盾?既然学无止境,好事难成,我干脆选择了放弃。令我完全没想到的是,竟然事事如意了。为什么如此?

我放弃了对计算机技术的学习,但我没有放弃对该领域技术的追踪。我转而来研究客观事物的内在规律,由于功底还在,研究起来得心应手,当规律摸透后,就能将复杂的问题简单化,简单的问题明确化,当一切都清晰了,解决问题的办法它会不请自来,竟然用不上什么高大上的技术,许多难题也能迎刃而解。

我于是总结出一个真理,当你懂得哲学的时候,它能弥补你在计算机领域里的一些技术不足。任何问题,上升到一定高度后,它就变成哲学问题了,这时你只需要实事求是就行。因此计算机专业同学避免成为码农的唯一出路,除了勤奋外,得掌握一些基本的哲学思想!

4

学计算机专业的同学需要一直坚持学习,发展太快,一放下专业就落后。

而且毕业后看看从事什么工作,如果用不到专业知识,对于提升专业能力,那就太堪忧了。

我一个朋友学计算机专业的,毕业以后就从事电脑维修。

硬件维修就那些。嗯多年下来呢,计算机市场生意不太好做。

尤其这个组装机现在很少有人去买了,一般是联系单位,企业,大量销售才行。

他不太擅长推销,所以生意也就失败了。返回到软件市场,完全不会了。现在已到中年,真的是穷困潦倒。其他工作呢,他还不喜欢。就只喜欢计算机。

他一毕业的时候想留在大城市,可是家里的人必须让他回家。回到老家根本没有大公司,没有氛围和环境,他的专业知识,不但没有提升,反而什么都不懂了。

学计算机专业,很多人喜欢,发展的方向和路,必须选好平台,坚持到底才行。好的学习平台很重要。

5

先看编程水平的不同阶段:

1,首先学习编程语言基础,数据类型、基本语法、面向对象、数据结构、基本算法、常用类和库、第三方组件、工具包、单元测试,等等。

2,结合工作内容和兴趣方向,学习常用框架,比如Java Web开发时常用Spring Boot,数据库开发MySQL+MyBatis+MyBatis Plus,缓存系统Redis,消息队列ActiveMQ,分布式,高并发,微服务,云计算,Docker,DevOPS,等等。

3,随着学习进阶,逐步可以独挡一面,在实际工作中积累项目经验、提高技术水平,掌握系统级别的设计、开发、运维能力。

再看技术线职业发展轨迹:

1,初级程序员;

2,中级程序员;

3,高级程序员;

4,架构师,也可以转做技术管理,建议不脱离技术,扎实的技术基础是技术管理的有力保障。


最后看程序员水平的反映:

1,普通程序员玩黑科技;

2,高级程序员研究算法;

3,超级程序员学习数学。


总结:

1,随着编程学习门槛的不断降低,初级程序员将逐渐面临残酷的就业竞争。AI、IoT、区块链等新兴高科技的发展,对软件工程师提出了更高要求,高级程序员的需求逐步增加。

2,要想不成为低级码农,就要在工作中不断学习提高,不能满足于学学框架,开发业务应用。

3,除了工作和业余时间之外,一定要安排足够的学习时间,或者说,下班后的时间,才是真正决定你的人生高度。

4,多学算法,多学数学。


我是工作多年的Web应用架构师,陆续发布关于软件开发方面的文章,欢迎关注我,了解更多IT专业知识。

6

即将面临毕业,所以我一直在研究这个问题。我终结了以下几点,希望能帮到题主

必须精通一门以上编程语言,精通或熟悉与发展方向相关的其他语言。

所谓精通,就是要非常熟悉的使用这门语言,并且要做到几乎知道这门语言的所有知识。如果只会一门语言的基础语知识,就只能去处理一些基础的问题,甚至只是搬运代码,也就是题主所说的做一名低级码农。只有掌握了一门语言的高级知识才有机会去接触高级的问题,才能避免成为一名低级码农。有时候一些编程工作仅靠一门语言是无法完成的,这时候就需要其他语言的帮助,比如网站制作需要用到HTML 、CSS、JavaScript和一门后台语言,所以掌握与发展方向相关的其他语言语言能使你的高度更上一层楼。

学好数据结构、微机原理、软件工程等与编程有关的课程

学习这些课程的时候可能觉得学的好学不好与以后工作没太大联系。程序员与低级码农的区别在于低级码农只是在敲代码,而程序员需要对程序进行整体设计或为程序写各种算法。这时候这些课程的优势就体现出来了。所以这些与编程相关的课程一定要学好。

熟悉计算机操作系统及其操作命令

操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

所以无论是从事电脑软件开发还是手机软件开发,都必须熟悉要开发软件的操作系统。就算是从事网页制作,也需要配置服务器的操作系统,并将制作的网页放在服务器上面。

成为一名职业程序员的路很长,有许多东西需要学习。无论自己现在是学生、低级码农还是程序员,都不要放弃学习的脚步,让自己不断的进步,成为一名更出色的人。

加油!!!

7

请解释下什么是 高级码农

8

计算机专业科班出身,多年码农经验,我来分享一下看法。

舆论对程序员这个行当褒贬不一,但它绝对算得上当下的一个热门职业。很多大佬都出身于程序员:腾讯马化腾、小米雷军、百度李彦宏、头条张一鸣、网易丁磊等。一名计算机专业的毕业生经过不同阶段磨练最终实现个人梦想,避免成为低级码农。

计算机专业毕业生成为一名程序员是很自然的事,专业对口

此时,因为大多缺少实际项目开发经验,属于初级码农或者低级码农也很正常。这个阶段属于技术的最原始积累时期,非常必要。低级码农和雷军、李彦宏等大佬都要从这里开始。

摆脱低级码农要尽早做准备

经过两三年的实际项目开发后,编码水平迅速提升,此时就应该对自己的技术生涯要有大体的规划了,如果有合适的机会尽可能让自己成为一个小leader,这样日后无论是朝项目管理方向发展,或者是向架构师发展都可以做好铺垫。

多方位提升自己是摆脱低级码农命运的有效手段

经过五年左右的项目磨练之后,原来处于同一起跑线上的毕业生开始明显分化。有的人已经成为项目经理或者主管等管理角色,初步摆脱了低级码农。而大部分依然处于编码一线,如果考虑性格等诸多原因不走管理路线,那么应该注意汲取行业知识,随着年龄的增大,只有单纯的编程技能容易陷入被动。比如,做过几个金融行业的项目,那么在项目开发过程中就应注意学习金融行业知识,将编程技能与垂直行业知识相结合,向纵深扩展将来成为专家专业类人才,从而避免沦为只会编程的低级码农,阿里巴巴的“多隆”蔡景现就是资深码农,十几年来一直奋斗在淘宝电商网站的编码一线,成为阿里的“扫地僧”资深大牛。

如果个人能力出众并且有一颗不安分的心,那么在条件成熟时果断创业,成为本文开头提到的行业大佬也是可能的。我周围的40岁左右依然在编码一线的朋友也有很多,因为他们不仅有丰富的编程经验,还有足够的行业知识,待遇也都不错。

所以,想摆脱低级码农基本有两种方式,一种是通过职业规划努力改变自己的角色,从码农转向管理者或者产品经理、创业者等,另一种是将编程进行到底,结合行业知识让自己成为资深专家。

9

1.能读研尽量读研;

2.在校期间最好有实习经历;

3.第一份工作平台很重要,工资也很重要,千万不要有平台比工资重要的想法,你要知道工资低的都算不了好平台。

10

给你一个有建设性的解决方案:做产品经理。

在说原因前,先说点题外话,你说的情况和我类似。本人就是计算机专业的,但是专业是理论研究,没有写过代码就毕业了。我既不想写代码,码农勿喷,纯粹是因为没有天赋,自己学过n次都坚持不下去;我也感觉没有继续做理论研究的天赋。社交圈子也很小,除了有同样爱好的基本没有社交。视野也一般,除了工作相关的领域,基本不关心。所以,你说的这些情况我都符合。不过事实证明这都没啥要紧的,因为我做了产品经理,而且到目前为止还算是一个很不错的产品经理。

回到正题,为什么给你推荐产品经理的职业方向?
第一,产品经理这个职业没有任何必须门槛。有一本书叫做《人人是产品经理》,还有不时的在各种地方看到什么前台妹子也转了产品经理啊之类的,就可以发现产品经理这个职业,原则上不需要任何门槛,更不用讲专业要求了。我见过优秀的产品经理,有心理学毕业的,也有学文学的,也有初中辍学的。做好产品经理最大的门槛也许是你对你的产品有热情,能为了做出更好的方案自愿熬夜加班。

第二,计算机专业的思维模式很适合做产品经理。产品经理一般有两种工作,要么是优化已经存在的老产品,要么是创造一个惊世骇俗的新产品。第二类工作一般来说,要做好有太多的影响因素,比如你有没有乔布斯式的天才,还得在合适的时间、合适的地方、碰到合适的老板,才有可能实现。我主要讲第一类:优化已经存在的老产品。这类工作其实有固定的模式,明确优化目标——找到影响因素——想解决方案——推动执行。这个过程有点类似编程解决一个问题,所以计算机专业训练的思维模式天然就是适合这个工作的。

第三,计算机专业的一些技能和背景知识很适合做策略类产品经理。对于产品,一般有两类,一类是像搜索、广告两个方向的,产品经理的工作涉及比较多的数据分析、策略设计、算法模型研究。鉴于你的背景,这些东西对技术那边的要求你可能达不到,但对产品经理的要求你肯定够了。既能和技术聊各种算法模型、又能自己写点小程序做做数据分析,你这样的产品经理是这些领域技术方最欢迎的了。

第四,做了产品经理,你会被迫去改变很多。比如程序员一般社交不太多,但做了产品经理,你必须去和各个周边团队去沟通交流,想不社交也难。为了做好产品,你必须去上网做各种调研,视野慢慢的自然就拓展开了。

总结一下,对于那些计算机专业背景又不想做码农的同学来说,产品经理无疑是目前很好的一个选择,既能发挥你的专业优势,又能弥补你的劣势。

你的回答

单击“发布您的答案”,即表示您同意我们的服务条款