程序员

操作系统发展史

北城以北 提交于 2019-11-30 09:24:09
一、手工操作——穿孔卡片 1946年第一台计算机诞生--20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。 手工操作方式两个特点: 用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。 CPU 等待手工操作。CPU的利用不充分。 20世纪50年代后期,出现 人机矛盾 。:手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率(使资源利用率降为百分之几,甚至更低),不能容忍。唯一的解决办法:只有摆脱人的手工操作,实现作业的自动过渡。这样就出现了成 批处理 。 二、批处理——磁带存储 批处理系统:加载在计算机上的一个 系统软件 ,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)。 2.1 联机批处理系统 主机与输入机之间增加一个存储设备——磁带,在运行于主机上的监督程序的自动控制下,计算机可自动完成:成批地把输入机上的用户作业读入磁带,依次把磁带上的用户作业读入主机内存并执行并把计算结果向输出机输出。完成了上一批作业后

好书推荐.Logic.<<程序员的数学 >>

一曲冷凌霜 提交于 2019-11-30 07:50:35
图书封面: 书籍简介: 1.本书面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维,读者无需精通编程,也无需精通数学,只需具备四则运算和乘方等基础知识,就可以阅读本书 书籍目录: 第1章 0故事--无即是有 第2章 逻辑--真与假的二元世界 第3章 余数--周期性和分组 第4章 数学归纳法--如何征服无穷数列 第5章 排列组合--解决计数问题的方法 第6章 递归--自己定义自己 第7章 指数爆炸--如何解决复杂问题 第8章 不可解问题--不可解的数、无法编写的程序 第9章 什么是程序员的数学--总结篇 附录数据: https://github.com/PyFansLi/XmReadBooks/tree/master/%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84%E6%95%B0%E5%AD%A6 来源: oschina 链接: https://my.oschina.net/u/2612057/blog/689225

程序员的选择

自作多情 提交于 2019-11-30 07:17:44
程序员的15种选择 前端程序员 后端程序员 全栈工程师 运维工程师 移动端开发工程师 自由职业程序员 测试工程师 图像处理工程师 游戏开发工程师 交互体验工程师 量化交易工程师 数据科学家& 数据工程师 研究型工程师 创业公司程序员 持续学习程序员 来源: https://www.cnblogs.com/huameixiao/p/11571598.html

程序员到底要不要接外包?

若如初见. 提交于 2019-11-30 07:07:21
之前写过一篇文章,题目叫做《 窝在二线城市很难受,要杀回一线城市吗 》,里面提到程序员接外包这件事,于是很多小伙伴就私下问我: 二哥,我也想接外包,但不知道去哪里接,能介绍一些吗? 其实接外包最直接的方式,就是熟人介绍了。完全没有什么秘密,天底下做生意只有一个道理:先从熟人下手(真相了,忍住别笑)。 针对接外包这件事,褒贬不一。那到底要不要接外包呢?大家不妨搬个小板凳,顺带拿包瓜子,来听听我是怎么看待这件事的。 01、副业赚钱的方式 副业赚钱的方式除了接外包,还有很多,有些容易操作,有些需要一些技巧。我只说一些自己做过的,并且持续在做的,这些大家都可以去尝试,没有任何难度,唯一需要的就是坚持。 1)分享返佣 第一个竟然是分享返佣,是不是有点意外,有点吃惊?这个方式估计大家在朋友圈没少见到过,估计 90% 的人还操作过,非常具有普适性。我来模拟一下这个过程。 老王新出了一门课程,名叫《Java 自学指北》,为了这个课程,老王是呕心沥血啊。怀着激动的心情,老王就把这门课分享到了朋友圈。 好友老马看到了。为了两人伟大的友谊,老马不仅购买支持了一把,还把课程转发到了朋友圈,此时海报上的开头多了六个醒目的大字:“老王倾力推荐”。 老马的粉丝小二看到了,心想老马推荐的课一定错不了,于是就掏 66 元购买了。与此同时,老马的微信上收到了一条通知:小二通过您的分享购买了「Java 自学指北」

