当前位置 博文首页 > IT技术专栏:非科班零基础转行计算机

    IT技术专栏:非科班零基础转行计算机

    作者:[db:作者] 时间:2021-07-31 09:06

    博主先说一下自身条件:
    211本硕,机械专业,因兴趣驱动学习计算机相关知识8个月,目前已经可以用python语言进行web后端开发,熟悉计算机网络、操作系统、计算机组成原理、算法等cs专业知识。
    零基础自学要把握住一个原则:编程语言与相应的类库、框架都只是工具,cs基础才是真正的原理。只有理解了原理之后,才可能去学习各种类库,并进一步学习框架。所以cs的很多知识是相互交错的,学习时建议几个方面一起开始,不要沉迷GUI这种东西,也不要纠结编程语言的选择。
    下面说学习路线:
    1、c语言。对于编程语言的争论从来都没有停息过。但是个人认为只有学习了c语言,掌握了指针、结构体、宏这些东西之后,才有可能进一步学习操作系统以及linux内核函数调用。这里推荐的学习资料:k&r的c语言教程,网易云课堂的老九学堂c语言课程(免费)。
    2、数据结构。学完c语言之后,其实编程基础还是十分薄弱的。这里需要学习数据结构与算法进行进一步的强化。这里推荐数据结构与算法分析–C语言描述这本书,很不错。
    3、操作系统。推荐csapp、linux命令行与shell脚本编程大全。csapp不需要多讲,中文版的翻译还是很不错的,很值得一读。当然读的时候很可能会卡住。这时候不要气馁,可以学学别的调节一下。linux命令行的话,推荐装centos7双操作系统进行实战,命令行的书照着学就行。中间有些涉及到硬盘的操作可以先跳过,后续用到了再学。
    4、python语言。这里可能会有朋友问为什么不是java。java当初也学过,但个人感觉java是编译型、静态类型语言,而且面向对象的程度也要强于python,写个helloworld都要定义class,一般适合组织大型项目。但python类库丰富,而且是解释型语言,设计哲学也是为了优雅与快速。这些特性个人感觉十分适合小项目的快速开发。学的时候顺便看看html的相关的东西比如文档,或者各种视频就可以开发一个爬虫了。当然也要懂一点http协议,这个配合网络一起看。
    5、计算机网络。推荐自顶向下那本书,stevens的真的很难,不适合入门。这里差不多用python写个socket,然后wireshark或者浏览器F12抓个包看一下就差不多了。建议还是反复读,并且配合项目实战,不然真的记不住。
    6、计算机组成原理。推荐编码那本书,难得的佳作。
    7、到这里基本上有很多可以选择的方向了,比如机器学习,web前后端框架,或者linux内核,算法,数据库,也可以学java、c++。推荐书籍:数据库系统概念,或者算法导论与leetcode进一步学习高级数据结构与算法,stevens的apue来学习linux内核函数调用。如果网站开发的话,javascript必须要会一点,后端的话推荐django吧。java的话推荐java核心技术吧,比较友好,版本也很新。到这里已经可以跟企业合作进行项目开发了,也可以根据这些进行以后方向的选择。
    本博客仅个人观点,欢迎留言指正

    cs