c++ linux 找不到工作_c++ include 找不到 linux - CSDN
  • Linux C/C++ 学习路线

    2019-07-04 20:41:56
    一、秋招 Linux C/C++ offer 情况 ...Linux C/C++ 从零基础大神的学习路线,自己的真实学习路线,干货很多,建议收藏,认真阅读。 在校期间,我一直走的都是 Linux C/C++ 学习路线,历经暑期实习、秋招决战、校...

    一、秋招 Linux C/C++ offer 情况

    二、Linux C/C++ 方向的一些思考

    三、计算机基础知识的梳理

    四、C++ 方向的深入学习路线

    五、项目 + 亮点 + 面试的一些思考

    六、总结

    前言

    Linux C/C++ 从零基础到大神的学习路线,自己的真实学习路线,干货很多,建议收藏,认真阅读。
    
    在校期间,我一直走的都是 Linux C/C++ 学习路线,历经暑期实习、秋招决战、校招期间投的大部
    分岗位都是 Linux C/C++ 后台方向,对于这个方向,有着自己的理解。
    
    从接触 C++ 到我现在正式工作,大概有 2 年多的时间,对于这个方向的学习路线、以及学习编程的
    方法摸索出来了一些,看完本文,希望对于正在走 Linux C/C++ 路上的同学能有所帮助。
    

    一、秋招 Linux C/C++ offer 情况

    本人就读于双非院校、非科班本科学生,专业是偏硬件的(学校课程只有一门 C 语言与编程相关,
    其余的课程跟编程一点点的关系都没有),在校期间也没拿过什么大的奖项。
    
    计算机基础为零,大二上学期接触 C 语言,大二一年学了 C 语言和数据结构,大三在学校的实验
    室开始学习计算机基础和学习 C++ 方向,一路自学编程,始终相信自己,也是拿到了大厂 offer。
    

    秋招 offer 情况:

    腾讯 后台开发工程师(实习转正)
    百度 手百 feeds 流,软件研发工程师
    美团 后台开发 (C++ 方向面试)
    作业帮 后台开发工程师
    好未来 后台开发工程师
    迅雷 后台开发工程师
    盛大游戏 C++ 开发工程师
    
    2017 年暑期实习腾讯,2018 年初实习百度,校招拿了十几个 Linux C/C++ 方向的 offer,
    最终的选择也很玄学,去了自己想去的公司,从事自己喜欢的岗位,现在在编程的路上越
    走越远。
    

    二、Linux C/C++ 方向的一些思考

    1、

    对于方向的抉择,很多人都选择了 Java 或者 Python 方向,Java 或者 Python 方向确实学的人多,
    岗位需求很多,入门能比 Linux C/C++ 方向容易一些,但是往深了学,各有各的难度,先敲定了方
    向,再深入学习。
    
    Linux C/C++ 方向,国内真正掌握的人,其实是极少数,这个方向的学习人数也是相对比较少的,入
    门一般首选 C 语言或者 Python,C、C++ 在编程排行榜也是经久不衰的,排名靠前,如果喜欢,有兴
    趣,走这个方向是可以的。
    
    Linux C/C++ 方向,国内很多大公司都有招聘这个方向的岗位,BAT 都有,尤其腾讯,底层架构都是 
    C++ 写的,百度核心搜索很多模块也是 C++ 写的,阿里云也在招聘 C++ 方向的工程师,这个方向,
    学的不错的,根本不用担心找工作的问题,如果学的一般的,其实哪种语言就都比较难找了,毕竟都
    知道it行业是技术竞争,优胜劣汰。
    
    Linux C/C++ 的效率是比 Java、Python 快一些的,更偏向于底层,能直接操作内存,对于编程思维、
    逻辑能力的提升是有帮助的;其实学习这个方向,是有一点枯燥的,不像 Python 爬虫、Java、前端能
    做出一些有趣的东西,小程序开发出一些产品,都能很快用于实战,获得编程的乐趣,进一步刺激自己
    学习。
    
    C++ 方向没有那么多有趣的东西可以做,在很长的一段时间内,要靠自己的兴趣去坚持学习。
    

    2、

    我在大三的时候,用 C++ 写过五子棋、内存监控工具、压缩工具、以及实现一些比较复杂的数据结构,
    实现网络编程的并发模型;当你学习 Linux C/C++ 方向到一定程度的时候,你会找到这个方向的乐趣,
    跟其他方向完全不一样的乐趣。
    
    不过,前期真的很难,有一段时间极其痛苦,是要经过很长一段时间的学习,才能有一定的效果,如果对
    这个方向,真的没有啥兴趣,最好选择走前端、Java、Python 等是最好的选择。但是如果你已经是从业L-
    inux c/c++开发几年了,那就继续吧,技术提升没你想的那么难!
    
    Linux C/C++ 方向,入门稍微难一点,一旦选择了要走 C++ 方向的,在心态上面,要做好准备,一定不能
    有畏难心里,做好接触底层、复杂逻辑的分析、以及具备面向过程 + 面向对象的思想;就是退一步讲,我
    学习了 Linux C/C++ 方向,具备了编程思维和熟悉了 C++ 语言,以后去公司上班了,也能很快的上手 Jav-
    a、Python 等方向(我说的上手指的是语言基础很快的学习,要想深入,还得花大把的时间),这也是c/c++
    的优势所在。
    
    按照目前身边人找工作的情况,普遍来说,Java、Python、前端、数据分析、测试方向都要比 C++ 好找一些
    ,更容易找到工作,虽然我是走的 Linux C/C++ 方向,但是对于对底层没有兴趣,对 C 语言没有兴趣的人,
    不建议走这个方向。
    

    3、

    我一路走过来,真的很痛苦,在校期间都想过放弃这个方向,曾经想学个 Java 可能会好一些(身边学习
     Java 的人还是挺多的),每当快放弃的时候,又想到都学了这么长时间了,再坚持坚持,就这样一路走
     过来了;我是觉得自己真的挺幸运的,有时候,真的不一定非要头铁 C++ 方向,要看整个市场行情,顺
     势而为,选择好方向,在深入!
    
    对于 Java 还是 C++ 方向的选择,没有哪个方向一定好找工作,没有哪个方向一定工资待遇高,互联网这
    行,尤其是靠技术说话的,这些都取决于你自身的技术能力。
    
    选择走 C++ 方向的,一定要走 Linux C/C++,面向网络编程,学会 Linux 至关重要!
    
    大厂特别喜欢考察计算机基础知识,对于基础掌握的如何,在很大程度上将决定你是否能进入大厂,一定
    要重视基础知识的学习;秋招准备:基础 + 算法 + 项目,加上自己的方向(C++、Java、Python、前端等
    ),其中每个环节都得准备到位,才能最大程度上拿到大厂 offer,意识很重要,有了意识,再看具体的学
    习路线。
    

    三、计算机基础知识的梳理

    计算机基础:数据结构 + 算法、操作系统 + 计算机网络、数据库 + Linux、C 语言
    
    工作必备工具:Linux + Git + Sql
    
    不管你是学习什么方向的,Java、Python、前端、测试、运维等等,这些基础都不
    能忽视,有时间的话,一定要打扎实了,有了扎实的功底,在这行才能走的更远更快!
    

    1、常用数据结构与算法:

    平衡二叉树
    红黑树
    B-树
    KMP算法
    栈/队列
    布隆过滤器
    靠前的数据结构一定要非常的熟练,对于树、图复杂的数据结构,最起码的掌握定义、原理、部分实现,我就记得:
    我在面试的时候,手写过红黑树的旋转算法,对于图的一些最短路径算法也是当面手写过,头条的面试基本上就是全
    程算法,难度不低。
    
    冒泡
    插入
    选择
    快排
    希尔
    堆排
    归并
    桶排
    基数
    计数
    字符串常见算法
    数组常见算法
    递归算法
    
    一定要保证掌握基础算法 + 常见算法。
    
    在算法方面的要求上,C++ 方向对于算法的要求明显更高,算法功底一定要扎实!
    
    2、操作系统:很常问的一些技术点,堆和栈、内存分区、虚拟内存 + 物理内存、
    进程 + 线程 + 协程、死锁、分片机制、五大组件、中断和系统调用 、同步和异步
    等等问题。
    
    对于操作系统的理解,对于这些基础的计算机知识的掌握是必须深入学习,要花很
    大的功夫去理解清楚这些,工作中,对于真实线上系统的稳定性、对于底层技术的
    理解是有帮助的,操作系统是面试中常见问题之一。
    
    3、计算机网络:OSI 七层模型和 TCP/IP 四层体系结构,TCP 三次握手与四次挥手、
    常见的网络协议(网桥、ARP、IP、ICMP、TCP、UDP、DNS、DHCP)、TCP 粘包、
    流量控制 + 拥塞控制、数字签名原理、http + https,http 的状态码,https 的安全机制,
    网络安全、输入 www.baidu.com 背后发生了什么等等问题。
    
    其实工作中,有时就会出现,网络抖动、网络延迟,网络拥塞的情况,此时就需要具备一
    定的网络知识,及时的解决问题,计算机网络是面试中常见问题之一。
    
    4、数据库:数据库作为存储数据的地方,其不同的数据结构、与应用的场景不一样,采取
    不同的数据库,对于 mysql 基本操作、写 sql 的优化、表的设计、索引优化、如何更快的查
    询、底层数据结构的设计原理等等问题。
    
    常见的设计模式、主要是学习设计模式的思想、单例模式是必须写代码实现的,其他设计模
    式理解思想,作为了解内容,后台开发工程师与 mysql 打交道挺多的,也是面试常见问题之一。
    
    5、Linux系统
    
    Linux是所有学c/c++同学都绕不开的坎,我整理了Linux方面需要掌握的技术点,不知道怎么学习的同学可以借鉴一下。
    
    系统命令工具
    
    进程间通信设施状态 ipcs
    虚拟内存统计工具 vmstat
    Linux系统运行时长 uptime
    CPU平均负载和磁盘活动 iostat
    监控,收集和汇报系统活动 sar
    监控多处理器使用情况 mpstat
    监控进程的内存使用情况 pmap
    进程监控工具 atop
    控制台的流量监控工具 vnstat
    系统进程状态 ps
    详细网络流量分析 tcpdump
    内存使用状态 free
    系统管理员调优和基准测量工具 nmon
    密切关注Linux系统 glances
    查看系统调用 strace
    网络参数工具
    
    Linux网络统计监控工具 netstat
    显示和修改网络接口控制器 ethtool
    网络数据包分析利刃 tcpdump
    监控并帮助你调试网络 bmon
    获取实时网络统计信息 iptraf
    显示主机上网络接口带宽使用情况 iftop
    网络流量和 ip 流量分布 ntopng
    
    日志监控工具
    
    实时网络日志分析器 GoAccess
    
    多窗口之下日志监控 MultiTail
    日志分析系统 LogWatch/Swatch
    参数监控工具
    
    监控apache网络服务器整体性能 apachetop
    ftp 服务器基本信息 ftptop
    IO监控 iotop
    电量消耗和电源管理 powertop
    监控 mysql 的线程和性能 mytop
    系统运行参数分析 htop/top/atop
    工作基本上离不开 Linux,也是面试常见问题之一。
    

    6、C 语言

    C 语言是我学习编程的第一门语言,是面向过程的语言,对于 C 语言中的数组、函数、指针、
    内存对其模式、大小端问题、野指针、内存泄露、static、register、define、typedef、struct、
    union 等一些关键字的考察。
    
    我一直把 C 语言当做基础,不是方向,在 C 语言这里学到了很多编程的思想,对于 Linux C/
    C++ 方向,C 语言是基本功,也是必定考察的地方,当初我也是因为特别喜欢 C,走上了 C++
     的道路。所以c语言其实对于所有语言的编程者来说都是值得学习和借鉴的。
    
    C 语言可以学,C 语言是基础,不是方向,但是选择走 C++ 就是要选择的方向了,要谨慎选择!
    
    对于上面的每一个模块,其实都能单拿出来,写的更为具体一些,但是个人比较懒,就写出大纲
    来给大家借鉴一些吧。
    

    四、C/C++ Linux方向的深入学习路线

    1、C++ 基础
    
    C++ 是面向对象的语言,一定要理解清楚面向对象的思想,先把 C++ 的基础知识点打牢,刚从面向过程中转变过来,一定一定要适应面向对象的写法。
    
    在学习面向对象的时候,也要考虑如何用面向过程去实现面向对象(其实也就是结构体中有一个成员是函数指针),对于 C++ 的基础知识,我简单罗列如下:
    
    1、const的用法
    
    2、引用的用法
    
    3、#define用法
    
    4、构造函数
    
    5、析构函数
    
    6、拷贝构造
    
    7、new、delete 和 malloc、free 的区别
    
    8、访问限定符 public、private、protected
    
    9、深拷贝和浅拷贝
    
    10、友元函数
    
    11、static
    
    12、内联函数
    
    13、继承、虚继承
    
    14、钻石继承问题
    
    15、同名覆盖问题
    
    16、虚函数表
    
    17、虚指针
    
    18、虚函数、纯虚函数
    
    19、接口
    
    20、多态
    
    21、重写
    
    22、重载
    
    23、函数重载
    
    24、运算符重载
    
    25、流类库和文件
    
    2、C++ 进阶
    
    函数模板、类模板,C++ 中对于异常的处理,对于继承和多态底层的理解,对于 virtual 底层的理解等。
    
    对于 C++ 中 boost 库八大智能指针的掌握与理解,其核心是理解并且剖析过相应的源码, <scoped_ptr/shared_ptr/weak_ptr>
     这三个是最核心的智能指针,理解清楚智能指针的本质是,内存的申请与释放全部交给了对象管理,以避免人为疏忽,造成内
     存泄露。
    
    何为c/c++Linux方向的深入学习,就是在掌握上述前提技术基础之上的进阶学习。
    
    如果对上述技术觉得自己还有所不足的同学,推荐大家一个免费学习课程
    
    链接:https://ke.qq.com/course/417774?flowToken=1010788
    
    主要讲的就是c/cLinux方向的技术分享
    
    针对上面,从基础到 C++,我列出来的都是非常重要的知识点,当然了,也不可能全部列到,有很多技术问题,很多细节,
    我可能没有考虑到,没有写到,这个还需要在学习的时候,认真看看视频、看看书,把相应的知识都学到位,基础打扎实一些。
    

    五、项目 + 亮点 + 面试的一些思考

    1、
    
    项目:对于暑期找实习,或者秋招找工作,除了基础跟方向,接下来就是项目的准备了,对于 C++ 方向,很多人不
    知道要准备什么项目?其实项目不在于有多大、有多难,在于项目是否是自己真正做的,自己是否完全消化了,项目
    中是否有什么亮点?
    
    C++ 方面的实战项目,以数据结构 + 网络编程 + 实用工具为主;数据结构方面:可以实现红黑树、B+ 树,又或者用
    图解决什么实际问题,这些复杂的数据结构实现可以作为项目的。
    
    1.对于项目这块,面试的常见问题有:
    
    a、做这个项目的背景是什么?
    
    b、项目中具体有哪些模块,都是怎么实现的?
    
    c、项目中你的技术亮点有哪些?
    
    d、项目中有什么难点,你是怎么解决的?
    
    e、要是重新做这个项目,你这个项目有什么不足,你会进行哪些改进?
    
    2.亮点:找实习或者找工作,必须的有自己的亮点,我觉得在那么多基础知识中,数据结构 + C 语言就是我的亮点之一,
    只要问到关于这 2 个方面的问题,尽量回答全面清楚一些,还有就是自己对于 Linux 内核数据结构的剖析也是亮点之一,
    总之,一定要找到自己的亮点,与别人不一样的地方,这个就是面试的加分项。
    
    搜索引擎的底层原理、通讯的底层原理,对于这些底层的实现,有兴趣的可以了解看看,其实也没那么难,要是在面试
    的时候,能回答出对这些技术的了解,以及自己的一些思考,那就是加分项了。
    
    3、
    
    面试:春招实习、秋招决战,我不知道投了多少家公司,也不知道面试了多少场,基本上都是海投的,有了面试机会,
    就要抓住每一次,面试完多做总结、归纳、反思;其实面试很玄学,有自身实力的原因,也有运气的成分,相信自己,
    好好表现就好。
    
    对于面试,才开始我也是比较紧张的,但是当你面的多了,慢慢的就会调整过来,就会好很多,我现在把面试当做是
    ,这是一次近距离和优秀的人交流的机会,是一次学习进步的机会,有了这种心态,其实就好的多了。
    
    对于面试我也自我总结了一些面试题及回答经验,分析出题人出题的思路在哪里,毕竟我们不是要去死记面试题,重要
    是面试官考题的技术点在哪里?把技术点吃透,之后再问到类似的问题就不会慌了。
    

    六、总结

    推荐一些好的视频网站:b 站、牛客网、极客时间、51cto、腾讯课堂,网易云课程,基本上你所需要的视频资料都可以去找,实在不行上淘宝看看,我在b站也会日常更新,但是目前还不是很多。
    
    https://space.bilibili.com/437693511
    
    有兴趣的朋友可以看看
    
    我走的是 Linux C/C++ 路线,秋招投递这个岗位也很多,对于简历,面试方面觉得不好不足可以联系我,给你一定的指导吧,这个看时间。
    
    对于想走 Linux C/C++ 方向的同学,基本上按照上面的路线走,多实战操作。
    
    展开全文
  • 今天突然兴起在杭电上刷两道题,构建完成后怎么也运行不了,运行总是提示找不到二进制文件。先从几个容易出问题的点看看 把所有运行配置删光,依然不行。 再c++项目设置的构建里看了下编译命令是g++ -o没错。 再...

    换了linux以后,没有好用的vs,只能用eclipse+cdt来写c++代码了,codeblocks虽然也不错但是代码自动提示还是不如eclipse强啊。
    今天突然兴起在杭电上刷两道题,构建完成后怎么也运行不了,运行总是提示找不到二进制文件。先从几个容易出问题的点看看
    把所有运行配置删光,依然不行。
    再c++项目设置的构建里看了下编译命令是g++ -o没错。
    再进入到debug目录下找编译完的二进制文件,终于发现了原因:
    我的项目名叫hdu.c++,所以编译出来的可执行文件也叫hdu.c++,以前在windows下这么做没有任何问题,因为编译时会自动加上.exe。但是因为linux下扩展名并不决定文件的性质,所以编译时是不加扩展名的,而我的项目名刚好让系统认为扩展名是c++,但linux下扩展名是什么应该无所谓的,扩展名并不决定是否是可执行文件。可既然如此因该没有问题啊,问题就在于eclipse并不这么认为,我在控制台里直接运行编译完的hdu.c++是可以运行的。但是eclipse认为这不是二进制可执行文件,所以一直提示出错。解决办法就是不要起这种带.的项目名,或者自己建一个运行配置,把命令写死即可。

    以后起名字不能想当然啊

    展开全文
  • Linux编译程序时找不到头文件的解决办法   Linux编译程序时如果找不到头文件会提示如下错误: $ gcc test.c -o test test.c:9:16: fatal error: xxx.h: No such file or directory  #include&lt;xxx.h&...

    原文链接 作者:iw1210

    Linux编译程序时找不到头文件的解决办法

     

    Linux编译程序时如果找不到头文件会提示如下错误:

    $ gcc test.c -o test
    test.c:9:16: fatal error: xxx.h: No such file or directory
     #include<xxx.h>

    下面叙述以Ubuntu系统为例。
    先查找 xxx.h 所在路径:
    $ sudo find / -name xxx.h
    /usr/local/include/xxx/xxx.h
    然后用-I选项把目录加上编译:
    $ gcc test.c -o test -I /usr/local/include/xxx

    问题解决。

    展开全文
  • 来源:公众号【编程珠玑】 作者:守望先生 ID:shouwangxiansheng 前言 ...由于每个人的情况一样,推荐的书并一定适合你,也一定适合当前阶段的你,有的书籍可能存在内容重复,所以...

    来源:公众号【编程珠玑】

    作者:守望先生

    ID:shouwangxiansheng

     

    前言

    经常有读者让我推荐书籍,这次我就把我私藏的计算机书单分享给你们!不过由于时间匆忙,不会进行更加详细的介绍。

    以下大部分书籍可在公众号后台恢复关键字获取电子版,不过建议购买纸质书。

    声明

    由于每个人的情况不一样,推荐的书并不一定适合你,也不一定适合当前阶段的你,有的书籍可能存在内容重复,所以根据自己的阶段情况进行选择即可。虽说如此,以下书单中提单的书均为优质书籍。
    另外说,本人从事的是Linux/C/C++应用开发相关工作,因此主要书籍与此相关,涉及操作系统,Linux,C/C++,网络,编译链接,算法,数据库等内容,其他方向的会提到,但可能不全,欢迎补充。

    以下整理均来自公众号【编程珠玑】
    作者:守望先生

    C

    • 《C程序设计语言》(经典,不适合小白入门)

    • 《C语言程序设计:现代方法》

    • 《C primer plus》(入门推荐)

    • 《C陷阱和缺陷》

    • 《C专家编程》

    • 《C和指针》(领悟指针精髓)

    • 《C语言接口与实现》

    • 《C11标准文档》(非书,可查阅)

    推荐文C语言必读

    C++

    • C++ primer》(适合有一定基础)

    • 《C++程序设计语言》

    • 《C++标准库》

    • 《Effective Modern C++ 》

    • 《more effective C++》

    • 《深度探索C++对象模型》

    • 《STL源码剖析》

    • 《effective STL》

    • 《C++ template》

    • 《Exceptional C++》

    • 《C++编程思想》

    • 《C++语言的设计和演化》

    Java

    • 《effective java》

    • 《Java核心技术卷》(有两卷)

    • 《Java语言程序设计》(有两卷)

    • 《深入理解Java虚拟机》

    • 《Java编程思想》(进阶)

    • 《Java并发编程实战》

    Python

    • 《Python编程 : 从入门到实践》

    • 《A Byte of Python》(快速上手)

    • 《Python编程快速上手》(适合完全零基础)

    • 《流畅的Python》(非小白入门所选)

    • 《Python Cookbook》

    GO

    • 《go程序设计语言》

    计算机基础

    算法

    • 《算法导论》(大钻头,不易读)

    • 《编程珠玑》

    • 《算法》(相对易读)

    • 《数据结构与算法分析-C语言描述》

    计算机网络

    • 《计算机网络》

    • 《计算机网络-自顶向下方法》

    • 《TCP/IP详解-卷1》

    • 《网络是怎样连接的》

    编译链接

    • 《编译原理》(龙书)

    • 《程序员的自我修养-装载,链接和库》

    操作系统/Linux

    • 《现代操作系统》(中文版感觉有点晦涩)

    • 《操作系统精髓与设计原理》

    • 《操作系统概念》

    • 《Linux内核设计与实现》(整体介绍,不如后面两本深入)

    • 《深入理解Linux内核》

    • 《深入Linux内核架构》(大砖头,讲解了Linux中关键部分)

    • 《鸟哥的linux私房菜基础篇》(基础篇可入门Linux)

    • 《Linux命令行与shell脚本编程大全》

    • 《Linux Tools Quick Tutorial》 (教程)

      https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/index.html

    数据库

    • 《Mysql必知必会》(超薄小册子)

    • 《高性能Mysql》

    • 《redis设计与实现》(学习里面的设计思路,数据结构与算法)

    • 《数据库系统实现》

    系统/网络编程

    • 《Unix环境高级编程》(APUE)(经典)

    • 《Unix网络编程》(UNP)(两卷,经典)

    • 《Linux/UNIX系统编程手册》

    设计/软件工程

    • 《代码大全》

    • 《代码整洁之道》

    • 《程序员修炼之道》

    • 《Unix编程艺术》

    • 《重构》

    • 《敏捷软件开发:原则、模式与实践》

    • 《设计模式_可复用面向对象软件的基础》

    工具

    • 《pro git》在线文档 地址:https://progit.bootcss.com/

    工作面试

    • 《编程之美——微软技术面试心得》

    • 《剑指offer 名企面试官精讲典型编程题》

    其他

    • 《浪潮之巅》

    • 《黑客与画家》

    总结

    • 书籍皆为好书,但不一定适合现阶段的你,请慎重选择。

    • 非完整版,可继续关注阅读原文

    • 后期进行更加详细的介绍。

     

    未完待续。欢迎留言说出你认为对你帮助很大的计算机书籍。

    以上大部分书籍可在公众号后台恢复关键字获取电子版,不过建议购买纸质书。

     

     

    关注公众号【编程珠玑】,获取更多Linux/C/C++/算法/计算机基础/工具等原创技术文章。后台免费获取经典电子书和视频资源

     

     

    展开全文
  • linuxC++编程学习

    2020-02-29 21:58:40
    前言(废话,可略过):之前一直在windows下做C++编程,后来换后台工作接触到linuxC++开发。期间磨磨唧唧浪费了很多时间。记录下历程,给后来的小伙伴提个醒,免得浪费宝贵时间。 一、关于换系统 如果windows下...

        前言(废话,可略过):之前一直在windows下做C++编程,后来换后台工作接触到linux下C++开发。期间磨磨唧唧浪费了很多时间。记录下历程,给后来的小伙伴提个醒,免得浪费宝贵时间。

    一、关于换系统

        如果windows下习惯了快捷键操作系统,尽可能少的使用鼠标,那么,linux就是你的理想。作为C++程序员,不会用linux真的是太糟糕了(很多地方看到这个观点,此处不做辩论)!

        想要快速入门linux,网上下载个教程,一星期速成的那种,每天花三个小时去看,完事之后会对linux有个大致了解,也能开始对linux上手了。

        之后就是继续啃书肯视频了,东西很多很细碎,作为程序员的宿命,就是不断学习。除非哪天跳出这个圈子(入门书籍推荐《鸟哥的linux私房菜》或者《linux就该这么学》,选一本就好)。

    二、编程相关

        虽然linux也有诸如eclipse之类的 IDE,但是仍然建议从 vim 开始,一步步往前走。

        除了基础的C++语法外,其余和linux相关的是文本编辑器(我用的 vim,也有很多人偏向 emacs,看个人喜好了)和 编译器。

        在编程路上,你需要掌握的有(必须包括但不限于):

    1、vim 的使用

    2、makefile的编写

    3、gdb调试

    4、配置文件的编写

    5、C++相关知识(诸如日志、网络相关、数据库相关、系统API相关等等)

    三、编程相关(续)

        如果仍有兴趣,余下时间可以学学shell编程、linux内核、UNIX相关、各种C++的共享库等等。在这之前,真正能让你从中级程序员拔到高级的是开源程序。linux强盛的生命力就在于开源。C++的欢乐社区github和gitlib有空一定要去,那里绝对有让你肆意遨游的空间。

    四、关于前途

        当前人工智能的概念炒得很火,在我的理解中,C++偏向应用,虽然在智能逻辑上缺乏表达,但依然有很多周边产品需要C++来实现,如数据挖掘、数理逻辑、算法、嵌入式等等。如果哪天智能运算彻底替代程序员完成工作,那么咱们依然可以。。。好吧,编不下去了,大家一起要饭可好?

        有时候停下来会对未来产生迷茫,每个人的选择不一样,但是只要选择了,就要走下去,每个人的路都不同,但每条路都不会一帆风顺,人生是有很多意义,但有些意义实现不了只能放弃。在当前条件下,做出最有效的选择,然后玩命去干,一定会有所收获,即便它不是最喜欢的。

    最后,附上个人linux下C++编程入门资料,ps:上传文件大小被限制,可以私信我,发所有资料,共四百兆。

    祝各位早日实现技术目标。

    展开全文
  • LinuxC++编程基础

    2020-04-27 15:42:13
    想要在Linux上进行编辑,必须学会Linux基本编辑命令和其他基本命令 学习路径:Linux系统基础一 有编程基础。 二、安装编译器,并开始第一程序 1.安装编译器gcc &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; g++ ...
  • linuxc++sleep函数

    2017-07-30 19:38:04
    sleep() 秒级usleep() 微秒级#include using namespace std; #include int main(){ while(1) { cout ; //sleep(1); usleep(100000)
  • 用cmake生成xcode项目时候,提示找不到 c和c++编译器,需要执行下面指令即可 且当控制台无法使用gcc指令,也同样执行下面命令 sudo xcode-select --switch /Applications/Xcode.app/...
  • [虽然原先搭建过相关环境,但考虑以后换环境了还需要搭建,这里就此记录下] 本文将通过两种方式进行c++环境的快速搭建,熟练的话确实可以控制在两分钟以内。两种方法分别是1. 基于插件的搭建和2. 传统的搭建 ...
  • 最近需要将代码上传github,顺便使得代码要在ubuntu上能够编译运行。稍微学习了一下ubuntu环境下的C++文件编译方式。单个源文件生成可执行程序//随便写个简单的程序: /*test.cpp*/ #include int main(int argc,...
  • 新手注意事项1、文件与目录...2、itoa()函数在linux下并存在。 所以使用类似sprintf();之类的函数是个不错的替代。(为什么说是类似函数,看下面一条啦) 3、 _snprintf()与_vsnprintf()的差别。 sprintf()
  • Linux C/C++ 程序员毕业工作两年多来的感想 Linux C/C++ 程序员毕业工作一年多来的感想 2018年以来我也写了几篇心得感想: 提高编程速度的一些个人经验 程序员工作后如何有效的学习 理论扎实,编程不会有自己的...
  • linuxC/C++面试问题总结整理因为一些原因重新找工作了,面的linux c/c++,面试经常碰到的问题,我这里把问题都总结一下。linuxC/C++面试问题总结整理单元测试关键字const关键字static关键字volatile线程间同步的方法...
  • 编译时找不到以下的头文件 #include #include #include #include #include #include #include 解决方法: C++库需要stl;所以新建jni/Application.mk文件。加入: APP_STL := gnustl_shared
  • 上一篇文章LinuxC++的编程——开偏介绍中我们已经介绍了GUN、GCC、G++等一些重要的概念,现在应该开始动手实践了!开发工具的安装环境 Distributions版本:CentOS 6.7 Linux内核片:2.6.32-573.3.1.el6.i686一般...
  • 毕竟,C、C++Linux之父,都是大家最最熟悉的东西。但是许多同学把精力放在纯粹语言优劣的争论上,就没有太大意思了。这场争论的主角之一,微软的Dmitry Kakurin有一句话非常正确:“这是一种信仰问题。因此,任何...
  • 编译rtmpdump和librtmp之后提示rtmpdump找不到librtmp, 很纳闷,建立软连接不行,把库库拷贝到执行程序的目录也找不到,加环境变量也不行。 解决方法一、把库直接拷贝到/usr/lib/ 下面去,简单暴力。 解决方法二、在...
  • 有时候,需要将原本Windows下成功运行的C++代码移植到linux系统下,过程往往不是特别顺利,下面列出几个移植过程中需要注意的几个问题 1、#include<windows.h> 非win平台能使用 2、#pragma once 避免同一...
1 2 3 4 5 ... 20
收藏数 290,955
精华内容 116,382
关键字:

c++ linux 找不到工作