程序员

梦断代码阅读笔记03

房东的猫 提交于 2020-04-02 09:27:10
2002年秋天,技术工业的过山车停在了令人沮丧的轨道最低点。网络股泡沫刚刚消失。硅谷许多沿街办公园区的停车场都变成了无人地带。技术工业的冰河时代导致大量程序员失业或半待业。相当多的程序员转而投身开源项目,以期维持自身的技能和在外界的露面率,同时挠挠自身的技术之痒。大量的程序员赋闲,孕育了许多新软件。 当人们梦想把软件变成流水线式的工作时,他们常会期盼表追化的插件。但是想要走这条编成乌托邦之路的程序员大多都发现此路不通。因为他们之间不像乐高积木一样相似且不可再分,她们“大小不定,就像不规则的形体,不像乐高积木。”生产出通用构造块式软件包并不容易,这是显而易见的。尽管屡经失败,乐高之梦仍然在现代编程史上投射出长长的影子。对于路上的每一个障碍,一代又一代程序员总能找到借力之法,避免自行开拓之苦。 在电影《侏罗纪公园》里面有一个短镜头,夹在暴龙发狂的场景中间。如果你不是程序员,你可能不会对这个镜头有什么深刻印象。公园里恐龙造反,小姑娘坐在控制室计算机前,尝试打开安全系统。她看了一眼屏幕,喊出声来:“是UNIX系统,我会搞!”至少在接下来的90秒里面,天下太平了。全世界的程序员观众看到这里都会欢呼——不仅因为电影向大学黑客和企业数据中心最喜欢的操作系统致敬,还因为他们自己也曾遇到类似的事件(那些我找到了的时刻)——在那些时刻,我们会有一些灵感、和可以被自己把我的方案。我明白了自己的问题所在

专家解析:程序员到软件架构师培训与认证之路

北城余情 提交于 2020-04-02 07:41:57
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭 软件架构师一般都是具备计算机科学或软件工程的知识,由程序员做起,然后再慢慢发展为架构师的。 软件架构师的培养 软件架构师一般都是具备计算机科学或软件工程的知识,由程序员做起,然后再慢慢发展为架构师的。在国内,很多大学目前还没有设立软件架构的学位课程,虽然IT业界对设计和架构的兴趣日渐高涨,但各学校还无法在课程中增加相应的内容来体现这一趋势。从这个方面来说,学校教育已经远远落后于产业发展。因此,促进和发展软件架构学课程的任务将落在现在的软件架构师身上。目前的软件架构师应该帮助各大院校建立相关课程体系,一旦教育课程建立起来,知识体将不仅通过新毕业生的工作成果来得到扩展,同时也会从适合软件架构的教育研究和出版物中得到扩展。 虽然大学要加强软件架构学课程的建设,但是,软件架构师的成长应该有一个实践的教育过程,并不是简单的学校的理论学习或者通过大型软件公司的认证就能成为合格的软件架构师。除了信息系统综合知识在学校学习外,软件架构师的大部分知识和经验将来自实际开发工作。根据软件架构师的任职条件,一名合格的软件架构师的成长应该经历8年以上的软件项目开发实际工作经验。一般需要经历程序员、软件设计师等阶段,然后再发展成为软件架构师。 当然,并不是每一位程序员经过8年后都可以成长为软件架构师的

程序员这些你必须知道的职场潜规则