程序员谈薪指北

给你一囗甜甜゛ 提交于 2019-11-30 06:35:17
大家都知道,程序员这个群体,特别容易出现同工不同酬的现象。很多时候,我们通过了公司的层层筛选,然后和hr要了满意的工资,兴高采烈地去入职后,突然有一天通过小道消息得知,某个同事级别和你一样,但是工资比你多了几千,估计你立马开心不起来了。 其实这是正常现象,这也是为什么几乎所有公司都不允许谈论工资。如果大家都公开待遇了,吃亏的那部分人还能好好干活嘛。一般来说,同一个公司,员工工资的差距主要由定级来决定,你技术好定的级别高,那待遇就高,这合情合理。但是考虑一种情况,在大家技术和定级都一样的情况下,每个人的待遇也不尽相同,有的高,有的低。问题来了,为什么会出现这种现象?如何尽量把工资往高的要呢?下面我就和大家聊聊这两个问题。 先说为什么会这样。在主流互联网公司中,每个级别都是有待遇范围的,比如一个公司,假设它有一个级别叫T4,待遇范围是15-20k。这个范围就是给我们谈的,如果谈的好,最高可以给你20k,如果谈不好,那就是15k。可以看到中间有5k的差距,级别越高,这个差距就会越大,大家的待遇波动也就越大。 如何在谈薪过程中拿到高薪,下面我就结合自己的经验和大家谈一谈。 首先,面试前要做足功课。自己的技术在行业内大概是个什么状态,对应到目标公司大概是个什么级别,这两个问题要搞清楚。知道了这些,还需要知道在目标公司里,这个级别的待遇范围是多少。有了这些信息,再结合你内心的期望值

软件工程第三次作业——关于软件质量保障初探

给你一囗甜甜゛ 提交于 2019-11-30 06:26:10
一、对于软件质量保障的体会 1.通过对软件质量保障这一章及相关参考文献的阅读,首先我认为软件质量保障是一项十分重要的工作,软件就像建筑一样没有质量保障一切都是空谈。然而软件质量保障工作就是软件团队为了让软件达到事先定义的质量标准而进行的所有活动,包括测试工作。只有有了良好的软件保障工作才能更好的确保软件质量,然而软件质量保障工作应该怎样做才能更佳合理,又是一直存在着很大的争议。 2.什么是软件的质量?教材中给出 ,软件质量=程序质量+软件工程质量;那么在好的软件在上线前即使经过在精密的测试,在正式上线时还是会一些Bug有些Bug十分影响用户体验,就拿我个人常接触的游戏来说,一般一个新游戏游戏在上线当天服务器都会瘫痪,这种现象是游戏运行商的饥饿营销?还是游戏上线前工作人员对用户和数据的估算失误导致服务器崩溃。我之前玩过的一款游戏刚上线时最大的问题就是特别卡以及优化做的非常差,人物动作就像做了慢放一样,而且有时在游戏中获得的物品还会莫名的消失,那么我们有专业的QA和测试人员如果连软件的运行流畅都确保不了那这些测试人员存在的意义又是什么呢? 3.QA与Test,我认为QA与Test的工作要高效结合起来,既然Test做了程序Bug的测试,那么QA又何必重复Test做过的工作且这类工作可以使用工具自动化进行。我认为QA应该更加注重软件的用户体验,和可操作性,这些是自动化工具所做不到的

如何提高程序员的键盘使用效率?

