作者 l 会点代码的大叔(CodeDaShu)

先来看看这些程序员的行为:

1. 程序员小 A 所在的项目组,需求提的不是很平稳,经常是这两个月来了一堆需求 996,后两个月一个需求都没有整天无所事事,上班的时候看看网页摸摸鱼;

2. 程序员小 B 接到一个需求开发一个功能模块,上网一搜,发现了现成的代码,拷贝运行,结果正确,虽然看不太懂代码是什么意思,不过好用就行了;

3. 程序员小 C 是一名 Java 程序员,决定要花时间继续提高一下自己,于是买了几本技术方面的书,从前端《CSS》《Html5》,到语言类《Python》《Go 语言》,再到数据库《MySQL》《Oracle》,这些书买回来翻了几天就开始吃灰;

4. 程序员小 D 刚工作不久,遇到开发问题先问同事,再问项目经理,如果身边暂时没有可以问的人,就在 QQ 群、微信群、论坛上发布问题,询问网友;

5. 程序员小 E 在这家单位已经工作了三年,今年提涨工资被领导拒绝了,理由是工作内容没变,小 E 本身也没有什么提高,于是小 E 决定跳槽,一段时间后跳槽无果,于是他一边数落着公司不给他涨工资,一边继续做着相同的工作。

看完了这些程序员的行为,我们再来反思一下,自己是否也有过类似的经历呢?

有些同学看到这里,可能要站出来怼我了:大叔马上就要喂鸡汤了,要说什么“下班之后八小时你的行为,决定了你未来三五年后过什么样的生活”,上班这么累,我下班打几把游戏怎么了?

如果你赞成“工作之余不需要再学习”的看法,那么也请你不要在晋升、涨薪、跳槽无望之后,抱怨公司和社会对你不公平;如果你希望自己能够通过合法的方式,获得更高的收入,甚至早日达到财务自由,那么还是要正确的方法提高自己。

01

如何保持学习的动力

1. 被工作倒逼

这是很常见的一种情况,工作中有搞不定的事情,通过学习来掌握;这种方式倒逼自己学习,压力最大但是效果最好,所以如果领导分配给你一些看起来不可能完成的任务,不要当做“看你不顺眼”,而是“最好的挑战”。

2. 追求更高收入

谈钱难免会让人觉得俗气,但是我就是这么俗气的一个人,也相信大多数人都和我一样“俗气”;但是这种“俗气”我觉得并没有什么错,提高自己的挣钱能力,让自己和家人能生活的更好,想一想坚持学习一年,明年说不定涨薪 30%,是不是就有动力了呢!

3. “找一双眼睛盯着你”

长时间坚持学习确实很难坚持,比如坚持一年;不像学生时代,还有老师和家长的督促,工作之后的自我学习和提高,完全是一种自我约束;你可以找一双眼睛来盯着你、督促你:

如果你有一个好基友或 N 个好基友,可以考虑“结对编程”、“结团学习”,彼此督促;

如果你是孤家寡人,你可以写博客、开 github,当一周没有新代码提交的时候,你就想一想“不坚持的话,我就不能绿到底了”。

02

序员需要学什么?

十多年前,那时候的我们苦于资料太少,不知道学什么;

十多年后,这时候的我们苦于资料太多,不知道学什么;

1. 基础是程序员的内功

提到程序员的基础,不外乎是操作系统、编译原理、数据结构、算法这些课程,很多程序员会认为这些课程平时工作也用不上,还需要学习么?

负责任地说,这些基础课程学习的好坏,是程序员能力差异的一个重要分水岭;如果你觉得单纯地看书比较枯燥,可以试试在 LeetCode 上刷刷题。

2. 应用提升类

还记得上文中的程序员小 C 么?本身是一个 Java 程序员,但是又想学前端,又要学其他语言,其实这个正是刚工作时候的我本人;那时候我连 PS、delphi、MFC 的书都有,基本上也都是新鲜了两天就再也没翻开过。

这里建议大家还是从本职工作出发,先学习本领域的应用提高类技术、框架;比如我是 Java 程序员,除了学习 Java 本身的语言特性和新版本特性之外,我还可以学习现在比较流行的 Spring、Spring boot,了解 DevOps(Docker、Jenkins),除了学好关系型数据库之外,还可以看看 Redis、ES 这些非关系型数据库,接触一下分布式架构、微服务,这里还需要学习消息队列、负载均衡、分库分表等等等等了...如果你心有余力,可以再学习一门脚本语言。

如果你致力于成为一个全栈工程师,还需要了解前端的知识;这里我就不能给你们什么建议了,我个人的精力有限,已经好久没有接触过前端的内容了。

总之,一定把有限的精力投入到值得投入的地方。

3. 技术不能脱离业务场景

程序开发的本质是解决业务问题,所以程序员一定要养成业务思维的面试,在敲代码之前,一定要对项目本身的业务逻辑有一个全面的了解:系统是做什么用的?使用者是谁?上下游系统都有哪些?自己的项目在整个业务流程中的位置和作用是什么?等等等等...

我经常戏称:程序优化最好的一个手段是什么?就是不要做这个需求。这里并不是说把活儿推掉,而是指程序员也要从业务角度出发,先判断需求的合理性,有的时候真正理解系统和业务的人,可能就是开发人员自己。

4. 掌握第一手资料离不开英语

建议大家在学习的时候,最好是查看最原始的资料,而不是【只看】被人消化理解过的“二手资料”;比如你要学习Spring Boot的话,最好的资料就是官网的文档,其次才是买一本中文版Spring Boot的书;

但是当你不断地找到“第一手资料”的时候,会发现大部分内容都是英文的,所以“查阅英文文档”是程序员的必修课。

当然,如果有资料能把枯燥的知识用生动的例子讲解出来,尽管它不是“原始资料”,但是对于我们的帮助也是很大的;我刚工作的时候看过一本书《大话设计模式》,让当时的我受益匪浅。

03

为什么觉得技术提高慢

1. 碎片化时间 VS 完整时间

建议大家在学习的时候,最好是查看最原始的资料,而不是【只看】被人消化理解过的“二手资料”;比如你要学习Spring Boot的话,最好的资料就是官网的文档,其次才是买一本中文版Spring Boot的书;

2. 学一遍 VS 反复学

对于基础的知识,需要反复的学习;相同的知识,尤其是基础类的知识,当你处在不同的能力阶段反复学习,每次都会有不同的感悟;

3. 看+听 VS 记+练

可以把学习的知识通过笔记、博客等方式记录下来;程序员犯错误并不可怕,可怕的是反复犯相同的错误。

4. 被动学习 VS 主动学习

把学到的东西在项目中用起来,会让你的记忆更加牢固。对于某些知识,如果能“讲出来”,那么就需要把这些知识了解的非常透彻;这也是我现在做技术分享的主要原因之一。

特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:长按订阅更多精彩▼如有收获,点个在看,诚挚感谢

