程序员

一个苦逼程序员的骑士梦!骑上机车,追逐心中的风和自由!

 ̄綄美尐妖づ 提交于 2020-01-16 07:17:35
程序员的骑士梦 我,是一个程序员。 距离春节越来越近,程序员并没有因为即将来临的假期而感到一丝丝开心,即便有那么一点思乡心切,也因为繁重的工作,而被深藏心底。 可能在大多数人心目中,程序员的工作和生活都是惬意舒适的。每天坐在办公室,吹着空调,泡一杯茶,只需打开电脑动动手指,一个月便轻松能拿到普通人心目中的高薪。就算是有时候加班,也还有高昂的加班费,一个让人艳羡的行业。 内行看门道,外行看热闹。其实只有真正从事了这个行业的人才深知其中的苦恼。朝九晚五,双休的程序员可以说极少极少。“工作996,看病ICU”这种说法是大部分程序员的自嘲,其实也是现状。有项目时加班是常事,但是现在互联网时代,哪里会缺项目呢。 工作轻松更是与程序员丝毫不沾边,敲代码这种忽多忽少的工作量就不算了,但是有时候为了找一个bug,在上千上万行代码中寻找一个顽固分子的感觉,应该只有亲身感受过的人才懂! 程序员秃顶,可能很多人觉得这只是一个玩笑,但其实这是所有程序员苦恼。持续熬夜加班,疯狂用脑,无意识的抓脑袋,头发是真的保不住。并且越来越相信上学时代老师说的话,脑子越用越灵光,真的挺“光”的。 虽然做程序员,相较于一些人已经算是不那么累,不那么无聊的工作。但是其中的苦涩真的是不足以外人道也罢了。 在这枯燥快节奏的生活中,渐渐厌烦;在这每天面对屏幕的工作中,渐渐觉得生活失去希望;在这人际关系圈慢慢缩小的现实中

堆和栈的区别 (转贴)

梦想与她 提交于 2020-01-16 05:30:38
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥! 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放 4、文字常量区—常量字符串就是放在这里的。 程序结束后由系统释放 5、程序代码区—存放函数体的二进制代码。 二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main() { int b; 栈 char s[] = "abc"; 栈 char *p2; 栈 char *p3 = "123456"; 123456\0在常量区,p3在栈上。 static int c =0; 全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *

堆和栈的区别

谁说胖子不能爱 提交于 2020-01-16 05:30:07
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack) 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static) 全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。 4、文字常量区 常量字符串就是放在这里的。程序结束后由系统释放 5、程序代码区 存放函数体的二进制代码。 二、例子程序 这是一个前辈写的,非常详细 //main.cpp int a = 0; //全局初始化区 char *p1; //全局未初始化区 main() { int b; //栈 char s[] = "abc"; //栈 char *p2; //栈 char *p3 = "123456"; //123456\0在常量区,p3在栈上。 static int c =0; //全局(静态)初始化区 p1 = (char *)malloc(10); p2 = (char *)malloc(20); //分配得来得10和20字节的区域就在堆区。

【C#】堆、栈和堆栈的区别

*爱你&永不变心* 提交于 2020-01-16 05:22:10
导读: 今天看视频,就看到了堆、栈这一块了。记得当年初相见(VB视频),劈头盖脸一阵蒙,什么都不知道,那时候师傅叫我挂起来,说我随着学习的进度,慢慢的就会懂了。现在,学到了这里,想着自己对自己从前的问题进行解答。可能解答的不够完整不够好,等到我又学了新东西,又有了想法的时候,再回头更改。嘿嘿,先看看当年的问题哈。 一:基本定义 堆( heap ): 堆是一种经过排序的树形数据结构,每个结点都有一个值。 栈( stack) : 它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。(PS:颇有砌墙的砖——后来者居上的赶脚。) 堆栈 :由堆和栈的概念,可以清晰的知道:堆栈,是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 PS: 结合查阅的资料,通常所说的堆栈,实际上更偏向于指栈。 二、基本对比 1,申请方式 heap:程序员自己申请,并指明大小。 stack:由系统分配。 2,申请效率 原为: heap:效率较高,速度较快,但程序员无法对其进行控制。 stack:由new分配的内存,相对效率和速度都较低,且容易产生碎片,但由于是程序员自己申请操作,灵活性强,使用方便。 更改:2017-08-23 3:25pm stack:效率较高,速度较快,但程序员无法对其进行控制。 heap:由new分配的内存,相对效率和速度都较低

