作为码农的我们,你是否想过今后的路该怎么走、如何发展、技术怎样提高?其实这也是我一直在思考的问题。下面就此问题,分享下我的看法。因为我阅历有限,有什么说的不对的,大家轻喷!

一、程序员应该打好基础
      1.    现在开发工具众多、语言泛滥,经常听人说“不学C,C++神马都是浮云”、“C,C++才是万王之王”,C,C++就真比PHP、Lua、AS、JAVA牛吗?  
      我一哥们学java+android还是从黑马程序员培训出来的,月薪就8K多了?难道他学的是C,C++?
      (看到这里肯定很多人好奇了,这么牛?培训出来真的这高工资?骗人的把?这我也不多说,推荐个比较经典java基础教程给你们看看,感兴趣的可以自己看下,看过之后你就会明白。)

2. 有些人会说大学学的东西是肤浅的,是没有用的。想想看,在学校的时候我也经常这么想,但出来后才知道这些东西有多么重要。不过大学学得再扎实,出来后仍然是需要再温习过的。因为上学毕竟实践少,所学不能所用,计算机是个应用驱动的学科。我们再来看“计算机考研”专业课考的什么(这里并不是说考研就一定 好),“数据结构”、“计算机组成原理”、“操作系统”、“计算机网络”。“数据结构”、“计算机组成原理”这两门课程摆在前面,可见其重要性,分别是软 件和硬件最重要的两门基础课。我不相信不学好“数据结构”能够把性能优化做得很好。若说自己学好了,能不看书、不查资料,说出“B+树、B-数的应用和区 别”、“KMP为什么能快速匹配字符串”、“快速排序在什么情况会蜕变为o(n^2)”吗?

我也不相信不学透“计算机组成原理”能搞通汇编和内核,不知道“CPU和I/O的交互过程”、“指令的执行通路”、“CPU运算器的工作原理”,如何写出 高效的汇编代码?如何弄清楚内核中“中断”、“GDT”、“IDT”这些概念,实模式保护模式如何切换?“操作系统”和“计算机网络”则是两门非常重要的 支撑学科,信号量为什么是最快的同步方式、线程调度比进程调度快、为什么要做内存缓冲池,这些都是来自“操作系统”。而“计算机网络”主要是讲述 TCP/IP的,为什么德问“对于一个具有几百万粉丝的用户,数据如何实时投递到所有用户?”要使用多播的方式解决、“如何计算出C/S单向的延迟?”发 送ICMP包测量,这些都是来自它。

我们大学学的课程经过多少国内外知名学者专家研究过的,所以计算机理论课是基础,是解决问题的根源。“算法分析与设计”是“数据结构”的延 伸,Divide Conque、贪心、动态规划对于程序算法的优化有很大的指导意义。同样,“计算机体系结构”也是“计算机组成原理”的拓展。其次,“编译原理”、“数据 库”、“软件工程”等学科的重要性也不言自白。

  二、实践、理论、再实践
  作为程序员的我们,满足于实现一个程序功能的快感,得意于从网上下载别人的代码加到自己的程序中,陶醉于自己写了上百万行代码。有想过自己是在创造吗,还是装配车间的技术工人。日趋成熟的开发工具,逐步把有丰富想象力的我们沦为奴隶。从网上下载个压缩库就用着、成熟的加密算法直接使了、包装好的类库就 include。为何不探究其算法实现、性能优化、底层机制。有人会说很“难”啊!究竟是难,还是掌握的知识不够,还是理论没有达到一定高度。

  很难想象不学习“计算机图形学”,去做3D项目客户端图形算法的后果;不研究“数据挖掘”去分析大量客户数据会做得多好;不攻读“概率论”、“线性代 数”、“人工智能”去设计AI有多么智能。很多人说,这些东西游戏用不着啊,学了有什么用?我承认初学编程时,这些东西只是高谈阔论。若我们工作了n年后,还只是熟练地做些coding,和刚毕业的学生有什么区别。编程工具只是“工具”而已,别忘记了我们是改变世界的程序员,不提高理论,何以创新、公司 拿什么优势和别人去竞争。

“研发”是“研究”和“开发”两大块,只做开发,不做研究,对个人和公司都只是短期目标, 当然理论提高了,是需要投产的,不然理论很快沦为“空想社会主义”,公司白花银子养活研究部门。“实践、理论、再实践”,符合马克思主义哲学思想,也是计 算机学科的价值体现。真正的计算机科学家不是只搞理论的,理论是要应用到产品中的。工程师也不是只做开发不做研究的,是要应用创新,理论微创新。计算机科学家相比于程序员,主要是数学功底相当深厚,所以他们能在理论上有突破。

  三、技术、管理双路线。
       1. “游戏能玩多深,技术就能做多深”,这句话说得很好。只因为我们执着,所以在游戏中能攻破一层层难关,凌晨2、3点还能练级打装备。若能走回正道,做技术就想玩游戏一样,技术做不深才怪呢。走技术路线的人,一定是对技术痴迷的人。但要走得长远,我们需要把技术做穿、做透。如何做穿、做透?计算机底层(C、 汇编、逆向工程、驱动、内核)、计算机算法(网格计算、音视屏压缩、语音识别…)、架构(软件工程、跨平台、多语言等)都要有涉及。只有我们掌握了这些,才能做到“看问题看到本质”、“思想有穿透力”。这些才是最宝贵的,需要沉淀下来,仅仅靠做项目、写代码是无法达到的。

