
转行的时候学的是 java,不过现在工作用 PHP,中间也写过一些 python 的脚本。
平时基本上看的都是编程技巧之类的博客,经常会看一些网课,不过看的多了,开始觉得烦恼了,因为这些网课从来都只是讲怎么使用,哪里有什么坑,怎么避免坑,但不会深入讲原理。
虽然使用了两年的 PHP,但是很多原理还是不了解,包括常用的框架,也只是会用,或者比较熟练罢了。
于是萌生了想要补充基础知识的念头,因为我是转行做的程序员,很多科班生学的理论知识我都没有学过,培训班也不会教这些。
现在想要去补充,但不知道该从何入手,最近看到一本书《计算机组成与设计:硬件软件接口 第 5 版》,很多人都很推荐,不过好像要懂 c 和汇编语言才能看的懂,是这样的吗?
希望各位可以推荐一条填补基础知识的路线,自己实在是不了解这些,感谢。
--------补充---------
身边也有朋友跟我说,叫我先不要看那些,让我先把常用的语言和框架的原理弄明白,再去看那些。
1 hv3s1 Jan 5, 2019 |
2 Akiyu Jan 5, 2019 如果你想真的明白底层的话, 汇编有必要学, 但不需要精 高级语言会先转换成 CPU 架构对应的汇编语言, 再转换成二进制的机器指令 而二进制是看不懂的, 所以汇编是能接触到的最底层语言 在汇编里面, 会有很多细节实现, 一些在教材上一句话概括的特性, 或者什么功能, 都会有很多句汇编支持 看懂它们, 你就能理解真正是如何实现的, 从而明白这些"特性"到底是什么 关于汇编, 有两本书推荐 1. 汇编语言 王爽 masm 汇编, 如果只是想了解, 那么这本书不错, 简单易懂 2. 汇编语言语言程序设计 红皮的 AT&T 汇编, 这种格式是比较常看到的, 也是 gcc -S 默认的格式 这本书比较厚, 个人觉得不如上一本那么好懂, 不过深度要比上一本深 其余的话 深入理解计算机原理 这本书很不错, 也可以读一下 |
3 driveby Jan 5, 2019 一本 CSAPP 就完事了 |
4 kristpan Jan 5, 2019 1. 数据结构与算法:你会 Java 的话,看 Sedgewick 那本 Algorithms 就挺好 2. 体系结构:《深入理解计算机系统》,比硬件软件接口那本性价比高一些,但是要有 C 语言的基础 3. 操作系统:《现代操作系统》或《操作系统概念》,有个概念就行了 |
5 midasplus Jan 5, 2019 via Android 汇编不需要看得太细,推荐王爽的那本,看前面一半就行 |
6 kljsandjb Jan 5, 2019 via iPhone 推荐 csapp 第三章、第四章对底层汇编的训练比较多,把题目和 lab 做掉,我目前才看到缓存那一章,大半年了,折腾 ing … |
7 Gaussen OP |
8 ttxhxz Jan 5, 2019 |
10 Everyman Jan 5, 2019 网上找找计算机专业的本科生的学期 /学年课程表,或者是教务系统里的培养计划,看里面感兴趣的书。计算机本科的课程都是以培养基础知识和编程思想为主的,所有知识的实用性不是很高,有不少已经过时,所以盲目看别人推荐的通常看不下去。一定要看感兴趣的比较概况性的那些书。 如果决心更强的,甚至可以去附加的大学蹭书蹭课。 |
12 learnshare Jan 5, 2019 网络也学习一下,主要是 HTTP 用得比较多 |
13 Raisu Jan 5, 2019 via Android 请问现在月薪多少?做完这些以后工资会涨多少? |
14 Gaussen OP |
15 lidongyx Jan 5, 2019 via iPhone 你朋友说的有道理,你与其花时间学楼上推荐的计算机课程,不如深入去学习语言和框架。 那些计算机理论课程,对你工作的帮助并不大,推荐你整理一下大公司对 PHP 开发工程师的技能要求,这样更有目的性去学。 你待遇才 8k,远没有到要去学习理论的程度,月薪 2 万以上基础理论才会起作用。 |
17 j2gg0s Jan 5, 2019 我觉得你朋友说的是对的,先从工作上延伸出去比较现实。个人建议是你现在用的 HTTP/RPC 服务框架, DB/Cache/MQ 的 client,MQ 的实现,以及各种中间件。代码看的累的话,可以先看 C/S 之间交互的协议 |
18 anteros Jan 5, 2019 15 楼说得没错,现在推荐你看这些的,肯定都是 20k 往上走的 |
19 stdying Jan 5, 2019 15 可以的 |
20 Akiyu Jan 5, 2019 这本书我也没看过, 不能做出什么建议 不过我倒是又想到一本书, <编码> 这本书也不错 至于#15 的, 说的有一定道理... 现在的话与其练内功, 或许练练外功会更好 多一点框架或者工具的运用, 在短时间内能达到最好的效果 不过从现在积累也不错, 就当没事看着玩吧 |
21 huruwo Jan 5, 2019 面向工资编程即可 |
22 supermanheng21 Jan 5, 2019 15 楼说的很对 |
23 tujin Jan 5, 2019 via Android 从常用框架入手到 http,tcp 更好一点 |
24 likuku Jan 5, 2019 Java, PHP, Python .... 嗯,先修 数据结构,再修 算法,PHP 工作的话,网络这块也得补 重点 http DB 也免不了了,SQL 的基本概念什么得补,nosql 的看情况主次有别补补 计算机组成原理,汇编什么,这些靠近底层硬件的,你有优化编译器 /虚拟机 /runtime 这个需求,才有必要学 |
25 ZCapping Jan 5, 2019 我感觉你可以先学深入学习下 Redis 和 MySQL,然后可能你就知道还是需要先学《数据结构》,然后就知道可能搞下 c 语言。以上是我目前的心境,希望对你有帮助。 |
26 hanxiaomeng Jan 5, 2019 via iPhone 计算机网络(七层的常用协议),Linux 系统( rhca 水平,非原理),数据库(企业实际应用的那些,非原理),数据结构。 |
27 hanxiaomeng Jan 5, 2019 via iPhone 月薪 2w 以下,可以数据结构可以先放一边,Linux 达到 rhce 就可以了 |
28 Donne Jan 5, 2019 作为 2w 以下,学了一段数据结构的人,确实感觉是为学而学,先学 Linux,MySQL 和 HTTP 可能更好一些,个人意见。 |
29 JRight Jan 6, 2019 深入理解计算机系统,算法(第四版)(结合 Coursera 上的普林斯顿算法课) |
30 hugo54 Jan 6, 2019 via Android 如果真是想好好深入学计算机本科的专业课,可以刷国外名校的课,例如 cmu 的 15-213 和 ucb 的 cs61b |
32 ljzxloaf Jan 6, 2019 同野生,握爪 我觉得你说的这些东西学的时候不用太计较细节:一方面是没有时间和精力;另一方面知识体系都是螺旋进化的,没必要一开始就吃个胖子.所以我一般找网课学. 汇编:http://www.xuetangx.com/courses/course-v1:TsinghuaX+20240103X+sp/about 操作系统:http://www.xuetangx.com/courses/course-v1:TsinghuaX+30240243X+sp/about 其他的应该都能找到 |
33 Hanggi Jan 6, 2019 计算机组成原理对理解计算机工作很有帮助,如果英语还可以可以试着看原版,或者看 CSAPP,非常经典。 |
34 MIMEIK Jan 6, 2019 考个中级 /高级资格证,还能减税。 |
35 mamahaha Jan 6, 2019 开车的司机了解一些汽车结构以更好地服务于驾驶,基本都是在维修保养过程中积累出来的,而不是系统学习车辆工程专业。 |
37 wolfie Jan 6, 2019 23 小时 14 分钟前 3528 次点击 133 人收藏 |
38 quinoa42 Jan 6, 2019 csapp 实体书就算不想看了还能垫桌角,虽然太重了压不了泡面 |
39 xwbz2018 Jan 6, 2019 |
40 wangluofansi Jan 6, 2019 via Android 月薪两万也是搞懂 csapp 就行了,跟着 cmu 15213 的课程上完就是了,其他用得着再学 |
41 Gaussen OP 感谢各位的建议。 真的感叹,想起自己初学编程的时候,有点小成果就沾沾自喜。 工作后,慢慢的适应了公司的节奏,每天考虑的大多是业务上如何实现,技术上却几乎没有进步。终于在我离开第一家公司之后觉察到了这点,我在温水里被煮了太久,加上自己的惰性,让我寻找新东家的时候碰了很多次壁,虽然我现在已经落定,不过想到当时连续碰壁的经历也不免焦虑,感到了十足的危机感,使我开始不停地去学习。 结合我个人以及现在工作的情况来说,我一开始想要做的那些可能是真的性价比不高,因此我决定先从工作入手,加深对 PHP,常用框架框架的理解和使用,同时更多的去了解一下协议(确实我现在对协议的了解很粗浅,很多时候也感到不知道该如何深入了解协议的知识),以及常用数据库也要加深认识,之后再去考虑别的。 因为个人英语也很差,所以在去年年末也下定决心提升自己的英语水平,并为之付出努力,路还很长,希望自己能稳步前进,每一年都有巨大的进步。 |
42 nililnellaf Jan 6, 2019 这本书和 Computer Architecture: A Quantitative Approach 都建议看完 CS:APP 之后再说 CS:APP 看之前补一下标准 C 就行了 |
43 xrr2016 Jan 6, 2019 mark |
44 MorningBOBO Jan 6, 2019 共勉 mark |
45 devtk Jan 6, 2019 CS 50 哈佛的公开课 |
46 gpj22pYlv2qYiZ8U Jan 7, 2019 @kios 我学过 web programming with python and js。很好的课程,提供了很多 insight。 |
47 driveby Jan 11, 2019 不太赞同 LZ 朋友的观点。 在对计算机基础知识没有一个整体概念之前,强行去深入学习语言和框架,虽然能提高工程能力,但是这个过程是很枯燥且低效的。 相反,在有一定理论基础后,再深入学习语言,绝对会有一种豁然开朗的感觉,也很利于长远的发展。 永远记住:磨刀不误砍柴工。 |