是这样的,一片灰暗,超级灰暗,伸手不见五指,抬头不见苍天的那种。

但是,这里的程序员是指那些随便学了一两个月技术,项目都没做过一个就想来拿高薪的人,结果拿着跟学之前差不多的工资,每天敲写老代码上网搬轮子然后坐着等加薪等升职,等提车买房,最后没有如愿于是上知乎吐槽。

为了与他们区分开,其他那些认认真真学习技术,打磨了四五年的人他们不叫程序员,随便叫什么,工程师,技术人,技术专家,技术经理都行,反正和上面那部分人分开。他们的前景一片光明,自由女神像的光辉照亮了他们,让他们做一个月兼职的收入都比程序员高,阿门。

不然知乎三天两头就来这样的问题,一惊一乍的,搞得我觉得自己再怎么学技术、再怎么紧跟技术前线都升职加薪无望;搞得后来的大学生们还没入行就被劝退了一大批,公司还有这么多岗位缺人怎么办?

什么样的前景能叫做一片灰暗?

当你捧着计算机科学与技术专业的硕士学位证书,工资却比不上其他专业本科毕业生,而且还比别人工作累,难升职少加薪的时候,这前景就真的是一片灰暗了。

然而实际上,2020年,IT行业薪酬水平稳居榜首,年平均工资为161352元;排在第二的是科学技术,为133459元;排在第三的是金融,为131405元。

再看看下面这张图,更直观了,有70%的程序员薪酬在十万以上。

这都前景灰暗,那其他行业岂不是......

我已经想不出词语来形容那种惨状了。

如何做一个前景光明的程序员?

学技术、学技术、学技术,还是学技术。

程序员这个行业是不是吃青春饭我不确定,但一定是靠技术吃饭的。很多人带着劳动密集型的思维来做技术密集型的事情。

体力劳动的附加价值能有多高?

而且程序员这个行业的出现真的拯救了很多不擅长混职场、不愿意与人打交道的人,只要你能解决问题,哪怕你不说话,你的老板也照样给你加薪。

因为他怕你「不小心」写了一堆bug,怕你跳槽。

但这一切都是建立在你的「无可替代性」上的,如果你只会敲敲基础代码,搬搬轮子,百度一下,那你就很容易被替代,你没有底气没有筹码谈待遇,因为这些工作是体力活而不是脑力活,而程序员应该是建筑师而不是搬运工。

如何提升自己?

有两个大方向:

  1. 提升广度
  2. 钻研深度

如果你选择第一个方向,那就可以尝试做一名全栈工程师,而所谓全栈工程师是指掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。

朝这个方向发展,不需要你每个方向的技术都学得多么深入,每一种语言掌握80%左右即可。你可能解决不了很多高深的技术难题,但你可以一个人解决前后端大部分的问题。而且因为对开发工作全局的了解都很熟悉,是离项目经理最近的开发人员。

而如果你选择第二个方向,就要求你将某个技术领域的某一门或两门编程语言学习透彻,要做到这个技术领域上的所有问题到你这里都能得到解决。而常见的技术领域包括前端、后端、移动端、iOS开发等传统领域,还有近几年兴起的人工智能、大数据分析、物联网等。

讲完了方向再来说说方法,包含以下两个方面:

  1. 学什么
  2. 怎么学

学什么?

学适合你所选方向的编程语言。受限于篇幅,我将对2020年最全的Java学习路线,放在了下面这篇文章里,有需要的朋友可以点开看看。

但是由于篇幅限制里面很多更详细的小点无法一一展示。更详细学习路线请扫描下方二维码

怎么学?

这里给大家分享一下我自己的学习思路:

  • 学习基础知识
  • 巩固基础知识

其中学习基础知识,又有两点要注意的:找对方向、用对方法。说的更直白一点就是学什么以及怎么学。

学习内容

首先要将基础打牢固,最基本的算法和数据结构一定要滚瓜烂熟,我当时是要求自己拿起来就能用。

比如下面这些个算法和数据结构类型我是硬逼着自己啃下来的,很多兼职的时候没用上,但是后来回归工作的时候用上了。

10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;

不要小瞧了这小小二十组词,展开了去学,怎么都得花你个一年半载,例如单单排序算法就又可以分为以下十种:

推荐一份不错的数据结构与算法的书,有需要的朋友,扫描下方二维码点此领取

然后,当将这些基础知识吃透了之后,注意是吃透,我给自己定的要求是用到的时候就能直接用而不是回去再翻书。做到这一点之后,我就接着去学习一些更深入的内容:

比如:

  • 编程框架是如何运转起来并输出“Hello World”的?
  • 如何让自己更正规,更有章法地使用Mysql呢?
  • Key、List、Hash、Set、ScoreSet各自的使用场景有何不同?
  • 主流的编程框架都和设计模式相关,那他们有没有共通性?