2. 对于走管理路线的人,是具有“完成任务为第一要务”、“有计划、善于管理时间”、“善于与人打交道”性格特点的人, 重要的是“综合素质”,而不是“专攻”。但是这些都是可以改变的,很多公司也会选择技术做得最优秀的人做管理。由于我是一个技术痴迷狂,管理这块,我没有发言权,不做多解释。

  四、心态。
      1. 人活在世界上在于奉献而不是索取,帮助别人是一件很快乐的事情, 作为程序员的我们心胸要开阔些,低调些、虚心些,公司的李老师、老张就是一个心胸很宽广、低调的人,值得学习,三人行必有我师,我们熟悉的只是自己的这一块、这个领域,不懂的地方要虚心向别人请教, 我见过浮躁、过于自信的人,也见过做人低调的人,发展结果完全不同。

2. 乐于分享,支持开源。这是一个很需要心胸、气度的事,也是决定个人、公司发展快慢的重要砝码。技术发展日新月异,总守着自己手中的那点技术,得不到长足的发展。中国两千年的封建历史、门户关闭政策还不够惨痛吗?“技术是交流和玩出来的”,这是锐安龙哥告诉我的。他也是一个大黑客、正义的黑客,开源是黑客的 一项重要精神,所以黑客能引领技术。

  3. 每日学习。很多人认为毕业了就不用学习了,或者不用那么那么地学习了。这是一个非常非常错误的思想,无论何时何地都要把自己当成菜鸟、应届生地去学习。书本是学习的一个捷径,Google、百度解决问题是快,但不是系统化地学习。看书要了解作者背后的知识底蕴,想一想这个问题得解决作者是怎么想到的,这样 比单纯解决一个问题更进一层。更重要的是聆听作者的心声,感受大师的心态。最后给大家推荐“黑客与画家”这本书,写得真的很好,老吴不提,我还不知

第二篇
IT更新迭代辣么快,所以学习能力尤为重要。
基础打好了,触类旁通,语言都是想通的,思想是不变的。
比如说操作系统,存储管理的分页分段,虚拟内存什么的,再对照看那些大数据处理算法。这不很类似么?分页分段还提供了一层抽象,让程序员不用关心细节。
童鞋们,没有什么技术是一夜之间冒出来的,没有什么大神是一开始就是大神的,谁不是从孙子过来的,所以要学会站在前人的肩膀上。
现在沸沸扬扬的“云”,你妹,多处理机系统这章,不就是“云”么?至少我是这么看的!
分布式共享存储器(Distributed Shared Memory, DMS)(Li, 1986; Hudak, 1989)。上世纪80年代末期!

我在找工作的过程中发现,很多面试官仅仅局限于他自己的领域,裹足不前,而如果眼光能放宽一点,一些“新技术”其实在多年前的论文中已经出现,一些“新技术”甚至只是某些“旧技术”稍微修改下,换个名字。
以史为镜,可以见兴替!何况现在计算机根本没有什么本质的变革,基础课太重要了。如果真的想做技术,怎么能不把基础课学好呢?
另:一些关键的课程建议购买国外的教材。英文原版的我目前啃不下,我是想一辈子搞技术的,肯定要慢慢啃原版,这样才能慢慢跟上技术的潮流,逆水行舟不进则退啊。英文书翻译过来得等个几年呢。这也是我为什么把英语单独列出来的原因。

待续...