想要学习却又无从下手?新手程序员如何自我提升相关推荐

  1. 初级php程序员的自我提升

    作为一个初级的php程序员,相信很多人跟我一样都在努力地提升自己.那怎么做才能做到事半功倍呢? 一.不要过度依赖各种框架类的源码 虽说框架可以提高开发的效率,但框架就是框架,它只是一套模板.程序员可以 ...

  2. 关于程序员的自我提升

    作为一名Java开发人员,正式接触Java也有4年多的时间了.如今,我做着这个IT界语言上,从业人数最多的一份工作.让大家先了解一下,我的过去也可以. 13年步入三明学院,14年接触Java,15年开 ...

  3. 一个想法照进现实-《IT连》创业项目:创业时该不该用新手程序员

    前言: 距离上一篇文章,转眼已然一个多月了,这段时间没出来和大伙汇报创业的进度,怪我了. 最近又感冒了,已经一个多星期了,还在感冒中,不过感冒也不能偷懒了,每天都有大把的事情等着我解决~~~ 不过今天 ...

  4. webstorm怎么跑项目_看不懂代码,不会用框架,新手程序员入职后如何快速上手项目?...

    大家好,我是良许. 对于职场新人,特别是应届毕业生,他们拿到offer之后,进入公司后会有一段时间的焦虑感.比如说,不懂公司项目开发流程,代码看不懂,业务流程也不知道,框架不会用,等等还有各种各样的问 ...

  5. 新手程序员基础都掌握了,动手敲代码就一脸懵逼?教你解决办法!

    相信很多初学编程的朋友都有这样的苦恼:为什么我感觉自己基础都掌握了,也看过很多视频和资料了,但就是自己动手敲代码的时候就开始懵逼了! 通常新手程序员会以不同的方式来表达这个疑问,比如: "我 ...

  6. 看不懂代码,不会用框架,新手程序员入职后如何快速上手项目?

    大家好,我是良许. 对于职场新人,特别是应届毕业生,他们拿到offer之后,进入公司后会有一段时间的焦虑感.比如说,不懂公司项目开发流程,代码看不懂,业务流程也不知道,框架不会用,等等还有各种各样的问 ...

  7. 有哪些新手程序员不知道的小技巧?

    提到新手程序员,大家想到的第一个词可能就是:刷题.尤其是通过LeetCode刷题,想必新手程序员们都经历过这一步,甚至不少人认为只要在LeetCode上刷的题目够多,就一定能够进阶为大神. 但是,不难 ...

  8. 如何向新手程序员介绍编程?

     如何向新手程序员介绍编程? 学习Java,他们都说很easy. 作为一名刚从斯康星大学麦迪逊分校计算机科学系毕业的大学生,我通过一些编程课程认识了很多使用Java的朋友.现在很多学校都在从别的编 ...

  9. 写给新手程序员的一封信

    首先,欢迎来到程序员的世界.在这个世界上,不是有很多人想创造软件并解决问题.你是一名hacker,属于那些愿意做一些有挑战性的事情的人. "当你不创造东西时,你只会根据自己的感觉而不是能力去 ...

最新文章

  1. 盘点52个全球人工智能和机器学习重要会议
  2. 解读互联网40年中的10大“杀手”病毒
  3. 百度入股电商直播服务商“卡美啦” 备战2020年双11
  4. opa847方波放大电路_比例阀伺服放大器设计(一)
  5. 什么叫做微内核?与安卓系统有什么区别?
  6. 文件格式、后缀名、图片格式详解
  7. 补单平台哪个靠谱 天猫补单哪个安全
  8. idea破解失败无法打开
  9. 2022-05微软漏洞通告
  10. 服务器上qq邮件不能打开方式,QQ邮箱打不开的处理方法
  11. Newton冷却定理微分数学公式推导
  12. 系统设计面试题之 怎么设计一个打分系统
  13. workman定时器使用
  14. win10浏览器闪退_win10系统ie打不开闪退怎么办
  15. 程序员是一种优秀的男朋友
  16. CVE-2018-1273漏洞复现日志+IDS规则编写
  17. android usb投影win10,分享win10投影到安卓平板上的方法
  18. Julia发布全功能调试器:4大新功能问世
  19. 甘肃省谷歌地球高程DEM等高线下载
  20. HTML第一天学习总结

热门文章

  1. 用C语言实现三子棋游戏(附上思路+项目展示+源代码)
  2. 关于列表标签的一些使用(有序,无序,自定义列表)
  3. linux deploy ENV 目录,手机安装linux deploy 安装和配置
  4. 使用RecycleView实现无限滚动的日历
  5. Metasploit 使用后门和Rootkit维持访问
  6. 第 138 章 Spark
  7. Apache2.2安装图解
  8. BeanShell中的Java指令和表达式
  9. HDU 6185 Covering 矩阵快速幂 递推
  10. DFS(6)——hdu1342Lotto