mfc三个字母成一个品字型的图标阻止关机,是什么程序,怎样处理?

C++MFC程序修改标题,和图标_百度知道
C++MFC程序修改标题,和图标
上面是我一个界面。怎么修改标题和图片啊?求代码
我有更好的答案
FALSE), TRUE); /&#47/ //图标HICON m_hIcon= AfxGetApp()-&LoadIcon(IDR_MAINFRAME);SetIcon(m_hI 大图标SetIcon(m_hI/标题SetWindowText(_T(&ClientDemo2 这个你改成任意的,/ClientDemo2&))
采纳率:68%
为您推荐:
其他类似问题
程序修改的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。下次自动登录
现在的位置:
& 综合 & 正文
MFC六大关键技术之(一)—— 初始化过程
题外话:我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。可能朋友们会说,怎么一定要了解MFC的具体呢,“黑箱”作业不行吗?这不是微软的初衷吗?不行!!!如果这样,我宁愿永远不选择MFC!在学电脑之前,本人学习的东西大都与艺术不无关系,小学时参加过全国书画比赛获银奖。儿时的爱好就是在一张纸上随心所欲地画画!MFC“黑箱”就象一幅硕大的抽象画(抽象到你不能理解),它用铅笔勾画好线条,然后请你填颜色。我们怎么能忍受“黑箱”作业?我们选择C++,就是因为它够自由,够艺术,我们可以在此放飞幻想。所以,我们要攻克MFC。伟大
孙老师在剖析MFC的时候虽然尽心尽力,但可能由于篇幅所限,说得并不大清楚(我相信许多学员都有这方面的感受)。在此,我突发奇想,想与大家一同分享一下著名的MFC六大关键技术。从什么地方开始讲起好呢?我觉得回到最初摸索MFC的时候,从基本谈起最好。因为我知道,一个走过来程序员,总是忘记了当初自己是怎么走过来的,忘记了一个学员最想知道的是什么。一个小小的问题(一两句话就可以解释的),足学以令手无寸铁的学员头大半个月,所以,我努力回忆当初是怎么让自己豁然开朗的。转入正题:MFC的六大关键技术包括:MFC程序的初始化过程。运行时类型识别(RTTI)。动态创建。永久保存。消息映射。消息传递。
MFC程序的初始化过程1、设计一个简单完整MFC程序,产生一个窗口。当然这不能让AppWizard自动为我们生成。我们可以在Win32 Application工程下面那样写:#i nclude &afxwin.h&class MyApp : public CWinApp{public: BOOL InitInstance()
//②程序入点 {
CFrameWnd *Frame=new CFrameWnd();//构造框架
m_pMainWnd=F //将m_pMainWnd设定为F
Frame-&Create(NULL,"最简单的窗口");//建立框架
Frame-&ShowWindow(SW_SHOW);
//显示框架
//返回 }};MyApp theA
//①建立应用程序。
设定链接MFC库,运行,即可看见一个窗口。
从上面,大家可以看到建立一个MFC窗口很容易,只用两步:一是从CWinApp派生一个应用程序类(这里是MyApp),,然后建立应用程序对象(theApp),就可以产生一个自己需要的窗口(即需要什么样就在InitInstance()里创建就行了)。整个程序,就改写一个InitInstance()函数,创建那么一个对象(theApp),就是一个完整的窗口程序。这就是“黑箱”作业的魅力!!!!在我们正想为微软鼓掌的时候,我们突然觉得心里空荡荡的,我们想知道微软帮我们做了什么事情,而我们想编自己的程序时又需要做什么事情,那怕在上面几行的程序里面,我们还有不清楚的地方,比如,干嘛有一个m_pMainWnd指针变量,它从哪里来,又要到哪里去呢?想一想在DOS下编程是多么美妙的一件事呵,我们需要什么变量,就声明什么变量,需要什么样的函数,就编写什么样的函数,或者引用函数库……但是现在我们怎么办!!!我们可以逆向思维一下,MFC要达到这种效果,它是怎么做的呢?首先我们要弄明白,VC不是一种语言,它就象我们学c语言的时候的一个类似记事本的编辑器(请原谅我的不贴切的比喻),所以,在VC里面我们用的是C++语言编程,C++才是根本(初学者总是以为VC是一门什么新的什么语言,一门比C++先进很多的复杂语言,汗)。说了那么多,我想用一句简单的话概括“MFC‘黑箱’就是帮助我们插入了‘C++代码’的东西”。既然MFC黑箱帮我们插入了代码,那么大家想想它会帮我们插入什么样的代码呢?他会帮我们插入求解一元二次方程的代码吗?当然不会,所以它插入的实际上是每次编写窗口程序必须的,通用的代码。再往下想,什么才是通用的呢?我们每次视窗编程都要写WinMain()函数,都要有注册窗口,产生窗口,消息循环,回调函数……即然每次都要的东西,就让它们从我们眼前消失,让MFC帮忙写入!要知道MFC初始化过程,大家当然可以跟踪执行程序。
孙老师的第三课跟踪了很长一段时间,我相信大家都有点晕头转向。本人觉得那怕你理解了MFC代码,也很容易让人找不着北,我们完全不懂的时候,在成千上万行程序的迷宫中如何能找到出口?我们要换一种方法,不如就来重新编写个MFC库吧,哗!大家不要笑,小心你的大牙,我不是疯子(虽然疯子也说自己不疯)。我们要写的就是最简单的MFC类库,就是把MFC宏观上的,理论上的东西写出来。我们要用最简化的代码,简化到刚好能运行。既然,我们这一节写的是MFC程序的初始化过程,上面我们还有了一个可执行的MFC程序。程序中只是用了两个MFC类,一个是CWinApp,另一个是CFrameWnd。当然,还有很多同样重要MFC类如视图类,文档类等等。但在上面的程序可以不用到,所以暂时省去了它(总之是为了简单)。好,现在开始写MFC类库吧……唉,面前又有一个大难题,就是让大家背一下MFC层次结构图。天,那张鱼网怎么记得住,但既然我们要理解他,总得知道它是从那里派生出来的吧。考虑到大家都很辛苦,那我们看一下上面两个类的父子关系(箭头代表派生):CObject-&CCmdTarget-&CWinThread-&CWinApp-&自己的重写了InitInstance()的应用程序类。CObject(同上)-&CCmdTarget(同上)-&CWnd-&CFrameWnd
看到层次关系图之后,终于可以开始写MFC类库了。按照上面层次结构,我们可以写以下六个类(为了直观,省去了构造函数和析构函数)。/////////////////////////////////////////////////////////class CObiect{};//MFC类的基类。class CCmdTarget : public CObject{};------------------------------------------------class CWinThread : public CCmdTarget{};class CWinApp : public CWinThread{};------------------------------------------------class CWnd : public CCmdTarget{};class CFrameWnd : public CWnd{};/////////////////////////////////////////////////////////大家再想一下,在上面的类里面,应该有什么?大家马上会想到,CWinApp类或者它的基类CCmdTarget里面应该有一个虚函数virtual BOOL InitInstance(),是的,因为那里是程序的入口点,初始化程序的地方,那自然少不了的。可能有些朋友会说,反正InitInstance()在派生类中一定要重载,我不在CCmdTarget或CWinApp类里定义,留待CWinApp的派生类去增加这个函数可不可以。扯到这个问题可能有点越说越远,但我想信C++的朋友对虚函数应该是没有太多的问题的。总的来说,作为程序员如果清楚知道基类的某个函数要被派生类用到,那定义为虚函数要方便很多。也有很多朋友问,C++为什么不自动把基类的所有函数定义为虚函数呢,这样可以省了很多麻烦,这样所有函数都遵照派生类有定义的函数就调用派生类的,没定义的就调用基类的,不用写virtual的麻烦多好!其实,很多面向对象的语言都这样做了。但定义一个虚函数要生成一个虚函数表,要占用系统空间,虚函数越多,表就越大,有时得不偿失!这里哆嗦几句,是因为往后要说明的消息映射中大家更加会体验到这一点,好了,就此打往。上面我们自己解决了一个问题,就是在CCmdTarge写一个virtual BOOL InitInstance()。大家再下想,我们还要我们MFC“隐藏”更多的东西:WinMain()函数,设计窗口类,窗口注册,消息循环,回调函数……我们马上想到封装想封装他们。大家似乎隐约地感觉到封装WinMain()不容易, 觉得WinMain()是一个特殊的函数,许多时候它代表了一个程序的起始和终结。所以在以前写程序的时候,我们写程序习惯从WinMain()的左大括写起,到右大括弧返回、结束程序。我们换一个角度去想,有什么东西可以拿到WinMain()外面去做,许多初学者们,总觉得WinMain()函数天大的函数,什么函数都好象要在它里面才能真正运行。其实这样了解很片面,甚至错误。我们可以写一个这样的C++程序:////////////////////////////////////////////////////#i nclude &iostream.h&class test{public: test(){cout&&"请改变你对main()函数的看法!"&&}};test test1;/**************************/void main(){}////////////////////////////////////////////////////在上面的程序里,入口的main()函数表面上什么也不做,但程序执行了(注:实际入口函数做了一些我们可以不了解的事情),并输出了一句话(注:全局对象比main()首先运行)。现在大家可以知道我们的WinMain()函数可以什么都不做,程序依然可以运行,但没有这个入口函数程序会报错。那么WinMain()函数会放哪个类上面呢,请看下面程序:#i nclude &afxwin.h&class MyApp : public CWinApp{public: BOOL InitInstance()
//②程序入点 {
AfxMessageBox("程序依然可以运行!"); }};
MyApp theA
//①建立应用程序。
大家可以看到,我并没有构造框架,而程序却可以运行了——弹出一个对话框(如果没有WinMain()函数程序会报错)。上面我这样写还是为了直观起见,其实我们只要写两行程序:#i nclude &afxwin.h&CWinApp theA
//整个程序只构造一个CWinApp类对象,任可事情,程序就可以运行!所以说,只要我们构造了CWinApp对象,就可以执行WinMain()函数。我们马上相信WinMain()函数是在CWinApp类或它的基类中,而不是在其他类中。其实这种看法是错误的,我们知道编写C++程序的时候,不可能让你在一个类中包含入口函数,WinMain()是由系统调用,跟我们的平时程序自身调用的函数有着本质的区别。我们可以暂时简单想象成,当CWinApp对象构造完的时候,WinMain()跟着执行。现在大家明白了,大部分的“通用代码(我们想封装隐藏的东西)”都可以放到CWinApp类中,那么它又是怎样运行起来的呢?为什么构造了CWinApp类对象就“自动”执行那么多东西。大家再仔细想一下,CWinApp类对象构造之后,它会“自动”执行自己的构造函数。那么我们可以把想要“自动”执行的代码放到CWinApp类的构造函数中。那么CWinApp类可能打算这样设计(先不计较正确与否):class CWinApp : public CWinThead{public:virtual BOOL InitInstance(); //解释过的程序的入点
CWinApp ::CWinApp(){
//构造函数
////////////////////////
WinMain();
//这个是大家一眼看出的错误
//设计、创建、更新显示窗口
//消息循环
//////////////////////}};写完后,大家又马上感觉到似乎不对,WinMain()函数在这里好象真的一点用处都没有,并且能这样被调用吗(请允许我把手按在圣经上声明一下:WinMain()不是普通的函数,它要肩负着初始化应用程序,包括全局变量的初始化,是由系统而不是程序本身调用的,WinMain()返回之后,程序就结束了,进程撤消)。再看Create()函数,它能确定设计什么样的窗口,创建什么样的窗口吗?如果能在CWinApp的构造函数里确定的话,我们以后设计MFC程序时窗口就一个样,变得写程序变有必要。再看Run()函数,它能在WinMain()函数外面运行吗?回过头来,我们可以让WinMain()函数一条语句都不包含吗?不可以,我们看一下WinMain() 函数的四个参数:WinMain(HINSTANCE, HINSTANCE, LPSTR, int)其中第一个参数指向一个实例句柄,我们在设计WNDCLASS的时候一定要指定实例句柄。我们窗口编程,肯定要设计窗口类。所以,WinMain()再简单也要这样写:int WinMain(HINSTANCE hinst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
hInstance=hinst }既然实例句柄要等到程序开始执行才能知道,那么我们用于创建窗口的Create()函数也要在WinMain()内部才能执行[因为如果等到WinMain()执行完毕后,程序结束,进程撤消,当然Create()也不可能创建窗口]那么Run()(消息循环)放在那里执行好呢?众所周知,消息循环就是相同的那么几句代码,但我们也不要企图把它放在WinMain()函数之外执行。所以我们在WinMain()函数里面,我们程序要象以下这样写WinMain(……){
……窗口类对象执行创建窗口函数……
……程序类对象执行消息循环函数……}对于WinMain()的问题,得总结一下,我们封装的时候是不可以把它封装到CWinApp类里面,但由于WinMain()的不变性(或者说有规律可循),MFC完全有能力在我们构造CWinApp类对象的时候,帮我们完成那几行代码。转了一个大圈,我们仿佛又回到了SDK编程的开始。但现在我们现在能清楚地知道,表面上MFC与SDK编程截然不同,但实质上MFC只是用类的形式封装了SDK函数,封装之后,我们在WinMain()函数中只需要几行代码,就可以完成一个窗口程序。我们也由此知道了应如何去封装应用程序类(CWinApp)和主框架窗口类(CFrameWnd)。下面把上开始设计这两个类。为了简单起见,我们忽略这两个类的基类和派生类的编写,可能大家会认为这是一种很不负责任的做法,但本人觉得这既可减轻负担,又免了大家在各类之间穿来穿去,更好理解一些(我们在关键的地方作注明)。还有,我把全部代码写在同一个文件中,让大家看起来不用那么吃力,但这是最不提倡的写代码方法,大家不要学哦!
#i nclude &windows.h&HINSTANCE hI
class CFrameWnd
{ HWNDpublic: CFrameWnd();
//也可以在这里调用Create() virtual ~CFrameWnd(); int Create();
//类就留意这一个函数就行了! BOOL ShowWnd();};class CWinApp1
{public: CFrameWnd* m_pMainW//在真正的MFC里面//它是CWnd指针,但这里由于不写CWnd类//只要把它写成CFrameWnd指针 CWinApp1* m_pCurrentWinA//指向应用程序对象本身 CWinApp1(); virtual ~CWinApp1(); virtual BOOL InitInstance();//MFC原本是必须重载的函数,最重要的函数!!!! virtual BOOL Run();//消息循环};CFrameWnd::CFrameWnd(){}CFrameWnd::~CFrameWnd(){}
int CFrameWnd::Create()
//封装创建窗口代码{ WNDCLASS wndcls.style=0; wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.hbrbackground="/(HBRUSH")GetStockObject(WHITE_BRUSH); wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); wndcls.hIcon=LoadIcon(NULL,IDC_ARROW); wndcls.hInstance=hI wndcls.lpfnWndProc=DefWindowP//默认窗口过程函数。//大家可以想象成MFC通用的窗口过程。 wndcls.lpszClassName="窗口类名"; wndcls.lpszMenuName=NULL; RegisterClass(&wndcls);
hwnd=CreateWindow("窗口类名","窗口实例标题名",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
return 0;}
BOOL CFrameWnd::ShowWnd()//显示更新窗口{ ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); return 0;}
/////////////CWinApp1::CWinApp1(){ m_pCurrentWinApp=}CWinApp1::~CWinApp1(){}//以下为InitInstance()函数,MFC中要为CWinApp的派生类改写,//这里为了方便理解,把它放在CWinApp类里面完成!//你只要记住真正的MFC在派生类改写此函数就行了。BOOL CWinApp1::InitInstance(){ m_pMainWnd=new CFrameW m_pMainWnd-&Create(); m_pMainWnd-&ShowWnd(); return 0;}
BOOL CWinApp1::Run()//////////////////////封装消息循环{ MSG while(GetMessage(&msg,NULL,0,0)) {
TranslateMessage(&msg);
DispatchMessage(&msg); } return 0;} //////////////////////////////////////////////////////封装消息循环
CWinApp1 theA
//应用程序对象(全局)
int WINAPI WinMain( HINSTANCE hinst, HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow){ hInstance= CWinApp1* pApp=theApp.m_pCurrentWinA//真正的MFC要写一个全局函数AfxGetApp,以获取CWinApp指针。 pApp-&InitInstance(); pApp-&Run(); return 0;}
代码那么长,实际上只是写了三个函数,一是CFrameWnd类的Create(),第二个是CWinApp类的InitInstance()和Run()。在此特别要说明的是InitInstance(),真正的MFC中,那是我们跟据自己构造窗口的需要,自己改写这个函数。大家可以看到,封装了上面两个类以后,在入口函数WinMain中就写几行代码,就可以产生一个窗口程序。在MFC中,因为WinMain函数就是固定的那么几行代码,所以MFC绝对可以帮我们自动完成(MFC的特长就是帮我们完成有规律的代码),所以我们创造MFC应用程序的时候,看不到WinMain函数。写到这里,MFC六大关键技术之一:MFC程序的初始化过程(模拟),就差不多写完了。回头看一下,居然写了八千多字,原本以为写完六大关键技术也不用写那么多字,现在还觉得庆幸的是不把文档、视类牵连进去,否则更不知写到何时。还有五大关键技术没有写,我还应该写下去吗?上面写了八千多字,都是我一个字一个字地敲进去,每个例子都是自己生硬地想出来。用了十多个小时,换来的可能更多是论坛中朋友们的漫骂,讥讽!但我觉得还是值得的,我一向认为VC没有敌人,只有朋友,放眼周围,发觉学VC的朋友越来越少,也没有发现多少招收VC程序员的地方。记得读大学的时候,我遇到一位搞美术的师兄,本来同行如敌国(我曾经搞过美术)。师兄美术功底很好,但他从来没有在学校获过美术一等奖,原因评奖的不懂得欣赏他的作品。我的出现,他深刻地体会到了:多一个朋友,会少一分孤独!有时觉得学习VC的朋友是英雄(但我不是英雄,因为我学VC多年来无甚突破),是值得尊敬的人物,大家交流一下,纠正一下自己的错误,真是一种福份……
六大关键技术之(一)—— 初始化过程
&&&&推荐文章:
【上篇】【下篇】针对题主的列表:&br&&br&1.计算机导论类&br&《深入理解计算机系统》(&i&Computer Systems: A Programmer's Perspective&/i&,Randal E.Bryant, David R.O'Hallaron),读完这本书已经能对计算机原理特别是CPU原理有较为清晰的了解了,此外这本书也会涉及不少Linux下的C语言编程。&br&&br&《现代操作系统》(&i&Modern Operating Systems&/i&,Andrew S. Tanenbaum)、《计算机网络:自顶向下方法》(&i&Computer Networking: A Top-Down Approach&/i&,James F. Kurose, Keith W. Ross)、《数据库系统概念》(&i&Database System Concepts&/i&,Abraham Silberschatz, Henry Korth, S. Sudarshan)、《自动机理论、语言和计算导论》(&i&Introduction to Automata Theory, Languages, and Computation&/i&,John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman )&br&这些书能深入学习很多计算机相关领域的原理。&br&&br&2.语言类&br&Python:在线文档是最好的资源&br&C#:《精通C#》(这书以前叫C#与.Net高级程序设计,&i&Pro C# 5.0 and the .NET 4.5 Framework&/i&,Andrew Troelsen)&br&C++:《Problem Solving with C++》,稍深入一点的:《C++ Primer》、《C++标准库:自学教程与参考手册》(&i&The C++ Standard Literary a Tutainal Relerence&/i&,Nicolai M. Josuttis)&br&Java:《Java核心技术》(&i&Core Java&/i&,Cay S. Horstmann, Gary Cornell)&br&&br&3.算法类&br&《算法导论》(&i&Introduction to Algorithms&/i&,Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Clifford Stein)&br&&br&5. 软件开发类&br&《重构:改善既有代码的设计》(&i&Refactoring Improving the Design of Existing Code&/i&,Martin Fowler)&br&&br&剩下的不太擅长了,欢迎大家补充。
针对题主的列表: 1.计算机导论类 《深入理解计算机系统》(Computer Systems: A Programmer's Perspective,Randal E.Bryant, David R.O'Hallaron),读完这本书已经能对计算机原理特别是CPU原理有较为清晰的了解了,此外这本书也会涉及不少Linux下的C语言…
&figure&&img src=&https://pic1.zhimg.com/v2-8bbb95b3e4f13bf0a95c109b5d23fb5e_b.jpg& data-rawwidth=&1440& data-rawheight=&1080& class=&origin_image zh-lightbox-thumb& width=&1440& data-original=&https://pic1.zhimg.com/v2-8bbb95b3e4f13bf0a95c109b5d23fb5e_r.jpg&&&/figure&&blockquote&&p&&em&导读:本文作者Payson Wu,硕士研究方向二维PDE数值解析算法,五年前端开发经验,现就职于Microsoft。&/em&&/p&&/blockquote&&p&现在的工作市场越来越讲究综合人才,软件开发行业也一样。以前的设计、开发、测试、上线分别由单独的团队负责,现在越来越多的公司需要combined engineer,就是上面这些都需要软件工程师全权负责。软件工程师需要掌握很多知识和技巧,才可以在如今竞争激烈的市场中永葆青春。&/p&&p&一个好的软件工程师,应该注重三方面的能力培养:&strong&设计、开发、个人素养&/strong&。设计包括理解UI、重视UX、Architecture、掌握良好算法数据结构等;开发包括优秀的编程实践、测试的设计、按时交付代码等等;个人素养也十分重要,包括写文档、写邮件、演讲等能力。&/p&&p&&strong&今天推荐的书单主要针对前两个能力:设计和开发&/strong&&strong&。&/strong&因为软件开发过程中,语言的选择并不是最重要的,所以本文推荐的书单尽量避免针对某种语言。如果有需要某种特定开发语言的书籍推荐,例如Java,C++,C,C#,Python,JavaScript等等,欢迎留言询问。&/p&&br&&h2&&strong&关于设计&/strong&&/h2&&p&软件的设计跟建设大楼的设计一样重要,有了图纸大楼才能开土动工,软件有了设计才可以真正开始进入开发环节。&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-ff76eb5f29cd_b.jpg& data-rawwidth=&718& data-rawheight=&908& class=&origin_image zh-lightbox-thumb& width=&718& data-original=&https://pic3.zhimg.com/v2-ff76eb5f29cd_r.jpg&&&/figure&&b&《写给大家看的设计书》:&/b&这本书出自一个著名设计师之手,他抽茧剥丝地把复杂的设计理论归为简单的四个基本原理:亲密性、对齐、重复和对比。书里面有色彩鲜艳的插图,生动鲜活的例子,利用正反两种例子解释什么样的设计好,什么样的不好,让人一目了然。非常适合作为快速入门的读物。&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-e881ebc4d18769fcca31cba_b.jpg& data-rawwidth=&704& data-rawheight=&818& class=&origin_image zh-lightbox-thumb& width=&704& data-original=&https://pic3.zhimg.com/v2-e881ebc4d18769fcca31cba_r.jpg&&&/figure&&b&《Head First Design Pattern》:&/b&Head First这系列书风趣幽默,无论是图片还是漫画都十分吸引人,让枯燥无聊的技术变得活灵活现。很多年前我刚毕业时候拿到Thoughtworks的offer,Thoughtworks推荐了一些列报到前读的书,有一本就是这本Head First Design Pattern.这本书非常适合初学者理解设计模式。不过并没有太多的实际例子。大家应该都听过四人帮(the gang of four)的Design Pattern那本书吧。那本书更为深入,建议初学者在读完Head First之后可以拿来四人帮那本书深入理解。Head First 这系列还有很多别的书,各方面都包含,都很适合初学者。&/p&&p&&b&&figure&&img src=&https://pic3.zhimg.com/v2-a9b4e8cc5be6e9b5487c_b.jpg& data-rawwidth=&684& data-rawheight=&856& class=&origin_image zh-lightbox-thumb& width=&684& data-original=&https://pic3.zhimg.com/v2-a9b4e8cc5be6e9b5487c_r.jpg&&&/figure&《Effective Java》:&/b&Effective系列我一共只读过三本,分别是:Effective Java, Effective C#, Effective JavaScript。这系列还有一些针对别的语言的,比如Effective C++。学习任何一门编程语言,只看书是不够的,一定要结合实际,通过做一个小项目来学习一门语言最为合适。不但能学会语法和语言中常用的包,还能学会调适、测试等。Effective 这系列的书是我最喜欢的编程书籍系列之一,不但包含大量的编程实例,还列出了很多常见错误和陷阱。对一些常犯的错误给出了有用的建议,对一些小陷阱指出了有效的解决方式。&/p&&p&&b&&figure&&img src=&https://pic2.zhimg.com/v2-7ddf6ec32496ccb3dbebad_b.jpg& data-rawwidth=&790& data-rawheight=&980& class=&origin_image zh-lightbox-thumb& width=&790& data-original=&https://pic2.zhimg.com/v2-7ddf6ec32496ccb3dbebad_r.jpg&&&/figure&《C和指针》&/b&:开头声明了本书单尽量不涉及某一特定语言,但实在是避不开这个最经典的C语言了。我接触编程比较晚,第一次亲密接触就是大一的时候上C语言编程基础,用的教科书是那本很差的绿皮谭浩强的书。当时被指针绕的七荤八素的,什么是指针,什么是指向指针的指针,谭浩强的绿皮书解释的模棱两可,老师讲的也是稀里糊涂。直到我都工作好几年了,一直都特别“幸运”地避开了一切指针。有一次偶然的机会听说了这本书,拜读了一下,果然是C语言初学者的福音。不但详细解释了C语言的种种基础和标准库,还特别感人的清晰地讲解了曾经迷茫了整整一代人的数组和指针。&/p&&p&&b&&figure&&img src=&https://pic4.zhimg.com/v2-c48f3ffd9d31b2f4a5e3b82_b.jpg& data-rawwidth=&852& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&852& data-original=&https://pic4.zhimg.com/v2-c48f3ffd9d31b2f4a5e3b82_r.jpg&&&/figure&《Introduction to Algorithms》:&/b&这本算法书包含了很多现代的算法,从算法到数据结构,甚至包括多项式算法、数论、图论等。不得不说如果想要完全读懂所有的算法,还是需要一些数学背景知识的。这本书是很多美国大学的算法教科书。如果做到融会贯通,那面试美国大公司就是分分钟的事儿。不过说实话,这本书并不适合作为面试算法练习,因为实在是太厚重了,无论是书本身的厚度,还是书中包含的内容,都十分厚重。&/p&&h2&&strong&关于开发&/strong&&/h2&&p&软件开发过程是软件的筋骨,我们所说的程序员主要就是做开发过程。开发过程不是跟建房子不一样,不是按照图纸一块块的搬砖,更重要的在于能够编写可以测试、可以维护、可以向后兼容的代码。&/p&&p&&figure&&img src=&https://pic1.zhimg.com/v2-bb3e4c9a5db16bf5cbbd311_b.jpg& data-rawwidth=&672& data-rawheight=&858& class=&origin_image zh-lightbox-thumb& width=&672& data-original=&https://pic1.zhimg.com/v2-bb3e4c9a5db16bf5cbbd311_r.jpg&&&/figure&&b&《Refactoring》:&/b&Martin Flower是一个很优秀的大师。他在1999年写的这本书至今仍十分畅销。这本书中他用一个实例一步步的解释如何重构代码。世界上任何一种产品都是逐渐更新换代变得越来越优秀的,写代码也是一样,优秀高效的代码需要在不断修改中演化而来。重构这本书帮助我们理解重构的意义:如何在保持功能性不变的基础上,提高代码的质量和效率。&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-178eed5dea4_b.jpg& data-rawwidth=&768& data-rawheight=&992& class=&origin_image zh-lightbox-thumb& width=&768& data-original=&https://pic4.zhimg.com/v2-178eed5dea4_r.jpg&&&/figure&&b&《How to Break Software》:&/b&这本书又有趣又实用,实属业界良心。刚开始变成Combined Engineer的时候很不适应,最不喜欢写测试。一旦写测试,就发现很多软件的错误,大量的bug向我袭来的感觉实在是苦不堪言。但其实正是因为这些测试才能保证软件的质量。这本书特别适合程序员,因为完全是从程序员的心理出发,一步步引导你思考bug可能产生的路径,然后疯狂的对这些bug可能产生的路径进行大量测试。作者的想法刁钻古怪,毫不留情地揭露了程序员得过且过的心理。只有抱着这种心态才能保证软件的质量。如果你读完觉得这种方式实在是太残忍,大可把这些测试方式用在你同事的身上,互相伤害,这样才能互相帮助。&/p&&p&&b&&figure&&img src=&https://pic4.zhimg.com/v2-3f68068615_b.jpg& data-rawwidth=&760& data-rawheight=&992& class=&origin_image zh-lightbox-thumb& width=&760& data-original=&https://pic4.zhimg.com/v2-3f68068615_r.jpg&&&/figure&《Code Complete 2》:&/b&让大部分人来推荐软件工程师书单,这本Code Complete 2都会高居榜首。中文版的翻译书名叫做《代码大全》。既然是大全那就一定是覆盖各种概念各种设计结构。很多人说这本书适合作为程序员的入门阅读起点。我倒是觉得这本书更适合作为一本参考阅读手册。任何经验背景的人都会从中受益。&/p&&figure&&img src=&https://pic2.zhimg.com/v2-bbc2c990f01_b.jpg& data-rawwidth=&646& data-rawheight=&994& class=&origin_image zh-lightbox-thumb& width=&646& data-original=&https://pic2.zhimg.com/v2-bbc2c990f01_r.jpg&&&/figure&&p&&b&《Team Geek》:&/b&电影里面的极客都是单刀赴会一个人挑大梁,从焊电路板一直到拥有好几亿用户。这种角色往往给大家一种错觉,就是好的程序员都是独来独往不需要跟别人合作的。这是一种理想主义状态。优秀的软件靠的是团队合作。如果想在自己的职业生涯走的更远,我总结的就靠三点:技术的提高、机会的把握要、团队的和谐。这本书围绕着团队合作三大原则:谦逊、尊重、信任,系统地介绍了如何打造优秀团队。 &/p&&br&&h2&&b&个人修养&/b&&/h2&&p&如果不注重自己的演讲和写作能力,即使是再优秀的工程师,最后也很难突破自我更上一层楼。个人素养的提高是一个缓慢的过程。在这里推荐一本书。&/p&&p&&b&&figure&&img src=&https://pic1.zhimg.com/v2-dd76e57ced2de_b.jpg& data-rawwidth=&610& data-rawheight=&868& class=&origin_image zh-lightbox-thumb& width=&610& data-original=&https://pic1.zhimg.com/v2-dd76e57ced2de_r.jpg&&&/figure&《程序员职业素养》:&/b&程序员的工作不只是日复一日的写代码,更重要的是知道自己在做什么,什么时候做,什么时候不做,什么时候该把活儿推出去,如何管理时间,如何管理deadline,如何正确估计项目所需的时间和精力,面对压力时候如何沉着冷静。这一切的一切都需要有好的心理素质。这本书给出了上述所有问题的分析解答,是程序员前进的指明灯。题外话:除了心理素质,更重要的是身体健康。&/p&&h2&&strong&总结&/strong&&/h2&&p&列这个书单,既是为了帮助刚入职场或者尚未入职场的软件工程师们理解软件设计和开发,也是为了自勉,时刻提醒自己:&strong&只有终身学习才能不被淘汰。&/strong&&/p&&p&有哪些书是作为程序员/数据分析师的你喜欢的呢?欢迎留言告诉我们。&/p&&br&&h2&&strong&课程推荐&/strong&&/h2&&p&Payson现在也是BitTiger王牌课程【全栈工程师直通车】的特约教师之一,如果你也想成为全栈工程师,欢迎&a href=&https://link.zhihu.com/?target=https%3A//www.bittiger.io/livecourses/eqmcu7koE3NxajSQx& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&点击这里&/a&(或者直接扫码咨询)。&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//weixin.qq.com/r/1J3t9TzE8GGPrXiW98jG& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&weixin.qq.com/r/1J3t9Tz&/span&&span class=&invisible&&E8GGPrXiW98jG&/span&&span class=&ellipsis&&&/span&&/a& (二维码自动识别)&/p&BitTiger,来自硅谷的终身学习平台。欢迎关注公众号:&b&太阁&/b& 或搜索 &b&bit_tiger&/b&。&figure&&img src=&https://pic1.zhimg.com/v2-2f9eebf19c64847bef8dc9ac_b.jpg& data-rawwidth=&1080& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1080& data-original=&https://pic1.zhimg.com/v2-2f9eebf19c64847bef8dc9ac_r.jpg&&&/figure&
导读:本文作者Payson Wu,硕士研究方向二维PDE数值解析算法,五年前端开发经验,现就职于Microsoft。现在的工作市场越来越讲究综合人才,软件开发行业也一样。以前的设计、开发、测试、上线分别由单独的团队负责,现在越来越多的公司需要combined engineer…
&figure&&img src=&https://pic1.zhimg.com/v2-1c1afa4df_b.jpg& data-rawwidth=&552& data-rawheight=&295& class=&origin_image zh-lightbox-thumb& width=&552& data-original=&https://pic1.zhimg.com/v2-1c1afa4df_r.jpg&&&/figure&&p&&b&热门书籍&/b&&/p&&p&《重构》&br&《程序员修炼之道》&br&《 计算机程序的构造和解释》&br&《 黑客与画家》&br&《 编程珠玑 》&br&《深入理解计算机系统》&br&《 代码大全》&br&《 HTTP权威指南 》&br&《UNIX程序设计艺术》&br&《 重来》&br&《 集体智慧编程》&br&《 疯狂的程序员》&br&《 Python金融数据分析 》&br&《智识分子:做个复杂的现代人》&br&《 C++primer》&br&《 禅与摩托车维修艺术》&br&《 深入理解Java虚拟机(最新版)》&br&《 计算机程序设计艺术卷1:基本算法》&br&《 颈椎康复指南 》&/p&&p&&br&&/p&&p&&b&算法:&/b&&/p&&p&《算法导论》,《编程之美》,一本重理论,一本重实践&/p&&p&&br&&/p&&p&&b&Linux相关书籍:&/b&&/p&&p&《Unix环境高级编程》,《Unix网络编程》等等&/p&&p&&b&前端:&/b&&/p&&p&《javascript高级程序设计》,《HTML5程序设计》。&/p&&p&&br&&/p&&p&&b&计算机体系:&/b&&/p&&p&《现代操作系统》(强推),《深入理解计算机系统》(看前三章),《程序员的自我修养》(和周志华的《机器学习》并列为我心中最牛逼的国产技术书籍)&/p&&p&搜索引擎:《走进搜索引擎》,配合谷歌论文食用,效果更佳&/p&&p&&b&测试:&/b&&/p&&p&《软件测试的艺术》&/p&&p&&b&软件工程:&/b&&/p&&p&《代码大全》,《设计模式》(四人帮的),《重构》 是我认为必看的&/p&&h2&Java&/h2&&ul&&li&Java编程语言(第三版)---Java四大名著----James Gosling(Java之父)&/li&&li&Java编程思想(第2版)----Java四大名著----Bruce Eckel&/li&&li&Java编程思想(第3版)----Java四大名著----------------Bruce Eckel&/li&&li&JAVA 2核心技术 卷I:基础知识(原书第7版)---Java四大名著-----Cay Horstmann&/li&&li&JAVA 2核心技术 卷II:高级特性(原书第7版)----Java四大名著-----Cay Horstmann&/li&&li&Effective Java中文版------Java四大名著--------Joshua Bloch&/li&&li&精通Struts:基于MVC的Java Web设计与开发---孙卫琴&/li&&li&精通Hibernate:Java对象持久化技术详解---孙卫琴&/li&&li&Tomcat与Java Web开发技术详解------------孙卫琴&/li&&li&Java与模式------------------------------阎宏&/li&&/ul&&h2&C#&/h2&&ul&&li&C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑”&/li&&li&C# Primer中文版--------Stanley B.Lippman---C#语言“倚天屠龙双剑”&/li&&li&.NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”&a href=&http://link.zhihu.com/?target=http%3A//---.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&---.NET&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&平台四大天王&/li&&li&c#Windows程序设计----------Charles Petzold“windows编程泰山北斗”&a href=&http://link.zhihu.com/?target=http%3A//------.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&------.NET&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&平台四大天王&/li&&li&.NET程序设计技术内幕-------------Jeff &a href=&http://link.zhihu.com/?target=http%3A//Prosise---.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&Prosise---.NET&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&平台四大天王&/li&&li&.NET本质论--第1卷:公共语言运行库(中文版)--------Chris &a href=&http://link.zhihu.com/?target=http%3A//Sells---.NET& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&Sells---.NET&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&平台四大天王&/li&&/ul&&h2&C++&/h2&&ul&&li&C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父”&/li&&li&C++ Primer (第3版)中文版----c++八大金刚---Stanley B.Lippman&/li&&li&C++ Primer (第4版)中文版----c++八大金刚---Stanley B.Lippman&/li&&li&C++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.Josuttis&/li&&li&C++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父”&/li&&li&深度探索C++对象模型---c++八大金刚----Stanley B.Lippman&/li&&li&Essential C++中文版---c++八大金刚---Stanley B.Lippman&/li&&li&Effective C++中文版 2nd Edition-----c++八大金刚------Scott Meyers&/li&&li&More Effective C++中文版----c++八大金刚------Scott Meyers&/li&&li&C++编程思想(第2版) 第1卷:标准C++导引--------Bruce Eckel&/li&&li&C++编程思想(第2版)第2卷:实用编程技术 --------Bruce Eckel&/li&&li&C++程序设计--------------------------谭浩强&/li&&li&C++ 程序设计教程(第2版)--------------钱能&/li&&li&C++ Primer Plus(第五版)中文版---Stephen Prata&/li&&li&广博如四库全书The c++ programming language、c++ Primer&/li&&li&深奥如山重水复Inside the c++ object model&/li&&li&程序库大全The c++ standard libray&/li&&li&工程经验之积累Effective c++、More Effective c++、Exceptional c++&/li&&li&《C++ primer》,《深度探索C++对象模型》,《stl源码剖析》。&/li&&/ul&&h2&Unix&/h2&&ul&&li&UNIX 网络编程 卷I 套接字联网API(英文版 第三版&/li&&li&UNIX 编程艺术&/li&&li&UNIX环境高级编程(英文影印第2版-----UNIX编程“圣经&/li&&li&UNIX环境高级编程(英文影印版)(第2版)&/li&&li&99-UNIX环境高级编程(第2版)&/li&&li&UNIX环境高级编程(第2版)---UNIX编程“圣经&/li&&li&UNIX网络编程 第1卷:套接口API(第3版)&/li&&li&UNIX网络编程卷2:进程间通信(第2版)(英文影印版)&/li&&li&UNIX 网络编程(第二版)第2卷:进程间通信&/li&&li&UNIX编程环境&/li&&li&UNIX 网络编程 卷I 套接字联网API(英文版 第三版&/li&&li&UNIX系统编程&/li&&li&UNIX环境高级编程&/li&&li&UNIX环境高级编程(英文影印版&/li&&li&88-LINUX内核分析及编程&/li&&li&UNIX 网络编程 卷I 套接字联网API(英文版 第三版)&/li&&li&UNIX网络编程 第1卷:套接口API(第3版)&/li&&li&UNIX 网络编程(第二版)第2卷:进程间通信&/li&&li&UNIX网络编程卷2:进程间通信(第2版)(英文影印版)&/li&&li&UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口API&/li&&li&UNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版)&/li&&li&UNIX环境高级编程&/li&&li&UNIX 环境高级编程(英文版)&/li&&li&UNIX环境高级编程(第2版)&/li&&li&Unix技术手册&/li&&/ul&&h2&Linux&/h2&&ul&&li&Linux内核设计与实现&/li&&li&Linux内核完全注释&/li&&li&LINUX内核分析及编程&/li&&li&GNU/Linux 编程指南(第二版)&/li&&li&Linux设备驱动程序(第三版)&/li&&li&嵌入式设计及Linux驱动开发指南——基于ARM 9处理器&/li&&li&Linux设备驱动程序 第三版(英文影印版)&/li&&li&Linux内核设计与实现(第2版)&/li&&li&Linux内核设计与实现(英文影印版)(第2版)&/li&&li&linux技术手册&/li&&/ul&&h2&游戏编程&/h2&&ul&&li&Windows游戏编程大师技巧(第二版&/li&&li&游戏之旅--我的编程感悟&/li&&li&OpenGL超级宝典:第三版&/li&&li&OpenGL编程指南(第四版)&/li&&li&Java 游戏高级编程&/li&&li&J2ME手机游戏编程入门&/li&&li&游戏之旅——我的编程感悟&/li&&li&游戏开发中的人工智能(英文影印版)&/li&&li&3D游戏:卷2 动画与高级实时渲染技术&/li&&li&面向对象的游戏开发&/li&&li&Java 游戏高级编程&/li&&li&3D游戏编程大师技巧&/li&&li&游戏编程精粹&/li&&li&面向对象的游戏开发&/li&&li&3D游戏 卷1:实时渲染与软件技术&/li&&li&3D游戏:卷2 动画与高级实时渲染技…&/li&&li&J2ME手机游戏编程入门&/li&&li&Direct3D游戏编程入门教程(第二版…&/li&&/ul&&h2&PHP&/h2&&p&&b&1.细说PHP &/b&&/p&&b&&figure&&img src=&http://pic3.zhimg.com/v2-101a8e9ea0bbcf7b85dc52_b.jpg& data-rawwidth=&318& data-rawheight=&417& class=&content_image& width=&318&&&/figure&&/b&&p&  PHP入门的经典,内容详实易懂,全面涵盖了web开发的所需的知识内容。是一本从入门到精通PHP技术的首选教材。国内比较良心的快速入门php书籍&/p&&p&&b& 2.Head First: PHP & MySQL(中文版)&/b&&/p&&b&&figure&&img src=&http://pic1.zhimg.com/v2-2e9609edcdbbd6a8585a8bbd091b45fc_b.jpg& data-rawwidth=&339& data-rawheight=&393& class=&content_image& width=&339&&&/figure&&/b&&p&  有大量的实例、图解,以及形式多样的练习,不会罗列一大堆关键字和规则让你昏昏欲睡,而是会让你很惊讶:原来编程也可以这么学!&/p&&p&&b& 3.深入PHP:面向对象、模式与实践&/b&&/p&&figure&&img src=&http://pic1.zhimg.com/v2-42b4fed9b38a0cdf2d08d751e37dbb30_b.jpg& data-rawwidth=&324& data-rawheight=&408& class=&content_image& width=&324&&&/figure&&p&  适合有一定PHP基础的人,雅虎公司PHP专家力作,这绝对是一本每读一遍都会受益一便的好书。&/p&&p&&b&4.PHP和MySQL Web开发&/b&&/p&&b&&figure&&img src=&http://pic2.zhimg.com/v2-57c7e05d092703bec2ea575_b.jpg& data-rawwidth=&368& data-rawheight=&500& class=&content_image& width=&368&&&/figure&&/b&&p&&/p&
热门书籍《重构》 《程序员修炼之道》 《 计算机程序的构造和解释》 《 黑客与画家》 《 编程珠玑 》 《深入理解计算机系统》 《 代码大全》 《 HTTP权威指南 》 《UNIX程序设计艺术》 《 重来》 《 集体智慧编程》 《 疯狂的程序员》 《 Python金融数据分…
&figure&&img src=&https://pic1.zhimg.com/ead3ec2e94e_b.jpg& data-rawwidth=&900& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic1.zhimg.com/ead3ec2e94e_r.jpg&&&/figure&&p&2016年已经过去了一半,带大家一起回顾2016年上半年人邮异步社区出过的好书,顺便您也看看自己的书架,还有多少是您未读过的,还有多少在计划之内还没读完的,都来回顾下吧。&/p&&p&C Primer Plus 第6版 中文版 &i&C Primer Plus (6th Edition)&/i&&/p&&p&(作者)[美]史蒂芬 普拉达(Stephen Prata) (译者) 姜佑&/p&&figure&&img src=&https://pic2.zhimg.com/4b0f74f5dc5e410e20ef5_b.jpg& data-rawwidth=&242& data-rawheight=&322& class=&content_image& width=&242&&&/figure&&ul&&li&畅销的重量级C语言大百科全书&br&&/li&&li&C语言从入门到精通的入门经典推荐&br&&/li&&li&初学的大牛著作 第五版销售超过250000册&br&&/li&&/ul&&br&&br&&p&本书详细讲解了C语言的基本概念和编程技巧。&/p&&p&全书共17章。第1、2章介绍了C语言编程的预备知识。第3~15章详细讲解了C语言的相关知识,包括数据类型、格式化输入/输出、运算符、表达式、语句、循环、字符输入和输出、函数、数组和指针、字符和字符串函数、内存管理、文件输入输出、结构、位操作等。第16章、17章介绍C预处理器、C库和高级数据表示。本书以完整的程序为例,讲解C语言的知识要点和注意事项。每章末设计了大量复习题和编程练习,帮助读者巩固所学知识和提高实际编程能力。附录给出了各章复习题的参考答案和丰富的参考资料。&/p&&p&本书可作为C语言的教材,适用于需要系统学习C语言的初学者,也适用于巩固C语言知识或希望进一步提高编程技术的程序员。&/p&&p&Python核心编程 第3版&/p&&p&&i&Core Python Applications Programming (3rd Edition)&/i&&/p&&p&(作者)[美]卫斯理 春(Wesley Chun)  (译者)孙波翔 李斌 李晗&/p&&figure&&img src=&https://pic2.zhimg.com/cb9e5e7103d30cda6e933df_b.jpg& data-rawwidth=&240& data-rawheight=&319& class=&content_image& width=&240&&&/figure&&ul&&li&Python高手进阶图书&br&&/li&&li&详解通用应用和Web开发&br&&/li&&li&系列销量逾70000册&br&&/li&&li&Python开发人员的案头必读学习手册&br&&/li&&/ul&&br&&p&本书是经典畅销图书《Python核心编程(第二版)》的全新升级版本,总共分为3部分。第1部分讲解了Python的一些通用应用,包括正则表达式、网络编程、Internet客户端编程、多线程编程、GUI编程、数据库编程、Microsoft Office编程、扩展Python等内容。第2部分讲解了与Web开发相关的主题,包括Web客户端和服务器、CGI和WSGI相关的Web编程、Diango Web框架、云计算、高级Web服务。第3部分则为一个补充/实验章节,包括文本处理以及一些其他内容。 本书适合具有一定经验的Python开发人员阅读。&/p&&p&Spring实战(第4版)&/p&&p&&i&Spring in Action,Fourth Edition edition&/i&&/p&&p&(作者)[美] Craig Walls 沃尔斯  (译者)张卫滨&/p&&figure&&img src=&https://pic2.zhimg.com/883d16d7a931f8f8e901b9bca1d114f3_b.jpg& data-rawwidth=&246& data-rawheight=&321& class=&content_image& width=&246&&&/figure&&ul&&li&全球有超过100 000的开发者使用本书来学习Spring&br&&/li&&li&中文版累计销售超10万册,畅销经典Spring 技术图书&br&&/li&&li&针对Spring 4 全新升级作者Craig Walls&br&&/li&&/ul&&br&&p&第4版针对Spring 4进行了全面更新。全书分为四部分。第1部分介绍Spring框架的核心知识。第二部分在此基础上介绍了如何使用Spring构建Web应用程序。第三部分告别前端,介绍了如何在应用程序的后端使用Spring。第四部分描述了如何使用Spring与其他的应用和服务进行集成。&/p&&p&《Spring实战(第4版)》适用于已具有一定Java 编程基础的读者,以及在Java 平台下进行各类软件开发的开发人员、测试人员,尤其适用于企业级Java 开发人员。本书既可以被刚开始学习Spring 的读者当作学习指南,也可以被那些想深入了解Spring 某方面功能的专业用户作为参考用书。&/p&&p&浪潮之巅 第三版 上下册&/p&&p&(作者)吴军&/p&&figure&&img src=&https://pic2.zhimg.com/ab8a344cd0b2b_b.jpg& data-rawwidth=&237& data-rawheight=&314& class=&content_image& width=&237&&&/figure&&p&《浪潮之巅 第三版》是一本介绍互联网及IT行业兴衰变化的书,书中的内容最早由吴军博士发表在Google黑板报上,历经多次改写和重构。近一百多年来,总有一些公司很幸运地、有意识或无意识地站在技术革命的浪尖之上。在这十几年间,它们代表着科技的浪潮,直到下一波浪潮的来临。从一百年前算起,AT&T 公司、IBM 公司、苹果公司、英特尔公司、微软公司、思科公司、雅虎公司和Google公司都先后被幸运地推到了浪尖。虽然,它们来自不同的领域,中间有些已经衰落或正在衰落,但是它们都极度辉煌过。在这些公司兴衰的背后,有着它必然的规律。&/p&&p&《浪潮之巅》系统地介绍了这些公司成功的本质原因及科技工业一百多年的发展。本书不仅讲述科技工业的历史,更重在揭示它的规律性。 在极度商业化的今天,科技的进步和商机是分不开的。因此,《浪潮之巅》也系统地介绍了影响到科技浪潮的风险投资公司,诸如 KPCB 和红杉资本,以及百年来为科技捧场的投资银行,例如高盛公司,等等。&/p&&p&对所有身处并热爱高科技行业的人来说,对所有渴望创新、欣赏创新的中国创业者来说,新版《浪潮之巅》都是一本可读性很强的作品,足以做到“开卷有益”!&/p&&p&这不是一本科技产业发展历史集,而是在这个数字时代,一本IT人非读不可,而非IT人也应该拜读的作品。&/p&&p&Python算法教程&/p&&p&&i&Python Algorithms: Mastering Basic Algorithms in the Python Language&/i&&/p&&p&(作者)[挪威] Magnus Lie Hetland 赫特兰  (译者)凌杰&/p&&figure&&img src=&https://pic4.zhimg.com/76b924e12c5a_b.jpg& data-rawwidth=&230& data-rawheight=&310& class=&content_image& width=&230&&&/figure&&ul&&li&精通Python基础算法&br&&/li&&li&畅销书Python基础教程作者力作&br&&/li&&/ul&&br&&p&本书用Python语言来讲解算法的分析和设计。本书主要关注经典的算法,但同时会为读者理解基本算法问题和解决问题打下很好的基础。全书共11章。分别介绍了树、图、计数问题、归纳递归、遍历、分解合并、贪心算法、复杂依赖、Dijkstra算法、匹配切割问题以及困难问题及其稀释等内容。本书在每一章结束的时候均有练习题和参考资料,这为读者的自我检查以及进一步学习提供了较多的便利。在全书的最后,给出了练习题的提示,方便读者进行查漏补缺。 本书概念和知识点讲解清晰,语言简洁。本书适合对Python算法感兴趣的初中级用户阅读和自学,也适合高等院校的计算机系学生作为参考教材来阅读。&/p&&p&领域驱动设计:软件核心复杂性应对之道(修订版)&/p&&p&&i&Domain-Driven Design: Tackling Complexcity in the Heart of Software&/i&&/p&&p&(作者)[美] 埃里克o埃文斯(Eric Evans)  (译者) 赵俐 盛海艳 刘霞&/p&&figure&&img src=&https://pic1.zhimg.com/9aa334bdca3da_b.jpg& data-rawwidth=&249& data-rawheight=&327& class=&content_image& width=&249&&&/figure&&ul&&li&领域驱动设计之父经典著作&br&&/li&&li&众多声名显赫软件大师鼎力推荐&br&&/li&&li&深度剖析构建高质量复杂系统的核心技术&br&&/li&&/ul&&br&&p&本书是领域驱动设计方面的经典之作,修订版更是对之前出版的中文版进行了全面的修订和完善。&/p&&p&全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。书中给出了领域驱动设计的系统化方法,并将人们普遍接受的一些最佳实践综合到一起,融入了作者的见解和经验,展现了一些可扩展的设计最佳实践、已验证过的技术以及便于应对复杂领域的软件项目开发的基本原则。&/p&&p&Wireshark网络分析的艺术&/p&&p&(作者)林沛满&/p&&figure&&img src=&https://pic4.zhimg.com/5e353b6bef2bdcb152ffffb_b.jpg& data-rawwidth=&238& data-rawheight=&320& class=&content_image& width=&238&&&/figure&&p&《Wireshark网络分析的艺术》挑选的网络包来自真实场景,经典且接地气。讲解时采用了生活化的语言,力求通俗易懂,以使读者在轻松阅读的过程中,既可以学到实用的网络知识,又能形成解决问题的思路。&/p&&p&与大多网络图书的课堂式体验不同,阅读《Wireshark网络分析的艺术》的感觉更像在听技术圈的朋友分享经验,除了知识,还有心情和想法。本书的覆盖范围从日常使用的手机App,到企业级的数据中心;从对付运营商的网络劫持,到开发自己的分析工具,不一而足。无论你是系统管理员、实施工程师、技术支持、网管、培训教师,还是开发和测试人员,都适合阅读本书。&/p&&p&循序渐进Linux 第2版&/p&&p&(作者)高俊峰&/p&&figure&&img src=&https://pic1.zhimg.com/240da2f286f4e8a5f46ea8c605418dea_b.jpg& data-rawwidth=&237& data-rawheight=&313& class=&content_image& width=&237&&&/figure&&p&本书从基础知识入手,系统讲解了Linux系统结构、shell、主流服务器搭建及故障排除、用户权限管理、磁盘存储管理、文件系统管理、内存管理和系统进程管理等关键技术,深入研究了系统性能优化思路、系统性能评估与优化、集群技术、负载均衡等Linux热点主题。&/p&&p&全书强调学习方法以及技术能力的培养,在每个知识点后都给出了大量操作案例,包括了详细的操作步骤,具有很强的可操作性,并对案例进行分析,提供了解决问题的思路和方法,做到了授人以渔。 本书适合希望系统、全面学习Linux技术的初学者作为教材,也适合Linux系统管理员、数据库管理人员、网络安全管理人员、系统集成人员和系统架构师参考。&/p&&p&Android开发进阶 从小工到专家&/p&&p&(作者)何红辉&/p&&figure&&img src=&https://pic4.zhimg.com/c4c0cfc8a2f2e5be9b501dfa0d086c6d_b.jpg& data-rawwidth=&239& data-rawheight=&318& class=&content_image& width=&239&&&/figure&&p&本书是一本专门介绍Android开发的图书。书中首先对Android开发的核心知识点进行深入讲解,然后介绍单元测试、代码规范、版本控制、重构、架构等重要的知识,使得读者在深入掌握技术的同时也帮助他们开阔眼界,且能够以更专业的方式设计应用软件,完成从只会实现功能的初级程序员到软件工程师、设计师的转变。&/p&&p&本书的主要内容为:构成Android系统基石的四大组件、创造出丰富多彩的UI设计的控件、保证App流畅的多线程开发、必知必会的HTTP网络请求应用、数据存储的核心SQLite数据库、让程序更优秀的性能优化、让程序更整洁的代码规范、管理程序的好帮手Git版本控制,以及需要掌握的高级技术,如单元测试、六大原则与设计模式、重构和综合实战等。&/p&&p&本书适合Android开发初学者、程序员学习,也适合作为大中专院校相关专业的师生用书和培训学校的教材。&/p&&p&Python数据分析&/p&&p&&i&Python Data Analysis&/i&&/p&&p&[印尼](作者)Ivan Idris  (译者)韩波&/p&&figure&&img src=&https://pic4.zhimg.com/046f78ebd05decd5efeaa060294dec9d_b.jpg& data-rawwidth=&249& data-rawheight=&317& class=&content_image& width=&249&&&/figure&&p&Python是一种多范型编程语言,既适用于面向对象的应用开发,又适合函数式设计模式。Python已经成为数据科学家进行数据分析、可视化以及机器学习的一种理想编程语言,它能帮助你快速提升工作效率。 本书将会带领新手熟悉Python数据分析相关领域的方方面面,从数据检索、清洗、操作、可视化、存储到高级分析和建模。同时,本书着重讲解一系列开源的Python模块,诸如NumPy、SciPy、matplotlib、pandas、IPython、 Cython、scikit-learn和NLTK等。此外,本书还介绍了数据可视化、信号处理、时间序列分析、数据库、预测性分析和机器学习等主题。通过阅读本书,你将华丽变身数据分析高手。&/p&&p&操作系统真象还原&/p&&p&(作者)郑钢 &/p&&figure&&img src=&https://pic3.zhimg.com/338ecaba71b97b9cbc33d_b.jpg& data-rawwidth=&247& data-rawheight=&324& class=&content_image& width=&247&&&/figure&&p&大学及研究生都有操作系统课程,这类人群具有很高的学术能力,但书中讲的过于抽象与晦涩,以至于很多学生对于此门课程恐惧到都提不出问题,只有会的人才能提出问题。操作系统理论书是无法让读者理解什么是操作系统的,学操作系统不能靠想像,他们需要看到具体的东西。&/p&&p&绝大多数技术人都对操作系统怀着好奇的心,他们渴望一本告诉操作系统到底是什么的书,里面不要掺杂太多无关的管理性的东西,代码量不大且是现代操作系统雏形,他们渴望很快看到本质而不花费大量的时间成本。&/p&&p&第一本Docker书 修订版&/p&&p&The Docker Book&/p&&p&(作者)[澳] 詹姆斯o特恩布尔(James Turnbull)  (译者)刘斌&/p&&figure&&img src=&https://pic4.zhimg.com/bad8bc7c201c6_b.jpg& data-rawwidth=&237& data-rawheight=&314& class=&content_image& width=&237&&&/figure&&p&本书由Docker公司前服务与支持副总裁James Turnbull编写,是权威的Docker开发指南。本书专注于Docker 1.9及以上版本,指导读者完成Docker的安装、部署、管理和扩展,带领读者经历从测试到生产的整个开发生命周期,让读者了解Docker适用于什么场景。书中先介绍Docker及其组件的基础知识,然后介绍用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。&/p&&p&本书适合对Docker或容器开发感兴趣的系统管理员、运维人员和开发人员阅读。&/p&&p&告别失控:软件开发团队管理必读&/p&&p&&i&Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams&/i&&/p&&p&(作者)[美]米奇 W.蒙托(Mickey W. Mantle)罗恩o利克蒂(Ron Lichty)   (译者) 赵普明 黄倩 张维维 钱昊&/p&&figure&&img src=&https://pic3.zhimg.com/499148adcc2a283c7ed01_b.jpg& data-rawwidth=&241& data-rawheight=&311& class=&content_image& width=&241&&&/figure&&p&这是一本系统阐述面对混乱而容易失控的技术开发团队时,如何管理、建设和强化团队,成功交付开发成果的大作。两位作者Mickey W. Mantle和Ron Lichty以合起来近70年的开发管理经验为基础,通过深刻的观察和分析,找到了软件开发管理的核心问题——人的管理,并围绕如何真正理解程序员、找到合适的程序员、与程序员沟通这几个核心话题,一步步展开,最终扩展到如何以人为本地进行团队建设、管理和项目管理。 本书适合初级开发管理人员,可以说是一本从初级管理人员成长为高级管理人员的必备之书。同时,也适合有志于走向管理岗位的程序员、产品或其他技术公司员工。&/p&&p&数据整理实践指南&/p&&p&&i&Bad Data Handbook Cleaning Up The Data So You Can Get Back To Work&/i&&/p&&p&(作者)[美]Q. Ethan McCallum 麦卡伦  (译者)魏秀丽 , 李妹芳 英译中&/p&&figure&&img src=&https://pic4.zhimg.com/65c9fb3109f6abfecc7bef4_b.jpg& data-rawwidth=&236& data-rawheight=&318& class=&content_image& width=&236&&&/figure&&p&本书共有19章,向读者展示了使用和清理不良数据背后的理论和实践。第1部分是Grubby的动手实践指南,它向读者介绍了驾驭、提取数据的方法,如何处理文本数据中的数据以及Web开发中碰到的数据问题。第2部分是让人充满意外的数据,它向读者介绍了数据也会“撒谎”。第3部分是方法,它向读者介绍了处理不良数据的一些方法。第4部分是数据存储和基础设施,它向读者介绍了如何存储数据。第5部分是数据的商业化,它向读者介绍了如何避免数据处理的一些误差。第6部分是数据策略,它向读者介绍了如何追踪数据、评估数据质量以及构建数据质量相关平台等。 本书适合数据科学家、数据处理和整理相关开发人员阅读。也适合想要进入数据处理领域的读者阅读。&/p&&p&Docker生产环境实践指南&/p&&figure&&img src=&https://pic1.zhimg.com/296f369bcc64_b.jpg& data-rawwidth=&233& data-rawheight=&306& class=&content_image& width=&233&&&/figure&&br&&p&本书围绕“Docker该如何应用到生产环境”这一核心问题展开。在本书中,读者将接触到多个IT企业应用Docker到生产环境的成功案例,了解Docker实际投产时将会面临的问题,以及它与现有基础设施存在的矛盾与冲突,了解构建Docker生态系统所需的配套设施,包括安全、构建镜像、持续集成/持续交付、镜像存储、配置管理、网络实现、服务发现、持久化存储以及日志监控等模块具体选型方案及利弊所在。本书编写时一些案例参考的Docker版本是Docker 1.6版本或Docker 1.7。&/p&
2016年已经过去了一半,带大家一起回顾2016年上半年人邮异步社区出过的好书,顺便您也看看自己的书架,还有多少是您未读过的,还有多少在计划之内还没读完的,都来回顾下吧。C Primer Plus 第6版 中文版 C Primer Plus (6th Edition)(作者)[美]史蒂芬 普拉…
&figure&&img src=&https://pic4.zhimg.com/v2-fcec9934099bbd_b.jpg& data-rawwidth=&1214& data-rawheight=&838& class=&origin_image zh-lightbox-thumb& width=&1214& data-original=&https://pic4.zhimg.com/v2-fcec9934099bbd_r.jpg&&&/figure&&p&最近几个月看了不少书,觉得有几本甚是不错,如干货满满的《编程风格》,概念普及中的《Serverless架构:无服务器单页应用开发》。便撰文一篇,简单地介绍一下这几本书。&/p&&p&推荐的这几本书,都是一些系统性思考的书籍。因此,形如《深入理解 ES6》这种偏向于技术细节的书,建议大家按自己的需要去阅读。&/p&&p&&br&&/p&&h2&干货推荐:《编程风格》&/h2&&p&&br&&/p&&figure&&img src=&http://pic2.zhimg.com/v2-a9e3abc7a7cacde68c979d9ad1714379_b.jpg& data-rawwidth=&640& data-rawheight=&317& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&http://pic2.zhimg.com/v2-a9e3abc7a7cacde68c979d9ad1714379_r.jpg&&&/figure&&p&&br&&/p&&p&《编程风格:好代码的逻辑》 是我在最近看的一本书,这本书蛮有意思的。它让我联想起了 GoF 的《设计模式》,只是《设计模式》一书多以 C++ 以例,并且对新手来说过于抽象。好了,扯远了。 GoF 总结出了 23 种设计模式,这些设计模式都会在日常的代码设计中体现。而《编程风格:好代码的逻辑》一书,则更侧重于讲述在代码设计过程中的一些思想。&/p&&p&如果让我们对这些编程概念应用,进行一个按层级的划分,从顶层到底层应该类似于(按个人理解):&/p&&p&&b&DDD -& 微服务 -& 应用架构 -& 设计模式 -& 编程风格 -& 算法与数据结构&/b&&/p&&p&按我对这本书的理解,书中的编程风格很有意思,在某些地方与设计模式重合,在哪些地方又偏向于代码实现设计。&/p&&p&这本书使用的是 Python 语言,书中的内容是:&b&以 33 种代码风格来实现一个业务功能&/b&,即词频统计。这就好比是,我们布置了一个作业题下去了,然后 33 个人交出了不同的答案。两三年前,当我开始阅读公司面试的代码作业,总会看到一些新奇的解决问题的思路。每每如此,总会感慨一下,为什么我想不到这个方法。&/p&&p&因此,这就是这本书的可贵之处:&b&一个功能的 33 种实现&/b&。如书开头的时候,是以早期资源受限(内存)的风格讲起,在今天多数时候我们并不会考虑内存问题。随后,又介绍了 Forth 风格的词频统计算法,即以堆、栈的形式来进行计算。一步步按不同的风格演示,直至越来越高级的 MapReduce、MVC 风格、RESTful 风格。&/p&&p&尽管从某种意义上来说,这不是一本非常有&b&价值&/b&的书,不能帮助你完成工作。但是,它是启发我们进行更多的代码级思考。&/p&&p&&br&&/p&&h2&干货推荐:《JavaScript 框架设计 第2版》&/h2&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&http://pic3.zhimg.com/v2-32c4c7ad3b2c4fc301f9302_b.jpg& data-rawwidth=&640& data-rawheight=&325& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&http://pic3.zhimg.com/v2-32c4c7ad3b2c4fc301f9302_r.jpg&&&/figure&&p&&br&&/p&&p&如果你是一个工作 1~2 年的前端工程师,那么相信在完成工作方面,你应该不会有什么问题。正在琢磨怎么深入前端领域(又或者,开源、KPI、升职加薪),那么你可以试试阅读这本书。&/p&&p&记得我刚工作的时候,我看到了这本书的第 1 版,于是自己就去造一些前端的轮子,即多年前的 Lettuce。与阅读开源软件相比来源,自己去造一个相似的轮子,是一个更有效的方法。在这个过程中,我们还会去剖析一些现有的轮子,从中 GET 到一些新的技能。&/p&&p&而与上本书相比,《JavaScript 框架设计 第2版》与时俱进地添加了更多的东西。在上一版的时候,诸如 class、选择器等等的东西保留了下来,又增加了一些诸如 React、Virtual DOM,以及作者的 Avalon 等等的内容。这些可以让我们更清楚地看到,框架背后的思考,能帮助我们造出更好的轮子。&/p&&p&&br&&/p&&h2&概念推荐:《Serverless 架构:无服务器单页应用开发》&/h2&&p&&br&&/p&&figure&&img src=&http://pic2.zhimg.com/v2-1ed1ab22ce08d701fc81ee5_b.jpg& data-rawwidth=&640& data-rawheight=&442& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&http://pic2.zhimg.com/v2-1ed1ab22ce08d701fc81ee5_r.jpg&&&/figure&&p&&br&&/p&&p&(PS:如标题所说,如果你想了解更多概念,就来看看吧)&/p&&p&作为一个程序员,你可能会时常想着自己做一个产品。而如果你只是一个前端工程师,那么你可能会对后端感到一丝丝恐惧。这个时候,你不妨试一试 Serverless,即:&b&你的后台运行在 Web 服务之上,而不是 Web 服务器&/b&。&/p&&p&传统的后台,我们需要自己登录到服务器,然后部署上我们的应用。因此,我们要关心的不仅仅是应用本身,还有服务器运行的操作系统、网络服务等等,以及数据库和系统的可扩展性。而 Serverless 则是,我们使用 Lambda 服务编写一些业务逻辑,并设置好数据库、认证授权、日志等等的一系列服务,那么我们再去完成前台部分的逻辑即可。&/p&&p&这本书主要是以云计算的老大 AWS 而介绍的,这本书可以让你对未来有一些更好的看法,尝试一些更有意思的东西。当然了,你最好有要一个 AWS 账户,AWS 提供一年的免费试用,前提是你有 VISA 账户。&/p&&p&&br&&/p&&h2&概念推荐:《 Spring Cloud 与 Docker 微服务架构实战》&/h2&&p&&br&&/p&&figure&&img src=&http://pic1.zhimg.com/v2-30a9fb38bc3ae8c3b3190_b.jpg& data-rawwidth=&640& data-rawheight=&360& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&http://pic1.zhimg.com/v2-30a9fb38bc3ae8c3b3190_r.jpg&&&/figure&&p&&br&&/p&&p&(PS:如标题所说,如果你想了解更多概念,就来看看吧)&/p&&p&推荐这本书的原因是,这本书的一些内容和我们公司之间的 workshop 有很多的内容是重合的。这是一本&b&写给新手&/b&看的微服务书籍,建议有经验的读者就不要考虑了,网上的资料有很多。当然如果你有钱,又没有时间,那么你就可以买、买、买。&/p&&p&毕竟这是一本主要以介绍 Spring Cloud 为主的书,而不是一本介绍微服务的书。因此,只是实践 Spring Cloud 或者理解概念,那么这本书相当的不错。&/p&&p&&br&&/p&&h2&概念推荐:《 Cloud Native Go: 构建基于 Go 和 React 的云原生Web应用与微服务》&/h2&&p&&br&&/p&&figure&&img src=&http://pic2.zhimg.com/v2-06eba53daea5efa4ff2edd_b.jpg& data-rawwidth=&640& data-rawheight=&393& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&http://pic2.zhimg.com/v2-06eba53daea5efa4ff2edd_r.jpg&&&/figure&&p&&br&&/p&&p&(PS:如标题所说,如果你想了解更多概念,就来看看吧)&/p&&p&听闻公司在推荐学习 Cloud Native,吓得我去买了本 Cloud Native 书,然后我就后悔了:Cloud Native 从某种意义上来说&b&是一些最佳实践的合集&/b&——微服务、DevOps、持续交付等等。&/p&&p&同样的,这也是一本概念性 + 实战的书籍,只是用的是 Go 语言,不过只有最后一章讲到 React。因此,建议 1~2 年经验的开发者可以试试,如果是多年经验的,那么建议阅读《十二要素方法》。&/p&&p&&br&&/p&&h2&无理由推荐:《拍出绝世美姿》&/h2&&p&&br&&/p&&figure&&img src=&http://pic3.zhimg.com/v2-9b1aa87dc82_b.jpg& data-rawwidth=&635& data-rawheight=&343& class=&origin_image zh-lightbox-thumb& width=&635& data-original=&http://pic3.zhimg.com/v2-9b1aa87dc82_r.jpg&&&/figure&&p&&br&&/p&&p&下个月就是国庆节了。&/p&&p&如果你有女朋友的话,那么你一定需要这本书。&/p&&p&如果你没有女朋友的话,那么你更需要这本书。&/p&&p&啊哈哈~~,论怎么出去勾搭妹子。&/p&&p&&br&&/p&&p&怎样,来份关注?&/p&&figure&&img src=&http://pic1.zhimg.com/v2-bff611f254_b.jpg& data-rawwidth=&400& data-rawheight=&400& class=&content_image& width=&400&&&/figure&&p&&/p&
最近几个月看了不少书,觉得有几本甚是不错,如干货满满的《编程风格》,概念普及中的《Serverless架构:无服务器单页应用开发》。便撰文一篇,简单地介绍一下这几本书。推荐的这几本书,都是一些系统性思考的书籍。因此,形如《深入理解 ES6》这种偏向于技…
&figure&&img src=&https://pic1.zhimg.com/v2-76aa1c5e7_b.jpg& data-rawwidth=&900& data-rawheight=&493& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic1.zhimg.com/v2-76aa1c5e7_r.jpg&&&/figure&&p&自从知道了 Python 是个叫 Guido Van Rossum 的天才工程师在圣诞节期间为了排遣无聊的假期时光搞出来的编程语言,你有没有越发对这个飞速发展的编程世界充满焦虑? &/p&&p&&br&&/p&&p&照编程这日新月异的更新速度,&/p&&p&究竟要从哪门语言开始苦读,&/p&&p&才不会刚学个大概,&/p&&p&就快要被世界淘汰?&/p&&p&&br&&/p&&figure&&img src=&http://pic3.zhimg.com/v2-1d9d203f5793cee3e176_b.jpg& data-rawwidth=&250& data-rawheight=&250& class=&content_image& width=&250&&&/figure&&p&&br&&/p&&p&没关系,小栈最近意外得来一张《编程语言学习选择宝典》,编程入门究竟要学哪种语言,一张图,就给你指条明路。&/p&&figure&&img src=&http://pic3.zhimg.com/v2-b2aa1ffa6_b.jpg& data-rawwidth=&1432& data-rawheight=&782& class=&origin_image zh-lightbox-thumb& width=&1432& data-original=&http://pic3.zhimg.com/v2-b2aa1ffa6_r.jpg&&&/figure&&p&看不清图的朋友&/p&&p&小栈精心整理了宝典&b&文字版&/b&,&/p&&p&同样给力,童叟无欺&/p&&hr&&p&&b&1. 为什么我要学编程?&/b& &/p&&ul&&li&为了孩子
—& 先学 &b&Scratch&/b& 入门,再学 &b&Python&/b&&/li&&li&赚钱
—& 2&/li&&li&因为好玩
—& 3&/li&&li&感兴趣呗
—& 3&/li&&li&自我提升
—& 3&/li&&li&我不知道,随便帮我选一个吧
—& &b&Python&/b&&/li&&/ul&&p&&br&&/p&&p&&b&2. 我要如何赚钱?&/b& &/p&&ul&&li&找工作 —& 4&/li&&li&创业 —& 5&/li&&/ul&&p&&br&&/p&&p&&b&3. 我心里已经有一个喜欢的想法或平台了吗?&/b&&/p&&ul&&li&有的 —& 5&/li&&li&没有,只想先学一点 —& 6&/li&&/ul&&p&&br&&/p&&p&&b&4. 我对哪个平台 / 领域 感兴趣?&/b&&/p&&ul&&li&3D / 游戏
—& &b&C++&/b&&/li&&li&手机 —& 7&/li&&li&网页 —& 8&/li&&li&大公司 —& 10&/li&&li&我就想去牛逼的科技公司
—& 11&/li&&li&无所谓,我只想要钱钱钱 —& &b&Java&/b&&/li&&/ul&&p&&br&&/p&&p&&b&5. 我想在哪个 平台 / 领域 学习或创业?&/b&&/p&&ul&&li&3D / 游戏
—& &b&C++&/b&&/li&&li&手机 —& 7&/li&&li&网页 —& 12&/li&&li&大公司 —& 10&/li&&/ul&&p&&br&&/p&&p&&b&6. 我想要什么难易程度的学习?&/b&&/p&&ul&&li&简单模式 —& &b&Python&/b&&/li&&li&最佳模式 —& &b&Python&/b&&/li&&li&中等难度 —& 15&/li&&li&真的很难(但学了它后学其它语言会变得容易)—& &b&C++&/b&&/li&&/ul&&p&&br&&/p&&p&&b&7. 我对哪个操作系统感兴趣?&/b&&/p&&ul&&li&IOS —& &b&Objective-C&/b&&/li&&li&Android —& &b&Java&/b&&/li&&/ul&&p&&br&&/p&&p&&b&8. 我对网页的哪方面感兴趣?&/b&&/p&&ul&&li&前端(网页界面)—& &b&Javascript&/b&&/li&&li&后端(网站后面的“大脑”)—& 9&/li&&/ul&&p&&br&&/p&&p&&b&9. 我想为谁工作?&/b&&/p&&ul&&li&创业公司 —& 13&/li&&li&大公司 —& 10&/li&&/ul&&p&&br&&/p&&p&&b&10. 我对 Microsoft (微软) 持什么态度?&/b&&/p&&ul&&li&我是粉丝诶
—& &b&C#&/b&&/li&&li&感觉一般般诶 —& &b&Java&/b&&/li&&li&好像不太喜欢诶 —& &b&Java&/b&&/li&&/ul&&p&&br&&/p&&p&&b&11. 我想去哪家牛逼的科技公司?&/b&&/p&&ul&&li&Facebook (脸书) —& &b&Python&/b&&/li&&li&Microsoft (微软) —& &b&C#&/b&&/li&&li&Google (谷歌) —& &b&Python&/b&&/li&&li&Apple (苹果) —& &b&Objective-C&/b&&/li&&/ul&&p&&br&&/p&&p&&b&12. 我的网页应用会像
Twitter (推特) 一样提供实时信息吗?&/b&&/p&&ul&&li&会的 —& &b&Javascript&/b&&/li&&li&不会 —& 13&/li&&/ul&&p&&br&&/p&&p&&b&13. 我要想尝试一些新的、潜力巨大的、但目前还不够成熟的东西吗?&/b&&/p&&ul&&li&想 —& &b&Javascript&/b&&/li&&li&不确定 —& 14&/li&&li&不想要 —& 14&/li&&/ul&&p&&br&&/p&&p&&b&14. 我最喜欢下列哪个玩具?&/b&&/p&&ul&&li&乐高 —& &b&Python&/b&&/li&&li&培乐多彩泥 —& &b&Ruby&/b&&/li&&li&我有个又老又丑的玩具,但我喜欢得不行!—& &b&PHP&/b&&/li&&/ul&&p&&br&&/p&&p&&b&15. 我喜欢自动档的车还是手动挡的车?&/b&&/p&&ul&&li&自动挡 —& &b&Java&/b&&/li&&li&手动挡 —& &b&C&/b&&/li&&/ul&&hr&&figure&&img src=&http://pic3.zhimg.com/v2-bee6c431fb4bd_b.jpg& data-rawwidth=&640& data-rawheight=&355& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&http://pic3.zhimg.com/v2-bee6c431fb4bd_r.jpg&&&/figure&&p&想要在编程的世界里 ,探索科学与未来的你,千万不要错过&/p&&p&&br&&/p&&hr&&blockquote&&b&小栈编程教育 &/b&&br&微信/ ministack&br&微博@小栈学编程&/blockquote&&p&&/p&&p&&/p&
自从知道了 Python 是个叫 Guido Van Rossum 的天才工程师在圣诞节期间为了排遣无聊的假期时光搞出来的编程语言,你有没有越发对这个飞速发展的编程世界充满焦虑? 照编程这日新月异的更新速度,究竟要从哪门语言开始苦读,才不会刚学个大概,就快要被世界…
&figure&&img src=&https://pic2.zhimg.com/v2-fdc0bbb92ed5f27e6338d_b.jpg& data-rawwidth=&1280& data-rawheight=&720& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-fdc0bbb92ed5f27e6338d_r.jpg&&&/figure&&a href=&https://link.zhihu.com/?target=https%3A//parg.co/bt0& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&泛编程语言学习知识结构:JavaScript、Java、Python、Go&/a& 从属于笔者的&a href=&https://link.zhihu.com/?target=https%3A//parg.co/bst& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&程序员成长道路上的阅读学习资料工具集锦&/a&系列,主要是对于笔者这几年编程实践中,学习各个语言的过程中总结出来的共通的知识要点与体系结构的反馈。具体的 Java、JavaScript、Python、Go 的学习笔记可以参考 &a href=&https://link.zhihu.com/?target=https%3A//github.com/wxyyxc1992/Domain-of-ProgrammingLanguage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Domain-of-ProgrammingLanguage&/a& 与&a href=&https://link.zhihu.com/?target=https%3A//parg.co/bMe& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& Web 开发基础与工程实践&/a&,另外相同类型的文章有&a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&泛前端知识图谱(Web/iOS/Android/RN)&/a&。本图是利用 ProcessOn 在线编辑的,源文件地址查看&a href=&https://link.zhihu.com/?target=https%3A//www.processon.com/view/link/b0fb0& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这里&/a&。&figure&&img src=&https://pic1.zhimg.com/v2-66adc2b12ffca34f965ed38218a8fcfc_b.jpg& data-rawwidth=&2136& data-rawheight=&12160& class=&origin_image zh-lightbox-thumb& width=&2136& data-original=&https://pic1.zhimg.com/v2-66adc2b12ffca34f965ed38218a8fcfc_r.jpg&&&/figure&
从属于笔者的系列,主要是对于笔者这几年编程实践中,学习各个语言的过程中总结出来的共通的知识要点与体系结构的反馈。具体的 Java、JavaScript、Python、Go…
&figure&&img src=&https://pic3.zhimg.com/v2-fcb88dd10aea2dfaa2d019_b.jpg& data-rawwidth=&800& data-rawheight=&219& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic3.zhimg.com/v2-fcb88dd10aea2dfaa2d019_r.jpg&&&/figure&&ul&&li&我要学编程,先从哪里开始入手呢?&/li&&li&学什么编程语言?&/li&&li&学编程之前要不要先学一些其他预科知识?&/li&&/ul&&p&生存还是毁灭,这是一个的问题,选择不当会直接导致你的编程之路中道崩殂。&/p&&ul&&li&&p&想知道学什么编程语言最好,得先知道这些编程语言&strong&都能用来做什么&/strong&。&/p&&/li&&li&&p&知道这些编程语言都能用来做什么,你才能根据自己想做什么学习适当的编程语言。&/p&&/li&&/ul&&p&编程岗位广泛分布于各行各业,其中超过50%的程序员工作在 &strong&互联网&/strong&、&strong&软件&/strong&、&strong&金融交易&/strong& 这三大主力行业。&/p&&p&下面是主流编程相关行业技术应用和岗位分类搜索词,按容易入门、时下流行度和未来发展前景等综合排名。这里只列举大众化、主流、工作岗位较多的技术,小众编程语言和技术不涉及。&/p&&p&从这个编程技术列表里你可以总览主流编程行业概况和边界。&/p&&h2&编程语言和技术门类分类汇总列表&/h2&&p&注:HTML,CSS应用广泛但不算是真正的编程语言,这里不列入。&/p&&p&本表中,互联网、软件、金融交易等能就业的主流编程行业和语言、技术都在这儿了,大家可以收藏保留,已备在你想切换编程语言、技术和行业时查询。&/p&&ul&&li&&p&&strong&互联网开发&/strong&:互联网行业应用,WEB网站、手机APP应用等。&/p&&ul&&li&&p&&strong&移动开发&/strong&:手机移动APP应用。&/p&&ul&&li&HTML5,JavaScript,Android(JAVA),iOS(Swift)&/li&&/ul&&/li&&li&&p&&strong&前端开发&/strong&:网站前台界面。&/p&&ul&&li&WEB前端,HTML5,JavaScript,&/li&&/ul&&/li&&li&&p&&strong&后端开发&/strong&:WEB和移动应用服务器端开发。&/p&&ul&&li&JavaScript(Node.js),Java,PHP,Python,C#(.NET),C++,C,Go,Ruby,VB&/li&&/ul&&/li&&li&&p&&strong&DBA&/strong&:数据库工程师。&/p&&ul&&li&SQL,MySQL,MongoDB,SQLServer&/li&&/ul&&/li&&li&&p&&strong&运维&/strong&:运维工程师,服务器管理&/p&&ul&&li&Linux,shell,Python&/li&&/ul&&/li&&li&&p&&strong&测试&/strong&:测试工程师&/p&&/li&&li&&p&&strong&全栈工程师&/strong&:上面所有技术门类,每类最少会一种(如果你会JS基本都能做了)。&/p&&/li&&/ul&&/li&&li&&p&&strong&游戏,VR/AR开发&/strong&:移动或桌面端,2D或3D游戏和近几年发展出来的VR(虚拟现实)/AR(增强现实)行业&/p&&ul&&li&Unity3d(U3D),COCOS2D-X,C#,JavaScript&/li&&/ul&&/li&&li&&p&&strong&桌面开发&/strong&:传统桌面软件开发,带下载需要在电脑安装那种软件。&/p&&ul&&li&JAVA,C#(.NET),C++,C,GO,JavaScript(Electron)&/li&&/ul&&/li&&li&&p&&strong&硬件开发&/strong&:传统硬件和智能硬件。&/p&&ul&&li&硬件,嵌入式,单片机,FPGA开发,树莓派,C,Python,JavaScript(Node.js)&/li&&/ul&&/li&&li&&p&&strong&数据行业&/strong&:大数据、数据分析、数据挖掘、机器学习等数据相关。&/p&&ul&&li&&p&&strong&大数据&/strong&:数据科学底层软件和环境的搭建使用维护。&/p&&ul&&li&Java,scala,SQL,Spark,Hadoop,&/li&&/ul&&/li&&li&&p&&strong&商业智能&/strong&:BI工程师,数据仓库,ETL&/p&&/li&&li&&p&&strong&数据科学&/strong&:数据科学上层,使用搭建好的底层环境分析、挖掘数据。&/p&&ul&&li&&p&Python(Numpy,Pandas,Matplotlib,scikit-learn,TensorFlow),R,Julia,Matlab&/p&&/li&&li&&p&数据分析,数据挖掘,机器学习,深度学习,算法&/p&&/li&&li&&p&无人驾驶,自然语言处理,计算机视觉&/p&&/li&&/ul&&/li&&/ul&&/li&&li&&p&&strong&金融量化&/strong&:&/p&&ul&&li&&p&数学 + 数据科学(见上面) + 金融学&/p&&/li&&li&&p&Python,Java,C++&/p&&/li&&/ul&&/li&&/ul&&br&&h2&编程语言三大门派&/h2&&p&一个应用门类可以使用多种编程语言技术实现,一种编程语言往往也能做许多类别的工作,如何选择呢?&/p&&p&理论上,任何图灵完备的编程语言都是等价的,可以彼此通用做任何编程工作。例如,有人用PHP做工业控制软件,还有人用JavaScript写硬件驱动。但你要明白,&strong&可以做&/strong&不等于&strong&适合做&/strong&,每种语言都有自己的最佳使用范围,我们最好在每种应用上使用最适合的编程语言。&/p&&p&编程语言和技术会聚集形成应用族群,意味着一个程序员往往需要掌握多种技术才能胜任工作。其中一门为主力技术,其他为辅助。&/p&&p&目前中国人接入计算机和互联网的主流渠道有:移动端APP,微信端,WEB网页端,客户端。没有错,微信端已经强到可以独立山头了,不信你看看自己手机里的微信内存占用量和耗电率就知道了。&/p&&p&编程圈主流有三大门派,学习之前你最好选择一个门派作为方向。&/p&&h3&JavaScript派&/h3&&ul&&li&&p&&strong&JavaScript语言的应用领域&/strong&&/p&&ul&&li&&p&JavaScript诞生之初是为了给浏览器写飞来飞去的动画特效发明的一种浏览器脚本语言。&/p&&/li&&li&&p&JavaScript是世界上使用人数最多的编程语言(基本上,所有程序员都会用)。&/p&&/li&&li&&p&JS最主流的应用是WEB前端编程。&/p&&/li&&li&&p&React native、Hybrid APP技术使得JavaScript可以编写手机移动端APP应用。&/p&&/li&&li&&p&Electron使得JavaScript可以写桌面软件。&/p&&/li&&li&&p&Node.js,只要是能安装Node

我要回帖

更多关于 mfc 数字转字符串 的文章

 

随机推荐