论计算机基础的重要性相关推荐

  1. 中职学校计算机基础的重要性,自学能力论文,关于浅淡培养中职学生计算机自学能力的重要性和方法相关参考文献资料-免费论文范文...

    导读:本文关于自学能力论文范文,可以做为相关论文参考文献,与写作提纲思路参考. [关 键 词] 计算机自学能力:自主学习:学习兴趣 [中图分类号] G712 [文献标志码] A [文章编号] 2096 ...

  2. 计算机基础知识对编程的重要性

    码农和架构师的差别在哪里 从题目看文章,大家的第一想法是本篇文章是一篇讲述计算机基础知识和编程之间的关系,但是为什么开篇是这样的呢?当然这样的开篇并没有多大的意义,唯一的目的就是吸引读者而已. 纵观计 ...

  3. 电脑硬件知识学习_学习计算机基础必读的4本经典入门书籍,自学编程必备书单!...

    点击蓝色"程序员书单"关注我哟 加个"星标",每天带你看好文,读好书! 文/黄小斜 转载请注明出处 新手学习计算机并非易事,作为一个自学编程的过来人,深知打好计 ...

  4. 电脑硬件知识学习_编程入门书籍:大学学习计算机基础必读 5 本经典入门书籍,收藏...

    新手学习计算机并非易事,作为一个自学编程的过来人,深知打好计算机基础的重要性,缺少了坚实的计算机的基础,往往你也难以往上走,即使学了再多高大上的技术,也都是在沙台上筑高楼,缺少根基,摇摇欲坠. 学好计 ...

  5. B站收藏 6.1w !GitHub 标星 3.9k !这门神课拯救了我薄弱的计算机基础

    作者 |  Rocky0429 来源 |  Python空间 注:之前就一直强调计算机基础的重要性,今天给你们搜索了相应的课程 大家好,我是 Rocky0429,一个对计算机基础一无所知的蒟蒻... ...

  6. 关于计算机对大学生的重要性的论文,计算机基础论文,关于大学计算机基础课程对大学生就业的影响相关参考文献资料-免费论文范文...

    导读:本文关于计算机基础论文范文,可以做为相关论文参考文献,与写作提纲思路参考. (长春工业大学人文信息学院 吉林长春 130122) 摘 要:随着信息技术的不断日益发展壮大.计算机技术作为现代科学技 ...

  7. 三 计算机知识的重要性分析,学习计算机基础知识对中专学生的重要性分析

    学习计算机基础知识对中专学生的重要性分析 [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文 ...

  8. 谈计算机知识对学生的作用,浅谈学习计算机基础知识对中专学生的重要性

    [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文可以让中专学生认识到学习计算机基础知识的重 ...

  9. 利用计算机教学的好处,计算机基础课程的重要性

    1.充分利用网络资源和网络渠道 在<论语•雍也>一节中,我国古代伟大的教育家孔子曾经说过"知之者不如好之者,好之者不如乐之者."意思是说学会知识的人不如爱好知识的人,爱 ...

  10. B站收藏6.1w+!这门课拯救你薄弱的计算机基础

    作者 |  Rocky0429 来源 |  Python空间 大家好,我是 Rocky0429,一个对计算机基础一无所知的蒟蒻... 作为一个所谓的计算机科班出身的人来说,特别难为情的是自己的计算机基 ...

最新文章

  1. C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除
  2. php ssd性能影响,SATA SSD有无缓存,是否影响速度性能实例
  3. LINQ 101——分组、Set、转换、Element
  4. 文巾解题 面试题 01.03. URL化
  5. 吞吐量-Corda的故事
  6. 按钮自动居中布局_CSS布局技巧
  7. SyntaxError: Non-UTF-8 code starting with '\xba' in file 错误的解决方法!!
  8. 哥大计算机专业 世界排名,哥伦比亚大学计算机科学硕士排名第16(2020年TFE Times排名)...
  9. 腾讯车联发布TAI3.0:三步实现汽车智能进化,2个月快速上车
  10. 加密解密概述及openssl应用及其创建CA和签发证书的实现
  11. 开放273项AI能力,创建34万模型,汇聚265万开发者,百度大脑的2020成果一览
  12. python 多次匹配_Python学习记录14
  13. ASP.NET的ADO(ActiveX Data Objects)
  14. CNCC2018:[早鸟票]倒计时两周,7000人盛会日程抢先看!
  15. SQL优化--使用内连接(inner join)代替外连接(left join,right join) (转)
  16. 软考初级程序员主要考什么?如何复习?
  17. 普通话测试-短文60篇文章,附带拼音(11-20篇)
  18. i.MX RT1064-EVK开发板中基于LPC4322JET100的Freelink调试电路简介
  19. 1bit 寄存器 coursera
  20. 一组Android机器人素材图片

热门文章

  1. day17-25序列化、python操作CSV/EXCEL/PDF/WORD/PPT文件、爬虫、正则表达式
  2. 修改win10更新服务器,修改win10更新服务器地址
  3. Mysql自增主键用完了怎么办
  4. 以太网网络变压器EMI电流及以太网网络变压器对EMI阻断原理
  5. 清华寒门学子「树洞文」引网友热泪:“自强不息,厚德载物”的践行者
  6. Python语言程序设计基础_实验5 序列型数据_答案_通识教育必修课程_上海师范大学
  7. linux 服务器远程开机,Linux 下实现远程开机
  8. 完全激活office2007
  9. 040 罗尔定理与零点定理、介值定理综合应用;柯西中值定理; 型二( f(n) (ξ) =0 )
  10. 高性能软件系统设计中应该考虑的问题