那些大佬是怎么入门编程的

			我在入门计算机时候

			 走了很多弯路 
 
			 这是我太上会长share过的一篇文章
				
			可操作性很强
				
			毕竟不是谁都是轮子哥
 
			 现在重新来看 感悟很多 
  
			 我找到了文章出处  并注明在文末
  • 学习编程, 既要考虑诗和远方, 也要考虑眼前的苟且。

    • 每年像你这样的学生不计其数,大一刚进校,一门C语言,学校发一本垃圾C语言教材,按时上课,老师在那里念念PPT,讲讲浮点型变量,malloc啥的,你若认真听了,那你可能懂了,但是发现不会写,你若没听,玩手机了,你是既不懂,也不会写,上来上去,蒙在鼓里的人出不来,水平就一直这样,龟速增长。

    • 有的学生学的一头雾水,开始怀疑自己,准备转专业,放弃计算机,有的学生学懂了,写程序一直报错,开始怀疑自己,有的学生觉得教材写得不好,去书店转了一圈,买了三四本C语言的书,但最后厚厚的灰尘盖在了书上,再也没翻过。这三种学生,如果继续这样,最后都要凉凉。

    • 马克思教给我们要具体问题具体分析,那我今天就来分析一下,计算机专业的学生,到底应该怎么学计算机,才能效果最好,进步最快。

    • 如果你要学习物理,我推荐你顺着物理的发展史学习,先学习牛顿经典物理,再学习热力学,电磁学这些不那么经典的,再学习相对论,量子力学这种彻底推翻经典物理的,再学习量子电动力学这种硬核的,比较前沿的,整个学习过程,是自底向上。但是学习计算机,真的适合这样吗?

    • 先学习电路,冯诺依曼结构,造一台计算机?然后再用汇编写个小操作系统?写个小编译器?最后一步一步往上走,最后开始用高级语言编程?
      你要是这么学,必然爆炸。计算机的学习最好应该是自顶向下。
      这个顶,顶到什么程度?
      有人说,C语言就是高级语言了,从C语言开始学就好了。

    • 但是如果让我教计算机,我第一节课教学生们的,绝对不是C语言,而是教大家如何使用Github,Stackoverflow,告诉世界上正在发生什么,程序员之间是如何协作的,告诉你在这个大社区,你可以读到这个世界最牛逼的程序员写的代码。

    • 我还要告诉大家如何使用云服务,告诉大家可以买一个一个月十块钱的学生服务器,自己做点有趣的事,我还要推荐大家去用Visual Studio
      Code,而不是简单粗暴的在机房装一个VC6,或者CodeBlocks,美其名曰,“我们当年用记事本还XXXX,现在的学生被惯坏了”这种话。
      如果可以,我还会教同学们如何科学上网,让英文编程环境成为习惯,让遇到问题google,而不是百度成为习惯,让大家在第一节课上完,就能进入这个世界编程大社区,哪怕什么都不懂,你也能保证所在的社区,就是世界程序员的大家庭当你进入Github,看着各种有趣的项目的时候,相信我,你的视野就会在此为起点,快速打开,不断增长,进入一个良性循环。

    • 而当刚上大一的学生第一次进入github时候,被眼前的各种没听过,没见过,但感觉很厉害的项目所吸引的时候,当他两眼冒光的时候,我就知道,他这四年,成了。
      有人会这样说我:“Github还用教?刚才你说的那些学生,如果能被C语言的困难打倒,那他也不适合做程序员,转行正好。”像这种话,我想说,在很多时候,佛和魔仅在一念之间,你在最开始的时候点到了,给了他引导,他以后可能会马上进入一个正反馈状态,如果你没点到,马上可能就负反馈了。

    • 我一直觉得国内的计算机专业的学生很可怜。
      当VScode表现越来越优异的时候,学生们还在机房用着VC6,看着密密麻麻的报错无可奈何。

    • 当Google搜索可以精准定位你的问题的时候,学生们还在为百度搜索出来乱七八糟的搜索结果无可奈何。
      你用百度,用中文搜索,你连stackoverflow都搜不出来。
      但是你可以去问问,做一个调查,有多少大一结束的学生,没上过stackoverflow,不知道怎么在github里提交issue和pull
      request,你统计一下,看看这个比例有多大?
      你再统计一下有多少比例的大一结束的学生没用过google,并且对其用不了的原因不太清楚?视野打不开,一切都完了。

    • 有人说,刚开始直接学了python这种很简单的高级语言,以后遇到C肯定被吓跑了。

    • 事实恰恰相反,在你了解到python的性能问题时,你才会了解python是解释型语言,C是编程型语言,你才会思考为什么C更快,进而,如果需要用C,去学C。

    • 在你在编程语言中涉及到了“原子性”,“同步”,“异步”,“线程”,“进程”,“内存分配“等概念的时候,你会自然而然地产生很多疑问,进而去学习操作系统,在学操作系统的过程中,你之前的一系列疑问逐渐被解决,这个过程是很爽的。

    • 当你发现某个算法,人家的实现比你快很多的时候,你会自然地去思考,为什么我的程序运行这么慢,然后发现对方用的数据结构与你不同,甚至用了一些算法,比如动态规划等,这也会驱使你去学习算法,学习数据结构。

    • 有了需求和疑问,再去学,这样一个过程,是学习的金钥匙。

  • 你指望学生自己打开视野,但是那些自己打不开,需要你帮忙开下门的呢? 在你的视野被打开之后,我还希望你懂这些: 比如你学C语言,与其去做那些OJ题,不如在github上找个C语言项目,然后阅读,理解,修改,模仿。

  • 个人认为在知识爆炸的年代,两不要: 学个啥都要买本教材,试图线性地,从头读到尾。 (真实情况:经典教材都能下载到免费pdf,语言,框架,文档往往已经写的很好,而且最新,github上有无数优质开源学习资源) 不读优质代码,不参考最佳实践,啥都要自己从头开始搞。

  • 三个要: 要读文档,英文文档 做知识输出,用文字总结自己的学习内容。

  • 多用命令行 我曾听过一种论调,说程序员不会用命令行也没关系。

  • 我想说的是,第一,这个世界没有那么美好,什么都要给你做一个图形界面,第二,对于命令复杂,命令多的工具,就算做出来图形界面,往往比命令行更难用,而且命令行可以用命令行脚本进行批文件自动化执行。

  • 两个原则: 有问题,先文档,再stackoverflow,再技术文章 要用实例驱动学习,不要说你会什么,要说你做了什么 我希望所有程序员明白一个事实是,”我会什么”这句话,其实是最没用,最虚飘飘的东西,你说你会java,python,c,rust,go,然后呢?你怎么证明?写个hello world?会用api?

  • 但是你要说,XX著名项目作者,那你就牛了,我也不需要让你证明什么了。

作者:牛岱     搬运工:szuwaterbrother
发布了60 篇原创文章 · 获赞 18 · 访问量 5251

猜你喜欢

转载自blog.csdn.net/szuwaterbrother/article/details/105068822
今日推荐