左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家
180930 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 119 讲
左耳听风
15
15
1.0x
00:00/00:00
登录|注册

73 | 程序员练级攻略:编程语言

Go语言学习资源列表
Go语言高级并发编程模式
Go语言并发编程模式
Go语言官方文档
Go语言
C/C++语言
Java语言
应用领域
重要性
应用领域
重要性
应用领域
重要性
应用领域
重要性
学习能力的培养
掌握多门语言的重要性
其他学习资源
书籍推荐
C10K挑战
TCP/IP
Unix/Linux
计算机原理
网络模型
数据结构
算法
Go语言
Java语言
C++语言
C语言
总结
学习资源
系统知识
理论学科
编程语言

该思维导图由 AI 生成,仅供参考

你好,我是陈皓,网名左耳朵耗子。
为了进入专业的编程领域,我们需要认真学习以下三方面的知识。
编程语言。你需要学习 C、C++ 和 Java 这三个工业级的编程语言。为什么说它们是工业级的呢?主要是,C 和 C++ 语言规范都由 ISO 标准化过,而且都有工业界厂商组成的标准化委员会来制定工业标准。次要原因是,它们已经在业界应用于许多重要的生产环境中。
C 语言不用多说,现今这个世界上几乎所有重要的软件都跟 C 有直接和间接的关系,操作系统、网络、硬件驱动等等。说得霸气一点儿,这个世界就是在 C 语言之上运行的。
而对于 C++ 来说,现在主流的浏览器、数据库、Microsoft Office、主流的图形界面、著名的游戏引擎等都是用 C++ 编写的。而且,很多公司都用 C++ 开发核心架构,如 Google、腾讯、百度、阿里云等。
而金融电商公司则广泛地使用 Java 语言,因为 Java 的好处太多了,代码稳定性超过 C 和 C++,生产力远超 C 和 C++。有 JVM 在,可以轻松地跨平台,做代码优化,做 AOP 和 IoC 这样的高级技术。以 Spring 为首的由庞大的社区开发的高质量的各种轮子让你只需关注业务,是能够快速搭建企业级应用的不二之选。
此外,我推荐学习 Go 语言。一方面,Go 语言现在很受关注,它是取代 C 和 C++ 的另一门有潜力的语言。C 语言太原始了,C++ 太复杂了,Java 太高级了,所以 Go 语言就在这个夹缝中出现了。这门语言已经 10 多年了,其已成为云计算领域事实上的标准语言,尤其是在 Docker/Kubernetes 等项目中。Go 语言社区正在不断地从 Java 社区移植各种 Java 的轮子过来,Go 社区现在也很不错。
如果你要写一些 PaaS 层的应用,Go 语言会比 C 和 C++ 更好,目前和 Java 有一拼。而且,Go 语言在国内外一些知名公司中有了一定的应用和实践,所以,是可以学习的(参看:《Go 语言、Docker 和新技术》一文)。此外,Go 语言语法特别简单,你有了 C 和 C++ 的基础,学习 Go 的学习成本基本为零。
理论学科。你需要学习像算法、数据结构、网络模型、计算机原理等计算机科学专业需要学习的知识。为什么要学好这些理论上的知识呢?
其一,这些理论知识可以说是计算机科学这门学科最精华的知识了。说得大一点,这些是人类智慧的精华。你只要想成为高手,这些东西是你必需要掌握和学习的。
其二,当你在解决一些很复杂或是很难的问题时,这些基础理论知识可以帮到你很多。我过去这 20 年从这些基础理论知识中受益匪浅。
其三,这些理论知识的思维方式可以让你有触类旁通,一通百通的感觉。虽然知识比较难啃,但啃过以后,你将获益终生。
另外,你千万不要觉得在你的日常工作或是生活当中根本用不上,学了也白学,这样的思维方式千万不要有,因为这是平庸的思维方式。如果你想等我用到了再学也不晚,那么你有必要看一下这篇文章《程序员的荒谬之言还是至理名言?》。
系统知识。系统知识是理论知识的工程实践,这里面有很多很多的细节。比如像 Unix/Linux、TCP/IP、C10K 挑战等这样专业的系统知识。这些知识是你能不能把理论应用到实际项目当中,能不能搞定实际问题的重要知识。
当你在编程的时候,如何和系统进行交互或是获取操作系统的资源,如何进行通讯,当系统出了性能问题,当系统出了故障等,你有大量需要落地的事需要处理和解决。这个时候,这些系统知识就会变得尤为关键和重要了。
这些东西,你可以认为是计算机世界的物理世界,上层无论怎么玩,无论是 Java NIO,还是 Nginx,还是 Node.js,它们都逃脱不掉最下层的限制。所以,你要好好学习这方面的知识。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

程序员练级攻略:掌握关键知识领域 程序员练级攻略中的关键知识领域包括编程语言、理论学科和系统知识。文章强调了学习C、C++和Java的重要性,并推荐了学习Go语言。在理论学科方面,算法、数据结构、网络模型和计算机原理等知识被强调。此外,Unix/Linux、TCP/IP、C10K挑战等系统知识也被提及。推荐了一系列与Java相关的书籍,涵盖了Java语言、Spring框架、并发编程、性能优化等方面的知识。通过学习这些书籍,读者可以全面掌握Java编程技能,成为高级的Java程序员。总的来说,文章强调了编程语言、理论学科和系统知识在专业领域中的重要性和应用,为程序员提供了全面的练级攻略。文章还提到了学习C/C++和Go语言的重要性,以及推荐了相关的学习资源和书籍。这些内容将有助于程序员在不同领域中取得更好的发展。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《左耳听风》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(96)

  • 最新
  • 精选
  • emoji
    几个问题, 1.您一下子提到了四门语言,我们这些后生究竟应该精通一门呢,还是多元呢?如果多元,深度是个问题? 2.总有一些经常变和亘古不变的东西,数据结构,算法,网络,计算机基本原理,这些都是很少改变的,而且也需要花很多精力和时间去学习,您提到的几个语言都是经久不衰的,也需要花精力和时间去学习,而时间的总量是固定的,那么我们如何取舍呢? 3.语言本身只是工具,能不能用学到的语言解决问题,这个很关键,不是吗?能不能这么理解,学另一个语言,是因为本语言在某些特定的问题上遇到瓶颈,只能用别的语言来解决?

    作者回复: 1)我把Java放在第一位,就是说Java很重要。C语言要学。C++可以跳过,学了C语言,Go语言很自然就学会了。编程语言不复杂的,多花点时间没坏处。 2)不要取舍,排优先级。这些基础知识都是计算机科学专业大学本科的知识,4年你能拿得出来吗? 3)Java语言让你不用关注底层,而关注业务和架构,C语言让你关注底层原理,Go语言介于C和Java之间,掌握多门语言会让你对他们有比较。他们各有各的适用场景。 如果你想成为一个高手,多学几门语言是必须的!

    2018-06-12
    7
    133
  • 胖胖的奥利奥
    刚开始学的PHP,后面再学习C语言之后就会发现,其实很多语言的实现都有这些底层语言的影子

    作者回复: 是的。学得多就会越学越快

    2018-06-12
    17
  • myco 前
    想请教皓哥一个问题:我是计算机专业的同学,工作后写了几年Java;想通过看APUE同时捡起来C和类Unix系统;但是开始敲起书上代码的时候发现系统的头文件远不像jdk代码那样文档清晰,感觉难以入门,不知道如何找系统函数文档,如何了解系统调用底层的实现,有点理不清头绪。为了避免陷入X-Y问题,我再说下我的目的:我目标是想学习C,了解类Unix系统底层的东西。想问下皓哥和同学们又啥好的建议?

    作者回复: 挺好的,先学C,再学Uinx。文档谷歌一下就可以找到:C语言的:https://en.cppreference.com/w/c 及 https://www.gnu.org/software/libc/manual/ ,Linux的:http://man7.org/linux/man-pages/man2/syscalls.2.html

    2018-06-29
    2
    10
  • kuna
    您好,我想问问您对 rust 语言怎么看,相对于 C++ 来说是否有某些场景可以替代?Stackoverflow 的调查显示 rust 连续几年排名第一 most loved dreaded and wanted language,但从社区反映来看口碑不佳,您认为是否有深入了解必要,谢谢!

    作者回复: Rust我还是喜欢的,不过我也是在观望中。因为我这篇文章内容太多了,所以只能选择主流的,这样才能确保不让大家走弯路,所以我没提。对于你的这个问题,我个人建议,就个人兴趣是可以深入了解的,但是就职业生涯来说,我则是持保守立场的。

    2018-06-19
    8
  • cosmos lee
    感谢皓叔的推荐。我现在公司用的是php做开发,自己目前在学习c,之后想继续学习c++再到java。但是皓叔前面说java的竞争力最强,那么是不是尽快开始入门java更好呢?

    作者回复: 可以啊

    2018-06-12
    4
  • xzy
    耗子叔,我是半路出家做了程序员,目前只会java,但是看到很多人的博客分析java的源码,都用到了汇编,我要学汇编吗?

    作者回复: 按照我的攻略来吧

    2018-08-18
    3
  • dingtingli
    代码中使用的依赖注入是属于开发的哪个板块?设计模式? 有没有大神解释一下,谢谢。

    作者回复: 设计模式IoC/DIP

    2018-06-14
    3
  • 狮子王V
    耗子老师您好,我最近想研究下一些开源的负载均衡产品,能推荐一下资料吗?非常感谢

    作者回复: 底层的lvs,上层的nginx和haproxy

    2018-06-14
    1
  • D瓜哥
    读《Effective Java》时,建议学一学Google Guava库,这两个是出之一人之手。书中的很多思想直接就在Guava库中提现出来了。那种感觉,非常棒。
    2018-06-12
    76
  • akaQin
    谭浩强是真的坑。。竟然还被用作了大学教材误人子弟
    2018-06-12
    4
    32
收起评论
显示
设置
留言
96
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部