V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Margulator
V2EX  ›  C

如何学习 Linux C++编程语言并使其成为一项技能,能够解决实际问题的那种。目前只是掌握了基本的语法(算是刚入门的水平),该怎样提高编程能力,希望能够倾听大佬们比较具体的建议,像那些多敲代码之类的建议比较宽泛,小白还是很迷茫。万分感谢!

  •  1
     
  •   Margulator · 2019-05-31 11:03:35 +08:00 · 3923 次点击
    这是一个创建于 2010 天前的主题,其中的信息可能已经有所发展或是发生改变。
    27 条回复    2019-05-31 22:20:44 +08:00
    pmispig
        1
    pmispig  
       2019-05-31 11:05:47 +08:00
    比如立个小目标,看看 mysql 的源码,改一改?
    Margulator
        2
    Margulator  
    OP
       2019-05-31 11:11:33 +08:00
    @pmispig 是个学不错的目标!
    dinjufen
        3
    dinjufen  
       2019-05-31 11:11:49 +08:00
    学堂在线、B 站有很多好视频,不过也没深入
    mhf0709
        4
    mhf0709  
       2019-05-31 11:12:19 +08:00 via Android   ❤️ 1
    这头像也算小白吗
    www5070504
        5
    www5070504  
       2019-05-31 11:12:43 +08:00
    看看 linux 高级编程 然后找点简单东西练练手啊

    比如自己实现一个部分功能的 memcache 顺便看一下 memcache 的源码怎么实现和避免一些坑的

    我感觉这样就挺好 真正的业务需要的东西不会比这个更复杂了
    circsqua
        6
    circsqua  
       2019-05-31 11:17:50 +08:00
    先写个文本编辑器吧
    Margulator
        7
    Margulator  
    OP
       2019-05-31 11:19:31 +08:00
    @dinjufen 视频教程大部分是讲授基本的语法知识,基本语法我是会一些的,就是实际应用不太行,希望能从实践中提升能力。
    Margulator
        8
    Margulator  
    OP
       2019-05-31 11:20:13 +08:00
    @mhf0709 哈哈,头像归头像。人要活到老,学到老嘛。
    Margulator
        9
    Margulator  
    OP
       2019-05-31 11:20:51 +08:00
    @www5070504 哦哦,好的好的,多谢。
    30624300
        10
    30624300  
       2019-05-31 11:22:23 +08:00   ❤️ 1
    找点小项目自己动手做做,熟悉如何去使用,然后多看看开源的项目去提高编程水平
    Margulator
        11
    Margulator  
    OP
       2019-05-31 11:23:35 +08:00
    @circsqua 是个好目标。悄悄滴问一下,文本编辑器对小白上手来说困难吗(这个困难的意思是:会不会让小白一头雾水,然后感觉从入门到入坟的那种)。
    Margulator
        12
    Margulator  
    OP
       2019-05-31 11:24:21 +08:00
    @30624300 多看项目源码,知道了。多谢
    SuperMild
        13
    SuperMild  
       2019-05-31 11:25:39 +08:00
    学 QT 吧
    circsqua
        14
    circsqua  
       2019-05-31 11:31:42 +08:00
    @Margulator 文本编辑器是个非常内在的 project,它不需要很多额外的外联知识,核心诉求也简单,可以试着自己思考下怎么实现
    我只是半个超能力者,自己认可这个小项目,还请其它超能力者批判下,THX
    23571113
        15
    23571113  
       2019-05-31 11:37:01 +08:00
    推荐看 sqlite 源码,以 SQLite Database System Design and Implementation 这本书为主。官方文档非常详细,注释可能比代码还多。看的我快高潮了。
    Margulator
        16
    Margulator  
    OP
       2019-05-31 12:44:22 +08:00
    @circsqua 了解,多谢啦!
    Margulator
        17
    Margulator  
    OP
       2019-05-31 12:45:32 +08:00
    @23571113 Ok,我了解一下。Thank you !
    belin520
        18
    belin520  
       2019-05-31 13:06:58 +08:00
    这头像的学习能力,一个月就能到资深研发工程师了吧
    Margulator
        19
    Margulator  
    OP
       2019-05-31 13:32:38 +08:00
    @belin520 哈哈,借您吉言。
    qinyusen
        20
    qinyusen  
       2019-05-31 13:37:15 +08:00
    给你个思路, 有一门常见的脚本语言叫做 lua, 用 C 实现的,也就几万行, 你先确认你明白面向对象化,接口封装等一系列常规知识后, 用 C++ 改写一遍, 会让你更深的 linux C 设计模式和 C++面向对象化,和封装的概念。

    如果你觉得还不是很理想, 写个 go 出来。
    pilqc2009
        21
    pilqc2009  
       2019-05-31 13:40:31 +08:00
    c 语言的话,redis,memcache,libevent,C++的话,leveldb,muduo,STL,boost 下有个异步网络通信框架 asio,看源码,先了解如何使用,然后网上看些关于这个框架的博客,有个整体性的认识,最后再看源码~
    skadi
        22
    skadi  
       2019-05-31 13:43:57 +08:00 via iPhone
    github
    qinyusen
        23
    qinyusen  
       2019-05-31 14:00:32 +08:00
    脑子比打字快, 打字打得全是病句, 这个事儿是一举多得, 你可以熟悉一个解释性语言是怎么构造出来了, 然后大约还会理解一些内存操作以及命令行交互。 然后 linux C 的设计哲学, 然后 C++的特性。 然后从工程上来说,大概可以比别人更好的模糊的理解一下 C 到底好在哪儿,C++到底改进了什么,为什么 OOP 会带来代码膨胀, 怎么膨胀的,诸如此类的
    turi
        24
    turi  
       2019-05-31 16:32:11 +08:00
    解决实际问题。
    你目前有哪些问题?
    imxthd
        25
    imxthd  
       2019-05-31 16:33:42 +08:00
    钰钰?
    sdtfll
        26
    sdtfll  
       2019-05-31 22:19:05 +08:00 via Android
    看 100 年都没用,
    找个小东西做一下,根据需求驱动去学习效果最好,
    Margulator
        27
    Margulator  
    OP
       2019-05-31 22:20:44 +08:00
    @sdtfll 很有道理啊,老哥。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2924 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 03:11 · PVG 11:11 · LAX 19:11 · JFK 22:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.