China☆狼群 提交于 2020-04-02 05:51:21
一、开门见山 有一天吃午饭,我和我的同事兼好友,一边吃饭一边聊天八卦,说到:有一个部门的领导技术一般,项目上的很多事情问他,他也不知道,不知道为什么能当上经理,难道就是靠着自己在公司的工作年限久? 这个问题后来我思考了好久,也困扰了我好久,有一个阶段,甚至有点讨厌这个人,有项目上的事情问他,也不能很好的解决,不像和某些同事合作起来那么的舒服,谈笑之间就能把事情解决了。 又是一个中午,和我一个年长的朋友一起吃饭,他在一个上市公司做技术总监,我把我的困惑讲给他听,他笑了笑,对我说:很多事情,存在即合理,它既然存在,就一定有它的道理,你可能现在还无法理解。 他又拍了拍我的肩膀告诉我,其实啊,职场上有一些不成文的“潜规则”,很多人掌握了它,职场上游刃有余,升官加爵;有一些人故步自封,不掌握规则,不遵守规则,自然混的不行。听完我顿时豁然开朗。 如果你是初出茅庐的职场新人和已经工作3~5年,工作却一直不如意的职场老鸟,下面的内容可以看一看。 二、初出茅庐 融入新环境 职场新人,是从学生转变到企业员工,企业招应届毕业生的主要原因有如下几个:便宜,听话,能加班,创造力强。 在学校,有老师教;而在企业里,有人教是幸运的,没人教才是正常现象,所以如何快速融入新环境,有如下几点: 1.多问 不要羞于表达,老想着说:“这么简单的问题我能不能问啊,其实你经历的这些东西,你的领导可能都已经经历过”

【随笔】开源之殇

我的未来我决定 提交于 2020-04-01 13:44:24
1 这两天有个 新闻 比较火,一个叫丹尼斯·普什卡列夫的俄罗斯程序员,因为骑车撞人被判 18 个月。骑车撞人可能不是什么大新闻,造成严重后果的,被判刑也无可厚非。 可问题就出在这个撞人的程序员上,他是前端知名开源框架 core-js 的作者。这个库有多知名呢?反正苹果公司在使用,并且 vue 也依赖这个项目。 上图是 core-js 在 npm 的项目截图,可以看到每周有 2600w+ 次的下载量。这个体量可以说是一个前端生态的基础框架了。 说了这么多,我只想表达这个项目真的很重要,有很多很多人每天都在使用。 所以在得知作者被判刑之后引起了很多人的担忧,项目没人维护了,在项目的 github 上的 issues 就有人直接了当的问作者,入狱之后这个项目怎么办。 有人提议作者转移 core-js 的控制权,毕竟他有很长一段时间是没法维护的。甚至还有人建议作者在监狱的图书馆里继续维护这个项目。 总之大多人关心的是这个开源项目未来是否能继续稳定的使用,而不是作者本人以及交通事故的受害者。虽说不上对错,但总感悲凉,人都已经入狱了,还被人催着维护项目。 2 另一件事,部分人可能有些印象,2017 年的年中的时候,有一篇文章在开源界传的很广。帖子的标题叫作 知名公司(努比亚/中兴)拿我的开源软件( XXL-JOB)申请国家知识专利,我该怎么办? 部分内容如下:

白话带你理解什么是编程

旧时模样 提交于 2020-04-01 04:30:29
所谓编程,就是: 让 计算机根据你设定好的 程序 去做事 。 三国演义里,诸葛亮经常给武将一个锦囊,打仗时,这些武将就根据锦囊里面 预先设定好的程序指示去做 ,就可以战无不胜。 诸葛亮就是一个古代程序员, 诸葛亮 编程 给 这些 武将 去执行。 当然, 诸葛亮 这个程序员 让 武将 去做事, 使用 人类语言 , 写在锦囊里面的 纸上。 而我们 程序员 让 计算机 做事, 使用 编程语言 (因为计算机不能直接读懂人类语言), 写在 电脑文件里。 所以,要成为一个程序员, 随心所欲的让计算机 按你的指示办事, 必须掌握好编程语言。 从0开始掌握一门人类语言不是件容易的事情。 回想一下,当你从一个小婴儿开始学习说话,要5年左右,才能比较顺畅和别人交流。 同样从0开始,掌握一门编程语言也不是太容易的事情(否则这个世界的程序员要多好几倍)。 但是经过不断的学习和练习,终于能用编程语言 让 计算机 按照你的设计, 完美的完成一个网站系统、一个游戏软件、一个自动化程序… 那是非常美妙的感觉。 而且还能通过这种设计能力挣钱,成为你的职业,那真是非常美好的事情。 白月黑羽 ,在业余时间创作这个教程,就是 希望成为大家 程序员之路的 启蒙者, 我们会根据大家的意见反馈,不断的更新改进这个教程,欢迎大家提出宝贵的意见。 人类语言有很多种:汉语,英语,法语 等等。 编程语言也有很多种,

