转行做程序员,工作两年了,想补充一下基础知识,求教。

2019-01-05 12:43:29 +08:00
 Gaussen

转行的时候学的是 java,不过现在工作用 PHP,中间也写过一些 python 的脚本。

平时基本上看的都是编程技巧之类的博客,经常会看一些网课,不过看的多了,开始觉得烦恼了,因为这些网课从来都只是讲怎么使用,哪里有什么坑,怎么避免坑,但不会深入讲原理。

虽然使用了两年的 PHP,但是很多原理还是不了解,包括常用的框架,也只是会用,或者比较熟练罢了。

于是萌生了想要补充基础知识的念头,因为我是转行做的程序员,很多科班生学的理论知识我都没有学过,培训班也不会教这些。

现在想要去补充,但不知道该从何入手,最近看到一本书《计算机组成与设计:硬件软件接口 第 5 版》,很多人都很推荐,不过好像要懂 c 和汇编语言才能看的懂,是这样的吗?

希望各位可以推荐一条填补基础知识的路线,自己实在是不了解这些,感谢。

--------补充---------

身边也有朋友跟我说,叫我先不要看那些,让我先把常用的语言和框架的原理弄明白,再去看那些。

9812 次点击
所在节点    程序员
47 条回复
hv3s1
2019-01-05 12:51:34 +08:00
推荐 中国大学 MOOC 的数据导论。https://www.icourse163.org/course/ZJU-93001
学习之后你会对算法与结构又初步认识。

非科班真需要学!
Akiyu
2019-01-05 12:58:35 +08:00
如果你想真的明白底层的话, 汇编有必要学, 但不需要精
高级语言会先转换成 CPU 架构对应的汇编语言, 再转换成二进制的机器指令
而二进制是看不懂的, 所以汇编是能接触到的最底层语言
在汇编里面, 会有很多细节实现, 一些在教材上一句话概括的特性, 或者什么功能, 都会有很多句汇编支持
看懂它们, 你就能理解真正是如何实现的, 从而明白这些"特性"到底是什么

关于汇编, 有两本书推荐
1. 汇编语言 王爽
masm 汇编, 如果只是想了解, 那么这本书不错, 简单易懂
2. 汇编语言语言程序设计 红皮的
AT&T 汇编, 这种格式是比较常看到的, 也是 gcc -S 默认的格式
这本书比较厚, 个人觉得不如上一本那么好懂, 不过深度要比上一本深

其余的话
深入理解计算机原理
这本书很不错, 也可以读一下
driveby
2019-01-05 13:01:23 +08:00
一本 CSAPP 就完事了
kristpan
2019-01-05 13:04:51 +08:00
1. 数据结构与算法:你会 Java 的话,看 Sedgewick 那本 Algorithms 就挺好
2. 体系结构:《深入理解计算机系统》,比硬件软件接口那本性价比高一些,但是要有 C 语言的基础
3. 操作系统:《现代操作系统》或《操作系统概念》,有个概念就行了
111qqz
2019-01-05 13:05:43 +08:00
汇编不需要看得太细,推荐王爽的那本,看前面一半就行
kljsandjb
2019-01-05 13:10:41 +08:00
推荐 csapp 第三章、第四章对底层汇编的训练比较多,把题目和 lab 做掉,我目前才看到缓存那一章,大半年了,折腾 ing …
Gaussen
2019-01-05 13:46:22 +08:00
@hv3s1 已报名,感谢推荐。
@Akiyu 感谢推荐,请问我描述里提到的《计算机组成与设计》,以我现在的水平有必要看吗?是要学习汇编之后再看效果更好吗?
@driveby 好的,感谢推荐。
@kristpan 感谢推荐。很齐全。
@111qqz 好的,我之后找找看。感谢推荐。
@kljsandjb 感谢推荐。

之前在定学习目标的时候突然发现,自己需要学习的太多了,一下子不知道该如何安排,只能今天看一会这个,明天看一会那个,工作一忙起来,就什么都不想看,学习的效率实在是太低了。
ttxhxz
2019-01-05 13:48:44 +08:00
@Gaussen 我觉得跟着网易云那个计算机课程的顺序来一遍没什么问题
https://study.163.com/curricula/cs.htm
Gaussen
2019-01-05 14:01:22 +08:00
@ttxhxz 感谢推荐,坐等开课。
yiranHZT
2019-01-05 14:03:58 +08:00
网上找找计算机专业的本科生的学期 /学年课程表,或者是教务系统里的培养计划,看里面感兴趣的书。计算机本科的课程都是以培养基础知识和编程思想为主的,所有知识的实用性不是很高,有不少已经过时,所以盲目看别人推荐的通常看不下去。一定要看感兴趣的比较概况性的那些书。
如果决心更强的,甚至可以去附加的大学蹭书蹭课。
Gaussen
2019-01-05 14:17:01 +08:00
@yiranHZT 感谢建议,还真没想过去查课表这些。之后看一下。
learnshare
2019-01-05 14:30:07 +08:00
网络也学习一下,主要是 HTTP 用得比较多
Raisu
2019-01-05 14:40:21 +08:00
请问现在月薪多少?做完这些以后工资会涨多少?
Gaussen
2019-01-05 14:45:53 +08:00
@learnshare 嗯,慢慢来,一下子学太多我会混乱- -
@Raisu 现在是 8k,学完以后,看能学成什么样子吧。我计划是用 2 年时间来提升自己。
lidongyx
2019-01-05 14:52:05 +08:00
你朋友说的有道理,你与其花时间学楼上推荐的计算机课程,不如深入去学习语言和框架。
那些计算机理论课程,对你工作的帮助并不大,推荐你整理一下大公司对 PHP 开发工程师的技能要求,这样更有目的性去学。
你待遇才 8k,远没有到要去学习理论的程度,月薪 2 万以上基础理论才会起作用。
Gaussen
2019-01-05 15:25:48 +08:00
@lidongyx 感谢建议。确实从职场角度来考虑的话,深入语言和框架才是更快提升自己价值的一条路。我会好好计划一下学习安排的。
j2gg0s
2019-01-05 16:11:33 +08:00
我觉得你朋友说的是对的,先从工作上延伸出去比较现实。个人建议是你现在用的 HTTP/RPC 服务框架, DB/Cache/MQ 的 client,MQ 的实现,以及各种中间件。代码看的累的话,可以先看 C/S 之间交互的协议
php01
2019-01-05 16:38:42 +08:00
15 楼说得没错,现在推荐你看这些的,肯定都是 20k 往上走的
stdying
2019-01-05 16:57:47 +08:00
15 可以的
Akiyu
2019-01-05 18:08:50 +08:00
这本书我也没看过, 不能做出什么建议
不过我倒是又想到一本书, <编码> 这本书也不错

至于#15 的, 说的有一定道理...
现在的话与其练内功, 或许练练外功会更好
多一点框架或者工具的运用, 在短时间内能达到最好的效果

不过从现在积累也不错, 就当没事看着玩吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/524105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX