[编程开发] 作为一个优秀的程序员,真的需要精通C语言吗?

[复制链接]
wanggang761029 发表于 2023-10-14 12:10:02|来自:北京朝阳 | 显示全部楼层 |阅读模式
作为一个优秀的程序员,真的需要精通C语言吗?
全部回复5 显示全部楼层
lqxxql 发表于 2023-10-14 12:10:48|来自:北京朝阳 | 显示全部楼层
我的看法是除非你就是靠哪门编程语言吃饭,否则无论如何也不要投入过多时间让自己在和你领域不直接相关的编程语言上达到所谓“精通”的程度,那只是徒然地浪费时间……或者出于兴趣也可以,这反正无所谓。当然,也许有很多人对“精通”有着灵活的定义,或许我口中的“精通”有些太过严格了也说不定。
lanxueling 发表于 2023-10-14 12:11:28|来自:北京朝阳 | 显示全部楼层
不需要的
先来看看所谓的优秀的程序员
这是什么意思?
程序员是一份工作,其定义是,利用编程技术,实现和解决老板或者产品经理的需求和问题
本质上所有企业的员工都是工具人,程序员也不例外
对于工具人而言,最重要的品质,是你别把老板的事搞砸
真正的技术突破,并不是由程序员实现的
你认真看技术的发展历史,大部分都是由高校里面的人实现的
所以是半研究性质的,各种主流技术的发明,都有深深的高校烙印
比如发明java的sun,全称是斯坦福大学网络,搞linux的linus,他在芬兰最好的赫尔辛基大学做出来的linux,llvm是uiuc的一个研究项目,诸如此类
公司在这里面,更多的是起到一种给钱的角色
所以技术的推动和进步,很大程度上,并不是由企业推动的
当然严格说起来,也不是没有,但是比例很少,比如做java的,其实开发jdk的那些人,在oracle和ibm/red hat等公司中,只占很小一部分
而且现在graal发明出来之后,也慢慢转变成oracle lab的责任,你看这名字,就不像是一个企业,更像是一个高校,现实也确实如此,oracle lab做graal就在跟全球的十几所高校合作
这些都可以看成是企业的good will,就是企业的一种公益行为
所以对于绝大多数程序员而言,技术的推动根本跟他们没有关系
他们只是在凑个热闹,就跟农村里赶集差不多
所以我看不出来,这里优秀不优秀有什么用?
很多程序员连扩招后的985都考不上,这你优秀个p啊
你以为你背了点api,就优秀了?
这不滑稽么?
这些都只是工具,而且是别人做好的工具,你只是工具的使用者
你要意识到,你用这些工具的目的是什么,至于工具本身,跟你其实没啥关系
对于普通程序员而言,你能做的,最多就是给这些工具修修bugs,也就这样了
普通程序员养活自身同时,不要沦落去卖课,就烧香了
fortunatee 发表于 2023-10-14 12:11:37|来自:北京朝阳 | 显示全部楼层
抖音有个程序员架构师 直播群,一个大佬在那里说自己在win98上干C开发还用汇编写驱动。我看完就觉得,你这玩意能赚钱吗?结果大佬说他已经在国外定居了,财务自由了。
怎么说呢,时代造就英雄,你看看这个时代还需要C语言吗?
huayuqing 发表于 2023-10-14 12:12:23|来自:北京朝阳 | 显示全部楼层
学编程语言最大的错误思想就是降维打击,典型的就是C/C++难,学完C/C++就可以吊打Java、C#、python、javascript等等,其实不是这样的,抱着这样的心态学习C/C++基本也是学不好的,编程语言仅仅是工具而已,我平时用C++实现算法直接编译成webassembly集成到前端,性能非常好。简单的算法有时候也会直接用java重写一遍,而不是把C/C++的算法部署在服务器上让Java去调用,简单的算法直接放在java那边可以大幅减少网络请求耗时的问题,对性能提升非常明显,实际工作中就是这样每个语言都有它擅长的事情,就好比专业的人做专业的事儿。
茫茫雨 发表于 2023-10-14 12:12:52|来自:北京朝阳 | 显示全部楼层
C语言应该是每个程序员因该学习的,精通则不必。
行业里流传的一句话:C生万物。
C是最简单的语言,C是最复杂的语言;C是最自由的语言,C又是寸步难行的语言;你用C能做一切,你用C啥都做不了;但是尽管如此,还是扎实学习C吧!
2023 C 语言学习必备干货!
总结整理了很多学习资源,有小伙伴问说,为啥没有C语言的,我一想,对啊,居然没有总结C语言的,C语言可是大多数人的入门语言啊,所以确实应该总结整理一番。
包括四个方面,依次是:

  • C语言入门课程:主要针对入门新手做的课程整理,如果你有一定的C语言基础,可以跳过这部分内容;(小白新手,推荐看)
  • C语言实践项目:整理了一些C语言实战项目以及项目列表,可以找到很多项目开发点子;(有一定基础的C语言学习者,推荐看)
  • C语言笔记文章整理:一些学习笔记的整理,主要是针对知识点;(选择看)
  • 其他资源:整理的一些学习C语言相关的资源,可以看看;(推荐看)