当我把这些问题想清楚了的时候,我发现之前的很多问题都难不倒我了。

学习方法

每个人的学习方法都不一样,有的人喜欢边做项目边学习,有的人则喜欢学一段时间做一个项目,有的人喜欢看书学,有的人喜欢看视频学,这些都不是问题,重要的是找到适合你自己的。

但下面这几点,最好还是不要去做了,因为这些坑这些痛我都已经经历过了,头发也掉过了,结果事倍功半惨不忍睹。

1.一味的对着别人的代码去敲。

刚开始不会做只有跟着别人敲,这没有关系。但是跟着别人敲了之后一定要自己理解自己记忆把它变成自己的东西。照着别人代码敲一遍两遍哪怕三遍,除了让我看得仔细点,除了打字外没有其它任何帮助。哦,对了,还多掉了几根头发。

所以要记住模仿复现不是关键,思考才是关键。要能做到思考学习别人思路后,脱离书本和博客,完全自己实现功能。当我做到这点之后,我发现我的学习才是有效的。

2. 想着一口气吃成个胖子

我刚刚说过了,自己是因为项目做不出来才回过头来学习的,所以刚开始急于求成,学习只学个大概只求个会用,没有做到知其然还知其所以然。

但是技术这玩意儿,不是看了个大概能照着做就会了,一口气真的吃不成个胖子,必须得扎扎实实地把事情做好。所以不要试图一次性解决所有问题,这里给个亲测有效的建议:可以将每天的学习过程拆分成小块,分阶段学习,这样的效率会更高些。

说完了第一点如何学习基础知识,接下来再说说说说第二点如何巩固基础知识。方法千千万,我也试过不少,但最有效的我认为还是刷题,有方法的刷题。

下面这个刷题方法很普通但也很实用,推荐给你:

第一遍:可以先思考,之后看参考答案刷,结合其他人的题解刷。思考、总结并掌握本题的类型,思考方式,最优题解。

第二遍:先思考,回忆最优解法,并与之前自己写过的解答作比对,总结问题和方法。

第三遍:提升刷题速度,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答。

然后给大家推荐我当时看的资料,能够让大家学得更轻松些。

有需要资料的朋友:扫描下方二维码

网站:

  1. 1GitHub — 开发者最最最重要的网站:https://github.com,能学习但不只是学习。
  2. W3school — 最适合新手的网站:https://www.w3school.com.cn/:免费而且全面。
  3. 实验楼 — 一个在线编程学习网站: https://www.shiyanlou.com/courses/,很方便实用。
  4. Code School — 一个英文学习网站:https://www.pluralsight.com/codeschool,支持分阶段挑战。

最后一步肯定还是要落在实操的,我的方法是接兼职项目、一个接着一个,因为要供着自己旅行。但其实还有两种方法也能提升自己:

1.做一些实操性强的个人项目,自己练练手

田纳西大学助理教授奥斯汀·亨利结合自身经验,给出了一份“程序员都应该尝试的挑战性项目”清单,包含下面六个项目,我在那之后做了一遍觉得还不错,推荐给大家:

文本编辑器

  • 2D游戏-太空侵略者
  • 编译器-Tiny BASIC
  • 迷你操作系统
  • 电子表格
  • 电子游戏机模拟器

每一个项目都存在不同的挑战,比如文本编辑器就要求在不使用GUI框架中内置的文本框组件的情况下,搭建支持光标移动、选择、插入和删除操作的文本框并将文本文档存储在内存中。

如果你能解决掉这些项目中的这些问题,然后把项目独立完整的做出来并且运行成功,你的能力肯定能再上一个台阶。

2.写技术文章

大家想必都知道费曼技巧,这也是其中的一种应用了,把你自己弄懂的东西教给别人,让别人也能看懂,在这个过程中你肯定还是要把一个完整的项目给做出来的,一整套下来,你会将自己理解的东西掌握的更透彻更深入。

也算是一种不错的实操方式了,能让你的基础更加牢固。

只是要记住,在这个不断做不断输出的过程中,做到下面这三点很重要:

  • 让编程成为一种习惯。
  • 学练结合,从做项目中找知识漏洞。
  • 思考更深层次,更底端的东西。

最后,如果你也想通过兼职来让自己的编程能力突飞猛进,下面这篇文章推荐给你,因为做兼职太容易被坑了。里面有我总结的兼职三接四不接,也就是说哪些兼职不会被坑,而哪些兼职要格外注意。还有一些国内外的兼职平台以及他们的一些特点,希望能对你有所帮助:

