1
zengming00 2021-03-13 10:15:41 +08:00 7
趁早转行,写程序这行业已经不行了
|
2
securityCoding 2021-03-13 10:34:34 +08:00 7
1. 系统性的学习数据结构与算法。这个非常非常重要,不然很多源码根本看不懂,这是搞懂很多高级组件的前置条件。比如:ArrayList/LinkedList/HashMap/AQS/epoll 不懂数据结构和算法基本上是看了也白看,看也看不懂
2. java 底层知识 jvm 。比如 java 内存模型,jvm 运行时数据区, 有 jvm 相关的知识储备你才能看明白。像 volatile 为什么能保证内存可见性不懂内存模型是真的很难理解这玩意。还有垃圾回收,gcroot 等等 3.计算机体系,这块的东西很多很杂,老实说这块知识我也非常碎片化。比如你说你要学习 netty,你得把 bio 、nio 、selector ( select,poll,epoll )这几个 io 模型演进过程搞清楚吧?上来就 nio+多路复用容易把人搞懵逼 对于学习我自己一般遵循: 1.背景。前因后果搞不清很多概念会显得很突兀难以理解 2.怎么用。计算机领域不缺高级词汇,不要停留在纸面上,结合实际好好理解和运用。 3.总结。不写总结根本不明白自己到底搞懂了没有,总结就是考试,你说你学的非常好了,来,我们来考试一下 |
3
steveEvan 2021-03-13 10:53:16 +08:00
本人双非一本,非科班出身,目前就职于某独角兽公司,可能我的经验会给你一点帮助
可以用思维脑图列出 Java 需要的技术栈,比如 Java 基础,并发编程, 分布式系统,MySQL,网络,中间件等,每一块涉及的知识点列得越细越好,然后一段时间专攻某个点,这样逐步形成由点到面的思维,我把我的一些学习路线总结在了这里: https://github.com/allentofight/easy-cs,希望对你有些帮助 |
4
steveEvan 2021-03-13 10:54:43 +08:00
上面的链接没有写好,重发一下: https://github.com/allentofight/easy-cs
|
5
L0lita 2021-03-13 11:29:32 +08:00
写代码写到头秃 你在公司就可以呼风唤雨了 有人狠不下这个心 认为颜值很重要 但是过来人告诉你 钱更重要 那些劝你转行的 只是不想让他人来抢这块蛋糕而已 切不可听信谗言 半途而废
|
6
CyberShadiao OP @securityCoding 加入了一个群,和群友一起做算法题,签到题都不会做。学习新知识就是看视频,视频里怎么做我就怎么做,没有主动思考过,过一段时间就忘了。现在也开始做笔记,把每天学的东西总结,之前都没有做笔记的习惯,很多东西看了就忘,也没有形成体系。非常感谢老哥的指点。
|
7
CyberShadiao OP @steveEvan 前几天把一些公司用到的 主流技术做了个思维导图,按照上面的去学习。之前学习就是要用了哪里不会就去看一下哪里,过了几天就忘了。
|
8
CyberShadiao OP @zengming00 我感觉还好吧,我在的城市还行。
|
9
NexTooo 2021-03-13 12:02:40 +08:00 1
@CyberShadiao 做笔记很重要,看的时候会感觉“我懂了”,落到笔记上就是“额……?”,然后把学到的东西梳理整理成起码自己觉得有条理的能看懂的笔记(都不要求可阅读性),是个很痛苦的过程。
一般痛苦完了憋出来了一块东西才算真懂了,我个人是这么觉得的。。。学个新东西很快,能写出笔记很久。 虽然一样会忘,但是写笔记过程中思考的东西才是真正属于你的,短时间没感觉,日子久了真会感觉出和以前不一样 |
10
myBatis 2021-03-13 12:41:42 +08:00 1
@zengming00 #1 再几把搁着宣传自我危机我打死你
|
11
myBatis 2021-03-13 12:43:24 +08:00 4
@zengming00 #1 你自己一条菜狗学啥啥不会底层又不懂怪这个行业?
|
12
geekaven 2021-03-13 12:58:32 +08:00
光看没用的,还要多练习和复习,要不然过段时间一样忘记。
|
13
zengming00 2021-03-13 15:17:28 +08:00 3
还抢蛋糕,我就直接告诉你们,别说 35 岁退休,就是 30 岁现在都难找工作,现在的互联网公司里面那些技术有什么难的,多少没学历的人照样可以做,人家培训几个月就可以做事了,要的钱还比你少,加班人家还比你积极
花精力去深耕的人有几个能出头? 1000 个程序猿里面有几个能熬到最后,你会是这里面的一个? 别不承认,初中生培训几个月同样能写得了程序,而且人家不一定比名校出来的人差 别不承认,送外卖同样拿上万工资 别不承认,现在在职的公司再牛逼,出来后公司和你没半毛钱关系 别不承认,创业公司很难活过三年,什么股份期权最后啥都没有 红利已过,如果不是真的喜欢编程,真不建议做这一行,去看看现在那些三四十岁的人做什么赚钱,什么职业越老越吃香,往那个发展才是正确的道路 |
14
raaaaaar 2021-03-13 15:25:25 +08:00
最重要的自然是基础,计算机的基础就那么几个东西,哪个不足补哪个。然后就是深入你自己工作中用到的技术,这点很重要,也能提高你的工作能力,技术也自然提升。
说起来,我在没有上学校的课前,只是实践开发也会有这些问题,就是一头懵逼,不知道自己不知道哪些知识,也就是没有一个知识最基础的架构,现在学了不少课后,视野就慢慢建立起来了,虽然同样有很多东西不懂,但是知道自己不懂在哪里,自然知道怎么去学。 所以如果不是科班的,还是建议慢慢补基础吧,那几个东西我想只要在这个行业里吃饭,总是逃不掉的。 |
15
vincexu 2021-03-13 16:01:09 +08:00
上面那个没事吧,受啥刺激了
|
16
MoHen9 2021-03-13 20:01:09 +08:00 via Android
要看目标,比如短期目标是跳个好点的公司,就看大公司的面试,会学到很多。
长期目标就要系统学习,以系统的看书,看文档,梳理源码为主,看文章或博客太单一,且不系统。比如你要学 MySQL,可以先看高效能 MySQL,学 Redis 可以看看 Redis 技术设计与实践 |
17
L0lita 2021-03-13 20:20:42 +08:00
@zengming00 培训几月就能超你 自己不努力怪不得别人 培训完也就入个门而已 你要是以为培训完直接满级 那你还是送外卖去吧
|
18
eternitym31 2021-03-13 21:39:22 +08:00
思考下当前的商业模式,可以想想怎么出去单干。
|
19
jones2000 2021-03-13 22:15:16 +08:00
能力提升是靠项目和代码堆出来的,什么教程,刷题都扯蛋。 没有真实的应用场景项目给你实践, 今天看了过几天就忘了。
|
20
zengming00 2021-03-14 12:34:08 +08:00 1
@L0lita 我觉得你应该再仔细研究下我说的,任何行业都不是你努力就能成功的,企业里面有一两个挑大梁的就够了,当然不努力是一定不会成功的,运气的成分要远大于努力,到头来一场空,还不如趁早深耕其它行业,有相当多的程序猿工资是和其它行业持平甚至不如其它行业的,有意义吗?
|
21
Blessing1 2021-03-14 12:42:23 +08:00
学习了
对我帮助挺大 |
22
zengming00 2021-03-14 12:44:25 +08:00
企业里面有一两个挑大梁的就够了,其它的找培训班出来的或者找实习生就行了,稍微带一下就能干活了,便宜,开 5000 块都有大把人干,你再牛逼工资要那么多要你干啥?进大厂?进去还不就是颗螺丝钉,年龄一到就滚蛋,大厂里面的宫斗就像电视剧那么好看,确定你在里面能活得过两集?
|
23
QBugHunter 2021-03-14 17:13:36 +08:00
我的流程是这样的,当然我是做 C++的,所以仅供参考
0.学英语 1.买各种进阶书籍,Efftecive c++等,然后看书 2.学习 C++的类库,包括 Qt,OpenCv 等。 3.做程序,从基本的扫雷,记事本(都是用 Qt 实现的)开始。 4.开始学习模板,并开始自己实现 C++标准库,STL 等 5.学习算法 程序员 35 岁退休也是实情,就看你平时是否学习并紧跟最新技术。昨天看 V 社有个人法律个关于程序员 35 岁退休的帖子(标题最长的那个,不知道现在还在不在了),其实我觉得他那帖子话糙理不糙。 这个社会竞争很激烈,你啥事都不敢,35 了别人为啥话高价请你而不是找个刚毕业的学生,毕竟你会的和刚毕业的学生会的也差不多,最多编码比较熟练而已。 如果你真的要精通编程的话,10 年时间真的不太够,我刚开始啃算法导论,那一部书的厚度我就瑟瑟发抖了,其他不说,那些喊着 35 退休的人里,有几个学完整部书的? |
24
QBugHunter 2021-03-14 17:30:32 +08:00
去年公司招个安卓开发,来了个人,某水利工程硕士学位,年龄 34,7 年编程经验,要求月薪 20K+,然后我问了他如下几个问题
Q:手机和某设备通信,设备发送的消息,有一个字段为 4 字节,类型为无符号 int , 那安卓如何处理该字段? A: 不知道 Q: ActivityA 启动 ActivityB,然后 ActivityB 启动 ActivityC,那如何将 ActivityA 的某些数据,传递给 ActivityC A:用 Intent Q:有没有做过项目,最好是上线过 APP,或者技术性博客 A:都没 Q:安卓滚动控件,你一般如何实现(我开了一个 APP 演示给他看) A:ListView Q:这个用什么实现(我 APP 左右滑动切换 Activity,类似 ViewPager ) A: 不知道,我之前负责某个 Activity 的 Q:List 和 Vector 有啥区别? A : 没有 |
25
ihgoo 2021-03-14 21:20:23 +08:00
@QBugHunter 不可能吧,这人是个傻子?
|
26
jmyz0455 2021-03-15 10:25:36 +08:00
@QBugHunter 坐标哪里?
|
27
stillsilly 2021-03-15 17:36:17 +08:00
@QBugHunter
为啥做了 7 年没上线过 app…… |