ps.整理的基本都是中文、不需要翻墙也可以查看的资源~
一、C语言入门课程
其实C语言入门教程非常多,各种各样的都有,还是那句老话,新手入门学习,系统性学习最为重要,因此总结网络上的一些免费的、系统的、我认为比较好的C语言入门课程,希望对于新手入门有所帮助。

  • 实验楼——C语言入门教程
阿里大佬强烈推荐的C语言学习路线教程+在线开发环境的方式,教程文档详细的讲解C语言基础知识,在线开发环境和本地一样,可以随时动手跟着教程操作,动手学习的方式非常适合入门初学者。




  • gitbook——笨方法学C
  • 内容较完整丰富,相当于一本书籍了,适合新手入门学习。



  • 菜鸟教程——C 语言教程
纯在线文字教程,讲解的不是那么详细,不过简单易懂,适合入门初学者学习,看完后可对C语言有个大概的认知。




  • 慕课网——C语言入门
教程+"环境",讲解的比较细致,也很简单易懂,跟着教程可傻瓜式操作学习,适合入门新手。
再说说这个“环境”和实验楼环境的区别吧:这个“环境”和实验楼的环境还真不一样,实验楼是一个操作系统,而这个是一个在线的编辑器,差别的话自己去看吧,只说一点:实验楼可干的事情,慕课网的“环境”不一定可以。




  • 网易云课堂——C语言基础入门
纯视频方式,每个视频15分钟左右,介绍的比较详细,如果喜爱看视频来学习的话,可以看看。




  • 书籍
书籍是永远少不了的,也有相当大的一部分人入门还是喜欢看书籍,认为更系统、更成体系,因此可以选择一本你认为不错的入门书籍进行入门学习。
如果你实在不知道哪本书籍入门更好,我的建议就是大学的C语言教程,毕竟有老师讲解,带着看书籍,还是很不错的。
二、C语言实战项目

当然,学完基础知识之后肯定是需要做项目练练手的,因此分享一些C语言练手项目,包括教程、练手列表。
我相信各大学习网站上都会或多或少都有C语言项目教程的,因此我这里就不一一整理了,主要分享几个免费的项目教程吧,至于收费的教程看自己咯~

  • C语言制作2048
  • C语言快速实现五子棋
  • 斗地主的发牌器
  • C语言制作简单计算器
  • 用 C语言编写自己的编程语言
上面都是有详细的教程教你开发项目的,下面整理一些大家总结的项目列表,如果你不知道开发什么,可以试着从里面选一个项目进行开发。

  • 练手的小项目列表(英文)
  • 练手的小项目列表(中文)
很多初学者都不知道可以开发什么,因此这个项目列表,可以让你找到简单的编程项目学习练手,不过这个列表只有项目点子,并没有教程哦。

  • 从零开始学编程系列汇总
同样是个列表,但是每个项目都有文档的,可以跟着文档去动手开发项目。

  • 500行左右的项目
列出的项目代码都只有500行,实现都比较精妙,都可以作为练习的题目。


  • 知乎—学会了 C 语言真的可以开发出很多东西吗?
这是知乎上的一个问题,可以解决很多人的疑惑,同样可以从众多回答者中找到比较好的项目开发点子。


  • C语言可以开发哪些项目?
总结了一些C语言可以开发的项目列表,可以找到项目开发点子。


  • 知乎—有哪些小的 C 语言项目(大概几千行)适合个人开发?
这同样是知乎上的一个问题,里面分享了一些不错的项目点子,可以练手开发。