七个接私活的技术网站,扫描免费领取

阿里高级架构师的这个规划你必不可错过! 看完前途一片光明相关推荐

  1. 阿里P7架构师谈职业生涯规划,给遇到瓶颈,迷茫期的人群一些建议

    2019独角兽企业重金招聘Python工程师标准>>> 一.规划 工作3年了,感觉自己的技术现在到了一个瓶颈,在做一些重复性的业务性的工作,没有长进,提高太慢: 因此停下脚步对自己的 ...

  2. 1 张图,拆解阿里 P8高级架构师必会技术栈!

    大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到年入百万的P8 Java高级架构师级别,不仅要具备优秀的编程能力和系统设计能力,在技术视野和业务洞察 ...

  3. 阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松

    阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松 一.概述 面试,难还是不难?取决于面试者的底蕴(技能).心态和认知及沟通技巧.面试其实可以理解为一场聊天和谈判,在这过程中有心理.思想 ...

  4. 阿里 P8 Java高级架构师,都需要掌握哪些技术栈?

    大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到平均年入百万的P8 Java高级架构师级别,不仅要具备优秀的编程能力和系统设计能力,在技术视野和业务 ...

  5. 阿里java架构师+职级_阿里 P8 高级架构师年入100W+,到底什么水平?

    原标题:阿里 P8 高级架构师年入100W+,到底什么水平? 大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到年入百万的P8 Java高级架构师级别 ...

  6. 阿里Android高级架构师:一个牛逼的插件又双叒诞生了!

    作者:鸿洋 原文链接:https://mp.weixin.qq.com/s/GdDkzR8AvgHROUiGwYtfOg 前言 大家在写 Android 项目的时候,免不了要引入各种 Google 提 ...

  7. 阿里 P8 高级架构师年入百万,到底什么水平?

    大家都知道,阿里P8高级技术专家,基本上是一线技术人能达到的最高职级,也是很多程序员追求的目标.达到年入百万的P8 Java高级架构师级别,不仅要具备优秀的编程能力和系统设计能力,在技术视野和业务洞察 ...

  8. 从普通JAVA程序员到阿里P8架构师,他用了六年

    工作年限:8 年服务公司:4 家(含四大门户中的两家)最近职业:Java 架构师职场关键词:社交平台.高并发系统架构设计.技术团队管理.多款从零到一的产品城市! 六年间,这位职人呆过四大门户中的两家, ...

  9. 一名年薪百万阿里P8架构师写给Java程序员一些建议(架构师必备)

    阿里P8架构师-Peter 毕业于海南大学,曾就职于阿里.苏宁易购等一线互联公司,十余年Java从业经验,系统架构师及微服务之先驱,JEECG急速开发框架的设计与布道者.重点关注微服务设计与编排.高并 ...

最新文章

  1. Java数组的初始化
  2. 读完这45篇论文,“没人比我更懂AI了”
  3. BT:​关键胞外酶触发了细菌群落演替偶联的高效堆肥
  4. Git中的工作区(Working Directory)、暂存区(stage)和历史记录区(history)
  5. 【异常】org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
  6. 一次遍历等概率选取字符串中的某个字符
  7. bgl 词典_深大版成语词典发布!不学不是深大人!深大快讯
  8. BZOJ 4032 luogu P4112 [HEOI2015]最短不公共子串 (DP、后缀自动机)
  9. eclipse和myeclipse中如何关闭自动补全括号,花括号,双引号等功能
  10. 45. 跳跃游戏 II golang 动态规划
  11. Tomcat 6.0 简介
  12. centos7下Jenkins管理员admin密码忘记后处理方法
  13. slf4j-api slf4j-log4j12以及log4j之间的关系
  14. 解决 Manjaro 中 Linuxqq扫码登陆闪退问题
  15. ZebraDesigner3 打印到.prn文件乱码
  16. 编译java源代码文件
  17. 一文读懂民航客机飞控系统
  18. Verilog HDL的简单应用之74ls138功能的实现
  19. 离职时如何拒绝领导的挽留
  20. android ibeacon距离,iBeacon使用蓝牙连接范围精确到1-3米

热门文章

  1. 全国省市区三级Json数据
  2. macdown操作手册
  3. 我的爱车服务器维护,说说我在途虎养车的保养经历,谈谈你爱车的保养经历
  4. 什么是KMP算法(详解)
  5. RabbitMQ的工作流程
  6. 龙芯1B:pwm的使用例程
  7. 我,29岁,产品经理,想给互联网的人提一个醒!
  8. .NET与你若只如初见(一)
  9. 成都扬帆际海教育咨询:伊朗电商领域有待开发
  10. 利用AO3401A实现电路电源防反接和电池充电管理功能