内存堆和栈的区别

本小妞迷上赌 提交于 2020-01-16 05:19:17
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。 堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教,这对于大家学习会有很大帮助。 数据结构的栈和堆 首先在数据结构上要知道堆栈,尽管我们这么称呼它,但实际上堆栈是两种数据结构:堆和栈。 堆和栈都是一种数据项按序排列的数据结构。 栈就像装数据的桶或箱子 我们先从大家比较熟悉的栈说起吧,它是一种具有 后进先出 性质的数据结构,也就是说后存放的先取,先存放的后取。 这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体(放入的比较晚的物体)。 堆像一棵倒过来的树 而堆就不同了,堆是一种 经过排序的树形数据结构 ,每个结点都有一个值。 通常我们所说的堆的数据结构,是指二叉堆。 堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。 由于堆的这个特性,常用来实现优先队列,堆的存取是随意,这就如同我们在图书馆的书架上取书,虽然书的摆放是有顺序的,但是我们想取任意一本时不必像栈一样

详细介绍使用PHP框架的原因——转自51CTO.COM

大兔子大兔子 提交于 2020-01-16 02:36:12
PHP框架 为各种技术等级的开发者减少了重复编码的需求、加快了开发进程,并在创建web应用时确保正确的编码。这不仅加快了富应用开发的进程,同时也通过减少代码的安全漏洞而增强了PHP的安全性。 PHP成为世界上最流行的脚本语言有许多原因:灵活性,易用性等等。但通常只用PHP或者其他语言编码就会显得单调、重复,这时候就需要一个PHP框架来代替程序员完成那些重复不变的部分。本文通过回答What, When, Why 以及 Which这些问题,将对PHP框架进行全面解析。 PHP框架是什么? PHP框架提供了一个用以构建web应用的基本框架,从而简化了用PHP编写web应用程序的流程。换言之,PHP框架有助于促进快速应用开发( RAD ),不但节省开发时间、有助于建立更稳定的应用,而且减少了重复编码的开发。通过确保适当的数据库交换和在表现层编码,框架还可以帮助初学者建立更稳定的应用服务。这可以让你花更多的时间去创建实际的Web应用程序,而不是花时间写重复的代码。 通常认为PHP框架的作用相当于模型-视图-控制器(Model View Controller)。MVC是种编程的架构模式,将业务逻辑从UI中分离出来,允许一个一个单独修改(也称为关注点分离)。在MVC中,Model指数据,View指表现层,Controller则指应用程序或业务逻辑。基本上, MVC打破了一个应用的开发进程

python基础部分一

走远了吗. 提交于 2020-01-16 00:04:01
一、什么是Python? Python就是一门解释型的编程语言,而且是现在世界上最流行的编程语言之一。 二、Python发展背景 Python的作者,Guido von Rossum(吉多·范·罗苏姆),荷兰人。1982年,吉多从阿姆斯特丹大学获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,虽然拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的事情。 在那个时候,吉多接触并使用过诸如Pascal、C、Fortran等语言。这些语言的基本设计原则是让机器能更快运行。在80年代,虽然IBM和苹果已经掀起了个人电脑浪潮,但这些个人电脑的配置很低。比如早期的Macintosh,只有8MHz的CPU主频和128KB的RAM,一个大的数组就能占满内存。所有的编译器的核心是做优化,以便让程序能够运行。为了增进效率,语言也迫使程序员像计算机一样思考,以便能写出更符合机器口味的程序。在那个时代,程序员恨不得用手榨取计算机每一寸的能力。有人甚至认为C语言的指针是在浪费内存。至于动态类型,内存自动管理,面向对象…… 别想了,那会让你的电脑陷入瘫痪。 这种编程方式让吉多感到苦恼。吉多知道如何用C语言写出一个功能,但整个编写过程需要耗费大量的时间,即使他已经准确的知道了如何实现。他的另一个选择是shell。Bourne