可是姑娘,你为什么要编程呢?

丶灬走出姿态 提交于 2020-03-31 16:33:32
  本来你一个姑娘,可以去做一双贴满水晶的blingbling美甲更显十指纤纤,不用担心敲键盘不方便;   可以不时到健身房练练瑜珈来磨练心性,而不是通过看着满屏代码调bug;   可以洗完泡泡浴早早躺下睡个美容觉,而不是深夜赶紧贴上面膜,多少有些自欺欺人地告诉自己,刚才电脑的辐射才不会摧毁皮肤的水当当。   ... ...   可是突然有一天,你开始发现代码这个东西的魔力:   在安安静静码代码,认认真真调代码之后,运行结果展示那一瞬间...功能实现了,那是能上天的一种感受。于是,你开始了从“网络失足女青年”到“勤奋刻苦程序媛”的跨越。   我几乎确定,你想象中程序媛的日常:   是家人视你为改变世界的Suprewoman,从此“别人家的孩子”是路人;   是集领导、同事万千宠爱于一身的“代码小公举”,特别是在大姨妈到访时谁见都怜;   是程序猿们待你如坠落屌丝界的天使,左拥右围,众猩捧月。   然而现实却是家人听闻你的职业后,满脸大写的:   “好好一个姑娘,长得也挺漂亮,做什么程序员?!”   工作时完全没有优待,该写代码写代码,该调bug调bug,该撕逼撕逼;每天混迹在众多男程序员当中,确实还有那么一点儿优越感,但前提是你司并没有多余的钱花在传说中的鼓励师身上。   作为程序媛的你,经常感受着他们不明来历的恶意。   代码写的没他们好,他们说:“到底还是妹子!”

操作系统的简介及发展历程

青春壹個敷衍的年華 提交于 2020-03-31 01:59:43
一、为何要有操作系统? 操作系统本质上是一个应用程序,它的目的是控制硬件,服务软件。现代计算机是一个复杂的系统,如果没有操作系统,程序员开发软件就必 须了解计算机系统的每一个方面,再编写相应的软件控制这些硬件,最后再编写自己的程序。这无疑降低了程序员的开发效率,并且由于现在计算 机是一个复杂的系统,开发人员要完全掌握计算机的每一方面是很困难的,所以操作系统就应运而生。操作系统在硬件和软件之间搭起一座沟通的 桥梁,将复杂的硬件设备虚拟化、简单化,极大地增强了程序员的开发效率。 二 、操作系统的位置 操作系统位于硬件与软件之间,由内核态和用户态两部分组成,它在硬件与软件之间架起了一道桥梁,隐藏了大量I/O设备的接口,给用户 提供一个简洁、实用的系统调用接口。它通过一些抽象化的概念将一些原本复杂的输入输出设备简单化。 三、操作系统的功能 1、隐藏了大量的硬件调用接口,为程序员提供更好的调用硬件资源的方法,通过抽象化的概念将一些原本复杂的输入输出设备简单化。 2、将应用程序对硬件资源的竞态请求有序化,即将应用程序对硬件资源的请求由无序变为有序。 四、操作系统的发展 最早的计算机系统是没有操作系统的。操作系统的概念是逐步发展起来的。 第一代计算机由真空管和穿孔卡片组成。 特点:没有操作系统,所以软件直接控制硬件。 优点:程序员可以随时调节程序。 缺点:浪费计算机资源。 第二代计算机 特点

计算机基础之操作系统