纵饮孤独 提交于 2019-11-30 06:22:53
如果问道:大家谁会使用键盘?我相信大家一笑置之。若要是问道谁会高效的使用键盘,大多数朋友应该都会自己在心里好好的掂量一下。 键盘作为一名合格的程序员整天与之打交道的工具,做到熟悉它并高效的使用它应该是我们每一个码农义不容辞的责任。针对如何提高自己对键盘的认知并将其运用到学习,工作当中。提出一点个人看法,如果有错误或不同的见解,希望各位批评指正。 对键位的熟知 学习、工作性质的要求我们必须熟知一些大众所不经常使用的键位。总结如下: 1 键位 键位注释 2 ! 常用于类C语言里面的否定条件。 3 4 @ 常用于电子邮件。 5 6 # 常用于脚本语言的注释。 7 8 $ 常用于bash脚本里面的变量引用,或者正则表达式中表示行尾。 9 10 % 常用于编程语言中整数取模。 11 12 ^ 某些语言中用于表示指数,或者在正则表达式中表示行首,或者枚举中表示逆操作,[^b]表示除了b之外所有字符。 13 14 &, 编程语言中单&用作为位与,双&&用于表示条件与,C语言中也作为单目操作符取地址,C++中作为引用类型标记。 15 16 * 编程语言中表示乘号,或者对指针取值。 17 18 _ 很多语言里面用于变量名单词连接,python和golang中可以单独用于做占位符。 19 20 + 加法,连字符。 21 22 = 赋值操作中必然会有等号。 23 24 { } 常用于组织语句块。 25

如何提高程序员的键盘使用效率?

痞子三分冷 提交于 2019-11-30 06:21:46
程序员该如何提高自己的键盘使用效率呢?我觉得有以下几点是值得注意的。 1.键盘化你最常用的工具,编程时始终做到只用键盘 以eclipse为例有以下常用快捷键: Ctrl+1 快速修复 Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行 Ctrl+Alt+↑ 复制当前行到上一行 Alt+↓ 当前行和下面一行交互位置 Alt+↑ 当前行和上面一行交互位置 Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面 Alt+Enter 显示当前选择资源的属性 Shift+Enter 在当前行的下一行插入空行 Shift+Ctrl+Enter 在当前行插入空行 Ctrl+Q 定位到最后编辑的地方 Ctrl+L 定位在某行 Ctrl+M 最大化当前的Edit或View Ctrl+/ 注释当前行,再按则取消注释 Ctrl+O 快速显示 OutLine Ctrl+T 快速显示当前类的继承结构 Ctrl+W 关闭当前Editer Ctrl+K 参照选中的Word快速定位到下一个 Ctrl+E 快速显示当前Editer的下拉列表 Ctrl+Space 代码助手完成一些代码的插入 Ctrl+Shift+F 格式化当前代码 Ctrl+Shift+P 定位到对于的匹配符 Ctrl+Shift+↑ 转至上一个成员 Ctrl+Shift+↓ 转至下一个成员 F3 打开声明 Ctrl+O

如何提高程序员使用键盘的效率

╄→尐↘猪︶ㄣ 提交于 2019-11-30 06:14:41
一.打字指法 要提高使用键盘的效率,打字时使用一套合适的指法是很重要的,由于手指键盘的差异,每个人所适合的打字指法会有些许差异。 如果你觉得自己打字慢,容易出错,这里有一套公认的适合大部分人的标准键盘指法你可以参考一下。 首先是打字前的手指放置位置,如上面的标准键位分布的分配图所示,即让你的左手食指放在字母F上,要注意F键上有一个小凸起, 你可以据此摸一下就能找到f的位置,右手食指放在字母J上,J同样也有一个小凸起,然后将四指并列对齐分别放在相邻的键钮上。 其次,开始打字后,你的每个手的四个手指就要并列对齐并且同上同下,无论是你的左手还是右手,都要遵从“左高右低”的方式上下 移动。举例来说就是左手的食指负责4 R F V 一条线,其他手指负责对应的一条斜线。 如果,之前以用的不是这种方法,可以尝试一下,多练习练习。 二.快捷键 经常使用快捷键可以极大地提高键盘的使用效率,下面举一些windows下部分常用快捷键,还没用过的,可以尝试着多用用。 CTRL+SHIFT+ESC 或 CTRL+ALT+DELETE打开任务管理器 DELETE删除被选中的项目,如果是文件,将被放入回收站 SHIFT+DELETE 删除被选中的项目,如果是文件,将被直接删除而不是放入回收站 CTRL+SHIFT+N 新建一个新的文件夹 CTRL+A 全选文件夹内的文件 CTRL+P 打印 CTRL+S