三、C语言笔记文章整理
学完基础、做完项目之后,就会有各种问题,这个时候就需要学习笔记啦,或自己总结,或看别人的总结都可以。网上有很多C语言学习的笔记,但是个人收藏的并不是那么多,所以把我收藏的几篇文章分享整理出来,希望对你也有所启发和帮助。

  • C 语言中的指针和内存泄漏
  • 如何写出优美的 C 代码
  • C语言的整型溢出问题 | 酷 壳 - CoolShell.cn
  • 易被遗忘的C/C++要点总结
  • C/C++的mem函数和strcpy函数的区别和应用
  • C语言的变量作用域及头文件
  • 10个经典的C语言面试基础算法及代码
四、其他资源

再整理一些资源,零七碎八的,我想对于学习C语言的过程中会很有帮助的。

  • awesome-c(英文)、awesome-c-cn(中文版)
  • 源码阅读--十个C开源项目
  • 一千行以下有哪些值得学习的小型开源项目? - 互联网 - 知乎
  • 值得推荐的C/C++框架和库
  • C 与 C++ 的真正区别在哪里?
  • 初学者的编程自学指南
  • 免费学习编程的10个好工具
  • 11款学习编程的好玩的浏览器游戏(译)
  • 每个程序员都应该收藏的算法复杂度速查表
  • 谷歌推荐的计算机科学学习路线
  • Standard C语言标准函数库速查 (Cheat Sheet)
  • 高质量C++/C编程指南
  • 个人总结的一些C/C++编码规范
  • C语言图文入门教程(英文)
  • 大量 C 语言学习资源(英文)
  • Google 和 Baidu 常用的搜索技巧(程序员)
嗯,以上就是我整理的C语言学习资源,整理的顺序也是我推荐的学习顺序,先学习基础理论,再多动手开发项目练手,然后总结学习内容或者查看其它人的学习笔记以解决自己的疑惑或问题,最后多看看其它相关资源。
最后一句话:多动手,多动手,多动手,多动手……
来源: 作者: 林梓 链接:https://zhuanlan.zhihu.com/p/23677249
最近很多同学问我大厂面试的核心知识点,东哥熬夜整理出来了9大核心知识点,需要的自取:
2023腾讯字节阿里美团等一二线互联网大厂真实面经!另外,我当初在准备各大公司技术笔试的时候刷了大量的算法题,其中就是参考了一本谷歌大神的LeetCode刷题笔记,帮我整理了解题思路,归纳了出刷题方法,非常不出错,转给需要的同学:
谷歌高级研发工程师出品!支持Java、C++、Go三种语言的Leetcode刷题笔记~最后给大家介绍一份计算机经典书籍,送大家一份硬核书籍资源:读大学跟工作期间,我买了很多书,大部分是一些技术书籍,也收集了这些书籍的电子版,都在这里,现在免费share给大家,包括了计算机类常用电子书,包括C,C++,Java,Python,Java,Linux,Go等,希望大家能认真阅读。点击下方链接直达获取:
计算机经典必读书单(含下载方式)​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487238&idx=1&sn=c63594d794bed494ff91bebd4c8de37c&chksm=fdb3f1d8cac478ce0bb20b69a930567c8790e1c3fe4629aacb805a5c2ac9f39035772855738e#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487238&idx=1&sn=c63594d794bed494ff91bebd4c8de37c&chksm=fdb3f1d8cac478ce0bb20b69a930567c8790e1c3fe4629aacb805a5c2ac9f39035772855738e#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487238&idx=1&sn=c63594d794bed494ff91bebd4c8de37c&chksm=fdb3f1d8cac478ce0bb20b69a930567c8790e1c3fe4629aacb805a5c2ac9f39035772855738e#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487238&idx=1&sn=c63594d794bed494ff91bebd4c8de37c&chksm=fdb3f1d8cac478ce0bb20b69a930567c8790e1c3fe4629aacb805a5c2ac9f39035772855738e#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487238&idx=1&sn=c63594d794bed494ff91bebd4c8de37c&chksm=fdb3f1d8cac478ce0bb20b69a930567c8790e1c3fe4629aacb805a5c2ac9f39035772855738e#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487238&idx=1&sn=c63594d794bed494ff91bebd4c8de37c&chksm=fdb3f1d8cac478ce0bb20b69a930567c8790e1c3fe4629aacb805a5c2ac9f39035772855738e#rd码字不易,硬核码字更难,希望大家不要吝啬自己的鼓励,给我 :
@码农出击
一个点赞,鼓励下我!

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则