自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Qsir的专栏

日常学习,工作中的点滴记录与积累

  • 博客(48)
  • 资源 (2)
  • 收藏
  • 关注

转载 写给想成为前端工程师的同学们 ―前端工程师是做什么的?

前端工程师是做什么的? 前端工程师是互联网时代软件产品研发中不可缺少的一种专业研发角色。从狭义上讲,前端工程师使用 HTML、CSS、JavaScript 等专业技能和工具将产品UI设计稿实现成网站产品,涵盖用户PC端、移动端网页,处理视觉和交互问题。从广义上来讲,所有用户终端产品与视觉和交互有关的部分,都是前端工程师的专业领域。(web前端学习交流群:328058344 禁止闲聊

2017-10-31 13:09:16 964

转载 一位资深程序员大牛给予Java初学者的学习路线建议

Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容甚至是一些书籍。这一部分的内容,同样适用于一些希望转行到Java的同学。  在大家看之前,我要先声明两点。1、由于我本人是Java后端开发出身,因此所推荐的学习内容是Java W

2017-10-31 12:15:20 380

转载 Java后端程序员1年工作经验总结

java后端1年经验和技术总结(1) 1.引言   毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西。这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护和发布当救火队员的苦恼。遂决定梳理一下自己所学的东西,为大家分享一下。  经过一年意识到以前也有很多认识误区,比如:   偏爱收集,经常收集各种资料视频塞满一个个硬盘,

2017-10-31 12:12:35 552

转载 如何突破JAVA程序员的分水岭

第一阶段:一年之内的JAVA从业人员这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。这本书很厚,当初看这本书,我花了整整三个月。正常速度的话,应该可以在半年左右看完。我这里不

2017-10-31 11:16:20 352

转载 #ifdef _DEBUG #define new DEBUG_NEW #endif的解释

在用vc时,利用AppWizard会产生如下代码:[cpp] view plain copyprint?#ifdef _DEBUG  #define new DEBUG_NEW  #undef THIS_FILE  static char THIS_FILE[] = __FILE__;  #endif  #ifdef _DEBUG#define

2017-10-31 11:09:24 720

转载 MFC子窗口和父窗口(SetParent,SetOwner)

一、概念和区别 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和 parent-child关系。前者称之为拥有/被拥有关

2017-10-30 12:01:05 2897

转载 程序员学习能力提升三要素

IT技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。本文中,作者结合多年的学习经验总结出了提高程序员学习能力的三个要点。  众所周知,现在是一个知识爆炸的时代,知识更新非常快。据测算,一个大学毕业生所学到的知识,在毕业之后2年内,有效的不过剩下5%。对于软件行业而言,这种形势更为明显,我们赖以立足的,不在于我们现在

2017-10-27 13:35:48 916

转载 我为什么鼓励工程师写blog

工程师该怎样才能突破自己的能力瓶颈?写 blog!工程师该怎样精进自己在职涯上所需要的能力?写 blog!工程师该怎样才能保持学习与成长的动能?写 blog!工程师该怎样才能证明自己的潜力与特质?写 blog!工程师该怎样才能发挥与养成影响力?写 blog!  本文打算老生常谈,从几个很实务的方面来整理,写 blog 对你有什么好处。如果你不需要这样的好处,或是有更好的方法获得这些好处,J

2017-10-27 12:15:54 288

转载 程序员,如何从平庸走向理想?

博主说:也许我们都不是天才的程序员,但至少我们都可以成为一个理想的程序员。     正文     我算是靠坑蒙拐骗进了程序员的门,然后一路狂奔。26岁之前几乎没有任何写代码的经验,研究生毕业却意外选择了一家不可能提供培训的初创公司,在每日担忧公司倒闭、害怕被炒鱿鱼以及同事冷落白眼的三重压力下逆流而上,一年半后离职,已是拥有500万用户产品的后台主程。从前我对计算机技术心怀畏惧,认定技术高人

2017-10-27 11:04:06 292

转载 为什么你应该尝试全栈

程序员看到全栈这个概念,大概会有两种反应:  1. 卧槽,这个好,碉堡了  2. 你懂毛,全栈就是样样稀松  以上两种反应其实都有失偏颇,即使只做一种技术,做的很菜的多的是,而全栈但是样样都做的不错的也不少,更别说这个世界还存在另外一种爆栈型的程序员,做什么什么精。  全栈学徒至少要掌握以下几种技能:Web 前端开发,至少掌握一种前端框架Server 后端开发,

2017-10-27 10:18:19 370

转载 为什么未来是全栈工程师的世界?

技术在过去的几十年里进步很快,也将在未来的几十年里发展得更快。今天技术的门槛下降得越来越快,原本需要一个团队做出来的Web应用,现在只需要一两个人就可以了。  同时,由于公司组织结构的变迁,也决定了赋予每个人的职责将会越来越多。尽管我们看到工厂化生产带来的优势,但是我们也看到了精益思想带来的变革。正是这种变革让越来越多的专家走向全栈,让组织内部有更好的交流。  你还将看到专家和全栈的两种不

2017-10-27 09:52:59 386

转载 sqlite API

sqlite数据库的基本操作:1.关键数据类型和结构sqlite 里最常用到的是 sqlite3 * 类型。从数据库打开开始,sqlite就要为这个类型准备好内存,直到数据库关闭,整个过程都需要用到这个类型。当数据库打开时开始,这个类型的变量就代表了你要操作的数据库。下面再详细介绍。大 多数的数据库在数据类型上都有严格的限制,在建立表的时候,每一列都必须制定一个

2017-10-27 09:07:28 471

转载 SQLite相关知识

例如:向数据库中插入100万条数据,在默认的情况下如果仅仅是执行 sqlite3_exec(db, “insert into name values ‘lxkxf', ‘24'; ”, 0, 0, &zErrMsg); 将会重复的打开关闭数据库文件100万次,所以速度当然会很慢。因此对于这种情况我们应该使用“事务”。 具体方法如下:在执行SQL语句之前和SQL语句执行完毕之后加上 

2017-10-27 09:04:17 828

转载 C++之全局对象、局部对象、静态对象详解

1. 对于全局对象,程序一开始,其构造函数就先被执行(比程序进入点更早);程序即将结束前其析构函数将被执行。2. 对于局部对象,当对象诞生时,其构造函数被执行;当程序流程将离开该对象的声明周期时,其析构函数被执行。3. 对于静态(static)对象,当对象诞生时其构造函数被执行;当程序将结束时其析构函数才被执行,但比全局对象的析构函数早一步执行。4. 对于以new方式产生出来的局部对象

2017-10-26 15:30:08 705

转载 C++构造与析构(18) - 静态对象(static object)何时销毁

C++的static关键字static关键字可以用于修改局部变量,函数,类的数据成员以及对象。静态局部变量只初始化一次,然后在每次函数调用时都保持它的值。静态成员函数可以直接用类来调用,不需要创建对象来调用。同时,C++也支持静态对象。C++的静态对象(static object)当使用static关键字声明一个对象时,此对象就变成了静态对象。见下面两个表达式。Test t

2017-10-26 15:28:56 2862

转载 Java程序员如何月薪达到两万,需要技术水平达到什么程度?

有人说这只能是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该已经转管理。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达到。还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,懂点大数据等等,或者表达能力强,击中面试官痛点都会加

2017-10-25 17:24:37 1861

转载 把char*转换为wchar_t*

把char*转换为wchar_t*用stdlib.h中的mbstowcs_s函数,可以通过下面的例子了解其用法: char *CStr = "string to convert";size_t len = strlen(CStr) + 1;size_t converted = 0;wchar_t *WStr;WStr=(wchar_t*)

2017-10-25 10:18:19 1935

转载 char* 转 LPCWSTR 解决方案

在Windows编程中,经常会碰到字符串之间的转换,char*转LPCWSTR也是其中一个比较常见的转换。下面就列出几种比较常用的转换方法。1、通过 MultiByteToWideChar 函数转换MultiByteToWideChar函数是将多字节转换为宽字节的一个API函数,它的原型如下:

2017-10-25 09:58:18 1420

转载 优秀的程序员都有哪些习惯?

】:「我不是卓越的程序员,我只不过是一个有着卓越习惯的程序员。」技术大牛 Kent Beck 曾这样说过自己。7月初,nostrademons 在 Hacker News 发起一个讨论,是哪些习惯成就了优秀/卓越的程序员?可变的习惯:学习着在不同的情况中采用不同的习惯。考虑到这一点,我总结了一些适用于不同情况的通用技巧:为了数据科学类问题研究新领域的发展:1.尽量亲自动手去完成

2017-10-20 14:53:56 378

转载 Hello, World!我的房车编程生活,已经 150 天了

我的房车编程生活今天已经到了第 150 天。自今年 5 月离开柏林以来,我访问了 6 个国家,行程超过了 1.2 万公里,收集了 18 万瓦时(Wh)太阳能,并沿途遇到了许多有趣的人。房车编程生活无疑是我人生中值得纪念的一次经历。接受想法驱动,不必遵循计划作为一名可远程工作的软件工程师,我的作息基本看大脑的状态:兴奋时工作,疲倦时休息;我的生活以前完全围绕着灵活的工作时间进行安排。通常

2017-10-20 14:51:46 395 1

转载 提高代码可读性的10个技巧

原文:10 Tips for Improving the Readability of Your Code作者:Manas Sadangi 译者:Teixeira10【译者注】在本文中,作者从注释,缩进,代码分组,命名方式等方面,介绍了10个提高代码可读性的技巧,供读者学习和借鉴。 以下为译文:如果你的代码很容易阅读,这也会帮助你调试自己的程序,让工作变得更容易。代码可

2017-10-20 14:18:19 345

转载 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】

我保证这篇文章和你以前看过的所有文章都不同,这是 2012 年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者……这篇文章的核心思想就是:要让读者在不看任何数学公式的情况下理解傅里叶分析。傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深

2017-10-19 17:00:46 533 1

转载 C语言main()函数详解

C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从main()函数开始执行的。 一、main()函数的形式 在最新的 C99 标准中,只有以下两种定义方式是正确的:int main( void )  /* 无参数形式 */{    ...    return 0;}int main( int argc, c

2017-10-19 16:33:12 46936 3

转载 void和void*详解 v2

void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void指针使用规范①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:int * pint;void *pvoid;pvoid = pint; /* 不过不能 pint= pvoid; */如果要将pvoid赋给其他类型指针,则需

2017-10-19 12:04:33 331

转载 void与void*详解

void关键字的使用规则:             1. 如果函数没有返回值,那么应声明为void类型;             2. 如果函数无参数,那么应声明其参数为void;             3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * ;              4. void不能代表一个真实的变量;void体现了

2017-10-19 12:02:57 523

转载 C语言模块化编程的例子

以往写C语言程序都是一个文件里面写个几十、几百行,在练算法的时候还可以,现在搞开发需要模块化编程,所谓模块化编程,就是指一个程序包含多个源文件(.c 文件和 .h 文件),每个 .c 文件可以被称为一个模块。1、例程的文件结构 2、各文件代码 main.c 源码:#include #include "include/func.h"int main(){ in

2017-10-19 11:49:34 4702 1

转载 C语言实现简单的面向对象例子

对于想做C语言大型项目开发同学,结合上篇C语言模块化编程,会有很大帮助。 实现方法:回调函数,结构体里保存函数指针,具体看下面的代码:#include //几个用于测试的函数 int max(int a, int b){ return a>b?a:b; }int min(int a, int b){ return a<b?a:b; } //结构体 st

2017-10-19 11:42:52 678

转载 C语言实现面向对象示例

用C语言实现面向对象的方法,面向对象的三个基本特征,对象唯一性,继承性,抽象性。使用C语言中的结构体和函数指针将数据与操作放在一起,使得一个问题的解决方法封装在结构体中。其中结构体的嵌套使用实现了继承性。[cpp] view plain copyprint?#include  #include      struct  Adt2   {   

2017-10-19 11:39:39 431 1

转载 C语言面向对象编程(五):单链表实现

前面我们介绍了如何在 C 语言中引入面向对象语言的一些特性来进行面向对象编程,从本篇开始,我们使用前面提到的技巧,陆续实现几个例子,最后呢,会提供一个基本的 http server 实现(使用 libevent )。在这篇文章里,我们实现一个通用的数据结构:单链表。    这里实现的单链表,可以存储任意数据类型,支持增、删、改、查找、插入等基本操作。(本文提供的是完整代码,可能有些长。) 

2017-10-19 11:32:09 246

转载 C语言面向对象编程(四):面向接口编程

Java 中有 interface 关键字,C++ 中有抽象类或纯虚类可以与 interface 比拟,C 语言中也可以实现类似的特性。    在面试 Java 程序员时我经常问的一个问题是:接口和抽象类有什么区别。    很多编程书籍也经常说要面向接口编程,我的理解是,接口强制派生类必须实现基类(接口)定义的契约,而抽象类则允许实现继承从而导致派生类可以不实现(重写)基类(接口)定义的契

2017-10-19 11:30:39 382

转载 C语言面向对象编程(三):虚函数与多态

在《 C++ 编程思想》一书中对虚函数的实现机制有详细的描述,一般的编译器通过虚函数表,在编译时插入一段隐藏的代码,保存类型信息和虚函数地址,而在调用时,这段隐藏的代码可以找到和实际对象一致的虚函数实现。    我们在这里提供一个 C 中的实现,模仿 VTABLE 这种机制,但一切都需要我们自己在代码中装配。    之前在网上看到一篇描述 C 语言实现虚函数和多态的文章,谈到在基类中保存派

2017-10-19 11:29:37 325

转载 C语言面向对象编程(二):继承详解

在 C 语言面向对象编程(一)里说到继承,这里再详细说一下。    C++ 中的继承,从派生类与基类的关系来看(出于对比 C 与 C++,只说公有继承):派生类内部可以直接使用基类的 public 、protected 成员(包括变量和函数)使用派生类的对象,可以像访问派生类自己的成员一样访问基类的成员 对于被派生类覆盖的基类的非虚函数,在派生类中可以通过基类名和域作用符(::)来

2017-10-19 11:28:33 407

转载 C语言面向对象编程(一):封装与继承

最近在用 C 做项目,之前用惯了 C++ ,转回头来用C 还真有点不适应。 C++ 语言中自带面向对象支持,如封装、继承、多态等面向对象的基本特征。 C 原本是面向过程的语言,自身没有内建这些特性,但我们还是可以利用 C 语言本身已有的特性来实现面向对象的一些基本特征。接下来我们就一一来细说封装、继承、多态、纯虚类等面向对象特性在 C 语言中如何实现,并且给出实例。    这篇文章中我们先说封

2017-10-19 11:27:02 326

转载 提高代码阅读能力的7种方法

原文:7 Ways to Improve Your Code Reading Skills作者: A. N. M. Bazlur Rahman 翻译:无阻我飞扬摘要:随着越来越多的公司使用敏捷开发,能够阅读别人的代码比以往显得更重要。这就需要学习一些如何提高这项技能的技巧。本文提供了7种提高代码阅读技巧的方法,以下是译文。在软件开发人员的职位描述中有阅读源代码。然而,这体验

2017-10-19 11:24:30 307

转载 win32程序启用控制台-- 调试输出

win32程序启用控制台(控制台文件名:conout$,conin$,conerr$)  2010-07-23 13:55:40|  分类: c++|字号 订阅一个寻找很久,却得来全不费功夫的事情。做win32窗口程序的时候,有时还是希望在控制台下输入输出一些信息。特别是VC的TRACE()宏虽然不错,但是输出在VC的debug窗口下。里面有些杂乱的信息

2017-10-18 19:07:14 994

转载 C语言中的二级指针和二维数组问题

关于二级指针和二维数组两者差别很大,不可以直接用二级指针传递二维数组首先来看看二维数组在内存中是如何组织的呢?一维数组 T arr1 = new T[9]  二维数组T arr2 = new T[3][3]实际上,不管是一维还是多维数组,都是内存中一块线性连续空间,因此在内存级别上,其实都只是一维。但是不同的定义使得表现形式不一样,从而有多维数组的概念。访问数组元素其实非常简单,原

2017-10-18 19:04:57 798

转载 MFC中使用控制台窗口输入输出

现在Windows编程一般都使用窗口程序设计,即GUI模式。但有时我们需要输出一些信息用于调试或查看某些状态,以前我都是在窗口上加一个Edit控件,然后把需要的信息输出到Edit控件里,但这样严重影响了应用程序的美观。现在,我们可以在应用程序里自己开一个控制台(就像DOS窗口一样),然后重定向输入输出,就可以用printf函数向控制台输出信息了,具体方法如下。 添加引用#include

2017-10-18 19:03:43 2542

转载 关于“指针的指针”的认识(值传递、指针传递区分)

【摘要】对于C语言的参数传递通常都是值传递,当传传递一个指针给函数的时,其实质上还是值传递。我们可以看以下常见的面试题:#include #include #include void function1(int *v){ v = (int *)malloc(sizeof(int)); *v = 100;}void main(){ int *v =

2017-10-18 18:17:21 302

转载 重新认识二级指针(Pointers to Pointers)

四年前(2010年),我写了一篇关于我自己对于二级指针(Pointers to Pointers)的理解:《深入理解双指针》。这篇文章在网上一直存在着很大的争议,后面的评论也有很多质疑的声音。通过这几年我对C/C++更加深入的理解,我觉得有必要重新写一篇对于二级指针(双指针)的理解。另外,本章中使用的程序是使用Linux的GCC编译出来的,所以汇编代码使用的是AT&T汇编指令,跟windows

2017-10-18 18:14:28 378

转载 MFC与Matlab编程总结 (以《Matlab与C/C++混合编程技术(第三版)》-刘维 第五章 生成DLL为例)

近期要完成一个任务,把人脸超分辨率的算法集成在一个系统中,嵌入人脸库及字典集等。老板的要求是有比较好的界面,目前也只能是VS那一套了,前一段时间完成的项目是用的MFC,这次也就是用MFC来完成吧。但是问题是,以前写的人脸超分辨率的算法都是用Matlab写的,Matlab有非常好的矩阵计算能力,要想把算法在C++下重新实现,短时间内有点困难。那就把Matlab算法封装成DLL吧,Matlab基本上是

2017-10-16 15:20:38 530

优秀的开源Web开发资源

精选开源领域里的优秀技术和开发框架,为实现低成本高效率的web开发提供非常有价值的参考。

2013-01-31

Perl Debugger

Addison Wesley 出版 Perl 进阶宝典

2013-01-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除