北慕城南 提交于 2020-03-31 01:59:17
一、为什么要操作系统 现在计算机系统是一个复杂的系统,它由多个硬件资源组成,如果程序员要自己去了解这些硬件资源的工作原理然后编写代码去控制他们的话就无法在编写应用程序了,并且要把这些硬件资源都管理起来优化使用是很困难的,于是就有了操作系统,由它负责计算机硬件的管理和控制,程序员只需要调用操作系统提供的接口程序来调用操作系统去完成硬件的控制,然后由操作系统将执行结果返回给应用程序就可以了,这样极大的减轻了程序员的开发负担,大大提高了开发的效率。 二、操作系统的位置 操作系统位于计算机硬件和应用程序之间,它由内核与系统调用两部分组成,其中内核工作在内核态,位于计算机硬件和系统调用之间,系统调用工作在用户态,位于内核与应用程序之间。 三、操作系统的功能 1、操作系统提供应用程序控制计算机硬件的接口 操作系统是负责控制硬件的,而应用程序是无法直接控制计算机硬件的,当应用程序需要使用计算机的硬件资源怎么办呢?这时候就需要用到操作系统提供的这些接口程序了,应用程序可以通过调用这些接口程序来让操作系统帮助它控制相应的硬件完成工作,在把执行结果通过接口返回给应用程序 2、管理计算机硬件资源 当多个应用程序竞争使用同一个硬件资源时,操作系统则负责控制多个应用程序有序的使用硬件资源,避免无序竞争导致程序运行结果出错。 四、操作系统的发展 第一代计算机(1940-1955):真空管和穿孔卡片 特点

程序员35岁就必须淘汰了吗

空扰寡人 提交于 2020-03-30 18:55:42
我们先来看一篇论文《Is Programming Knowledge Related to Age?》这篇论文是两个北卡罗莱纳州立大学计算机科学系的两个人Patrick Morrison 和 Emerson Murphy-Hill 对StackOverflow.com上的用户做了相关的数据挖掘得出来的一些数据。(我们知道StackOverflow.com上的数据是公开的,任何人都可以用来分析和统计,所以这篇论文的真实性是有的) 数据采样和清洗条件如下:(数据全量是1694981用户,平均年龄30.3岁) 15-70岁之间的用户(这年龄段的用户被称做“Working age”),当然,有很多用户没有输入年龄,这些用户都被过滤了。 用户在2012年内都回答过问题。因为StackOverflow在2012年对问题和答案的质量要求得比以前高了一倍,所以更能反映程序员的真实水平。 Reputation声望在2-100K之间。(注:StackOverflow的用户Reputation是得到社会认可的,在面试和招聘中是硬通货币。比大学的学分更有价值) 上述的条件一共过滤出84,248名程序员,平均年龄:29.02岁,平均Reputaion在1073.9分。 年龄分布图 下面我们来看一下他们的年龄分布图:我们可以看到程序员年纪的正态分布(高点在25岁左右,但是中点在29岁左右) 能力和年龄分布图

程序员一般都浏览什么网站

扶醉桌前 提交于 2020-03-30 13:59:19
程序员作为一个经常和互联网打交道的人群,他们喜欢浏览那些网站呢?不爱敲代码的程序猿整理了以下网站供大家参考,排名不分先后: 0. Google https://google.com 这个不用多说了吧。 1.GitHub 开发者最最最重要的网站:https://github.com 这个不用多说了吧,代码托管网站,上面有很多资源,想要什么轮子,上去搜就好了。并且呢,上面有很多优秀的程序员,你可以在这里交到很多好朋友喔。 2. 掘金 帮助开发者成长的技术社区:https://juejin.im 现在国内优质的开发者交流学习社区,可以去看大佬们写的文章,也可以自己分享学习心的,与更多开发者交流。认识更多的小伙伴儿,提升个人影响力。 3. 算法学习 LintCode https://www.lintcode.com/ 算法学习网站,上去每天刷两道算法题,走遍天下都不怕。 4. 算法学习 LeetCode https://leetcode.com/ 也是算法题网站,同上。 5. 算法学习 LeetCode 中文站 https://lingkou.com/ 这个是上面算法题网站的中文站点,英文不好的可以刷这个,英文好的推荐去刷英文网站的题目,还能提升英语能力。 6. 牛客网 面经和刷面试题:https://www.nowcoder.com 各个公司的面试题和面经分享,找工作前认真刷一刷