分类:
总体大致分为以下几类:
A.教材上的知识
这部分内容来自计算机专业的课程教材。也有可能会涉及一部分来自其他相关专业或者相关课程的内容。
B.编程语言
每一个程序员只有在会使用一门语言的情况下才有可能从事开发工作,所以学习并掌握一门语言是最低要求了。
C.SDK
光有一门语言是不够的,从事任何实际的软件开发都需要一个类库或者开发包才可以完成。比如C语言中的库函数,C#中的.NetFramework类库,Windows的API等等就属于这个范畴。这方面的资源有个平台DevStore可以关注下,收录了很多的sdk服务配置过程评测,直接搜索就可以了。
D.开发工具
以如今的情况来说,没有开发工具理论上也是可以开发软件的,但效率就是一个问题,所以掌握并使用一个开发工具完成开发任务应该也是一个最低要求。
E.领域知识
软件总有用户,于是开发这些用户使用的软件,那么程序员就需要了解用户所在行业的知识,至少需要知道一些基本的必须的知识。还有一部分的内容也划分为领域知识,比如从事Photoshop这类软件的开发那么图形相关的知识就必须了解一些,从事工控软件的开发,那么对控制方面的知识也要有所了解。
万事开头难
学习写代码最难的就是开始。
试想一下你要学习的第一门编程语言。你首先要了解它的语法和格式。你还得理解值、类型、操作符、控制流、函数、高阶函数、作用域、闭包、递归等等……
这就好像是学杂耍——一上来就让你耍18颗球一样。
最早我用了好几个礼拜才理解了闭包到底是什么玩意儿。我读文档的时候感觉我理解了,当我准备应用一个闭包时,就又不知所措了。
这是很普遍的,作为一名老师我了解到:想要理解一个新的概念,往往需要你尝试一次、两次甚至更多。
但只要一个人坚持的足够久,总会有豁然开朗的时候。就像当我读完了无数有关闭包的博文、StackOverflow和文档之后的体验。
每一段我阅读过的材料都让我有了一些新的理解,直到最后我完全理解了闭包。
理解闭包对我来说意义深远,因为成就感鼓励了我继续前行,后来我甚至自己写了一篇解读闭包的博文。
学习是过程,不是结果
如果我们把“学习”视作我们必须完成的一件事,我们就会急功近利。这样我们才能赶快完成好在课余时间去玩玩别的。
只可惜学海无涯,学无止境。要是你把学习当作一场赛跑,你永远也到不了终点,反而会带来失落和失望。
相反,如果你把学习理解为一种过程,你就能体会和感受到一点一滴的进步,这也将鼓励你继续前行。
学习就好像锻炼一样。太剧烈了会受伤,你的伤痛会一直持续,甚至恢复之后你也忘却不了那种痛苦。以后每次运动的时候你都会记起。除非你每次的痛苦都能得到缓解,你慢慢的习惯和适应了它。最后你获得了强健的体魄和有型的身材,这也将鼓励你继续锻炼下去
操作系统需要掌握的东西只有两个:
1.五大管理的基本方法,尤其是涉及内存管理的策略
2.线程或者进程的同步技术
操作系统是复杂的,但是教材中介绍的这些管理方法相对来说是简单易懂很多了。这一难一简之间体现了基本知识的重要性,基本知识在实际开发中的应用的广泛性。好好的体会,就可以明白用简单方法解决复杂问题的技巧。线程进程的同步,这个就不用多说了,大家都知道它的作用,如果实在不想掌握的话那我也非常愿意相信你的理由一定是充分的,否则你绝对不会那么做。
最后我想强调的是,无论你如何看待这些知识:可能觉的没用,可能觉的太难,可能是不感兴趣,但是如果你想做程序员的话,那么请你务必最大可能牢固,最大可能熟练的掌握它。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/192834.html