会写代码的项目经理

孤人 提交于 2020-01-15 22:56:28
也许文章的标题起的带有讽刺的味道,其实这也是本人的一个小小的疑问。 一个项目的领导者该不该对技术有一点深度的了解或者说项目经理应该是一个不错的高级程序员。我的头跟我说项目经理不需要写代码也不需要对技术有多了解,只要对项目的进度有个整体的把控就OK了。这种观念一开始我不太赞同,项目经理对技术的实现没有一定的了解,在安排进度的时候是不是会草率的了事。给程序员预留的时间也不能准确的控制好,是不是会导致项目的进度控制的不太合理; 在参与开发项目的时候尤其是有一定技术含量的时候,更要项目经理对技术的实现有自己独特的见解,能帮助程序员理清头绪。但是话说回来,项目经理不可能帮每个程序员都去解决技术问题。在一些中小企业,项目经理显的很“肥胖”,这种“肥胖”完全是脱俗的,对技术似乎已经到了一种炉火纯青的高度,总觉得技术无非就是增、删、改、查。这也是我的头跟我说的,程序员就是做增、删、改、查的。没有多少技术含量,敲来敲去都是那些东西。做为程序员的我们不太喜欢听这样的话,技术的深奥是不能用这种片面的话来概括的。 我们搞技术的,在领导看来常常有一种毛病,什么毛病呢?就是我们在解决技术问题的时候,喜欢较劲。领导会这么想也有他的道理,领导希望能把项目赶紧做完。在进度上领导永远最关心,不喜欢我们为了一个小小的技术问题,而耽误大量的时间。哪怕换一种相当麻烦的实现手段也行,保证进度第一。如果没个程序员都这样想

飞行的架构师和奔跑的程序员

≡放荡痞女 提交于 2020-01-15 07:35:58
关于程序员和架构师的讨论很多,我想从不同的角度说下。 寻路 当我刚进入软件行业成为一名程序员时,我的理想就是成为一名架构师。架构师这个词的英文叫 Architect,原意是建筑师,因为软件行业参照借鉴了很多建筑行业的概念,所以就借用这个词。我是在学校读书时知道架构师这个名词的,当时很多软件方面的书都是翻译过来的,现在也不知道是谁最早把 Architect 翻译成架构师的了。总之从那时起,架构师这个名词对于我这个还刚准备走出校门的学生来说就特别高大遥远,自然当成了最初的一个职业目标。 可惜,我进入第一家公司后,这是一个家民营 IT 服务企业,我发现居然没有架构师这个职位。我所在的一个几十人团队里,本科刚毕业的是助理工程师,硕士刚毕业的是初级工程师,然后是中级,高级工程师。再往上就变成了项目经理、这个团队就是一个项目经理,下面有几个高工,然后一堆初级和助理工程师。让我颇为失望的是,我当时明显觉得未来我的职业发展目标并不是当时团队项目经理所处的方向。不过一想我离架构师这个目标还早,当时估计最快也要十年吧,先把程序写熟再说,我也不太可能在这里干十年,以后换个就好了。 实际,一年后我就换了个公司,入职后又失望了,发现还是没有架构师这个职位。不仅没有架构师职位,连工程师都不分初、中、高级了,全是软件工程师,再上面是组长、科长、部长,然后就是总经理。科长、部长这类职位是国营性质的